N-Step Main module
N-Step Aux module

N-Step is a sophisticated extendable step sequencer designed for live performance and generative music applications.

  • Five output channels, one dedicated to gate/trigger signals and four that provide control voltages suitable for controlling things like pitch.
  • An extendable architecture that supports sequence lengths up to 128 steps or more.
  • Innovative generative operations for manipulating sequencing data.
  • Easy to use copy and paste facilities for constructing musical forms like AAAB or ABAC.
  • Flexible support for chord progressions.
  • Built-in quantization, sample and hold and glide.
  • End of cycle and per-step trigger outputs.
  • External CV control over dozens of parameters.

Introduction

In order to be extendable an N-Step sequencer is constructed using two module types – N-Step Main and N-Step Aux.

The N-Step bundle also includes three ancillary modules from the Adroit LSSP system that help with pitch control (including the ability to create chord progressions).

The minimum setup is one Main module and one Aux (auxiliary) module, this configuration supports up to 8 steps. Connections are made by patching the LINK OUT of the Main module to the LINK IN of the Aux module and the LINK OUT of the Aux module back to the LINK IN of the Main module in order to form a loop.

Minimum configuration

Any number of additional Aux modules can be inserted into the loop, each one adding support for another 8 steps. Each additional Aux module requires one extra cable.

Configuration using four Aux modules

Sequence length is not restricted to multiples of eight steps. For instance if you want a sequence that is 10 steps long then you can achieve this by patching a cable from the 11th trigger Aux output to the Main module’s RESET input.

The yellow cable limits the sequence length to 10 steps

The sequence will then restart as soon as the 10th step has completed.

Although you might be tempted to build sequencers with extremely large numbers of steps, in practice you will find that 16 linked Aux modules (giving you a maximum of 128 steps) is probably the most you will ever want.

A 128 step sequencer

To support live perfomance all of the major controls are slightly over-sized and well spaced out to make it easier to operate the sequencer with either a touch screen or relatively broad-stroke mouse movements. Each Aux module also has a LOCK button that helps reduce the possibility of accidental changes.

To help with editing Aux module also have SOLO, COPY and PASTE functions.

Aux buttons

The bulk of the user interface consists of five rows of controls. In the Aux modules the upper row consists of on/off buttons that drive a gate/trigger channel. Below there are four rows of knobs that drive four control voltage channels.

These five Aux rows are reflected in the Main module. Here, as well as transport and configuration controls and interface connections, you will find all manner of interesting generative features built around the concept of performing operations on the individual channels. These operations can be triggered by manual button presses, knob tweaks, trigger inputs or changes in the values of CV inputs.

The control voltage channel outputs may be unquantized, quantized or use something called dynamic tuning. Sample and hold and glide functionality are also built-in.

Quick start guide

To get a feel for how N-Step works let’s load up a pretty basic patch…

Quick Start Patch

Downloading Presets

After loading the patch into Voltage Modular you should be able to hear a simple sequence playing.

In the top cabinet we have an N-Step Main module on the left then on the right four modules from Cherry Audio’s free Nucleus package forming a primitive monosynth. This produces a very basic sound but it serves the purposes of this quick start guide.

In the cabinet below there are two N-Step Aux modules giving us 16 steps to play with and a Chord Memory module that’s supplying a C natural minor scale to quantize the CVs so that we end up with something reasonably coherent rather than just a jumble of different pitches.

The Chord Memory module is borrowed from LSSP and will probably look different to the screenshot above when you first load it. Right click on the ~Adroit~ logo at the bottom of the module to change it to a plain dark background. This only needs to be done once.

In the lower cabinet you can click on any of the 16 ON buttons to change the rhythm and adjust the 16 red knobs to change the pitch sequence.

You’ll notice that the red knobs only have an impact on the pitch if the corresponding ON button is engaged. This is because the mauve colored cable at the top-right of the Main module is telling the red channel to use sample and hold to freeze the pitch when the corresponding ON button is disengaged.

S&H connection

So far we’ve been in conventional sequencing territory but N-Step’s secret weapon is the ability to perform operations on channels. So locate the white DENSITY knob at the top of the Main module and slowly turn it up and down.

Adjusting DENSITY

Now because the gate channel’s AUTO button is engaged, any change in the setting of the DENSITY parameter knob causes the gate channel’s currently selected operation to be executed automatically.

AUTO button

The currently selected gate channel operation is EUCLIDEAN and the PERIOD parameter is set at 8, so the DENSITY knob controls how many steps are on over an 8 step period using the Euclidean rhythm algorithm – which spaces out ON steps as evenly as possible.

DENSITY can be varied from 0% – resulting in silence, all the way up to 100% – where all steps are on.

The PHASE knob moves the pattern earlier or later in time. If you think of the pattern as being a “ring” consisting of PERIOD steps then PHASE effectively “rotates” it.

Note that the DENSITY and PHASE settings are percentages of the PERIOD rather than absolute values. So if a tooltip indicates that the DENSITY is “50% (4 steps)” be aware that the number of steps in parenthesis is just a helpful comment and could change if PERIOD changes.

Next let’s look at operations on the red CV channel which in this patch is controlling pitch.

You may have been playing around with the red knobs of the Aux modules so to reinstate them to match the current operation settings click on the DO button of the red channel on the Main module. This forces the operation to execute and the red knobs of the Aux modules will return to their original values.

The Quick Start Patch settings for the red CV channel are shown below…

Red CV channel settings

