A grid-based shift-register sequencer and self-playing generative synth.
It’s a synth patch, a sequencer basically, but instead of programming your notes on a fixed, time-based grid, there is a 4×4 grid on which one or more ‘dots’ can walk across and trigger notes depending on their position. The dots can walk in a straight line, but as ‘drunkenness’ is increased they start to stagger, wander off and bump into each other, or topple over into the gutter and disappear (..for a quick nap, after which they can pop-up again to continue their drunken journey!).
The layout of the main page is very similar to Links/Dinks, cause all these were made around the same time and have a similar 4×4 grid as its main control. The sound engine is quite basic because most of the work went into the sequencer itself, but it’s still a very pleasing sound, and for a generative patch it has a pretty good balance between randomness and musicality (at least to me…). Add some heavy reverb after it and you have dreamy ambience for hours!
=====
[OVERVIEW]
-Input: It’s a synth, so no input needed, but dry sound goes through unaffected in stereo.
-Output: Stereo
-CPU load: Around 77% (with Firmware 2.0)
-Build: Built with firmware 1.13
-MIDI: Controls are set to CCs (I use channels 21/36, see CONTROLS section for details).
[REVISIONS]
1.1: Tested for FW2.0 and added MIDI clock.
1.0: Initial patch.
[PATCH STRUCTURE]
This is a big patch, with many pages and lots of connections, so I’ll just summarize the principle of things (probably mostly for my future-self anyway, for when I’m trying to understand what the hell I built…)
The “sequencer” consists of lots and lots of Sample & Hold modules – 16 in total, one for each spot on the grid – that are all triggered by a master clock (RATE on main page). Normally S&H1 would go into S&H2, and S&H2 into S&H3, etc., to form what’s called a Shift Register, but here they all go into their own Output Switch that can route them to different destinations. The Switch destinations are connected in such a way that each spot on the grid can only be routed to itself or its immediate neighbors (or can be cleared, but we’ll get to that…), so at each tick of the master clock any ‘dot’ on the grid can only travel 1 step.
To control in which directions the dot travels, there’s a page called MOTION which has 3 triggered Random modules (3 is enough to get ‘decent’ randomization) that select – via a multiplier – one of the Switch outputs at each clock tick. The order of output channels is: [Left, Up, Itself, Right, Down, Clear], and it’s biased in the middle of channel 4. The DRUNK control on main page controls the amount of random that is passed through, so at DRUNK=0 dots will only travel to the Right, as it’s increased there’s a chances to either “pause” or move Down, then – as it’s further increased – to move Up, and at DRUNK=1 they can even travel “backwards” to the Left (it will not hit channel 6 so it won’t clear them…yet).
There are also 2 Comparators connected to the triggered Random modules that can be activated by toggles on the main page (CLEAR and SPAWN), which will respectively provide a 10% chance (per tick) to Clear some dots (by pushing some Output Switches to the 6th channel), or to add a new dot to the grid (by sending a value of 1 to a random row in the first column).
The sound section consists of 4 Sine oscillators going into 4 VCAs with 4 simple ADSRs, nothing special, but pleasant enough. Every time a dot travels into a ‘column’ of the grid it triggers the associated oscillator, and the pitch is determined in a fun way: you can only set the base note of each oscillator, but the actual pitch is determined by adding up every lit ‘dot’ in that oscillators column. Each ‘row’ has a different weighing factor, so a dot in row 1 gives a higher pitch than a dot in a row 2 or lower, but if multiple dots are lit they stack, and the weighing factors are chosen so they mostly combine into unique values (row 1 counts for 30%, row 2 for 25%, then 20%, then 15% for the lowest), so there’s a nice variation in notes with more active dots on the grid.
Of course, to keep things musical we need to feed all this pitch info into 4 Quantizers; one per voice, set to Natural Minor. You can transpose everything from a control on the first page. The SPREAD control determines how far apart notes will be and how high they can get.
=====
[CONTROLS]
See below for a “Picture Manual” in the comments.
All the main controls are on PAGE0.
The Stereo Output module with gain parameter, the MIDI toggle and MIDI clock divider (cc34) are on PAGE1. Quantizer mode is mapped to cc33.
WALKING GRID:
The main “Grid” consists of 4×4 pushbuttons, if you push one it will spawn a new ‘dot’ that starts walking. If dots bump into each other they merge (one disappears), if they enter a COLUMN they trigger an oscillator, the dots on each ROW determines the pitch for that oscillator.
Below each column is a Value module (called “PITCH”; cc29/30/31/32) to set the base pitch of that oscillator.
There are 3 toggle pushbuttons to the right of the main grid:
CLEAR (toggles a chance that dots disappear)
ORDER (forces the same movement for all dots on the grid)
SPAWN (toggles a chance that dots appear)
The rightmost modules are mostly Value modules:
SPEED (master LFO, walking speed; enabling MIDI clock disables this control; cc21)
DRUNK (determines how random the dots walk across the grid. From marching in a straight line to wandering in all directions; cc22)
SPREAD (determines how far apart notes are and how high they can get; cc23)
LOWEST NOTE (transposes pitch but stays in current scale; cc24)
TRANSPOSE (transposes total tuning including scale; 27)
FM DEPTH (sets FM cross-modulation depth; cc35)
FM TUNE (sets FM tuning; cc36)
ATTACK (envelope attack time; cc25)
DECAY (envelope decay time; cc26)
LVL (level of synth; cc28)
LEFT STOMP = momentary high probability to clear dots.
RIGHT STOMP = momentary high probability to spawn dots.
=====
[TIPS/TRICKS]
>>> Turn DRUNK to 0 and add a single dot to get started. Tune the oscillators, then start turning up DRUNK or SPREAD or start adding dots.
>>> If CLEAR is enabled, all dots will eventually disappear. So, either keep adding them manually (via the Grid) or also enable SPAWN; things will balance each other out nicely as dots are added and removed.
>>> If there are lots of dots the oscillators won’t always trigger (as the trigger will remain high), but as long as DRUNK is turned up a bit it’s fine, cause they will start bumping into each other, clearing up the grid and balancing things out.
[THOUGHTS/IDEAS/PLANS]
This one is probably very nice for when Euroburo is released, because the 4 CV outputs generate nice, evolving patterns to be used by external modules.
This was a fun little experimental patch for myself to mess around with, so I’ll probably not expand it much further, but it’s surprisingly pleasant to listen to!
If there’s any suggestions for improvement (or bugs/questions/remarks) please let me know in the comments!
Enjoy!
(image: Alberto Seveso)

Another self-playing synth patch, another hand-drawn picture manual:
Attachment Manual-Drunks-v1.1.jpg