There are a lot of things this patch cannot do that the mlr program running on Norns with a monome grid can do; let me get that out of the way. There are, in fact, quite a few things this patch cannot do that my relatively similar patch, airport loops, can do (https://patchstorage.com/airport-loops-four-unsynchronized-loopers-for-experimentation/).
But what zlr does do is offer immediacy: using a grid-based system, you can quickly record and transpose up to four loops, and using a rather spiffy (if I may pat myself on the back a little) “motion recording” system, you can automate this transposition.
The automation is not quantized to the loop; this is both a good thing (it allows for fairly unique evolutions as the loop and its automation slip past one another) and a bad thing (unless you really, really nail the automation recording, it’s never the same twice). It’s not absolutely impossible to create an automation that is quantized the loop, but it is damned difficult and CPU intensive (it creates a separate layer of CV looping, and some tricky translation of audio loop speed to CV loop speed); instead of fixate on this, I will say that this is a patch I would look to update/adapt when the sampler module is released, as this features an end of cycle trigger output, which would make all of that headache I just described go away.
The grid allows you to choose between no pitch change, +/- a fifth, +/- an octave, and +/- two octaves. I couldn’t find any actual documentation on what settings mlr uses, but that’s approximately what my ears heard listening to demos. There are also controls for play (this is, in fact, a bit of a CPU cop out; instead of stopping the loop, it just slows it as much as possible — to 3% — which is lower than most speakers can reproducing and with the amplitude spread out so much that even if they can, it would hardly be noticeable) and reverse. Because these controls are pushbuttons and the rest of the grid is UI buttons that pushbuttons can be connected to, I recommend using the “performance mode” option.
On the second page are controls for “slew” — the mlr features a slew as the speeds of loops are changed, allowing them to slide from one pitch/speed to the next; that has been reproduced here. There are also “start” and “stop” controls for trimming loops, and pan controls (something the mlr doesn’t have! and something I think is fairly important, since it allows you to really build a stereo soundscape, even with just slight deviations from the center of the stereo field).
The signal path passes mono to stereo outputs while the loops are playing. The loops are recorded in mono (via the left input), then given stereo definition via panners and outputted in stereo.
Left — switches between audio recording and automation recording; when in audio recording mode, the pushbuttons on the lefthand side of the front page are red, when in automation recording, they are blue
Middle — automation recording can be bypassed by tapping on the center position of the grid twice (the no pitch/speed change block); if you would like to resume the automation, you can hold down the middle stompswitch and press the center position of the grid once
Right — record to all — this can be used to record audio to each of the loop buffers or to enter automation recording for each of the loops
Also included in this patch download are my “mlr sketches.” This is a patch of experiments in UI that I tried before I put together the zlr patch and found I didn’t have the CPU budget for many of them:
page 0 – 1 are a way of visualizing start/length parmaeters for a loop; the row of UI buttons across the top allow you to choose eight positions, and the rest of the logic sends the appropriate selection to the start parameter or loop length parameter via the out switches
page 2 – 3 is a fairly faithful version of the loop and automation recording used in the zlr patch, along with the grid; a few changes were made for the purpose of CPU limitations, but the general mechanism I employed is on display in these pages, if you would like to dissect it in one, consolidated place
page 4 was another attempt to visualize start/stop position, cheaper than the first (still not cheap enough to fit into the zlr patch; aside from that, I don’t think the resolution is very good for something like loop trimming — the monome grid offers 16 points of resolution to the 8 used here)
page 5 – 6 was meant to be used to quickly manipulate panning (the output of the in switch on page 5 would have been connected to a panner, possibly via a slew limiter), with its own option for automation control; I have some plans to adapt this to a “panning” sequencer patch at some point in the near future
I’ve included them because they were interesting experiments, and I thought some might want to look them over.
There are a lot of interesting UI options for a ZOIA patch; unfortunately, they can be quite costly in CPU.