If you hover the mouse over the operation parameter knobs you’ll see that LIMIT 1 is set to the pitch C2 and LIMIT 2 is set to G2, PERIOD is set to 6 steps and PHASE is set to 0% (0 STEPS). As the selected operation is RAMP executing the operation sets the Aux module knobs in a repeating 6 step pattern that varies linearly between C2 and G2.

If you hover the mouse over the red knobs of the left-hand Aux module you will see that the first knob is set to the pitch C2 and the next five knobs are set at C#2, D#2, E2, F2 and finally G2. So the RAMP operation is automatically adjusting the knobs from LIMIT 1 (C2) to LIMIT 2 (G2) in 6 steps.

However, because a C natural minor scale is plugged into the QUANTIZE socket the actual pitches we hear are slightly different as they are adjusted to fit the scale.

C natural minor scale

After quantization the pitches end up being C2, D2, Eb2, F2, F2, G2.

So remember that the pitches that the tooltips show you are always the chromatic pitch before final quantization. In principle it would be possible to show fully quantized pitches but as we will see later the quantization becomes dynamic once we add chord progressions to the sequencing so N-Step just shows you the raw values rather than trying to predict the future.

Also note that only those pitches that correspond with a gate step that is ON are propagated because of the sample and hold function.

This all sounds more complicated than it really is. In effect N-Step is just doing tasks that are second nature to a musician skilled in improvisation who wants to translate relatively simple ideas into musically useful outcomes. In this instance the goal is to combine an 8 step rhythmical pattern with a 6 step rising pitch cycle ranging from C2 to G2 in C minor.

N-Step has a lot more tricks up its sleeve but it’s worth spending a while doing nothing more than exploring the interactions between the settings of the EUCLIDEAN gate and RAMP pitch operations.

Seven parameters to explore

There are seven parameters involved so there’s a fairly large search space but you might be surprised by how many familiar motifs you can unearth.

Gate/trigger outputs

So far the gate signal has been coming from the second from left gate/trigger output and the sample and hold has been driven by the same signal, but there are actualy 12 different ways of usefully wiring up these two connections. The gate cable can be plugged into any of the four outputs and the sample and hold can either be omitted or be wired to the second or third output.

You can feed the sample and hold from the left-most or right-most gate/trigger outputs but these connections have the same effect as either not connecting the cable at all or connecting it to the third output respectively.

Depending on the exact ON button pattern and the settings of the red CV channel knobs wiring things up in these 12 different ways can result in 12 slightly different outcomes.

Try experimenting with different wiring to get an idea of the differences.

In addition we have two Bernoulli gates that can be used to introduce an element of chance into whether an envelope gate passes or whether the sample and hold makes a pitch change or freeze.

Pair of Bernoulli gates

If that’s not enough, each step has its own trigger output on the Aux modules.

So it can get quite complicated if you desire.

All these combinations become very useful when using N-Step to drive multiple voices. Each voice can have independent pitch control and slightly different timing characteristics depending on exactly how you wire up the gates and the sample and hold.

To illustrate how you might expand on the basic quick start patch here’s something that sounds a little more interesting…

Some Time Later patch

This builds on the original patch by adding two more voices (using the same simple monosynth setup) and a little bit of drum programming using the individual step trigger outputs. Unlike the first patch this requires the Voltage Modular Core and Electro Drum modules to be installed.

It’s demonstrating all the techniques mentioned above but in just a single bar loop so it sounds pretty manic! You probably wouldn’t normally cram so much activity into such a short sequence.


N-Step Aux module


An Aux module features 8 identical columns each representing a step.

Aux column


An ON button – to set the gate/trigger pattern.

Red, orange, green and blue knobs to set four channels of CV. How the knob settings are interpreted is configured by each channel’s RANGE setting on the Main modue.

A trigger out socket that produces a brief 5 V pulse when the step becomes active.

An LED ring around the trigger out socket that illuminates to indicate that the step is active.

In addition at the bottom of the module…

Aux buttons

A SOLO button – when enaged this disables and bypasses any other Aux modules in the loop so that you can focus on just one part of a sequence. Also any operations sent from the Main module only apply to the soloed Aux module.

A LOCK button – when enaged the Aux module is protected from accidental changes. Also when locked an Aux module ignores any operation sent from the Main module.

A COPY button – copies the ON button and knob settings to a clipboard. This enables all the data from one Aux module to be copied to another. This is extremely useful as it makes it easy to construct musical forms such as AAAB or ABAC where some phrases are repeated.

A PASTE button – pastes the ON button and knob settings from the clipboard.

LINK IN and LINK OUT sockets are used to create a loop from the Main module through however many Aux modules are required and then back to the Main module.

Connection between two Aux modules

N-Step Main module

At first glance the N-Step Main module might look slightly intimidating as it includes a lot of controls for use in advanced applications, however basic sequencing is pretty straightforward. Anyone familiar with other step sequencers should feel at home after following the quick start guide.

Two sockets at the bottom of the Main module labelled LINK OUT and LINK IN are used to build a looped connection through one or more Aux modules and back.

Connections to/from Aux modules

The Main module’s LINK OUT socket should be connected to the LINK IN socket of the first (or only) Aux module in the loop. The LINK OUT socket of the last (or only) Aux module in the loop should be connected to the Main module’s LINK IN socket.

If the linkage connections are not wired up correctly then the STATUS LED flashes red.

The section of the Main module outlined in green reflects the same five sequencing channels as the Aux modules.

The five channels in N-Step Main

