Ok we're back with a surprisingly long video about how to play notes, giving them as numbers or names, and controlling samples and synths.. With a sidetrack about how to look at the actual values inside (the first cycle of) a pattern.
Ok warming up now! Here's a video exploring chords, arpeggios and the emerging form of Algoraoke, which I think was a term coined at the first live coding conference in Leeds by Ash Sagar. This video contains a preview of the next challenge, to make a 'cover version', which I'll write up in more detail a bit later..
As I say, SuperDirt and SuperCollider isn't my greatest area of expertise, I think
@eris is looking at putting together a more in-depth video. As I also say, getting into synthesis is not mandatory, although SuperCollider is a fantastic world of possibilities system to get into if you're curious.
Here's the code:
At the time of writing the subtitles are auto-generated, we're looking into getting them edited.
Julian Rohrhuber, author of SuperDirt, added a long and interesting comment to this video.
Ok, here you go! The following concerns only synths that come from the Tidal
sound function (not global effect synths like
# delay, that are handled differently).
In SuperDirt, the freeing of synths is done by one internal synth that makes the end of the chain of effects. It is the
dirt_gate synth. Its definition is in
core-synths.scd. I posted it below . It applies a minimal envelope to the whole event (including all the effects you applied to it). The
doneAction is called after this envelope is completed. By setting the
fadeTime parameters in Tidal, you can harden or soften the
This means that you can make
SynthDefs with synths that do not release themselves, something we normally avoid in SuperCollider, because you'd pile up synths endlessly. But here, you could simply define a synth like this:
and you could play it in Tidal with:
sound "mess". The synths are freed by the
But usually, you want a synth to have a particular amplitude envelope. Then you can define one in your
SynthDef, see below . Note that
sustain means the duration of the whole synth (this is what it is called in
SuperCollider in general), which is sent over from Tidal (for setting it directly, try
# sustain "0.1 0.3 0.5 1"). Then you can have a
doneAction: 2 if you like (this will free the synth after the envelope is done), but you can also leave this
doneAction out altogether, because the synth is freed externally anyhow. For example:
But sometimes, you may want to use the synth outside SuperDirt, and then it is polite that it cleans up after itself. Just make sure that you multiply your envelope with the audible signal, otherwise you'll hear clicks at the end of each synth.
Hope this helps!
A little bit ahead of time, here's an intro to a function close to my heart,
off. Here's the worksheet:
Time to look at musical scales. Moving around scales can be especially fun with waveforms, so there's a lot of focus on that. It's a bit fiddly because as I explain in the video, you have to convert between decimal and whole numbers with e.g.
floor <$>.. I'm going to have to look at making that easier in Tidal. And the worksheet:
Here's a quick video running through connecting up a MIDI synth to Tidal, and controlling it with CC and NRPN.
Here's the basics covered with controlling Tidal from MIDI. There's a bit more to cover here in terms of tips and tricks, so I think I'll do another video soon.. In the meantime feel free to ask questions, as it'll help me decide what to cover, thanks!
Sorry a bit of a late start to the week. Here's a starter, looking at different ways of composing patterns together. I'll continue this in the next video with a look at the ur function for composing patterns of patterns.
Here's a quick video about the handy
. operator. Worksheet:
Here's an introduction to the
ur function, which lets you make patterns out of patterns, to make a track. I also talk about issues with
orbits and global effects (e.g.
delay) you might have when using
stack. This is still an area of Tidal that could be developed, so I'd be happy to have your ideas about possible features/improvements.
Here's the pattern I deconstruct:
Bliemy, it's week 8 already.. Lets do some time travel with
~>. Here's the worksheet:
Here's a quick introduction to binary patterns, focussing on using them to switch between a pair of functions with
sew. Here is the worksheet:
Ok after some delay, I'm back to finish off week 8 finally! Here's a look at the
fit function. I'd be happy to see your thoughts and questions about this one! Here's the worksheet: