07. MIDI controller, sequencers & arpeggiators

Since the beginning of this series, we've talked about Oscillators, Audio synthesis, filters, envelopes and LFO, and as much as I can't wait to talk about all the audio effects, I still need to talk about one thing to wrap up this "control" section. And that is midi controllers, sequencers and arpeggiators.

We saw how to shape the notes of a synth with oscillators, and envelopes. Now let's see how these synths actually play those notes.
We'll see principles that are very useful in a modular setup like vcv rack, but understanding them would be also useful in other contexts.

To know what note to play and how to play them, your synth needs 4 types of signals:

- Gate: it is either high or low. Basically it tells the synth when a key is pressed. When the key is held down, the gate is high, and when the key is released, the gate goes down. It is the info the envelope will use to know where to trigger it's attack and release phases. When the gate goes up, it will enter its attack phase, followed by the decay, follow by the sustain. And whenever the gate goes down, the envelope enters it's release phase.

place_holder_1920x1080png.png

- Trigger: it is a very short impulse that is sent every time a key is pressed. If you play several notes one after the other, the notes might overlap, so the gate would stay open, as there will always be at least one key pressed at all time. But the trigger will sent an impulse for every new key pressed, so the envelope can reset for every note played. You will see on a lot of synths an option called legato. When legato is active, the trigger will be ignored, so the attack and decay phases will be played only for the first note, and one envelope cycle can cover a whole musical phrase.

place_holder_1920x1080png.png

- Pitch: of course the synth will need to know what note to play. In an analog setting the most common format is 1v/Oct,  meaning the higher the voltage applied, the higher the pitch of the note. A difference of 1v between 2 notes will result in a difference of 1 octave between them.

place_holder_1920x1080png.png

- Velocity: it is the strengh with which each note is played. It is generally linked to the amplitude of the note, meaning that the harder to press a note, the louder it is. But it can be linked to other parameters as well.

place_holder_1920x1080png.png

Having these streams in 4 separated cables can be useful in a modular setting, so you could use the velocity to control the intensity of a distortion for example, to have more distorted notes when you play harder. 
Or if you have something generating triggers randomly, you could plug it into an envelope generator, so it would act like if a key was pressed everytime it receives a trigger. Which is cool to make self generating patches.

place_holder_1920x1080png.png

You can also use the pitch to control the cutoff of a filter, to open the filter more on higher notes. This is actually called "key follow" (or "key following", or "key tracking") and it can help you have a more consistent tone throughout several octaves.
Because if the filter is fixed, low notes can have a lot of harmonics above the fundamental before reaching the filter's cutoff, and higher notes could simply disappear above this filter.
Whereas if the cutoff moves with the notes, you coud have the same number of harmonics above the fundamental every time, resulting in a more consistent sound.

place_holder_1920x1080png.png

But in the digital world, the most used format to control a synthetiser is MIDI which gather all these info in one cable. If you use a midi controller to control your DAW, that's why you'd only have to plug in its USB lead, which can also give power to your controller, and that's very handy.

These midi controllers can come in many shapes like keyboard or pads, but the principle stay the same. Each one will send these gate, pitch and velocity data to control your synth. And when your drawing notes in the piano roll of your daw, you're essentially doing the same thing that you would do by playing a MIDI keyboard. Except your programming it instead of playing it.

place_holder_1920x1080png.png

The thing that is super handy with MIDI is that you can write automations. You can write or record the motion of any knob directly in your sequencer. 
You can also assign any number of knob to a macro knob, so when you move the macro knob it will move all at the same time.
And the two combined make a very powerful tool.

For example here in serum I have this macro knob linked to several things. So if I move this knob il will move the cutoff of the filter, the amplitude of the oscillator, the position of the wavetable and several other things, which is very handy to create complex-moving sound design.

place_holder_1920x1080png.png

In the same way, MIDI controllers often have several other knobs, faders or wheels that you can set to control different parts of your synth. 

Now, to control the notes your synth plays, you dont necessaraly need a keyboard, a pads or even to program the notes individually. you can also use other modules. Like a step sequencer or a arpeggiator.


STEP SEQUENCER:

place_holder_1920x1080png.png

A step sequencer is a module that will send regular impulses to you synth, so you can create a sequence of notes that will be played in loop by your synth.

For example, in VCV rack you have the seq-3 which is a 8 step sequencer, meaning that you can make sequences of 8 notes with it. And you can program 3 different sequences with one module, they are represented by these 3 lines of knobs here.

place_holder_1920x1080png.png

Each knob here represent the pitch of a note, and the clock knob set the speed at which the sequence is read.

So you can create your sequence on one of these rows (the notes wont be locked to any scale, but you can use a separate module for that), and then you have the output for the pitch of each row there, that you can connect to an oscillator, and you have the output for the gate, that you can connect to an envelope generator, so it will be triggered every time a note is played. 

This sequencer doesn't have any output for the trigger, because the gate will stay open only for half the time of each step, so the gates won't be overlapping. 

In Ableton Live, my favorite step sequencer is probably the max4live device mono sequencer.

place_holder_1920x1080png.png

Just throw it on a midi track and you'll have a 16 step sequencer for the pitch of the notes, that you can lock to a certain scale, or leave it free of any scale.
And then you have different tabs on the left:
- the sequence for the velocity, to have a different velocity on each note. 
- the octaves if you want to play certain notes on different octaves, 
- the length of the notes
- the repeat sequence, if you want to trigger several times the same note on a given step.

What's very cool about this sequencer is that every sequence is independent, and you can make loops of different length for each of them. So they offset overtime, in a polyrhythmic fashion and that perfect to create ever evolving patterns.


ARPEGGIATOR:

place_holder_1920x1080png.png

Basically, an arpeggiator will take chords as an input, and break it down to an arpeggio, playing one note at a time. You can also play just one one on an arpeggiator and it will repeat it at a certain rate.

Let's take ableton live 's arpeggiator as an example.

place_holder_1920x1080png.png

You can see in the middle a rate knob that determines the speed of the arpeggio, that can be synced to the tempo. And next to that is a gate knob which determines how long the gate stays open for each note, so a smaller gate means shorter notes.

On the top left corner is the heart of the arpeggiator, this is where you can tell the arpeggiator how you want it to play the chord you give to it.

So there are several algorithms to choose from:
UP will play the notes from the lowest to the highest.
DOWN will play the notes from the highest to the lowest

CONVERGE will play the notes on each extremity first, followed by the notes in the middle, to create this kind of pattern

In addition to that you also have CHORD TRIGGER which will play the chord as is, but repeatedly, at a speed set by the rate knob

And you also have several algorithms to make random patterns.

As you can see there are a lot of algorithms here to choose from, but some arpeggiators also allow you to create your own sequence that will be transposed to every chord you play.

These rate, gate and algorithm settings are the core of the arpeggiator, and you should find these parameters on every arpeggiator, with more or less options.

For example on this one you can make it sensitive to the velocity of the notes you play, or you can transpose them to a particular scale.
Or if you want to get creative with it, you can unsync the rate and control this knob with an envelope, or directly automate it to create an exponential rhythm.

place_holder_1920x1080png.png

So you can use either a controller, a step sequencer or an arpeggiator to control your synth, and they all use gate, trigger, pitch and velocity information, which you can then use to control other parameters.

For example, as said before, the velocity often controls the volume of the notes, but you could link it to the amount of the filter envelope so the evelope would open the filter more when you press a key harder.

One way to do this in Serum would be by using the matrix tab.

place_holder_1920x1080png.png

There you can set the velocity to control an envelope amount. You can then link this envelope to the filter's cutoff.

Or you could link the pitch to the cutoff of your filter, to do the key tracking I talked about earlier, so higher the note the more open the filter.

Don't hesitate to try to control different parameters with the velocity, the gate or the pitch. This is an excellent way to make expressive patches. 

Or link several parameters to one knob and automate it in a rhythmic pattern, that's an excellent way to morph your sound.
And combined with envelopes and LFO, it is a very powerful tool to have.

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png