At the top is the gate/trigger channel with the four CV channels below (using the same red, orange, green, blue color-coding as the Aux modules).

Gate/Trigger channel

The Gate/Trigger channel has (from left to right)…

An operation trigger input socket.

A DO operation button.

An OPERATION selector that when left clicked pops up a menu of options. Note that just selecting a new operation does not trigger it.

Four parameter knobs that change assignments depending on the type of operation selected.

An AUTO button. When this button is engaged any changes to the setting of a parameter knob automatically triggers execution of the currently selected operation, otherwise an operation only occurs when the DO button is pressed or a trigger is received via the trigger in socket.

A LENGTH knob.

Four different types of gate/trigger outputs.

The LENGTH knob and gate/trigger outputs are discussed in detail later.

CV channel

The lower four channels output control voltages and have…

An operation trigger input socket.

A DO operation button.

An OPERATION selector that when left clicked pops up a menu of options. Note that just selecting a new operation does not trigger it.

Four parameter knobs that change assignments depending on the type of operation selected.

An AUTO button. When this button is engaged any changes to the setting of a parameter knob automatically triggers execution of the currently selected operation, otherwise an operation only occurs when the DO button is pressed or a trigger is received via the trigger in socket.

A RANGE selector that pops up a menu of options. See the dedicated section on Range for further details.

A Sample and Hold (S&H) trigger input. This enables CV values to be frozen in a controlled fashion as explained later.

A GLIDE knob.

A CV OUT socket.

The sequencer’s transport functions (such as play and stop) are in the area outlined in blue.

Transport area

A trigger input and button to start PLAY.

A trigger input and button to STOP the sequencer.

A trigger input and button to RESET the sequencer to the first step.

A trigger Input and button to advance the sequencer to the next STEP. The trigger input serves as an external clock input and only has an effect when PLAY is engaged. When a cable is connected the internal clock is disabled.

A TEMPO knob that sets the rate of the internal clock. This knob is calibrated in BPM on the assumption that a bar consists of 16 steps and there are four beats to a bar.

A SWING knob that adjusts the timing ratio between odd and even steps of the internal clock. When set fully CCW (counter clockwise) each step is of equal length. When set fully CW the first step in a pair lasts twice as long as the second.

An EOC (End Of Cycle) socket that outputs a brief 5 V trigger when the last step of a sequence finishes.

An EOC/2 (End Of Cycle divided by two) socket that outputs a brief 5 V trigger at half the rate of EOC.

An EOC/4 (End Of Cycle divided by four) socket that outputs a brief 5 V trigger at a quarter of the rate of EOC.

Beneath the Transport area there are four sockets that enable control voltages to modify a range of parameters inside N-Step.

External CV

A left click on the selector to the right of a socket pops up a menu of the modulation destinations…

Modulation destinations

The voltage control maps directly to knob settings with 0 V being the minimum setting and 5 V the maximum.

The N-Step Main module includes a couple of simple Bernoulli gates.

Pair of Bernoulli gates

These are useful for introducing an element of chance in a number of situations. On receiving a gate or trigger input they decide depending on their probability setting whether to pass on the gate/trigger to their output.

When set at 50% they effectively toss a coin. When set at 0% they never pass anything on. At 100% they always pass on the gate/trigger.

Their probability can optionally be set by voltage control using the external CV facility discussed above so they offer considerable flexibility.

Next to the gates there’s a momentary action push button that outputs 5 V when pressed or 0 V otherwise.

Push button

This couldn’t be simpler but is handy for things like manually triggering multiple actions at once.

A CV channel’s RANGE selector controls the voltage range of channel’s output and also determines whether or not pitch quantization is applied. The 1 OCTAVE, 2 OCTAVES, 3 OCTAVES and 4 OCTAVES options all use quantization.

If nothing is connected to the QUANTIZE socket then the quantization is to the nearest semitone (i.e. the chromatic scale).

Quantize Input

However, if an Adroit S-Poly chord or scale signal is fed in to the QUANTIZE input then the channel is quantized to fit that chord or scale.

If DYNAMIC TUNING is selected for the RANGE option then a novel alternative to quantization is applied. This is discussed later.

Each CV channel has a GLIDE knob that controls how quickly the channel’s output changes. When set full CCW changes happen instantly. In addition a four position switch provides some global control over how glide works.

Glide control

This can offer interesting creative control over portamento. For instance in the UP position pitch glides when rising but jumps when falling. Glide settings can also be subjected to voltage control so it’s possible (although not entirely straightforward) to program slides and bends on a note by note basis.

Gates/triggers

The ON buttons of the Aux modules enable you to set a rhythmical pattern. This can be done manually, via the use of operations or a combination of the two.

The Main module provides four simultaneously available but slightly different gate/trigger outputs.

Gate/trigger outputs

Initially the easiest way to think about these outputs is that they vary in “speed” from fast on the left to slow on the right but the signals produced actually depend on the precise ON button pattern.

An example of a simple 8 step sequence using a single Aux module should make things clear.

On button pattern
Gate/trigger pattern

The red CV Watcher trace shows the output of the trigger/gate socket on the left, yellow the second output, green the third and cyan the final output on the right. For reference the magenta trace shows the trigger output from the step 1 trigger output of the Aux module.

Hopefully you can see how the graphical labels beneath each socket reflect the logic.

The first output fires at the beginning of every step change.

The second output fires at the beginning of every step that is on.

The third output fires at the beginning of the first step in a series of contiguously on steps.

The fourth output is high for the duration of any contiguously on steps.

