Virtual Eurorack Modules for VCV Rack

Project maintained by MarcBoule Hosted on GitHub Pages — Theme by mattgraham

Virtual Eurorack modules for VCV Rack, available in the plugin library. Version 2.4.3 GitHub repo size

Feedback and bug reports (and donations) are always appreciated!


Each module is available in light or dark panels with contrast adjusment, selectable in the right-click menu of the modules. By default the modules follow the global Rack setting (“Use dark panels if available”), but this can be bypassed on a per-module basis, where a fixed theme can be set for a given module. A default contrast can be set, which takes effect only when adding new modules to a patch.

Recommended reading:

The table below shows a comparison of the features available in the Impromptu sequencers.

  WriteSeq32/64 PhraseSeq16 PhraseSeq32 GateSeq64 Foundry BigButton1/2
Configuration* 3x32 / 4x64 1x16 1x32, 2x16 4x16, 2x32, 1x64 4x32 6x64 / 6x128
Clock inputs 1 / 2 1 1 1 4 1
Outputs CV+gate CV+2gates CV+2gates Gate CV+gate+ CV2 Gate / Gate+CV
Patterns per track/ channel 1 16 32 32 64 2 (banks)
Song length - 16 32 64 99 -
Seq. repetitions - FWD 2,3,4 FWD 2,3,4 FWD 2,3,4 0 to 99 -
Gate types 2 12 12 8 12 1
Probability No Global Global Per step Per step No
Slide No Global Global - Per step - / No
Edit while runnning Gates only Yes Yes Yes Yes Yes
Portable sequence Yes Yes Yes - Yes - / Yes

* Configuration is noted as follows: Channels/Tracks x Sequence-Length. The distinction between channels and tracks relates to clock inputs: when channels are separately clockable they are referred to as tracks.

Known issues

For sequencers and clock modules, it is advisable to have a Audio module added to your patch and assigned to a sound device in order for the timing and response delays in the user interface to be of the proper duration.


The RGB values used in the green and red colors in the various LEDs can be tweaked and made more accessible for the color-challenged. This can be done via the ImpromptuModular.json settings file that gets created in the Rack user directory.


Impromptu Modular is not a single-person endeavor. Many people have taken the time to suggest improvements and to collaborate on module concepts, graphics, testing, etc. This list of acknowledgements is too large to maintain properly, and so in place of a detailed list of names and participations, I would simply like to extend a big thank you to all that have helped and contributed to the project.

General Concepts

Many Impromptu Modular sequencers feature a CV input for entering notes into the sequencers in a quick and natural manner when using, for example:

Such sequencers have two main inputs that allow the capturing of (pitch) CVs, as follows: The edge sensitive WRITE control voltage is used to trigger the writing of the voltage on the CV IN jack into the CV of the current step. Any voltage between -10V and 10V is supported, and when a sequencer displays notes via a built-in keyboard or a display showing note letters, non-quantized CVs are mapped to the closest note but are correctly stored in the sequencer.

When AUTOSTEP is activated, the sequencer automatically advances one step right on each write. For example, to automatically capture the notes played on a keyboard, send the midi keyboard’s CV into the sequencer’s CV IN, and send the keyboard’s gate signal into the sequencer’s Write input. With Autostep activated, each key-press will be automatically entered in sequence. An alternative way of automatically stepping the sequencer each time a note is entered is to send the gate signal of the keyboard to both the write and “>” inputs.

A concept related to AutoStep, which is called “AutoSeq when writing via CV inputs”, can be used to automatically change to the next sequence when a write operation reaches the end of the current sequence. Without this, the writing operations loop back over to the start of the current sequence (default behavior). This can be used to turn the sequencers into very long stepped CV recorders (1024 steps in the case of PhraseSeq32 and GateSeq64).

All edge sensitive inputs have a threshold of 1V. In all sequencers, the duration of the gates normally corresponds to the pulse width (high time) of the clock signal. When sequencers offer an Advanced gate mode and this mode is activated, the pulse width of the clock signal has no effect on the sequencer.

In all sequencers, clicking Randomize in the right-click menu of the module will only serve to randomize the content (CVs, gates, slides, etc., as applicable) of the current sequence. For sequencers with a song mode, no song content is randomized when in SONG mode.

Sequence selection via CV inputs

Many sequencers feature SEQ# CV inputs, which can be used to select the active sequence for editing or to externally control the playing order of the sequences. Three different modes are available for these inputs in the right click menu of the modules, under Seq CV in.

This feature can be used to play difference sequences consecutively under external control, without using the built-in song mode in those sequencers.


A few of the modules feature Expander modules to provide additional functionality via CV inputs or other controls. An expander modules must be added to the right side of the mother module with no space between the two modules. Expanders automatically match their mother module’s panel theme, thus they do not have a panel theme option in their right-click menu. Only compatible expanders will work with a given module. For example, the PS-X expander will only work with the PhraseSeq16 and PhraseSeq32 modules, while the GS-X expander will only work with the GateSeq64 module.


Pictured above are the expanders for the following modules, from left to right: Clocked, ChordKey, PhraseSeq16/32, GateSeq64, Foundry.

The FourView module, which is normally used independently, can also be used as an expander for the ChordKey and CVPad modules. When both the ChordKey expander and FourView are to be used with ChordKey, the FourView module must be placed to the right of the ChordKey expander.

On resets, clocks and run states…

Impromptu sequencers implement two particular mechanisms related to resets and clocks in order to ensure proper reset behavior and correctly played first steps/beats.

The following recommendations should also be followed in order to ensure proper reset and first-step behavior in Impromptu sequencers. In all cases, it is assumed that a reset cable is connected from Clocked to the sequencer.

When Clocked is used with sequential switches or other non-Impromptu sequencers, and first steps are not playing correctly upon reset, the following guidelines may be of help:

  1. The option “Outputs high on reset when not running” should ideally be in its defaut state in Clocked (i.e. checked), but ultimately the user should experiment with both settings to see which one works best for the setup and modules being used.

  2. The reset and clock signals coming from Clocked should preferrably not pass through any other module and should be connected directly to the sequencer or sequential switch.

  3. If a clock (or reset) signal must be routed through another module (for example, a separate clock divider, a switch, etc.), both the reset and clock signals should be similarly delayed (possibly by using utility modules), such that a reset does not arrive at the sequencer or switch before any clock edges that are produced as a result of that reset event.

Further information for developpers is available in a short summary of the code structure used in Impromptu sequencers, relating to clocks, resets and run states.

Portable sequence

The Portable sequence standard is supported in the following Impromptu sequencers: PhraseSeq16/32 and Foundry. Sequences can be copied to the clipboard to then be pasted in any compliant sequencers that support the standard. These special copy/paste commands can be found in the module’s right-click menu under the entry called “Portable sequence”.

The Portable sequence standard can also be used to copy small sequences of up to four notes into/from ChordKey, in order to make a chord out of a sequence of notes, or vice versa. The FourView module also allows the copying of the displayed notes for then pasting as a small sequence in a sequencer, or as a chord in ChordKey.


Limitations: As a general rule, the Impromptu sequencers are not as expressive as timeline-based sequencers, so it can be anticipated that some features of the sequence will be pruned or quantized. In other words, the finest supported resolution is the quarter note (i.e. a step) and any content with finer musical resolution will be temporally quantized to quarter notes. The advanced gate types are not use to create eighth notes, for example, since no assumption regarding clock resolution can be made when pasting into the receiving sequencer. Tied steps are automatically set during a paste operation to produce half notes or anything longer that quarter notes. Rack’s log file can be used to identify major problems with pasting operations. Polyphony is not supported, and the copy/paste operations are only available when the sequencers are in SEQ mode (as opposed to SONG mode).

Module manuals

The following sections contain more information on how each module works.



(Concept and design by Sam Burford)

The Impromptu Adaptive Quantizer quantizes incoming monophonic target pitch cv events according to a statistical analysis of another separate series of reference pitch events that can either be pre-recorded inside the devices pitch event memory or can be referenced to a simultaneously unfolding performance of a monophonic series of pitch events taking place in parallel.

The Adaptive Quantizer has two sets of cv/gate inputs. One is used to record the reference performance, with a second pair providing the pitch material to be quantised. Two quantized pitch cv outputs are provided, one monophonic, the other polyphonic (CHORD). The gate output simply mirrors the gate signal appearing at the input gate. The Adaptive Quantizer only supports monophonic pitch inputs.

Unlike pitch quantizers that quantize pitches according to a predetermined scale such as C Minor, the Adaptive Quantizer uses statistical weighting to determine the most popular/frequent pitches appearing at a reference input, and uses these calculations to determine how a second parallel series of incoming pitch events are quantised. It does not analyse the incoming pitches according to established music theory but instead uses statistical prevalence. This means that sometimes the resulting quantization may not be within a recognised scale. The advantage is that if the incoming reference changes key or tonality, then the Adaptive Quantizer may be better able to reflect these changes. This is also important in scenarios where the key of the reference is unknown or is uncertain and shifting. Statistical prevalence however does not necessarily reflect the underlying tonality of an incoming reference, so there will be times where the Adaptive Quantizer seems off key. Accordingly, the device has a number of controls to help work towards the desired results but there are no guarantees they will influence the output in the way that users desire. As with many musical instruments, if it sounds right then it’s right.

The Adaptive Quantizer works by listening to a series of reference pitch events which are then captured inside the Adaptive Quantizer’s internal Data Table. The Data Table holds 240 monophonic pitch events that are internally quantised to the 12-TET note format. Once the Data Table fills up with these reference pitch events, it continues to update as it receives new reference pitch event information, continually over-writing its internal memory as it goes, much like a live looper. This continuous updating can be held (stopped) or allowed to continue by toggling the FREEZE button.

Each incoming pitch cv/gate event fed into the reference input is stored as a series of linked data values: pitch value (stored in a range from 1 - 12), octave value, duration value and pitch interval value.

A number of controls are available to determine how the pitch event information stored in the Data Table is used to statistically influence the quantisation of the incoming pitch cv data, ranging from the maximum number of output pitches (PITCHES), to the OCTAVE and DURATION parameters which can be used to bias the selection of output pitch values. Additional windowing controls (PERSIST and OFFSET) allow users to select which region of the Data Table is used to determine the current quantization weighting.

The Adaptive Quantizer can be used in a number of ways. One possible use is to adaptively quantize a live keyboard performance according to the dynamic musical context played by another performer. The device can also be used in any number of generative roles. Users are encouraged to experiment and share their findings.

The Adaptive Quantizer’s control panel has two display areas: Target Pitch Display and a combined Data Table/Pitch Matrix Display.

Target Pitch Display. Located across the top of the device panel, this row of 12 LEDs indicates which pitch values are currently available for output by the device.

Data Table/Pitch Matrix Display. This large, dual purpose display depicts a 5x12 LED array. Each LED represents 4 stored pitch events. In Data Table mode (momentarily visible when either the PITCHES or OFFSET controls are touched) it is possible to see the number of stored pitch events and the scope of the window used to determine which pitch events (in green) currently influence the quantization calculations. In Pitch Matrix Display Mode, which is the devices’ general mode of operation, each coloured LED column indicates the current weighting for each separate pitch (C through B). Flickering horizontal lines of bright LED’s reflect how the device quantizes the input pitches.

The Adaptive Quantizer has a number of controls that can either be manually adjusted or dynamically modulated by feeding cv signals into the associated input jacks. These can produce interesting evolving results.

The module’s pop-up menu can also be used to set the device to disregard any successive repetitions of identical reference pitches fed into the Adaptive Quantizer. For example, if the following sequence of reference pitches is presented: C4, C4, D5, C5, E5, E5, E5, the Data Table will only capture four pitch events (C, D, C, E) along with their associated octave, duration and pitch interval values.

A small warning LED set to the right of the modules title, reflects when quantization is taking place normally (OFF) or when the active Data Table region is empty (ON) or when the quantizer is operating chromatically (i.e all 12 notes are being used for quantization) - ON.


(Back to module list)



A 6-channel 64-step trigger sequencer based on the infamous BigButton by Look Mum No Computer. Although this is not a direct port of the original module, the intent was to keep it as faithful as possible, while adding a few minor extras such as CV inputs and displays. For two-handed control of the knobs and buttons, connect the sequencer to a midi control surface using Rack’s Core MIDI-CC module. To see more examples of what the sequencer can do, please see the following videos:

Here are a few more details on some of the uses of the buttons. The sequencer uses has two types of push-buttons, namely trigger buttons and state buttons. Trigger buttons react to the change in a button’s state as it’s being pressed, while state buttons react to the position of the push-button, i.e. pressed or not pressed.

Here is a summary of how SNAP and the Big and Del on next step option work.

(Back to module list)



A 6-channel 128-step gate and CV sequencer based on BigButtonSeq. Familiarity with that sequencer is recommended since only the differences are discussed here. With its long sequence lengths and CV capabilities, the sequencer can be used as a CV recorder by setting the FILL CV input to a constant voltage greater than 1V and activating the MEM button, thereby sampling the CV IN port at every clock edge and committing its voltage to memory.

This sequencer has no concept of tied notes; when pasting sequences using the Portable sequence format, notes that are longer than one step will have successive gate pulses on each step comprising the note.

(Back to module list)



A keyboard-based chord generator with room to store 25 chords, that can be recalled using a 0 to 2V control voltage. Up to four notes can be set for each chord using the keyboard and the octave buttons (video by Optoproductions). The FourView module can also be used as an expander for the ChordKey to view the note names of the notes comprising the chord or the name of the chord itself; in this case no cables need to be connected to FourView it is immediately to the right of ChordKey.

An expander is also available (titled CHD-X), which offers four polyphonic quantizers that can be used to quantize any pitch CVs to the notes of the active chord selected in ChordKey (video by Omri Cohen). When the ChordKey expander is used independently, it will quantize pitch CVs according to all twelve notes.

Other options are also available in the right-click menu:

The Portable sequence standard can also be used to copy/paste chords externally, for use in sequencers or other modules (and also within ChordKey itself). For this, use the menu item labeled “Portable sequence” instead of the internal copy/paste actions. The “Copy chord” item will copy all notes to a sequence of one step thus preserving the chord, whereas “Copy chord as sequence” will arpeggiate the chord into a sequence of (up to) four steps, which can be useful for copying the notes into monophonic sequencers. The “Paste chord” item takes only the notes that share the same time step as that of the first note given (thus a true chord), whereas the “Paste sequence as chord” item makes a chord out of the first four notes given, irrespective of when they occur in the sequence, which can be useful for making a chord from the notes in a series of steps in a monophonic sequencer. Here are the keyboard shortcuts for these commands:

(Back to module list)



Clocked: A chainable master clock module with swing, clock delay and pulse width controls, with master BPM from 30 to 300 and all mult/div ratios up to 16, including 1.5 and 2.5, and with additional ratios spanning prime numbers, powers of two and common PPQN values up to 96. The clock can produce waveforms with adjustable pulse widths for use with envelope generators or sequencers that use the clock pulse to produce their gate signals. The clock can also be synchronized to an external clock source.

Clkd: A smaller version of Clocked but without swing, clock delay and pulse width.

It is strongly recommended to read the section general concepts for more relevant information that is not repeated here.

In place of a detailed explanation of these three main controls (Swing, PW and Delay), it is recommended to connect the outputs to a scope or a logic analyzer, such as the VCV Scope (pictured above) or the SubmarineFree LA-108, to observe the effects of the different controls.

PW and Swing CV inputs are aso available in the Clocked expander module (available for Clocked only). These inputs have a range of -5V to 5V when the corresponding knobs are be in their default position. With the corresponding knobs turned full left, the usable range on the inputs becomes 0V to 10V, with no-swing and normal-pulse-width correspond to 5V on the CV inputs.

Many options are available in the modules’ right-click menu, and can be used to setup Clocked/Clkd for your particular needs. In particular, the RUN CV input is trigger sensitive by default, but can be made level sensitive (gate mode) by turning on the “Run CV input is level sensitive” option; when chaining multiple Clocked/Clkd modules, only the first module in the chain should have this option turned on.

Clocked and Clkd also feature the ability to automatically patch the Reset, Run and BPM cables to a designated clock master. Any instance of Clocked or Clkd can be designated as the clock master using the module’s “Auto-patch” menu entry. When auto-patching clocks: if the slave clock already has a connection to one of the inputs mentioned above, that input un-touched; the status of the “Outputs high on reset when not running” setting will be copied from the master clock into the slave clock.

External synchronization

By default, the clock’s BPM input is level sensitive and follows Rack standards for BPM CVs. Synchronizing Clocked to an external clock signal can be done by selecting a mode other than “CV” with the MODE buttons located below the BPM input jack. The possible synchronization settings are: P2, P4, P8, P12, P16, P24, where the number indicates the number of pulses per step of the external clock source.

When using a chain of Clocked modules, all modules must have the same mode setting. The LED next to the mode buttons will light up when the sync mode is enabled; however, when no cable is connected to the BPM input jack, a regular clock is produced according to the BPM knob’s value.

When using external clock synchronization, Clocked syncs itself to the incoming clock pulse, and will stay synchronized, as opposed to just calculating the BPM from the external source. This means that it will not drift (or that it will drift in time with the incoming pulses if they drift), and it should stay perfectly synchronized over time; it also allows for latency compensation. Here are a few points to keep in mind when using clock synchronization.

  1. Clocked can not be manually turned on in clock sync mode, it will autostart on the first pulse it receives.
  2. Clocked will automatically stop when the pulses stop, but in order to detect this, it take a small amount of time. To stop the clock quickly, you can simply send a pulse to the RUN CV input, and if the clock is running, it will turn off.
  3. The external clock must be capable of sending clocks at a minimum of 2 pulses per quarter note (PPQN) and should not have any swing.
  4. Clocked does not perform any interval averaging and tries to sync to the incomming pulses as rapidly as possible. This may sometimes cause the BPM setting to fluctuate widely before reaching a perfect lock.
  5. Clocked can support and synchronize to fractional BPM values (ex.: 133.33 BPM), but will show the BPM rounded to the nearest integer in the BPM display.
  6. For low clock BPMs, synchronization may take some time if the external clock changes markedly from the last BPM it was synchronized to. Making gradual tempo changes is always recommended, and increasing the PPQN setting may also help. An other method consists in priming Clocked with is correct BPM first, to let it learn the new BPM, so that all further runs at that BPM will sync perfectly.
  7. When sending a clock from a DAW or other source external to Clocked in Rack, best results are obtained when sending this clock through an audio channel as opposed to midi clocks.

(Back to module list)



A programmable CV controller with 16 pads, that can be configured into 1x16, 2x8 or 4x4 group(s). Many use cases are possible, one of which can be to manually select sequences to play in Foundry and many of the Phrase Sequencers, and more generally to control parameters for a live performance by providing quick access to different CV values.

The FourView module can also be used as an expander for the CVPad to view the note names of the selected pads; in this case no cables need to be connected to FourView provided it is placed immediately to the right of CVPad.

The module also features sliders and menu items to copy and paste the CVs, and also to offset/multiply/divide the stored CVs.

(Back to module list)



A 4-track phrase sequencer with 32 steps per sequence, 64 sequences per track, 99 phrases per song. A phrase is a sequence number and a repetition count. Each track holds one song and can be independently clocked and edited. The SEL and ALL buttons allow the selection and simultaneous editing across multiple steps and tracks respectively.

CVs can be entered into the sequencer via CV inputs when using an external keyboard controller or via the built-in controls on the module itself. When notes are entered on the built-in keyboard using right-clicks of the mouse, the sequencer automatically moves to the next step. Holding ctrl while right-clicking also copies the current note/gate-type over when moving to the next step. Double-click defaults are supported on the three main knobs.

The following block diagram shows how the different sequencer elements are hierarchically related.


Here are some further details on the different functions of the sequencer. It is also strongly recommended to read the section general concepts for more relevant information that is not repeated here.

By default the sequencer always restarts the song (when in song mode); however, this may not always be wanted. To play the song just once, activate the option Single shot song in the right-click menu of the module. Since Foundry is a multitrack sequencer and there is only one global run state, one of the four tracks has to be used as the reference to stop the sequencer. This option is only well-defined when the song’s run mode is either FWD or REV.

For chords or polyphonic content, an option in the module’s right-click menu can be used to poly merge other tracks into track A outputs. For example, when the Poly merge into track A outputs is set to Tracks B and C, each of the CV, GATE, CV2 outputs of track A becomes polyphonic, with the content of track A in the channel 1, the content of track B in channel 2 and track C in channel 3. When a track is poly merged into track A, its output ports are set to a constant 0V. This is perfect for creating chords for polyphonic oscillators/ADSRs etc.

(Back to module list)



A chord viewer module that shows the note names of up to 4 CVs, or the name of the chord represented by these CVs. Sharp or flat notation is selectable in the right-click menu. Bottom jacks are through outputs. FourView can also function as an expander for ChordKey or CVPad by placing it to the right of either of those two modules; in this case: a) no cables need to be connected in order to view the note names of the chord notes or pad voltages and b) the through outputs are not used. The FourView module also allows the copying of the displayed notes via the Portable sequence format for pasting as a chord in ChordKey or other modules. For more information, please see the ChordKey manual, as the two available copy options are the same as in that module.

