I hope you enjoyed that mp3 of my track. For my final 035 project, I integrated Supercollider with Waveform to produce some electronic music. I achieved this by generating random(ish) midi data in supercollider and feeding it into waveform for one of my lead synths.

Sample Hunting
As per usual, I began by searching through my sample libraries for interesting samples. I was looking for both intriguing atmospheric samples that would inspire my music, as well as atmospheric samples that would provide some nice background noise. I had never experimented with randomness in my music before, so I was a bit unsure of myself. Pretty early on, however, I found that the samples that would work best would be ones that present a musical key, yet weren’t restrictive (they would harmonically work well with every note within that key). I also selected a set of drum and percussion samples, as well as a melodic bell sample I made earlier this year in Logic.
Intro:
After opening Waveform, I dragged my atmospheric samples into the track and began developing ideas about their relative placements in the timeline. Before too long, I decided on a key and matched the BPMs of my samples. Some of the samples I didn’t alter at all, other than adding effects. A couple of plugins I used frequently were Traktion’s Bit Glitter and Melt.
As I mentioned in my previous two waveform projects, I really love these two plug-ins — when used together, they can warm up and almost “break down” a sample. Other samples I put into a multi-sampler patch, chopped up, and used to play melodic motifs using my midi keyboard.

I also added some perc loops, some of which I chopped up. The point of this section was to introduce the material with which I’d be working for the rest of the track, as well as set the mood. Thus, towards the end of the intro section, I introduced a pitched down and warmed up version of the main lead melody of the drop — a trimmed vocal sample I tossed in a sampler and played using my midi keyboard. Another notable aspect of this section is a flute line, which I played using a sampler.
Moving over to SuperCollider
At this point in the process, I moved to SuperCollider to generate semi-random midi. This process was composed of two parts — writing the actual random code, and setting up a line of communication between SuperCollider and Waveform. Professor Petersen shared with me instructions on both of these steps.
In terms of generating random data, I wanted Supercollider to pick notes that were within the scale with which I was working, rather than notes within a given note interval, a slight variation on the code that Professor Petersen shared with us. I achieved this by creating an array including the notes in my preferred scale. Then I used inf.do and .choose to pick midi notes from the array at random. I attached a picture of the code below.
Setting up a line of communication between SuperCollider and Waveform was rather painless, actually. I sent the output of my supercollider code through the IAC driver and then set the driver as the input for a Subtractive patch. Therefore, I could initialize the code in Supercollider and the generated midi would immediately be heard in Waveform.
The plucky Subtractive patch you here at the beginning and end is the midi I ended up using. I recorded about two minutes worth of midi and picked a section I thought would work well.
First Drop
By far, I spent more time on this section than any other. To start, I pulled up my bell percussion sample. I had a rough idea of what I wanted the section to sound like, drawing inspiration from Sam Gellaitry and Galimatias. The sample was already set to 130 BPM, which is the BPM in which I often like to work, so I didn’t have to do much manipulation of the sample other than chopping it at times to create a stutter effect. In terms of effect plugins, I added a bit crusher to make the sample more percussive. Therefore, it wouldn’t clash as much with the other melodic aspects of the track.
Next, I experimented with some vocal chopping and developed the chop countermelody that exists now. I knew this wasn’t the lead, but rather a complementary element.
Following this, I organized my percussive elements. The drum groove itself is pretty simple — I placed a clap on beats 2&4, and the hi-hats, which I recorded at the end, are sparse. Later on, I wanted more width in the track, so I automated panning the hats left and right. To highlight the bass hits, I coupled my 808s with kicks. I knew I wanted my 808’s to be a focal point of the piece, so I initially opted for a sample that was roundish and had a good amount of higher frequency presence. I noticed in my previous tracks that my subs had unnecessary low-end, so I threw on a high pass filter to do some light correction. A couple of days later, however, I ended up trimming some of the mid and high frequency of the bass. Aside from these melodic and drum elements, I spent a decent amount of time on little embellishments. These included chimes, sub-bass slides, risers, and impacts, which helped fill out the section.

