Was hoping to do this with JW Grid Seq (love this module btw):
Choose a random step direction.
Then, for several triggers, keep going in that direction.
Then choose a new random direction.
I guess the random step direction would have to be encoded as a CV input to, say, Bogaudio 1:8 and then sample-and-hold that for N triggers.
gridseq-random-direction.vcv (3.5 KB)
I was just wondering if there is a simpler way. (I have a kind of bad habit in Rack of trying to implement programming-style logic using lots of little modules – which often “works” but sometimes I feel like this is missing the point of modular. In particular, having two different chains of noise → s&h → scale/offset, one for direction, one for number of repeats, seems like a long way to go around.)
The question is, what is the simplest way to stay on one direction for a few ticks, then choose a new random direction to stay on for a few more ticks.
In SuperCollider, I could encode, say, 0 = L, 1 = R, 2 = U, 3 = D and then Pdup(Pwhite(4, 10, inf), Pxrand((0..3), inf)), and later in the event pattern, apply that to an x/y coordinate pair. In Rack, I got it in 7 modules but I was curious if there’s a tighter way.
Whereas not the cleanest process, I use sequencers to send “eigenvalues” to modules to change their behavior based on the clocks. I typically use an AS Triggers MKI to send CV’s to a module such as SuperCollider (for example) and figure out that the direction eigenstates are triggered by the 0, 1, 2 and 3v. I then put these values in a NYSTHI FIXED VOLTAGE SOURCE module, starting on the 3rd value slot (for reasons of how the 1st two slots behave). I then send these values to a sequential switch that is used as a sequencer to send those eigenvalues to the SuperCollider CV input for the target direction parameter. My favorite sequential switch is CountModula SWITCH 8-1 as it has several CV inputs that I have mapped so that I can use other sequencers of the same basic setup as above to control direction and length. One direction mode is “Random”, I usually clock the SWITCH 8-1 with a slow clock such as /8, /16 or /32. I sometimes get 3 layers deep of sequencers sequencing sequencers and sequencer parameters.
Whereas my method is heavy on setup, for each module that I am going to sequence CV’s to via eigenvalues, I create a single sheet of paper handwritten documentation of the eigenvalues and then I can just refer to this sheet the next time I want to CV control that module. I have used various preset and “selection file” to save my work by module, but I usually end up just recreating the setup from my notes.
I’m old (school), so I still use a lot of paper in my development workflow as well as while creating patches. I have a manila folder with all of my module eigenvalue sheets in it.