If you don't have experience with either OO (for coding sclang), or DSP (for understanding scsynth), it's still a good tutorial and will guide you through. If you are using Windows, and therefore probably gedit, you will actually need to hit CTRL + E, or some other environment-specific execution command.īut as is often the case with creative software, you will find the whole experience easier if you switch to Mac. When you want to execute some code, they always tell you to hit ENTER (and not RETURN). There is also now a really helpful video tutorial series by Eli Fieldsteel - highly recommended!Ī quick aside for Windows users - often these tutorials are written for Mac. So my advice is to take a look through the tutorial at your leisure, get an understanding, then refer to my QuickRef once you start hacking code. The tutorial takes you through the language basics, and gently guides you through firing up the server and making some sounds.ĮDIT: I have now written a QuickRef for all the topics covered in that tutorial. You can find this tutorial on the Sourceforge learning page, alongside a couple of other 'getting started' options. The best place to get started is the tutorial by Scott Wilson and James Harkins. You'll want to come back to that link again and again once you get underway. But first off, I want to point out this SC-bundled help landing page. In a moment I will point you to the best guide to help you get started. Please note - this is NOT how you would normally write SC code! So don't be put off by the short-hand they used to get the code inside the tweets! Thor Magnusson at SC2012 (credit: Steve Welburn) Each was generated using under 140 characters of SC code - just the right size to fit inside a tweet. You can get a sense of just how compact and expressive SC is by looking at / playing some of these tracks. Coding is quick, rather than strict - the framework is littered with static object references for quick object instantiations, uses short-form naming conventions for class methods, and is syntactically minimal. It aims to be expressive, polymorphic, user-friendly and compact. Luckily, SC is designed to be really simple to use, once you understand some basics. I am going to put you onto some learning resources below, but this gives you a quick taste: A quick bit of code The visual output If you are already a coder, the real work is in learning about the plethora of sound-producing objects, what they each do, and how you can combine them. The SuperCollider language is based on SmallTalk and so will be familiar to Ruby programmers. The thing to remember is that when you start using a GUI, there is inevitably a restricted subset of things you can use it to do. People write their own GUIs to help them interact with scsynth in different ways. Anything which understands how to generate OSC commands for scsynth can act as a client - sclang is just the one that comes bundled in the SuperCollider application ( more on that here). However, because scsynth will accept any communications via OSC, you could technically use any client you want. A GUI, though easier to learn, wouldn't be able to provide anything like that flexibility. You can literally build as many virtual synthesizers as your CPU can handle, and connect them in a seemingly infinite variety of ways. The musician will continue playing as you change the score, and will switch to the new score in realtime.Ĭoding in an OO client like sclang means you have full flexibility to build (and screw up) anything you want. You can manipulate the score, pull things out, switch instruments and effects. You can think of scsynth as the musician, actively playing from a song sheet, and sclang as the song sheet itself. We don't want to burden scsynth's clock cycles with that. The world of sclang is about providing a human-friendly editing experience - interpreting written OO code. It needs to be fed information in a way which can be quickly digested and acted upon. Everything must run on a regular clock and be timed perfectly. The world of scsynth is about hardware-accelerated, low-latency calculations - DSP. Well, they each do very different types of work. Why have two applications - scsynth and sclang? The objects you instantiate and manipulate from sclang are abstractions, each of which is designed to allow you to manipulate an actual sound-generating object on scsynth. The job of sclang (the client) is to interpret the commands you give as written code, and to send instructions to scsynth on your behalf. The job of scsynth (the server) is to handle all the sound generators, filters, and waveforms it has been told about and to calculate values to send to the sound card. When you download and install SuperCollider it creates a client-server pair of applications - sclang and scsynth - which communicate via OSC.
0 Comments
Leave a Reply. |