This gives you a range of options for controlling envelope generators, clocking other sequencers and also the built-in sample and hold functionality described shortly.

The waveform image above shows the outputs when TEMPO is set at the default 120 BPM and the LENGTH knob is at the default 22 ms. If we adjust the LENGTH knob to the minimum 1 ms setting the following happens…

LENGTH set at 1 ms

Increasing the LENGTH to 100 ms has the following effect…

LENGTH set at 100 ms

Note that if the LENGTH exceeds the size of a step the signals still drop, albeit very briefly (so briefly that it’s difficult to see the drop using CV Watcher).

CV channels

The diagram below shows how the position of a knob on an Aux module is transformed into a final CV output. It’s how a CV channel might be structured if it were constructed using individual modules.

A CV channel

The following sections describe the process in more detail.

Range

Each CV channel has its own RANGE selector. A channel’s range determines exactly how the position of the Aux module knobs are mapped to CV outputs.

Range menu

You will rountinely want to control pitch using N-Step and the top four options in the menu map the knob settings to either one, two, three or four octave ranges. A typical melody or bass line spans one or two octaves so you will probably use the 1 OCTAVE and 2 OCTAVES settings the most as it’s far easier to dial in the note you want when the knob range is small, but sometimes you’ll want to use the larger ranges.

RangeLowest noteHighest note
1 OCTAVEC2C3
2 OCTAVEC2C4
3 OCTAVESC2C5
4 OCTAVESC2C6

As shown in the table above when using the OCTAVE range settings the lowest note available is always C2 (0 V in Voltage Modular) but you can adjust the base pitch in the sound modules as needed. For instance by using the “footage” settings provided by many oscillators.

When switching a channel between octave ranges a little menu pops up giving you a choice about how to manage the transition.

Pitch transition menu

Let’s say you want to switch from 1 OCTAVE to 2 OCTAVES. This menu gives you the option to maintain the knob positions (which effectively doubles the size of the intervals) or to automatically adjust the knob positions so that the result produces exactly the same pitches as before.

When going in the opposite direction, say from 2 OCTAVES to 1 OCTAVE, the menu is slightly different because the sequence could contain pitches that are outside of the newly selected range.

Menu on reducing number of octaves

Selecting Attempt to maintain pitch adjusts the knob positions but if it’s impossible to map an out of range pitch then it is lowered by one or more octaves in order to fit in range. This results in a musically coherent outcome because although the octave might change, an F# will always map to an F# for instance. In fact this adjustment can sometimes be used as a creative tool.

Sample and hold

Each CV channel has its own sample and hold (S&H) input socket. If nothing is connected to a channel’s S&H socket then sample and hold is bypassed and whatever CV’s are programmed into the sequence pass on to the glide processing unchanged.

So with no S&H input if the channel is controlling say pitch then no matter what rhythmical pattern is programmed into the ON buttons the pitch will change ever step (assuming that the CV channel’s knobs have varying settings).

In some circumstances this behaviour might be exactly what you want. But often you’ll want the pitch to only change if a step’s ON button is engaged. A third possibility is that you’ll want the pitch to only change at the beginning of the first step in a series of contiguously on steps.

This is where the sample and hold function comes in as it can freeze the CV/pitch in a controlled fashion.

Let’s illustrate this with the rhythm pattern we used previously when discussing gates/triggers.

On button pattern

The image below shows various traces that demonstrate the effect of sample and hold on a rising CV step pattern (created using the RAMP operation discussed later)

Signals demonstrating sample and hold

The red trace shows the leftmost gate/trigger output which produces a trigger pulse on each step change.

The yellow trace shows the second gate/trigger output. Compare this with the ON button pattern and you’ll see there’s a pulse for each step where the ON button is engaged.

The green trace shows the CV staircase without sample and hold applied.

The cyan trace shows the CV staircase with sample and hold applied using the signal shown in yellow as the S&H trigger.

The magenta trace shows the step 1 trigger output of the Aux module just as a reference to indicate where the sequence repeats.

What’s important to notice here is how the signal shown in cyan holds its value steady in the gaps when steps don’t have their ON button enagaged. This is achieved by connecting the second gate/trigger output to the S&H input of the CV channel in question, as shown below using a yellow cable.

S&H connection

The third situation where you want the pitch to only change at the beginning of the first step in a series of contiguously on steps is just as easy to implement…

S&H connection

For completeness the traces involved in this situation are shown below.

Signals demonstrating sample and hold

There are only two pitches because there are only two sets of contiguously on steps in the pattern.

Propagation delay

One technical issue to be aware of concerning the use of sample and hold as discussed above is that the cable from the gate/trigger output to the S&H input introduces a one sample delay. So a CV subject to sample and hold changes 1/48,000th of a second after the gate/trigger pulse goes high. In the vast majority of cases this tiny delay (less than 21 microseconds) has no impact whatsoever but in certain situations it can cause a sound generating module that is very time sensitive to see pitches one step too late.

An example of this subtle problem is sending a gate/trigger from N-Step to the Adroit Granular Synth‘s SEED IN socket while sending an accompanying pitch CV (that has had S&H applied) to the Granular Synth’s 1 V/OCT input. What happens is that the seed is generated one sample before the pitch CV arrives and because grain pitch is fixed at the point of seeding the wrong (old) pitch is used instead of the one you want. The problem does not arise when the gate/trigger from N-Step is connected to the GATE input of the Granular synth and reasonably fast seeding rates are used.

