spacejoey86 / Noise86

VCV rack plugin
GNU General Public License v3.0
2 stars 0 forks source link

off the wall: use I Ching symbols to illustrate Markov Sequencer #2

Open glocke01 opened 1 year ago

glocke01 commented 1 year ago

Hi,

I've long had the idea of making a Markov Sequencer for Rack, and the idea was that you could use the visual language of the I Ching's hexagrams https://en.wikipedia.org/wiki/Hexagram_(I_Ching) to illustrate the function of each knob.

The eight trigrams look like this: https://www.internalartsinternational.com/wp-content/uploads/2019/01/Eight-Trigrams.-Eight-Palms.Diagram-768x854.jpg

The idea is that your Markov state is a binary vector of N steps, leading to 2^N possible states, with True representing triggers and False representing rests. The knob associated with the trigram (T,T,T) ||| dictates the probability of a trigger on next clock if there were triggers on the last three clocks, and while (T,F,T) |;| would be the probability for a trigger if the last clocks had a trigger, the previous one didn't, and the one before that did.

The main advantage of attaching the trigrams/N-grams is that they are a visually intuitive way of representing how the module functions. You could even add an "LED" display showing what trigram you're in currently

For added bonus, you could add trigger inputs for each trigram that automatically set the memory/state to that trigram. (Some kind of "reset" input is always good to control the randomness and get some kind of repetitive phrase.)

Thanks for actually coding a Markov trigger sequencer. I realize that ideas are cheap and development time is precious.

Best, George

spacejoey86 commented 1 year ago

Hi, thanks for taking the time to write out your idea. It is interesting, although I would have to try it to see if it is musically useful to me. I have one question: What would the trigram xun in the image represent? Option 1: the previous two clocks were triggers and the one before wasn't Option 2: the previous clock wasn't a trigger and the two before were.

glocke01 commented 1 year ago

My recommendation would be option 2, reading top to bottom.

Each knob sets the chance of generating a trigger on the next clock. Each trigram encodes whether a trigger occurred, with broken lines representing a rest and unbroken lines representing a trigger, and the history goes from oldest at the top to most recent at the bottom.

xun is unbroken, unbroken, broken ||; ☴ or 110 so the associated knob would set the chance of trigger next clock if the previous clock there was no trigger but the two before that there was.