Generative strategies and workflows

Dear cyclists,

I was just wondering which strategies and workflows you use to work in a more generative way.

I’ve been experimenting with wchoose, all sorts of complex euclidian patterns and various conditions (probabilities, time shifts, notes omissions).

I’ve yet to make something worthwhile with Lindermayer and Markov Pat functions, even though my understanding of both is a tad limited.

Obviously, combining these, layered arpeggios, more « written » patterns… could work.

But I’d love to learn from you all !


Ps: I for one strictly use MIDI, so I could also quantize notes to scale out of Tidal, but I’d like to do most with code.


1 year after I read this post xD.
I actually find tidal quite quirky in the way that it handles randomization and generative/stochastic composition. So, from what I understand by playing with it, the random seed seems constant and has a cycle that repeats . I'm not sure how to get away from this randomization cycle as it doesn't seem to be that big and I usually get inside one of these "random" cycles when i'm attempting generative composition techniques with tidal.

One that I thought of, but haven't tried implementing, is to have an external source switch select between d1..12.

It would be fun if tidalcycles could pattern d1..12 eval/silences.

1 Like

Ahhh yes I have thought of doing something similar, but putting patterns into a list and then using select with a random value every cycle to select a random pattern. "select" documentation.

1 Like

I guess another strategy is to use while and mask at very slow speeds, so that they turn large pieces of logic or patterns on (or off) at a kind of macro scale. Combine while or mask with randomness or inside a Markov chain and you can get some nice stuff happening.

I usually think of generative sequencing at the rhythmic level, not melodic.

1 Like

@kindohm This sounds like a promising strategy that I would like to try out. However, I can't find anything in the documentation about while. Could you please give a small example of its use?

@ganz while takes a pattern of true and false values and then applies a function to only the true values.

d1 $ while (binaryN 16 11011011) (|+ n "-12") 
     $ struct "t*16" 
     $ n "c4" 
     # s "supersaw" 
     # legato 0.5

@kit-christopher Thank you for this example. Will try it out.