(Back to module list)



A 64 step gate sequencer with the ability to define probabilities for each step. A configuration switch allows the sequencer to output quad 16 step sequences, dual 32 step sequences or single 64 step sequences. It is strongly recommended to read the section general concepts for more relevant information that is not repeated here. Like the Phrase sequencers, this sequencer also features a song mode (video by Omri Cohen and by Optoproductions).

When running in the 4x16 configuration, each of the four rows is sent to the four GATE output jacks (jacks 1 to 4, with jack 1 being the top-most jack). In the 2x32 configuration, jacks 1 and 3 are used, and in the 1x64 configuration, only jack 1 is used (top-most jack). When activating a given step by clicking it once, it will turn green showing that the step is on. Clicking the “p” button turns it yellow, and the main display shows the probability associated with this step. While the probability remains shown, the probability can be adjusted with the main knob, in 0.02 increments, between 0 and 1. When a yellow step is selected, clicking the “p” button again will turn it off.

This sequencer also features the song mode found in PhraseSeq16; 64 phrases can be defined, where a phrase is an index into a set of 32 sequences. In GateSeq64, the song steps are shown using the entire grid of steps, overlapped with the actual sequence progression in lighter shades in the lights. The actual content of the sequences is shown in white in Song mode. Here are a few more points regarding Song mode:

  1. When not running, the phrase cursor position is shown with a red light.
  2. When running, the current phrase being played is shown with a full green light and the position in the sequence is shown with a pale green light.
  3. When running, clicking a phrase turns it red (the currently playing one in green is still visible), and the knob can be used to change the sequence mapped to that phrase for live song editing. After 4 seconds of inactivity, the editing disappears.

Copy-pasting ALL also copies the run mode and length of a given sequence, along with gate states and probabilities, whereas only gates and probabilities are copied when 4 or ROW are selected. More advanced copy-paste shortcuts are also available when clicking copy in Seq mode and then paste in Song mode (and vice versa); see cross paste below. The SEQ CV input, sequence length selection and run MODES are all identical to those found in PhraseSeq16.

Although no Write capabilities appear in the main part of the module, automatically storing patterns into the sequencer can be performed using the CV inputs in the GateSeq64 expander module (this is a separate module labeled "GS-X"). The cursor is stepped forward on each write, and can be repositioned at the first step by pressing the reset button, or at an arbitrary step by simply clicking that given step. When the cursor is not flashing, clicking any step will make it appear. The Write-gate (full circle) and Write-empty (empty circle) inputs (2nd and 3rd from the bottom) can be used to enter on-gates and off-gates in succession with separate external triggers (buttons). The bottom-most input is used to move the cursor to the left, whereas the Write input at the top can be used to move the cursor to the right when Gate In and Prob are unconnected. When either of these inputs is connected, the values are used to program the sequencer gates and probabilities. The extra CV inputs only have an effect in Seq mode.

As in the PhraseSeq sequencers, sequence numbers can also be typed in using the computer keyboard when the mouse cursor is placed over the SEQ# display; when in song mode, the space bar can be used to automatically move to the next phrase in the song. Two key presses within the span of one second will register as a two digit sequence number.

An option is also available in the right-click menu to lock the main display so that steps can not be inadvertantly changed. This setting also locks the gate types and the gate p button (gate probability).

Advanced gate mode

The advanced gate mode in GateSeq64 has some similarities to the one available in the PhraseSeq16/32 sequencers. Each gate type has its own LED button.

Holding the MODE button for two seconds allows the selection of the clock resolution, in number of pulses per step (PPS). When set to a value greater than 1, which unlocks the advanced gate mode, the sequencer will skip this many clock pulses before advancing to the next step. In such cases, a multiplied clock must be supplied in order to keep the same tempo in the sequencer. In advanced gate mode, the pulse width of the clock is not used and has no effect on the gates.

The PPS should be a multiple of 4 for the first three gate types, while the PPS should be a multiple of 6 for the last five gate types. A chosen gate type not meeting its required pulse rate will have a red LED beside it to indicate this (normally it is green). When a gate type is red, the sequencer will still emit a (possibly empty) gate pattern for that step, but with no guarantee that it will match the type that was selected. All gate types can be used when selecting a PPS value of 12 or 24.

Cross paste

Pressing the copy button in one mode (Seq or Song), and then the paste button in the opposite mode would normally result in an invalid operation. In these cases, depending on the state of the copy-paste switch (4/8/ALL), called type below, the following shortcuts are performed:

Cross paste from Song to Seq  
Type   Display   Result
4      RGT       Randomizes the gate states of the current sequence
8      RPR       Randomizes the probability states and values of the current sequence
ALL    CLR       Clears (initializes) the current sequence

Cross paste from Seq to Song
Type   Display   Result
4      INC       Sets the song phrases to the sequences 1, 2, ..., 64
8      RPH       Sets the song phrases to random sequences
ALL    CLR       Clears (initializes) the song (all 1s)

In cross paste operation, the copied content is actually irrelevant and unused.

(Back to module list)



