I’ve been going through a phase of trying to not use so much randomness in my patterns. I’m trying to get away from doing things like this:
-- noooo!!!
d1 $ degradeBy 0.3 $ s "percussion*16" # n (irand 20)
Complex Euclid Sequences
In Tidal, there are many ways that you can make complex patterns that seem to be random. My favorite technique as of late is to use the Euclid sequencing.
Starting with this:
d1 $ s "kick(<13 10 9 11 5 7>,16,<0 6 10 2>)"
Bam! That will result in many cycles of different kick drum rhythms. I don’t even know how many cycles the above pattern will take to finally repeat.
Inverted Euclid Sequences
The next thing I’ve been doing is combining some sort of percussion part with the kick drum, and re-using the Euclid logic as an inverted pattern with struct
:
let pat = "1(<13 10 9 11 5 7>,16,<0 6 10 2>)"
d1 $ struct pat $ s "kick"
d2 $ struct (inv pat) $ s "percussion"
That results in a solid stream of 16th note drumming. If you want to add some space, you can shift things around:
d2 $ (2 ~>) $ struct (inv pat) $ s "percussion"
Or slow things up once in a while:
d2 $ every 3 (slow 2) $ (2 ~>) $ struct (inv pat) $ s "percussion"
Non-Random Sample Selection
Then for selecting samples, again you can get a lot of random-sounding variation without being random. Starting with a simple run 16
and building it up:
d2 $ struct (inv pat) $ s "percussion"
# n (run 16)
d2 $ struct (inv pat) $ s "percussion"
# n (palindrome $ run 16)
d2 $ struct (inv pat) $ s "percussion"
# n (foldEvery [2,5,6] (0.5 ~>) $ palindrome $ run 16)
d2 $ struct (inv pat) $ s "percussion"
# n (every 3 rev $ foldEvery [2,5,6] (0.5 ~>) $ palindrome $ run 16)
Or try in different combinations:
d2 $ struct (inv pat) $ s "percussion"
# n (palindrome $ every 3 rev $ run 16)
Nothing really ground-breaking here, but I thought I’d share what’s been on my mind recently. I’ve been in a mode of using randomness for so long and I’m just finding it more interesting to try to create randomless stuff!