(I’m just noticing this thread, and some of these ideas make for lovely demos/presets for my module BASICally. So as I read through these ideas, I’ll add the code I come up with to create them, and they’ll likely show up as a preset in a future release of BASICally.)
For the sequencer with multiple reset positions, here’s what I’ve come up with:
' Trigger to IN9 reinitializes the sequencer.
' Trigger to IN1 resets to pos1.
' Trigger to IN2 resets to pos2.
' Trigger to IN3 resets to random position.
' Trigger to IN4 moves to next step in sequence.
' OUT1 is the output.
WHEN start() or trigger(in9)
CLEAR ALL
' Could be notes or numbers or combination.
values[0] = { c3, d#3, g3, a#3,
d4, a3, g3, e3 }
length = 8 ' Can be longer!
current = 0
pos1 = 0
pos2 = 5
out1 = values[current]
END WHEN
WHEN trigger(in1)
current = pos1
out1 = values[current]
END WHEN
WHEN trigger(in2)
current = pos2
out1 = values[current]
END WHEN
WHEN trigger(in3)
current = floor(random(0, length))
out1 = values[current]
END WHEN
WHEN trigger(in4)
current = mod(current + 1, length)
out1 = values[current]
END WHEN
I’m pitching a module idea I had a while ago. A Markov Chain module in VCV to experiment with ragas (or any other style of music).
We already have VCV Library - unless games mr. chainkov but unfortunately it is bound to the 12 fixed voltages, and if I’m not mistaken only records note to next note occurrences (instead of triplets, or more), and only records pitch, leaving out glide, duration and volume.
I’d be interested in a Markov Chain module (or Kolmogorov equation based module) that we could feed song information and would build histograms out of the combinations of changes of pitch, volume, gate duration over different time lengths or a varying number of notes. Ideally it would be agnostic about pitch/volume/duration/etc. and just have a number of inputs with corresponding outputs to reproduce the character the original input, but it might be difficult with the difference in voltages and gates the way we use them in VCV.
I believe ragas would be very well captured and thus be well reproduced by a module like this because each raga style has such specific rules about the scale, note changes and rhythm.
Of course it isn’t limited to raga’s. You could feed it any song and it would reproduce a melody that has a similar character. But if music isn’t your thing you could feed it something like stock exchange data, meteoor impact data, or whatever else you’d like.
If we would add the big button functionality as is implemented in VCV Library - Stellare Modular Turing Machine I think we would have a very musical module that doesn’t create random melodies, but well informed melodies.
Of course we don’t have to limit ourselves to melodies, we could do chord progressions as well if we fed it a tuple that captures a chord.
You could even split up a single song in its structural parts: intro, verse, chorus, bridge, ending, etc., feed them into separate instances of the module and reproduce melodies from these instances in sequence to reproduce a full song with a similar feel per part.
I would use such a module! I love Markov chains and use them a lot in my Meander module for generative chord progressions.
A first order Markov chain need to have a transition probability matrix for moving from one note in the scale to any other note in the scale for melody and likewise for chords. The Sckitam MarkovSeq allows such transition probabilities to be set up for 8 transition nodes, which is enough for diatonic scale melodies and chords. But, somewhat tedious to set up.
I like the idea of a raga expert system. Obviously my postings about ragas are very simple pseudo-ragas and do not capture any of the true raga rules of practice.
Thank you so much for telling me about VCV Library - Sckitam MarkovSeq. It’s pretty much the output part of what I described above regarding pitch and volume. 16 floats times 8 is a nice number to start playing with. And of these 16 channels I could use a few channels for gate length. If only it had an expander to fill its transition matrix based on input values, or a menu option to import csv’s. Or is there perhaps a magic stoermelder module that can save the day?
PS: I also need to take a closer look at Meander, because I missed the part about Markov chains.
Here is a demo of what I have been working on in terms of generative ragas, or in this case, a “Pseudoraga”. This makes use of several contributors patches, including: @abluenautilus , @kwurqx and perhaps more. The primary voices for this are Seaside Modular’s Proteus with Jawari and Proteus with Surge XT Wavetable VCO. My Meander is contributing some melody and bass patterns. Quantization occurs via the Impromptu Adaptive Quantizer which “learns” the scale as provided by the Proteus Ahir Bhairav scale. The tabla emulation is provided by @kwurqx and based on Karplus strong waveguide.
Pseudoraga.vcv (1.1 MB)
Be sure to click on the Master Reset button to get everything in sync.
I should probably note that I worked with the Sckitam MarkovSeq developer a couple of years ago to make MarkovSeq compatible with my Meander “octal radix” chord degree and scale interval sequencing. This is somwhat involved, but the octal radix format is degree.octave where degree is an integer from 1 to 7 and octave is an integer from 0 to ~7 .
For chords, the 1-7 corresponds to the circle of 5ths degrees I-VII . For melody, the 1-7 corresponds to scale intervals 1st-7th .
These relative “degrees” will be played in the current Meander mode and root scale.
Meander has DEGREE / GATE inputs inside the circle of 5ths circle and at the top of the Melody part column. For this usage, run a volt/degree number to both the DEGREE and GATE inputs. This allows Meander to understand how to apply these CVs. You can also use an external MIDI keyboard or TWELVE-KEY module to send v/oct to the DEGREE inputs and gate to the GATE inputs for either harmony or melody and play chords or scale notes on the keyboard white keys where C=1.x and B=7.x .
Relatedly I have a version of this raga in hardware; it uses the hardware versions of jawari and proteus, and has tabla samples provided by Squarp Rample: