Stuck with a SynthEdit project?

Category: Sequencer

Synthedit Sequencer project.

This is where a number of other posts all “come together” to form a major project- a 16 step sequencer. Arguably one of the best known sequencers being the Moog 960 Sequencer module (see below).

What is a Sequencer?

Sequencers for synthesizers are typically constructed with analog electronics, and play the musical notes designated by a series of knobs, sliders or other selectors corresponding to each musical note (step).
An analogue sequencer is useful for both composition and live performance as the musician can change the musical notes at any time without having to re-enter a recording mode as would be needed with a many digital sequencers.
Another control option is that the time interval between each musical note (length of each step) can be independently adjustable. Typically, analog sequencers are used to generate the repeated minimalistic phrases which may be reminiscent of Tangerine Dream, Giorgio Moroder or trance music. The steps are not limited to controlling Pitch and note duration, we can also control the filter cutoff, note velocity, and many other parameters.
Can we produce the equivalent of an analogue sequencer using SynthEdit? As with many other synthesizer functions/modules the answer is with a bit of planning- yes we can, with as many “bells and whistles” as you feel you need.

Our Sequencer prefabs so far are:

The BPM Clock sets the tempo of our sequencer by synchronizing it with the host DAW, it could also have a free-run option that’s not locked to the host DAW.
The Step Counter takes the stream of clock pulses from the clock oscillator, counts them and outputs an Integer. We can make this count up, down or in pendulum mode. The number of steps in our count can also be controlled.
The Integer to Step converter this takes our Integer and outputs a Boolean message as each integer is output which is specific to that particular integer, which is then fed to
The Step Modules which contain the modules producing the voltages which will control the Synthesizer connected to our sequencer via a few other modules.
See the structure shown below:

In the output section we have two ED Glider modules, which introduce a Glide or Portamento to the transition between our two CV outputs for Filter (cutoff) and Pitch. The Glide Time slider has a maximum value of 0.1 set (You could alter this, but 0.1 is about the maximum Glide rate you’ll want). The glide timing method can be changed between Constant Rate and Constant Time.

The ED Gliedr module

There is a Level control in the Filter CV output so we can change how much the steps affect our VCF.
The Divide module is to reduce the Velocity output to a useful amount. I used a value of 2 on the Input 2 Plug.
The Monostable in the Gate Output is used to produce a short trigger pulse for triggering ADSRs and so on.

The Step prefab for use in a Sequencer.

Controlling the Synthesizer parameters step by step.

So now we have all the building blocks (almost) for a basic sequencer, we need some means of getting it to control our synthesizer. This is where our next structure comes into play, the Step Prefab. The structure is shown below but there’s a couple of things I’ll elaborate on.

Sequencer step prefab

Gating the control voltages.

The input to the step prefab has a comparator. Why? Well we want to “gate” the control voltages we’re feeding to the synthesizer, otherwise they will all just add together at the output, not the idea of our sequencer.
The Comparator is set up so that when the Input A reaches 5 V the output will rise to 10V, anything below this and the output will be 0V. This is then fed to the Level Adj modules. When their Input 2 is at 0V there will be no voltage passed to the output, when the Input 2 switches to 10V the input signal will be passed through to the output. The Led 2 is added to show which of our 16 steps is active at any given time. Without the comparator the voltage reaching the Level Adj module will only be 5V, which will upset our tuning.

Gating control voltages

Setting the Pitch.

This is a slightly modified Detuner module the original is shown below, but (personally) having numbers for the notes doesn’t make it very “musician friendly”, plus we don’t really need the fine tune in this application.

The original Detuner

As you can see here the fine tune control is removed, and we have the note names from the musical scale rather than numbers.
Important: Don’t edit the fixed vales for the notes, just the name properties for the switch and fixed value modules. Just delete the fine tune part of the prefab.

Modified detuner

Control the Velocity.

Normally when we play a keyboard we get some variation in loudness, and often timbre dependent on how hard we play the keys. This is added in with a switch module and a set of Fixed Values (Volts). I used 0V, 2.5V, 5V, 7.5V and 10V to represent a useful set of velocity levels. No reason not to use a slider control for this… this is after all just to show how a sequencer can be assembled in SynthEdit.

Velocity control

Connecting the Steps up

I have only shown two steps to give you the idea (otherwise it’s just too complex with all 16 steps). The gate output connection is not used in this Sequencer.

Connecting up the individual step prefabs

Converting Integer to Boolean “steps” for a SynthEdit Sequencer.

This is a fairly basic structure consisting of 16 Roy IntTo(Bool) modules.
The IntTo(Bool) module is basically a comparator for Integers instead of Voltages.

Input (Integer): The input value to be compared.
Trigger At Value: The value that the input is to be compared with.
Invert (Boolean): If set to true the output will be “True” when the comparison is “False”, and “False when the comparison is “True”
Trigger Only If Equal: There is a very useful setting in the properties that we need for this structure: “Trigger Only If Equal” which means that if this box is ticked the output will only be “True” if the Input and “Trigger at Value” input match. If this is not ticked then the Output will be “True” when the Input Integer matches or exceeds the trigger value

The Integer to Boolean step converter.

These modules take an integer input from the DSP Count Input, and if the IntTo(Bool) module receives an Integer that matches the one specified at the Trigger At Value plug, then it will set the output to “True”.
If we set up a structure like the one below, and set up the Trigger At Value on each module then we need to start with the first module at Value 0, working up to 15 for the last module. All modules need to have their Trigger Only If Equal set as “True”. As the Input Integer value steadily rises/falls the appropriate module will send a true signal.
Note: the trigger value for the first module must be 0.

Now we have most of the building blocks for a functional sequencer…

A multi-function Step Counter in SynthEdit.

This module will give you the option to count up, or down, count to a set number and stop, or a pendulum mode (count up from 1-16, then count down from 16 to 1 and so on). The number of steps in the sequence can also be set via a drop down list. At the heart of this structure is the ED DSP Counter. This module takes a train of input pulses and counts them, outputting the appropriate integer.

ED DSP Counter.

Counts the number of Boolean input impulses between 0 (included) and a specified value (positive, negative or zero to block counting) specified by the Integer at Max Plug (included).
Input (Boolean): Input pulses to be counted.
Reset: At any time a Boolean “True” sent to the Reset pin can reset the counter to zero allowing it to restart.
Mode (List): The count can proceed in several ways depending on the Mode setting:
1) Unlimited: positive if Max is >0, negative if Max <0, no count if Max = 0
2) Stop: the counter is stopped once the Max value is reached
3) Wrap: the counter is reset to zero after the Max value is reached
4)Ping-pong: (Pendulum) The count proceeds from zero to Max then back to zero, indefinitely.
Max (Integer): Sets the maximum count.
Output (Integer): Outputs the number of pulses counted as an integer.

ED DSP Integer counter module

By using this counter we have an effective way of making a step counter which can be fed by the BPM Clock4 oscillator. This allows us to have a count running from 0 through to 16 (or whatever maximum is set), in a variety of modes.

Controlling the count direction.

Going up… Going down.
The first point of note is that the vales in the Fixed Values (Int) module are a little counter intuitive, until you consider the way the DSP counter counts. They are listed below with the actual number of the steps on the Left (Name) and the corresponding integer value on the right (Value). Step 2 has the count value of 1? That’s right. It’s because we are counting from 0, but referring to 0 as step 1. The value is always one less than the step number.

Counter values

These values are output to the Switch (Many>1) so we can select the number of steps we want in our count.
The Max count on the DSP counter is self explanatory, but we do need to look at how the ED Subtract module is connected (Below).
Input 1 must be fed from the switched Integer values, and Input 2 must be fed by the DSP Counter, otherwise the up/down count values just won’t match up properly. The Switch (Many>1) allows us to switch between counting up 1->16 and down 16->1. So (ignore the blue line and plugs) out Integer count is fed to the IO Module to go to our next structure/module.