Week 4

This week we reviewed envelopes and multichannel expansion, and introduced the concept of iteration over an array of values. We focused on the .do method of passing arrays into functions, though for and forBy were also briefly covered. Afterward, we touched upon Open Sound Control (OSC) and OSC responder nodes, focusing specifically on the OSCdef class. We explored the use of OSCdefs as a way to implement conditionals into our code. We wrapped up class by engaging in an exercise writing code that would have SuperCollider output a small “ping” whenever it detects sound through the computer’s internal microphone.

Complete notes for the class, including code examples and a description of the in-class and homework assignments, have been uploaded to the class GitHub repository and can be accessed here.

In addition to the homework detailed in the class notes above, I recommend watching Eli’s tutorial video on buffers before next week’s class, as we will be working with prerecorded sound files. We will also discuss using OSC to interface with other pieces of hardware, enabling us to be able to control our sounds and compositions via devices like smartphones, WiiMotes, and so on.

Week 3

Greetings!

This week we reviewed SynthDefs and how they work, discussed the generation and application of envelopes to shape our sound, introduced the idea of panning and spatialization to give greater depth and nuance to our sounds and compositions, and went over the Mix and Array classes. We then spent the final half hour of class engineering new sounds, making use of the techniques and concepts introduced thus far in the course.

As usual, complete notes for the class, including code examples and a description of the in-class and homework assignments, have been uploaded to the class GitHub repository and can be accessed here.

To prepare for next week’s class, I HIGHLY recommend watching Eli’s tutorial video on iteration. This functionality provides SuperCollider with a level of flexibility and efficiency that is extremely difficult to attain in visual programming languages such as Pure Data or Max. If you haven’t watched his previous videos I recommend to do that as well, as these six provide the cornerstone of a strong foundation in effective SuperCollider programming.

Week 2

Hello, everyone,

This week we reviewed the basics of generating sound in SuperCollider, in addition to discussing how audio and control rate busses work and touching upon what SynthDefs are. We also went over how to bring up scsynth’s input and output dB meters, its node tree, and how to set up a limiter in order to protect equipment and our delicate hearing from unintentional damage.

Complete notes for the class, including code examples, has been uploaded to the class GitHub repository and can be accessed here.

As we have two weeks until our next session, it is vital that everyone continue to practice and do some supplementary SuperCollider tutorial watching in the interim. I have posted the next three installments of Eli’s tutorial series below (the first of which containing the pulseTest SynthDef we went over in class), and I urge everyone to type along with him as doing so will help to reinforce the concepts being covered in the videos. I have also slightly revised the homework assignment. Instead of separating the assignment into two separate tasks for beginning and intermediate students, I now want everyone to complete what was the entry-level assignment, and for those who want or need further practice, to work on the intermediate-level assignment as best they can. The details for the assignment can be found in the file posted to GitHub, mentioned above.

Once again, we don’t have class next week, so have a happy Easter Sunday and I hope to see you all on the 23rd!

Week 1

Hi, all!

Welcome to Composing Music with SuperCollider, a course that provides its students with a foundation in sound design, algorithmic composition, and basic visualization techniques, using the SuperCollider programming language as a creative platform. The first four weeks of this class is dedicated to familiarizing students with SuperCollider, in addition to covering basic sound design and digital signal processing.

We began our first class by listening to Fractus III, a piece by Eli Fieldsteel for flute and electronics that shows off a great deal of what SuperCollider can bring to a piece. We then covered what a multimedia programming language is, discussed the pros and cons of text-based and visual programming languages, the client-server architecture of SuperCollider, and a brief overview of OSC. We wrapped up the first hour by going over additive and subtractive synthesis, just-in-time compilation, SuperCollider syntax, and the difference between audio and control rates.

The second hour included a demonstration of and practical hands-on work with basic SuperCollider code. I’ve set up a GitHub repository containing some of the code examples I showed in class that can be found here.

Before next week’s class, I urge all of you to watch the following two tutorial videos. They are from Eli Fieldsteel’s SuperCollider tutorial series, and do a fantastic job in laying down a foundation for programming in the language. Seeing as the culmination of our twelve-week program is the creation of a portfolio-ready piece of electroacoustic composition, we simply won’t have the time to go over a number of these details in depth during class, so some supplementary reading or video watching will be requested of you as the weeks progress. I would also like for all of you to experiment more with SinOsc and try out the Saw and LFTri UGens, using the code examples I posted on the GitHub repository as models.

Thank you, and I look forward to seeing all of you next week!