Have any of you developed your own custom functions or systems to more quickly make sound in Tidal? I mean, it doesn’t get much faster than d1 $ s "bd"
, but:
- Do you have specific rhythms that you always like to use?
- Are there specific combinations of Tidal functions that you always use together?
- Is there a way that you consolidate these things into a small function instead of working with a big block of code typed from scratch?
For example, I livecode against my drum machine all the time. To play a snare drum I do this:
d1 $ note "32" # s "midi" # midichan 1
I realize that this is MIDI code but I think this topic also applies to samples, so stay with me here. The above MIDI code is a bit tedious to type every time I just want to play a snare drum on my machine.
An improvement is this:
let snare = note 32 # s "midi" # midichan 1
d1 $ snare
And then I can easily play patterns against that:
d1 $ struct "t(<3 5>,8,<0 2 5>)" $ snare
or
d1 $ gain "1.25(<3 5>,8,<0 2 5>)" # snare
Since MIDI CC’s aren’t easily combined into the same pattern, I do the same thing for CC’s:
let snarePan = ccn 67 # s "midi" # midichan 1
d2 $ struct "t*16" $ ccv (range 0 127 $ slow 4 sine) # snarePan
But that CC pattern is still too much to type. Even better:
let snarePan = ccn 67 # s "midi" # midichan 1
let slowPan p = struct "t*16" $ ccv (range 0 127 $ slow 4 sine) # p
d2 $ slowPan # snarePan
(above code has not been tested)
So if those custom functions are defined automatically when Tidal boots up, now all I have to do is this:
d1 $ struct "t(3,8)" $ snare
d2 $ slowPan # snarePan
You could of course extrapolate this to samples:
d1 $ every 2 (sickRaveEffects) $ dopeRaveRhythm $ favRaveSample
The goal is simple chains of user-defined shortcuts.
Do any of you do things like this? If so, what is your goal? How do you achieve it?