Sends a trigger when a given keyboard key is pressed. The mouse cursor must be over the module. This module was made to synchronize audio recording using VCV Recorder with video recording (using OBS Studio for example). Set a hotkey in OBS to automatically have it start/stop recording upon a given keypress (works even when OBS is not in focus), then maximize Rack and set the same key in Hotkey; both recorders can then be started and stopped simultaneously on the same key-press. Send the trig output of Hotkey into the trig input of VCV Recorder.

The current hotkey is visible in the right-click menu of the module and is automatically saved.

(Back to module list)



NoteEcho is a 32-step CV/Gate shift register with 4 taps to create a CV/Gate-based delay effect (video by Omri Cohen). Typical delay modules function with audio signals, whereas this module is an exploration of a similar effect, but instead for CV/Gate pairs. The module also has a second CV (called CV2) that can be used for velocity or panning effects in the delays. The inputs are sampled on the rising edge of the clock signal. The module has four user-selectable taps, called A, B, C, D in this document. The taps have controllable delay positions in the shift register. An implicit 5th tap is also present, called tap 0, for the sampled inputs, and is not user-controllable. Each tap is assigned its own channel in the polyphonic output cables. The knobs and switches function as follows:

When NoteEcho is used after a sequencer, it is important to delay the clock signal going into NoteEcho by using the built-in option in the module’s menu (and/or a separate utility module). This is required so that the clock signal arrives at the same time (or after) the notes produced by the sequencer. Usually only a few sample delays are sufficient. Since that sequencer is likely clocked by the same clock as NoteEcho, connecting the same clock signal directly to NoteEcho would not allow it to sample the sequencer’s outputs with the proper timing, resulting in an extra clock cycle delay in the outputs, or even worse, no gates being sampled at all. In the same line of reasoning, NoteEcho has a clock output signal, which can then be used in-sync with its GV/Gate outputs for processing further down the chain, if a clock signal is required.

NoteEcho pairs particularly well with the ProbKey module, when using a low density setting on ProbKey. NoteEcho is well adapted to generative music, either controlling instrument VSTs through the VCV-Host module, or synth voices patched in Rack. For patched voices, the usual polyphonic ADSRs, oscillators, quantizers, etc. can easily be used down-chain of NoteEcho. An option in the right-click menu called “Filter out identical notes”, when activated, allows a certain amount of redundant note elimination, to avoid multiply hitting the same note when delays interact with the incoming notes.

Important: When using NoteEcho with any of the Impromptu sequencers, be sure to turn off the option “Retrigger gates on reset” in the sequencers, or else the first gate after a reset may not be registered by NoteEcho.

(Back to module list)



A gate splitter module based on a CV input and a split point. One use for this module is to split a polyphonic gate signal from a keyboard into two different polyphonic gate signals, such that the left and right hand parts can be sent to different voices (video by Omri Cohen). In such a case, the polyphonic CV should also be sent directly to each voice, and only the gates below/above the split point will produce sound in their respective voices. The module can also be used with monophonic signals. When chaining two Part modules to select a range of notes (with an upper and lower bound), it is important that the CV input of the second Part module be connected to the THRU output of the first Part module, to ensure gates and CVs have identical propagation delays. This is necessary to avoid glitches that can occur when gates are held continually high and the CV changes from a value above the upper bound to below the lower bound in two succesive Rack samples (or vice-versa). An option called Apply -1mV epsilon to split point, which is on by default, subtracts 1mV to the split point in order to produce consistent splitting given the small imprecisions often found in the CV input’s V/Oct levels; this option can be deactivated in the module’s right click menu.

(Back to module list)



A 16 phrase sequencer module, where each phrase is an index into a set of 16 sequences of 16 steps (maximum). CVs can be entered via a CV input when using an external keyboard controller or via the built-in keyboard on the module itself. Using the song mode, a 256-step sequence can be created. With two separate gates per step, gate 2 is perfect for use as an accent if desired. When notes are entered on the built-in keyboard using right-clicks, the sequencer automatically moves to the next step. Holding ctrl while right-clicking also copies the current note/gate-type over when moving to the next step. Double-click defaults are supported on the main knob.

The following block diagram shows how sequences and phrases relate to each other to create a song. In the diagram, a 12-bar blues pattern is created by setting the song length to 12, the step lengths to 8 (not visible in the figure), and then creating 4 sequences. The 12 phrases are indexes into the 4 sequences that were created.


Familiarity with the VCV SEQ-3 sequencer is recommended, as some operating principles are similar in both sequencers. It is also strongly recommended to see general concepts for more relevant information that is not repeated here, along with an overview video by Optoproductions.

Tied steps

When CVs are intended to be held across subsequent steps, this button can be used to tie the CV of the current step to the CV of the previous step. When tied, any changes to the CV of the head note will be propagated to all consecutive contiguous tied notes automatically. Two different gate 1 behaviors are available and can be toggled in the right-click menu. All gate types are adjusted automatically when tying and untying notes, and in all cases, manual inspection of the gate types will reveal what has been done in the sequencer. Any change to this option will only take effect on subsequent edits in the sequencer, such that currently entered tied notes are not automatically changed.

The following diagram shows the effect of the Held tied notes option.

Held tied notes activated
CV:    D# D# D# D# 
Gate:  -- -- -- -_
Step:  s1 s2 s3 s4

Held tied notes deactivated
CV:    D# D# D# D# 
Gate:  -_ __ __ __
Step:  s1 s2 s3 s4

Extra CV inputs are also available via the PhraseSeq expander module (this is a separate module labeled "PS-X"). Only the bottom-most input is level sensitive, the other four are trigger inputs. The expander CV inputs can only be used in Seq mode.

