PaulSC
03-04-2009, 11:40 AM
Hi everyone,
I've just begun using Numerology and am very impressed by how powerful (and fun!) it is. I'm going to stick my neck out and make a feature request. If I've overlooked an existing way to achieve these results in N2, please guide me. Meanwhile, here's my idea…
Many of the existing modules offer the option of playing steps in random order. What I'm requesting here is a couple of new control modules that could be used to drive the existing modules, in order to provide varying degrees of controlled randomness.
For the sake of generality and efficiency, I've conceived these as separate modules that could be applied to any of the Note or CV Sequencers. One issue with this approach is handling the case where the random-control module has a larger number of steps than the sequencer to which it is applied. An easy solution is for the excess steps to "wrap around" in this case. Related mapping issues have equally straightforward solutions.
RandWeight module
A fixed random weight is assigned to each step 1 to N.
Example (the weight values can be increased/decreased by dragging; for better visual feedback and real-time control they might have associated sliders).
http://pnauert.googlepages.com/randweight.png
If a RandWeight module is configured as shown and applied to a MonoNote, then the MonoNote will play its first step 20% of the time, its second step 10% of the time, its third step 5% of the time, and so on.
StateTransitionMatrix module
The random weight of each step depends on the index of the preceding step. Thus this module implements a first-order Markov process.
Example
http://pnauert.googlepages.com/stm.png
If a StateTransitionMatrix module is configured as shown and applied to a MonoNote, then if the MonoNote plays step 1, there is a 50% chance that it will repeat this step, a 20% chance that it will proceed to step 2, a 15% chance that it will jump to step 3, and so on. Similarly, if the MonoNote plays step 3, there is a 50% chance that it will repeat this step, a 20% chance that it will jump to step 1, a 15% chance that it will jump to step 2, and so on.
At the beginning of the process, there is not yet a "preceding" step on which the random choice can depend; a provision is needed for the user to set this initial condition.
I've just begun using Numerology and am very impressed by how powerful (and fun!) it is. I'm going to stick my neck out and make a feature request. If I've overlooked an existing way to achieve these results in N2, please guide me. Meanwhile, here's my idea…
Many of the existing modules offer the option of playing steps in random order. What I'm requesting here is a couple of new control modules that could be used to drive the existing modules, in order to provide varying degrees of controlled randomness.
For the sake of generality and efficiency, I've conceived these as separate modules that could be applied to any of the Note or CV Sequencers. One issue with this approach is handling the case where the random-control module has a larger number of steps than the sequencer to which it is applied. An easy solution is for the excess steps to "wrap around" in this case. Related mapping issues have equally straightforward solutions.
RandWeight module
A fixed random weight is assigned to each step 1 to N.
Example (the weight values can be increased/decreased by dragging; for better visual feedback and real-time control they might have associated sliders).
http://pnauert.googlepages.com/randweight.png
If a RandWeight module is configured as shown and applied to a MonoNote, then the MonoNote will play its first step 20% of the time, its second step 10% of the time, its third step 5% of the time, and so on.
StateTransitionMatrix module
The random weight of each step depends on the index of the preceding step. Thus this module implements a first-order Markov process.
Example
http://pnauert.googlepages.com/stm.png
If a StateTransitionMatrix module is configured as shown and applied to a MonoNote, then if the MonoNote plays step 1, there is a 50% chance that it will repeat this step, a 20% chance that it will proceed to step 2, a 15% chance that it will jump to step 3, and so on. Similarly, if the MonoNote plays step 3, there is a 50% chance that it will repeat this step, a 20% chance that it will jump to step 1, a 15% chance that it will jump to step 2, and so on.
At the beginning of the process, there is not yet a "preceding" step on which the random choice can depend; a provision is needed for the user to set this initial condition.