Surprisingly, I didn’t actually write the main slide lead until the very end of working on this section. I tried a lot of different sample chops and leads for the main melody, but none of them stuck until I came across the one you hear now. Initially, the melody was actually an octave down. It became apparent, however, that there was too much mid-frequency clutter, so I moved the melody up an octave. Because of the strange timbre of the lead, moving it up an octave led to some mixing issues. What ended up doing the trick was a high pass filter paired with an eq which took out some mid frequencies and accentuated the highs.

B Section
In this section of the piece, I tried to depart from the choppiness of the first drop by incorporating two sustained pads, alongside a traditional lead. For my pads, I edited two instances of Subtractive and played a chord progression in the relative minor. I spent some time messing with the filters in subtractive to place the pads correctly in the mix. I also used a variety of effect plugins, including chorus, phaser, and reverb. I used some of these effects purely for their aesthetic, while I used others for their utility in the mix. Stereo fx and widener, for example, made room for key elements in the section (the lead and the bell loop).
Main Lead
I had a lot of fun with the main lead in this section — I was able to use my Arturia keylab, which has a pitch mod wheel. Editing the pitch mod wheel data post-recording turned out to be a bit unintuitive, but I’m happy I incorporated it. I found my patch was a bit boring, so I added a phaser with a very slow rate and very little feedback, which only slightly altered the sound, yet brought it to life. Other than that, the fx rack is pretty standard.


Bass
I decided to switch up the Bass in this B section for sake of variety. Not only did I change the Bass pattern, but I also used a different sample. I chose a subbass that fell more in the low-frequency range than the former, so it wouldn’t compete with my pads.
Other Elements
I brought back the bell loop in this section; this time I boosted some mid frequencies using an EQ to make the loop even more percussive. Other than that, I kept the same basic drum pattern, replacing the clap with a snare for variation. I also reintroduced a sample chop from the beginning to relate the intro to the b section.
Final Section

I wanted to wrap things up nicely in the last drop by combining elements from both the A and B sections. I kept the same structure and feel as the A section — choppy and fx-focused –while also reintroducing the chord progression from the B section using two new Subtractive patches. The first patch was a high-frequency phaser pad, which has a weird but cool envelope. The second, a standard juno-ish pad I added for strength, for the first pad had a weak tail. At the very end of the track, I reverted back to a mysterious and dark variation of the intro. I primarily achieved this by using reverb and Melt to alter the samples.
Risers: pitch shifting and filter automation
One thing to note is that I had a really fun time experimenting with risers and section transitions. In most cases, I used traditional white noise risers, but I also developed other techniques to complement and even replace this fx. For example, before the last drop, I automated a high pass filter on a synth pad to grow anticipation. This can be heard at minute 3:00. Another technique I developed was pitch shifting. In some instances, I put a pitch shifter over my pad or sample and drew-in a linear upward automation right before the drop, which achieved a makeshift riser of sorts. The last method I used applied the “Redux” filter in Subtractive. I found that by opening a subtractive lead patch and inputting a single midi note, I could then assign and automate a redux filter cutoff, resulting in a grainy, distorted sound, making for an interesting riser. This can also be heard at minute 3:00. Oftentimes, I combined two or more of these methods for my section transitions.


Some Other Things I Did
-side chain compression. I used sidechain on a variety of tracks in this project. I did, however, break the habit of putting sidechain on my bass. As Kenny Beats (and others) has reminded us many times, don’t side chain the 808s.
Final Mix of the Master
I did a lot of mixing alongside my writing process, which paid off in the end. The only manipulations I did to the master were to add a limiter and an EQ, accentuating the high-end and cutting off some low-end. I’ve noticed that my headphones lean towards the brighter side, so I often end up making these tweaks.
I enjoyed producing this track. I was a bit hesitant at first, because the genre of music that I usually attempt to produce doesn’t seem at first glance to be conducive to the type of random midi generation that I know Flume, for example, incorporates in his music. Giving Supercollider a scale from which to choose did the trick, however, and I’m quite happy with how things turned out!



















