# JW Grid Seq: How to repeat a random step direction

Was hoping to do this with JW Grid Seq (love this module btw):

1. Choose a random step direction.
2. Then, for several triggers, keep going in that direction.
3. 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.)

hjh

Gridseq has up, down, left, right & random clock inputs. What direction it â€śwalksâ€ť is a function of which input sees clocks.

For even more fun use Patternsâ€™ XOR clock dividers to send stumbly clocks to Gridseq.

Advanced clock craziness comes from using @synthi Rael to make utterly drunk clocks.

Of course, this is already in my patch.

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.

hjh

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.

I have an CV eigenvalue sheet for JW 8Seq â€ślengthâ€ť, but not for JW GridSeq.

Here is one way. Random gates into different burst generators. You can mess with number of steps and clock divisions.

gridseq rnd dir.vcv (2.6 KB)

4 Likes

If you want to do similar to what you did in SuperCollider, try this patch.

Grid Seq CV Sequencing.vcv (3.5 KB)

1 Like