Advanced gate mode

Holding the MODE button for two seconds allows the selection of the clock resolution, in number of pulses per step (PPS). When set to a value greater than 1, which unlocks the advanced gate mode, the sequencer will skip this many clock pulses before advancing to the next step. In such cases, a multiplied clock must be supplied in order to keep the same tempo in the sequencer. In advanced gate mode, the pulse width of the clock is not used and has no effect on the gates.

In the advanced gate mode, the Gate1 and Gate2 lights will be a different color, and the onboard keyboard can be used not only to enter note values, but also to select one of the 12 types of gates for a given step. To enter gates, make sure the LED button located above the E and F keys is activated (pressing this button multiple times alternates between gate 1 and gate 2); to enter notes again, press the LED button above the B key. Advanced gates can only be set while in Seq mode. Here are the different gate types and their minimum PPS requirements.


All PPS settings will work for the full gate (the F key) as well as triggers (the B key). Triggers are 10ms in duration. A full gate remains high during the entire step, and if the next step’s gate is active, then the gate continues without interruption into that next step. When PPS requirements are not met, the sequencer will not allow invalid gate types to be entered on the keyboard. For example, if PPS is set to 6, then the 75% gate (the E key) can not be selected. Selecting a PPS value of 12 or 24 will ensure that all gate types can be used (i.e. that all PPS requirements are met irrespective of the gate type chosen).

Cross paste

Pressing the copy button in one mode (Seq or Song), and then the paste button in the opposite mode would normally result in an invalid operation. In these cases, depending on the state of the copy-paste switch (4/8/ALL), called type below, the following shortcuts are performed:

Cross paste from Song to Seq  
Type   Display   Result
4      RCV       Randomizes the CVs (pitches) of the current sequence
8      RG1       Randomizes all gates #1 of the current sequence
ALL    TG1       Toggles all gates #1 of the current sequence

Cross paste from Seq to Song
Type   Display   Result
4      INC       Sets the song phrases to the sequences 1, 2, ..., 16
8      RPH       Sets the song phrases to random sequences
ALL    CLR       Clears (initializes) the song (all 1s)

In cross paste operation, the copied content is actually irrelevant and unused.

(Back to module list)



A 32 phrase sequencer module, where each phrase is an index into a set of 32 sequences of 32 steps (maximum). This sequencer is very similar to PhraseSeq16, but with an added configuration switch allowing the sequencer to output dual 16 step sequences (2x16) instead of single 32 step sequences (1x32). When the 1x32 configuration is selected, only the top channel outputs are used (labeled A), and when the 2x16 configuration is selected, the top row is sent to the top outputs (CV and gates A), whereas the bottom row of steps is sent to the bottom outputs (CV and gates B).

When running in the 2x16 configuration and in Seq mode, the following details become relevant:

  1. When ATTACH is activated, clicking any step in a given row will attach the edit head to that row.
  2. Only the row corresponding to the edit head’s position will be transposed or rotated when the TRAN/ROT button is used.
  3. One extra run mode is also available for sequences, called RN2. This run mode allows the two sequences to play randomly but separately, as opposed to RND which plays them randomly but together.

Other than these characteristics, the rest of PhraseSeq32’s functionality is identical to that of PhraseSeq16, including the use of the expander module.

(Back to module list)



A keyboard-based random note generator with room to store 25 randomization presets, that can be recalled using a 0 to 2V control voltage (index). The module allows per-note probability, per-note root octave (anchor) and an octave range for randomly choosing the octaves of the generated notes. These three settings, accessible in the keyboard’s keys, can be edited using the three LED-buttons on the right side. These three buttons are referred to as the edit mode buttons. In the first two modes (p and anchor), the settings are per key note, whereas in octave range edit mode, only the white keys are used to select the probabilities for the -3 to +3 octave offsets (video by Optoproductions).

The first edit mode (p) controls note probabilities, which dictate how often each of the twelve base notes are to be generated. When the sum of probabilities is less than 1, some steps can be skipped, when the sum is greater than one, it is normalized. The second edit mode (octave anchor) sets the octave for each of the notes that has a non-zero probability. In the module’s default state, C4, E4 and G4 are selected to randomly play, each with a 1/3 probability. The third edit mode (OCT) can be used to determine octave offsets that will be randomly chosen when a new note is to be generated. When turning up the -1 and +1 values to maximum (along with the central value also at maximum), for example, a given note will randomly have its octave shifted up by one, down by one, or kept intact, each with a 1/3 probability of occurring.

When shift clicking the keys, all probabilities and anchors will be set to the same values in the first two modes, and in octave range edit mode, the ranges will be set symmetrically. The module does not have clock and reset inputs, it is up to the user to supply the intended tempo via the gate input; in this sense, ProbKey does not know about triplets and dotted notes etc., it simply generates a note on every gate it receives.

The module also has a 32-step buffer for locking interesting patterns in order to repeat them. The main thing to know about lock is that it has the highest priority, meaning that when a locked note is chosen, most of the settings relating to probabilities have no effect. When a random note is chosen, all currently selected randomization settings in the keys will be used to generate a new note. With the lock knob at 50% for example, there is a 50/50 chance that the next note will be a new random note, or the note at that point in the lock buffer (a reused note).

