I’m happy to announce that the EnigmaCurry
modules are now freely
available in the VCV Rack Library! ![]()
Transport is a
DAW-style play/stop/record state controller with quantized punch-in
and punch-out record timing. When paired with a recording device (eg. Lilac
Looper) it lets you
record audio for an exact number of clock cycles (bars) and loop it.
In order to get the perfect loop, the recording can be quantized
(Quantize Arming) so that it starts exactly on the next bar, x2, x4
etc. Transport has buttons on-device for PLAY, ARM recording,
and RESET (stop). You can also control Transport from an external
transport like
MIDI-CV and by
your host DAW.
Latch is a utility dual module that contains (32 polyphonic) flip-flop latches with discrete trig and reset inputs.
These modules are free and open-source (GPLV3+ and/or MIT dual-license). You can find the manual and all the source files in my github repository.
Here’s an introduction video for both modules, where I demonstrate how to build a live/loop recording platform from scratch (in 20 mins):
Here are a few things that I forgot to mention in the video, but that are covered in the manual:
-
You don’t have to copy everything I do in the video, there are numerous pre-made
Transport Looperpatches available for download from the github source repository, and are listed in the manual. -
In the video, I only showed how to record a 4 bar loop, but you can set the
LENGTHto anything from 1 to 128 (and you can set theIncoming clock dividermenu option for extreme lengths). You can also disable theLENGTHand still be able to record quantized:- Press
PLAYon transport. - Disable the
LENGTHby pressing the button (The light turns off, and the length turns to a white color). The length is now ignored. - Find
Quantize Armingin the menu and set it to your desired quantization length. For example, choose4. - Press
ARMon transport. It will start recording on the next play count that is a multiple of4+ 1. - Because
LENGTHis disabled, recording will continue indefinitely. - When you press
ARMagain, it will wait until the record count is a multiple of4+ 1, and then stop recording. - Thus you can record manually, starting and stopping, and still chop it to a length compatible with your clock.
- Press
-
Transport has triggers and gates for almost every input and output. This should let you hook it up to a wide array of devices, not just Looper. You can also turn the
PLAYbutton/input to be a latch (stays on once triggered) or a toggle button with thePlay button is toggle?option in the menu. You can always use the discreteRESETbutton/input to stop Transport. -
Transport has configurable
On StartandOn Stopactions in the menu, very similar to what CLKD has. For the patch in the video, you need to set Transport’sOn StarttoNo action, andOn StoptoSend Reset. (I had already set these options before the video started, and they are correct if you download the patch from github.) -
Transport has a
LOOPoutput that triggers each time theLENGTHcounter is reached in play mode (whether recording or not). If you have a recording stored in Looper, and you stop it, and then when you play it again manually, it will (very probably) de-sync from the original clock and so it will be out of sync with everything else you have playing. You can use theLOOPoutput of transport to re-trigger Looper:- Press
Stopon Looper. - Attach the
LOOPoutput of Transport to the main button input of Looper and wait for it to trigger once, to start the playback. - Immediately disconnect it from
LOOPbefore it loops again (you don’t want it to fire twice, or else Looper will go into overdub mode.) - Your Looper is now playing in-sync with the original transport clock.
- Press
-
Although Looper can record up to 16 channels of audio, you don’t have to connect that many. In the video, I only connect a single monophonic source. Looper has an option in its menu to switch recording from a single track (or stereo pair) to a polyphonic <=16 channels multi-channel .wav file.
-
There is an example patch selection for recording 8channel stereo here. Use VCV Rack’s
Import selectionfeature to load it.
If you have any questions or comments, please feel free to speak them in this thread. If you have suggestions, or find bugs, please open an issue on the github issue tracker. Thanks!