The solution is simply to compensate by delaying the SEED IN signal by one sample too. You can do this by passing the gate/trigger through any neutral module such as a multiple. Another simple fix is to pass the gate/trigger through a spare one of N-Step’s own Bernoulli gates with its PROBABILTY set to 100%.

Note this subtle problem with propagation delays is not unique to N-Step, it’s something you might encounter in a number of situations where triggers and accompanying data don’t arrive in perfect sync. This can happen for instance when converting CV to MIDI if the signal paths are a bit convoluted. It’s not a major problem in practice and is generally easy to fix providing one is aware of the issue.

Quantization and dynamic tuning

Using any of the OCTAVE range settings forces a channel to use pitch quantization. Aux knob settings then snap to the nearest semitone if nothing is plugged into the QUANTIZE socket. If an Adroit S-Poly chord or scale signal is fed to the QUANTIZE socket then values are quantized to the nearest note in the chord or scale.

Quantize input

Pitch sequences that use arbitary pitches (even when quantized to the nearest semitone) can sometimes sound a bit “out of tune”. This is fine if you want to produce twelve-tone serialism but you might often want to restrict the options by having some kind of chord or scale feeding the QUANTIZE input socket. This is why the LSSP Chord, Chord Memory and 8 to 1 Poly Switch modules are included in the N-Step bundle.

The novel DYNAMIC TUNING range option only works when a scale or chord signal is fed to the QUANTIZE input. This option is superficially similar to the regular quantization used when an OCTAVE range is selected but provides a more direct mapping. When DYNAMIC TUNING is selected whatever pitches there are in the scale or chord signal are uniformly distributed across the span of the Aux knobs. So if say the QUANTIZE input is a four note chord then the first quarter of a knob maps to the first note, the second quarter to the second note and so on.

This might seem just like regular quantization but is quite different as there’s an exact one-to-mapping between a note in the chord/scale signal and a segment of the knob position. In contrast regular quantization completely ignores the octave of any note in the chord/scale signal and takes the octave from the knob’s setting. Also with regular quantization the mapping is not guaranteed to be uniformly distributed.

In practical terms dynamic tuning sounds different to regular quantization in that the result is not just “in tune” but uses the exact same pitches as fed to the QUANTIZE socket – preserving the octaves rather than ignoring them. This difference is very noticeable if you play polyphonic signals into the QUANTIZE socket from a Chord Memory module that’s recording live from a MIDI keyboard.

Dynamic tuning is great for programming ideas using automated motif transposition/translation. Here you think of the CV sequencing in the Aux modules as using purely logical pitches, you program the absolute pitches into multiple Chord Memory modules (or other sources of S-Poly chord and scale signals) and then sequence these signals using the 8 to 1 Poly switch. This is essentially the same technique as used to create chord progressions but with dynamic tuning instead of regular quantization and will be discussed in more detail later.

Dynamic tuning is also useful if you want to build melodies that span a large range as otherwise it can be fiddly trying to pick out the right pitches.

The other RANGE options are simple in contrast as no quantization is applied to the knob values. The options vary from each other just in terms of the minimum and maximum values that can be represented by the knob settings.

Operations

An important aspect of N-Step is the ability to perform operations on channel data. Such operations provide a degree of automation that is extremely useful when working with lengthy sequences as making precise and repetitive manual adjustments to a large number of buttons or knobs is difficult and tiresome.

Operations also open up a range of creative possibilities where one can explore “what if?” ideas. For instance what if I try one voice performing a rising arpeggio with a seven note cycle against another performing a falling arpeggio with a five note cycle? Or maybe a six/five pattern would sound better? Doing such experiments manually would take ridiculous amounts of effort but with N-Step operations it’s just a matter of a tweaking one or two knobs.

Fans of generative music will also be happy to learn that operation parameters can be subjected to voltage control. So it’s possible to set up complex systems that mutate and evolve.

Operations can be triggered by an external trigger input or by clicking on a channel’s DO button.

Trigger input and DO button

Additionally if a channel’s AUTO button is engaged then any change in a parameter knob’s setting (either by manual tweaking or via external CV control) will automatically trigger an operation.

AUTO button

Generally operations apply to every Aux module connected in a Main module’s loop. However there are two special exceptions…

SOLO and LOCK buttons

If an Aux module’s SOLO button is enaged this disables and bypasses any other Aux modules in the loop so that you can focus on just one part of a sequence and operations only apply to the soloed Aux module.

If an Aux module’s LOCK button is enaged the Aux module is protected from accidental changes and operations are ignored by the module.

Each channel has its own operation selector. Clicking on a selector pops up a menu where one can select the desired operation.

Note that just selecting a new operation does not trigger it.

There are two different classes of operation – Gate Channel Operations that apply to the ON buttons and CV Channel Operations that apply to the knob channels. So there are two different menus.

Gate channel operations menu
CV channel operations menu

More operation options might be added in future updates but if so this wouldn’t affect your legacy patches.

Gate Channel Operations

OperationParameter 1Parameter 2Parameter 3Parameter 4
ALL ON
ALL OFF
RANDOMPROBABILITY
PSEUDO RANDOMPROBABILITYSEEDOFFSET
EUCLIDEANDENSITYPERIODPHASE
BINARYDENSITYPERIODPHASE
AB PATTERNA ONA OFFB ONB OFF
INVERT
REVERSE

ALL ON – engages all ON buttons.

ALL OFF – disengages all ON butttons.

