I’ve seen some posts in other topics about the subject, but I thought it would be nice to have one as an overview of generative sequencer options. What are you using?
I have a huge interest in this topic as well. Especially hardware, or dedicated controller / computer based solutions. I have a few sequencers, but none of them do a truly generative kind of thing. I use software for this mostly. I did use snippets of Bass Bot TT-303 generations a long time back. Those were fun to export / record midi and then edit use in comps … but it would be really cool to have a sequencer that was ready made and designed to make generative music.
Thank you asking this question @mateo
GlitchDS for the Nintendo DS is a fun program using cellular automata to trigger samples.
I am mostly using custom written sequencers based on:
- genetic algorithm
- cellular automata (game of life, langton ant etc.)
- Sequencers driven by opcodes (like in this norns study https://monome.org/docs/norns/study-3/ but with special opcodes that allow to change opcodes in other tracks or change their speed etc)
And right now my favourite algorithm is genetic algorithm with which it is very easy to create constantly changing rhythms (some examples here:
which still travel around the basic rhythm programmed by user in contrast to purely random walk etc which very fast starts to differ a lot from the starting point. And for me this “feeling” that everything revolves around some particular center makes it more interesting that just purely changing steps at random.
There are also very nice generative sequencers in Reaktor, my favourite is probably NOD-E
EDIT: I also forgot about this sequencer that I wrote: https://firmanty.com/zyjatka/ which is based on simulation of artificial life but is not as “discrete” as cellular automata. If someone knows some similiar sequencers that use simulation for musical sequencing I would be glad to hear about them.
M is intriguing… but seems rather expensive given the much more fully featured software available these days for half the price?
Sure. It’s kind of just a historical curio at this point really.
orca sequencer for white whale is essentially a generative sequencer where an algorithm is used to generate sequences, and you control some of the algorithm parameters.
it’s a super simple idea (4 gate switches running on different clocks get added together, each with a different weight, and that produces note numbers) but can result in some pretty complex sequences.
I’ve been re-visiting building generative sequencers in Max recently. This little tangle has been working well of late:
It sounds like this through Ableton instruments with some effects, though I always think some human selection goes a long way:
Not very complex really, just a lot of weighted probability and note delay / repeat structures.
more orcas is good
When I stumbled on your repo earlier I was like “Oh noooo…”.
Yes, more orcas the better
I love Coldcut’s Midivolve:
And another good one in a similar vein is Patter:
Wow … this is one of the most beautiful pieces of music I’ve heard so far. Fascinating for sure.
context seems really cool in principle, although i’ve never tried to get it up and running to test it out
-came to say how I’ve been enjoying Mutable Instruments Marbles
-leave feeling like a generative plebian
I like your track. How do you prevent a genetic algorithm from straying too far from the original? I appreciate that a random walk can produce shitty results and that genetic algo can better guide progress, but given enough time, I would still expect it to deviate greatly from the seed.
I don’t know how much you are acquainted with how genetic algorithm works so excuse me if I will explain things that you already know.
Basically seed for genetic algorithm is population of random patterns and the target is most of the time constant. And the genetic algorithm makes it so that this random populations tries to arrive at the target so overtime the patterns is more and more similiar to the pattern created by user. In contrast to random walk there is a problem of population fitting to well to target and stopping evolving after arriving at target so there is a mechanism of inserting random mutations to ensure that there is always some change.
Maybe I will try with some example:
Assume that user entered simple four steps pattern (1 is on 0 is off):
At the beginning you start with random population:
You then need to have a function that for every pattern calculates how “far” it is from the target pattern. Even for such simple case there can be different functions but for this example we can assume that we calculate how many steps differ in pattern from steps in target pattern. So for our population we would have distances of:
0000 - 1
0111 - 4
0101 - 3
1101 - 2
We then need a function that creates a new population of patterns from the previous population and takes their distance into account. For example we can choose two patterns that are nearest to the target and then create new population from the by selecting at random bits from the two patterns that were selected:
So as a basis for our population we choose 1101 and 0000 and the next population created from them could be:
You can see that there is already a pattern that has the same steps as target pattern. But to prevent algorithm from getting constant stable results after some time there is also a small chance of random mutation that can happen that can flip some bits in already selected population.
This is brilliant. I wonder who I can get to turn this into a eurorack module.
Nothing grooves quite like ‘M’