It’s also important to keep routing delays in mind when patching. Cables and modules add signal delays and can impact the timing of pitch CVs vs gate signals. For example, sending the gate output directly to VCV Host but sending the CV output through VCV Oct before going to Host will make it such that the CV will change one sample after the gate event was registered, which can cause problems with some VSTs in Host. In such cases, simply sending the gate signal through VCV Mutes, VCV 8vert or any other similar module can be used to delay it also by the same number of samples, such that both Gate and CV arrive at their destination with the same routing delays.

Other options are also available in the right-click menu:

The ProbKey module supports polyphony such that a polyphonic gate input will generate a polyphonic CV/gate output pair where each channel will generate separate random notes according to the (unique) settings of the module. The Density, Squash and Offset CV inputs also support polyphony in order to exert a certain amount of control over the different voices, but in order to have true separate randomness across multiple channels, separate ProbKey modules must be used and then merged.

(Back to module list)



Touch-like controller modules CV outputs and variable rate of change. With a fast rate of change, the controllers offer an alternative to knobs for setting parameters, and with a slow rate of change they can be used to automate in-out fades, for example, freeing the performer to work elsewhere in the patch. Tact-1 is a single channel version of Tact with fewer options, while Tact-G is a Tact-1 with one gate output and two offset controls.

A 0V CV is initially stored in the CV memory and the slide switches are in the off position, thereby allowing the Recall to act as a Reset by default. An option in the right-click menu, called Level sensitive arrow CV inputs can be activated to control the duration of the transition. When this option is turned on, the input must be continuously held above 1V for the transition to progress, and when the input goes back under 1V, the transition will stop at its current level.

The Auto-return option in the modules’ right menus can be used to momentarily affect the tact pads with the mouse, and have the level return to a prescribed value upon releasing the mouse button. When this option is activated, the Arrow inputs implicitly become level sensitive and can also be used to momentarily effect the level.

The x3 switch on Tact-G, or alternatively the x3 menu options in Tact and Tact-1, can be used to tripple the rate knob’s value for even slower transitions (rate knob is 0 to 12 s/V when active).

In Tact-G, two offset controls are added, one is a knob for direct control while the other is a CV input with attenuverter. Both options can be used simultaneously, for adding a random source in offset 2 for example, while still allowing a manual offset using the first offset. The gate outputs can be chained when using multiple Tact-G modules using the chain input.

(Back to module list)



Sygen allows the user to enable or disable up to four independant gate signals without interrupting the high pulses of the gates. When a gate input is low for a given channel, its enable status can be toggled instanly (using that channel’s push-button), and when the gate input is high, the change is pending until the gate input goes low again, in order to not cut the gate pulse.

(Back to module list)



A chainable keyboard controller for your virtual Rack. When multiple TwelveKey modules are connected in series from left to right, only the octave of the left-most module needs to be set, all other down-chain modules’ octaves are set automatically. The aggregate output is that of the right-most module. To set up a chain of TwelveKey modules, simply connect the four outputs on the right side of a module to the four inputs of the next module beside it (typically to the right). With creative patching, the velocity output can be used to modulate a filter, to perform pitch bends, etc. The velocity is controlled by pressing the keys at different vertical positions within the guide marks on the keys.

Options available in the right-click menu include:

(Back to module list)



WriteSeq32 is a three-channel 32-step writable sequencer module. Although the display shows note names (ex. C4#, D5, etc.), any voltage within the -10V to 10V range can be stored/played in the sequencer, whether it is used as a pitch CV or not, and whether it is quantized or not. Gate states and window selection can be done by pressing the 8 and 4 LED buttons respectively located below and above the main display. Familiarity with the VCV SEQ-3 sequencer is recommended, as some operating principles are similar in both sequencers. It is also strongly recommended to read the section general concepts for more relevant information that is not repeated here.

WriteSeq64 is a four-channel 64-step writable sequencer module. This sequencer is more versatile than WriteSeq32 since each channel has its own step position and maximum number of steps (length). Sequences of different lengths can be created, with different starting points. A fifth channel is available to be used as a staging area.

WriteSeq64 has dual clock inputs, where each controls a pair of channels. When no wire is connected to CLOCK 3,4, the CLOCK 1,2 signal is used internally as the clock for channels 3 and 4.

(Back to module list)



Variations is a polyphonic sample and hold designed to add a random noise value to a control voltage. Two noise profiles are selectable via a switch at the top of the module: normal (gaussian) or uniform distribution. The spread knob controls how much variation to add, and is akin to a gain knob for the noise. The offset is a constant voltage that is added to the CV input. Both these knobs’ tooltips are percentages, in order to account for the low range modes available in the module’s right-click menu; stated otherwise, the rightmost tooltip values are always displayed as 100% regardless of whether low ranges are enabled or not. Both knobs are also included in the sample and hold mechanism that is triggered by the gate signal. The module also features hard limiting in the right-click menu, to constrain the CV ouput if desired (the red LED at the bottom will light up when limiting is occurring). The gate output is a copy of the gate input, but has the same one-sample delay as the CV signal, in order to keep sample-accurate timing between the two, if needed. When the gate input is unconnected, the module essentially functions as a noise generator via the CV output.

(Back to module list)

Hall of Fame

Here are a few videos featuring Impromptu Modular, which I find particularly very inspiring and interesting (listed in no particular order). Many talented Rackheads have made tracks using Impromptu modules, and this list could in fact be quite long. I have no formal criteria for why a track ends up in the list or doesn’t.