So far we’ve been entirely using samples, which are audio files that are being played back when triggered, but now we want to start using synthesizers. A synth is something that creates, or synthesizes, the sound right when it’s asked to play. Synthesizers can be based in hardware, meaning that physical circuits are generating the sound waves out of electricity, or they can be based in software where it’s code calculating what the shape of the sound wave should be and then passing that along to the computer’s sound interface. While Tidal can be used to control hardware synths, for the purposes of this course we’re just going to deal with software synths defined in Supercollider
Our first such synth is going to be superpiano, which is a really good piano synthesizer that comes with Tidal. To whit, try typing the following into Atom and hitting ctrl+enter
d1 $ s "superpiano"
You’ll hear a single plinky note happening once per cycle. Of course, we’ll want to play actual notes and not just a single tone. To do that we’re going to introduce a new concept pattern modifiers. Unlike pattern transformations that are separated by dollars signs, pattern transformations are separated by the hash mark (
#). Now we’re going to create a pattern of notes and modify that pattern with
# s "superpiano" in order to tell Tidal that we want to make our pattern of notes be played with the superpiano synth
d1 $ n "f a c e" # s "superpiano"
And now you should hear a sequence of notes instead. To make patterns of notes we can use either numbers or the musical names for notes: c d e f g b a. All of the following are equivalent as patterns of notes
n "f a c e" n "5 9 0 4" n "f5 a5 c5 e5"
In that last example, the number after the letters is the octave number. If you’ve ever learned a musical instrument or heard any music theory, c4 is middle c. Higher numbers correspond to higher pitches. In fact, each higher octave is twice as high-pitched as the previous octave.
Now, we can start using the tricks we learned in the previous section to make a more complicated melody.
d1 $ n "[<c e> [d [a c]]? <[e f]*2 [a b]> < g f e>]" # s "superpiano"
If you play this, it’s a little fast. Thankfully, Tidal has another transformation that can be used to slow it down a little
d1 $ slow 2 $ n "[<c e> [d [a c]]? <[e f]*2 [a b]> < g f e>]" # s "superpiano"
Like the other transformation we’ve seen we put it between the
d1 and the pattern, separated by dollar signs.
If you’re listening to this and thinking “okay, but it doesn’t really sound like a good lo-fi piano” you’d be right. We can do a lot to modify the sound! Change your code so that it looks like the following example, making sure to indent the second line :
d1 $ slow 2 $ n "[<c e> [d [a c]]? <[e f]*2 [a b]> < g f e>]" # s "superpiano" # sustain 4 # lpf 1250 # room 0.3 # shape 0.3 # gain 0.9
Let’s summarize what these other modifiers are doing
Now with all of these effects combined it’s going to sound really different, but a bit richer than before. Try playing with these modifiers and with the piano lick itself to see what you can do.
In the next section, we’ll be covering how to use scales in Tidal and a little bit of music theory.