RANDOM – sets the ON buttons randomly. The PROBABILITY parameter controls the likelihood of an ON button being engaged. When DENSITY is 100% the operation is the same as ALL ON. When DENSITY is 0% the operation is the same as ALL OFF.

PSEUDO RANDOM – like the RANDOM operation this sets the ON buttons randomly however the behaviour is markedly different as the results are derived from a seed value. So if the parameters remain constant then the operation will produce the same result each time it executes.

There are three benefits of this approach over the RANDOM operation. Firstly it’s possible to “fade” a pattern in and out by varying the PROBABILITY parameter without the pattern changing wildly. Secondly it’s possible to shift the pattern forwards and backwards in time using the OFFSET parameter. Finally it’s possible to reproduce a pattern via identical SEED parameter settings (using the right-click Edit Value option for precision).

EUCLIDEAN – sets the ON buttons according to a Euclidean Rhythm algorithm. This spaces out the on steps of a repeating pattern as evenly as possible. The DENSITY parameter controls the percentage of steps that are on, the PERIOD parameter controls the duration of the pattern in steps and the PHASE parameter allows the pattern to be rotated.

BINARY – sets the ON buttons all in a bunch. It’s kind of like the opposite of the EUCLIDEAN operation. The DENSITY parameter controls the percentage of steps that are on over the number of steps set by PERIOD. PHASE rotates the pattern. So if say DENSITY is 50%, PERIOD is 10 and PHASE is 0% the pattern will consist of five on steps followed by five off steps.

AB PATTERN – sets the ON buttons in a alternating A/B pattern. It’s a little bit like having two BINARY operations in series. The pattern has four sections A ON, A OFF, B ON, B OFF. Each section’s duration is set by a corresponding parameter and can last from 0 to 16 steps. So the total duration of the pattern is all four values added together. One example might be 1, 2, 3, 4 this will create the 10 step pattern on, off, off, on, on, on, off, off, off, off. Note that a section that’s set to be 0 steps long is skipped so 0, 1, 2, 3 will create the 6 step pattern off, on, on, off, off, off.

INVERT – flips the state of all buttons.

REVERSE – reverses the order of the ON button pattern, but only within the boundaries of each Aux module rather than the entire sequence.

CV Channel Operations

OperationParameter 1Parameter 2Parameter 3Parameter 4
UNIFORMVALUE
RANDOMLIMIT 1LIMIT 2
PSEUDO RANDOMLIMIT 1LIMIT 2SEEDOFFSET
RAMPLIMIT 1LIMIT 2PERIODPHASE
TRIANGLELIMIT 1LIMIT 2PERIODPHASE
INVERT
REVERSE

UNIFORM – sets all the knobs of the channel to the same value.

RANDOM – sets all the knobs of the channel randomly to values between LIMIT 1 and LIMIT 2.

PSEUDO RANDOM – as with the gate channel PSEUDO RANDOM operation this uses a seeding mechanism, producing similar benefits, but instead of a PROBABILITY parameter there are LIMIT 1 and LIMIT 2 parameters that enable you to set the range of values produced. The OFFSET parameter shifts the pattern forwards and backwards in time

RAMP – sets the knobs in a repeating pattern that lasts the number of steps set by the PERIOD parameter with values varying linearly between the LIMIT 1 parameter and the LIMIT 2 parameter. If LIMIT 2 is higher than LIMIT 1 then the ramp rises, if LIMIT 2 is lower than LIMIT 1 the ramp falls. The PHASE parameter allows the pattern to rotated.

TRIANGLE – similar to the RAMP operation but the pattern of knob settings goes in one direction then the other resulting in a triangular movement rather than a ramp.

INVERT – flips the setting of all knobs about the 12 o’clock center value.

REVERSE – reverses the order of the knob settings, but only within the boundaries of each Aux module rather than the entire sequence.

Using the end of cycle outputs

In the Main module’s transport section there are three output sockets labelled EOC, EOC/2 and EOC/4.

The EOC outputs

EOC stands for End Of Cycle and these sockets output a brief trigger pulse when the last step in a sequence completes, or when every second or fourth cycle completes.

The EOC signals

In the image above the yellow trace shows the pulses from EOC, green shows EOC/2 and cyan shows EOC/4.

EOC/2 and EOC/4 keep count of EOC and these counters are not reset by the sequencer starting and stopping. They are reset when the RESET button is pressed or a trigger is received by the socket on its left.

RESET button and trigger input

Perhaps the most obvious use of the EOC output is to make N-Step stop automatically after playing to the end of the sequence. To make the sequence play twice and then stop use the EOC/2 output. To make the sequence play four times and then stop use the EOC/4 output…

Three ways to stop the sequencer automatically

Another application is for chaining sequencers. Here’s an example of two N-Step sequencers playing in a loop…

Two N-Step sequencers taking turns to play

There are no sound making modules in this patch, it’s just demonstrating chaining.

Ancillary modules

As well as the Main and Aux modules the N-Step bundle includes three ancillary modules that help with pitch control. These are Chord, Chord Memory and the 8 to 1 Poly Switch. These are borrowed from the Adroit LSSP system and are also shared with the Adroit Granular Synth.

Because they come from the LSSP system by default they have the LSSP classic skin. So when you first load the ancillary modules they will most likely look like this…

Ancillary modules with the LSSP clasic skin

However you will probably want them to look closer in appearance to the N-Step Main and Aux modules, so to change their backgrounds right click on the ~Adroit~ logo at the bottom of each module. This only needs to be done once. They will then look like this…

Ancillary modules with the plain skin

