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 !

Cheers,
n.

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.

2 Likes

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.

2 Likes

@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
2 Likes

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

Just stumbled upon this old thread and woud like to hear, if there's any other new generative strategies people here came up with.
I am fascinated by the FieldsOS album/radio show by William Fields and there's a bit here in this interview, where he describes the process of creating these pieces:
From what I remember, his idea was to start with some sort of looping pattern, which gradually evolves in a way that every couple of bars only some parameters of that pattern change. So it's kind of a stateful approach, where every pattern that plays is a slight variation of the previous pattern.
Now, I wonder, if there's any way to do stuff like this in TidalCycles (other than live coding and changing parameters on the fly). Does anyone have any ideas? Is it clear what I'm going at?
Like, for example, how would you go about creating some evolving composition in TidalCycles where the tempo of your cycle slightly increases and/or decreases over the course of say 64 bars. Though not at random, but by applying a small variation to the tempo of the previous bar. (Just some silly example, but maybe you know what I mean.)

EDIT: Lindenmayer systems and Markov chains are maybe obvious choices for what I'm having in mind. But I wonder if there's more of that in TidalCycles/Haskell.

1 Like