If you have LSSP then an alternative mechanism is to use the Skin module. If you have LSSP you’ll also realise that there are many other modules that produce S-Poly signals beyond those borrowed here.

We’ve already looked briefly at the Chord Memory module in the Quick start guide where it was used to provide a scale for quantization. This utilized the S-Poly chord/scale signal ouput from CHORD OUT.

The Chord module also outputs an S-Poly signal from its CHORD OUT socket.

These S-Poly chord/scale signals are often connected directly to the QUANTIZE input of the N-Step Main module. But sometimes we want to be able to switch between multiple Chord and/or Chord Memory outputs in order to change the quantization on the fly. This is where the 8 to 1 Poly Switch module comes into play.

Each of these modules has its own documentation page – Chord, Chord Memory and 8 to 1 Poly Switch. The Chord Memory module is the most complicated of the three so it’s highly recommended that you read its documentation to get a better understanding of its various features as here we’ll be focusing just on how the ancillary modules can be used specifically with N-Step.

Controlling quantization with the Chord and Chord Memory modules

The Chord module provides preset chord types. This can be very useful for exploring the distinctive chord sounds. In the simplest situation where you just want a C chord then you can just plug a Chord module into the Main module’s QUANTIZE input. However you’ll usually want to be able to select the root note of the chord and one easy way of doing this is to use a Chord Memory module working in monophonic mode to feed a root to the Chord module like so…

Using Chord Memory as source of Chord root note

Now clicking on a key on the Chord Memory module’s little built-in keyboard selects a root note for the Chord module to use. If you engage the RECORD button on the Chord Memory module you can alternatively select the root note using a MIDI keyboard. Remember that the regular quantization in N-Step ignores the octave information in the QUANTIZE signal so all that matters is the note within the octave.

You’ll probably be curious about what notes are in the chord. And because Chord Memory is such a flexible module we can use another one in note watcher mode to show just that. Note that the second Chord Memory module’s RECORD button is engaged so that it’s recording the output of the Chord module.

A second Chord Memory module used as a note display

Here we see that a Gm7 contains the notes G, Bb, D and F.

If we wanted we could generate the same result directly by using just a Chord Memory module as shown below.

Using a Chord Module directly

Again because Chord Memory is so flexible there are three different ways we could achieve the same result.

1) Modifying the earlier setup by removing the two unwanted modules and leaving the remaining Chord Memory remembering the chord. (You’d usually also disengage the RECORD button to prevent the chord being accidentally overwritten by any MIDI input).

2) Clicking on the required notes on the little built-in keyboard of the Chord Memory while its RECORD button is disengaged.

3) Playing a Gm7 on a MIDI keyboard while the Chord Memory module’s RECORD button is engaged.

The standalone Chord Memory module also enables us to remember a scale using either method 2 or method 3.

Hopefully you can now see how easy it is to control the quantization of N-Step. Next let’s look at how to sequence changes in quantization in order to create chord progressions.

Creating chord progressions

You can use any of the techniques discussed above to create multiple different chords and then switch between them using the 8 to 1 Poly Switch in order to create chord progressions.

As an example chord progression let’s go with the very popular I-V-vi-IV.

IVviIV

In C this is…

CGEmF

This chord progression results in a slightly cheesy pop sound but such familiarity and simplicity are useful when exploring the basic mechanics.

Lets program four Chord Memory modules with these chords…

The four chords

We can label them too just so that everything is as clear as possible.

Next we add an 8 to 1 Poly Switch and wire them together in the desired order.

Four chords wired to 8 to 1 Poly Switch

If you click on the Poly Switch module’s STEP button several times you’ll see the LED ring changing to show which input is selected, notice how the switch cycles through all connected inputs in a loop. Clicking on RESET returns us to the top-most connected input.

As you’ve no doubt already figured out, all we need to do to start testing this is to connect the OUT from the Poly Switch to the QUANTIZE input of the Main module and step through the chords with the STEP button while the sequencer is playing. But ultimately we want to have some kind of automatic coordination between the position in the sequence and the choice of chord.

There are two different approaches to this: trigger-driven and CV-driven.

Trigger-driven chord changes

Let’s load up a demo patch so that we can see and hear the trigger-driven method.

Chord Prog 1 Patch

I did warn you it was cheesy!

In the top cabinet there’s the N-Step Main module and a couple of the really simple monosynths we used in the quick start quide. It sounds very basic indeed but this patch is just showing how to patch chord progressions not how to create fancy sounds. Obviously feel free to replace the crude monosynths with something that sounds better if you wish, but once you’ve worked your way through the following sections you’ll realise just how easy it is to sequence chord progressions with N-Step and you’ll be off building your own patches anyway.

In the middle cabinet there are four Aux modules wired up as a 32 step sequencer. The calibration of the TEMPO knob assumes that there are 16 steps to a bar but here we are using just 8 steps per bar – so 32 steps equates to a four bar loop.

All the ON buttons are initially engaged so that the effect of the quantization can be heard unambiguously but it sounds pretty monotonous as a result. Disengaging a few of the ON buttons helps add a little interest once you’ve listened to the thing loop a few times.

The red channel is programmed to send a rising 8 step arpeggio to the monosynth on the left. The orange channel is programmed to send a rising 6 step argeggio to the monosynth on the right. Because the pattern lengths are different there’s a polyrhythmic effect with the overal pattern only repeating after 24 steps.

In the lower cabinet we have the four Chord Memory modules and the 8 to 1 Poly Switch that we’ve been discussing above.

The output of the Poly Switch feeds to the QUANTIZE input of the Main module as expected so the only new things here are the green cables from the Aux modules to the Poly Switch.

The green cables carry trigger signals that control the Poly Switch

The trigger from the very first step is connected to the Poly Switch RESET input. This forces the Poly Switch to always use the first chord when the sequence begins.

The triggers from the first step of the next three Aux modules all feed the Poly Switch STEP input. These cause the Poly Switch to move to the next chord in the progression.

As you can see it’s all very straightforward and it’s easy to change the chords, chord progression length or the number of bars. It’s also flexible as you can trigger the chord changes on any step not just the beginning of a bar.

Even though this patch is the most bare-bones crude little demo, hopefully it has given you something of a lightbulb moment as being able to program chord progressions so easily greatly expands what you can achieve using N-Step.

CV-driven chord changes

The technique shown above is possibly the most useful way of creating chord progressions but there’s another option…

Chord Prog 2 Patch

The Chord Prog 2 patch sounds exactly like Chord Prog 1.

In Chord Prog 1 we treated the 8 to 1 Poly Switch a bit like a mini step sequencer with individual trigger outputs from the Aux modules instructing it to either reset or advance to the next input.

But in Chord Prog 2 we are controlling which input the Poly Switch passes on with a control voltage fed to its CV IN socket. When voltage controlled the Poly Switch maps voltages in the range 0 V to 5 V to evenly distributed bands with one band for each connected input (as explained in its documentation).

Any CV source such as an LFO could be used to select which chord to use but as before we want the choice of chord to depend on exactly where we are in the sequence. The elegant solution is to use a spare N-Step CV channel to control which chord N-Step uses to quantize its other CV channels. In this patch we are using the blue CV channel.

The wiring for this couldn’t be simpler, just one cable from the blue channel’s output to the CV IN of the Poly Switch…

The green cable allows the blue CV channel to select which chord to use

Although only one cable is required, 32 knobs need to be set so you might be thinking that this is a really dumb idea. Well it does have its disadvantages but in this circumstance it’s relatively easy to set the knobs.

On the Main module the blue channel’s RANGE needs to be set to 0 V TO 5 V and the OPERATION needs to be set to UNIFORM. The channel’s AUTO button needs to be engaged too (it’s not engaged in the screenshots above but the reason for this will be explained in a moment).

It’s best if the sequencer is playing while doing the following because then we get instant feedback. Now we click on the first Aux module’s SOLO button to isolate the first bar. Then on the Main module we twiddle the blue channel’s VALUE knob in order to set all of the first Aux module’s blue knobs to the position that selects the first chord. You can see which chord is selected by looking at the LED ring on the Poly Switch module and you can also hear the result.

Then we click on the second Aux module’s SOLO button and twiddle the VALUE knob to select the second chord.

Then we click on the third Aux module’s SOLO button and twiddle the VALUE knob to select the third chord.

Then we click on the fourth Aux module’s SOLO button and twiddle the VALUE knob to select the fourth chord.

Finally we click again on the last SOLO button in order to cancel solo mode and return to normal.

Job done. Except it’s good practice to disengage the blue CV channel’s AUTO button otherwise accidentally tweaking the channel’s VALUE knob will wipe out the chord selections.

There are pros and cons for both approaches to selecting the chord. The trigger-driven method is probably slightly easier in most circumstance (and of course doesn’t use up one of the channels) but in some situations the CV-driven method wins out. For instance trying to combine step trigger-driven drum programming with trigger-driven chord progressions can result in a lot of cluttered wiring. Another problem with the trigger-driven method is that you might run out of inputs on the 8 to 1 Poly Switch when dealing with large sequences.

More on chord progressions

So far the duration of the sequence and the duration of the chord progression have been the same but what about when they don’t match?

If the chord progression repeats or there’s more than one chord progression during the sequence then using the trigger-driven method we just need to add more cables or when using the CV-driven method we simply set more knobs.

However what about when the chord progression lasts longer than the sequence? Then the CV-driven method doesn’t work at all but we can still use the trigger-driven method.

The simplest example of this situation is when we have just a single Aux module playing over and over but the chord changes each time it plays.

The easiest way to make this work is to connect the Main module’s EOC output to the 8 to 1 Poly Switch’s STEP input. Then each time the sequence completes (and restarts) the next chord is selected.

But there is a slight vulnerability in this approach in that if for some reason we want to restart from the beginning while midway through the chord progression (for example by clicking on the Main module’s RESET button) then the Poly Switch module doesn’t get reset. In the Chord Prog 1 patch it would be reset because the trigger output for the very first step in the sequence is wired to the Poly Switch’s RESET input. And in the Chord 2 patch is would be correct because the CV directly controls the choice of chord.

We could ignore this vulnerability but that’s not good practice.

When running Voltage Modular in standalone mode one solution is to use the push button feature of the Main module wired so that a click on the push button always forces a reliable start/restart. When running Voltage Modular inside a DAW then the same cables would be connected to the I/O Panel’s PLAY socket.

Let’s look at a patch that implements the above (standalone version)…

Chord Prog Mini Patch

The green cable advances the Poly Switch to the next chord in the progression each time the cycle ends.

The yellow cables make the push button reset the sequencer and start it playing as well as making the Poly Switch reset so that the chord progression starts on the correct chord. The push button has been labelled “RESTART” so that when we come back to the patch later we know what the button does.

Availability

Click HERE to visit the Cherry Audio store to demo or purchase the N-Step bundle.