SQ-4M - Eurorack multi track MIDI step sequencer


SQ-4M is a software to run on the VMC-system. It provides a multi track MIDI step sequencer inspired by the sequencers in the Roland JX-3P and SH-101. The software is published as open source under the creative commons license "by-nc-sa 4.0"

For the Installation please use the ARDUINO IDE, see https://www.arduino.cc/en/software. An introduction how to upload the program with the Arduino IDE can be found here.

sound example

This is a sound example which was created using the SQ-4M. Basically this is a single repeated F-maj7 chord played over three octavas like A3, C4, E4, F4, A4, C5, E5, F5, A5, C6, E6, F6, A6. It becomes a "piece of music" by the function clock division that determines for each of the 12 notes how many clock ticks happen until the note is played the next time. Think it a A3 on every step, C4 every second step, E4 every third step and so on. I unmute one track after the other, beginning with C4 (A4 is left out).

Additionally there is a simple bass figure played by an acoustic upright bass.
A random function sets for each note a different velocity value.
Finally I transposed all tracks sometimes.

Astonishing enough this does not sound like invented from a machine.

The sounds for the piano and the upright bass come from a Roland SC-33 soundmodule.

SQ-4M - Users Manual

Firmware Version 0.16 / 0.17
VMC-1 Hardware Version 1.5.4

"SQ-4M" is a programm for an Arduino Nano mounted on a "fanwander VMC-1". The SQ-4M is a MIDI step sequencer which can be triggered by external positive voltage trigger signals, by an internal clock, or by MIDI-Clock. The SQ-4M provides several single event tracks. The event can be either a MIDI note, a MIDI ControlChange or a Velocity value for another note-track. Each track can have a different step length, a different clocktick-per-step ratio. Each track can send different data like:
  • note events
  • controller events
  • velocity values which will be used by a different note-track (not implemented yet in version 0.15)
A note track can be transposed from another note track (not implemented yet in version 0.15).

Usually you will buy a fanwander VMC-1 with the software installed already. If your VMC-1 runs a different software at the moment, then please consult the programming instructions for the VMC-1 on how to install software.


...for those, who think they don't need manuals:
  • The function of the five buttons

    Stop Mode Play AllNotesOff WRITE Enter Setup
    -- Track ++

    <-- TRACK Select
    unmute all mute all
    <-- ALL TRACKS (Transpose)
    Play Mode Pause Stop Gate Mode (V0.16)
    Write (V0.17)
    Enter Setup
    -- Track ++

    <-- TRACK Select
    unmute all mute all
    <-- ALL TRACKS (Transpose)
    Write Mode End & Play End & Stop Back Tie Rest

    Setup Mode
    Select Param Exit Setup Edit < Parameter >
    TRACK Select --> -- Track ++
    Set Param

    Set -- Value ++
    *)On the first run of modules this button is labled "PLAY", in the later runs the button will be labled "START".  
  • Good Luck :-)
Now more details for the patient ones...

Connect and Configure the Hardware

This is described in the users manual of the VMC-1.

MIDI connections

Basically you need a device which sends MIDI-notes (I will call this "the keyboard") and a device which can create sounds from MIDI-notes (I will call this "the synth"). I will not explain how to connect MIDI devices. So establish the following MIDI connections
Keyboard-MIDI-Out <-> SQ-4M-MIDI-In,
SQ-4M-MIDI-Out <-> Synth-MIDI-In.

Usually you will get a VMC-1 with the SQ-4M software loaded, and set to factory settings. To test with the factory settings of the SQ-4M, set keyboard and synth to MIDI channel "1".
For other settings please consult the description of the "setup menu".

Press PLAY. The sequencer should play on the synth a repeating F-major-7 chord of 14 notes and you should be able to play the synth on the keyboard along with the sequence (at least as long as your synth is polyphonic).

If the sequencer plays other notes than the repeating F-major-7 chord then please do a "Factory Reset" as described in the section "setup menu", and follow the instructions for "Adjust Poti-CVs" in the section "setup menu" after the factory reset.

Selecting Tracks

The SQ-4M provides in the default configuration four distinct tracks. Many functions are available for each track separately, and some functions are valid for all tracks.
  • To select a track in play mode or stop mode, press and hold the F2 button and flip through the tracks using the START and STOP buttons.
  • To select a track in the setup mode, this works the other way around: press and hold the START button and flip through the tracks using the F1 and F2 buttons. (this opposite handling may feel confusing, but it is quite logical from the use of these buttons in the setup mode).
  • It is not possible to selecte a track in write mode. You have to select the track in stop mode and the enter the write mode then.

Write Mode

We assume you can play the default sequence successfully and your keyboard plays notes on the synth.

Writing a Sequence in the SQ-4M - Basics (Write a Note Track)

  • If the sequencer is running hit the STOP button. In Version 0.17 you may change to WRITE mode, while the sequence is running, but for now it is easier to do this in STOP mode.
  • Press and Hold F1 and press STOP to mute all tracks
  • The Display should look like this:
    STOP         Tr1
    all tracks muted
  • The display tells us, that we are in stop mode and track 1 is selected.
  • Hit the WRITE button.
    => the display says "WRITE" (who would guess...)
  • Play a few single notes on your keyboard. Be sure not to overlap notes.
    => you should see on the display the counter in the upper line count up with each note. Also you should see the recorded MIDI note number and in the lower line a "+"-character for each step.
    WRITE #49     4 
  • Hit STOP and then PLAY.
    => the SQ-4M will play the notes that you've entered before.
The WRITE-mode ends either if you hit STOP or PLAY or it ends automatically if you reach the track length limit.

The sequencer can store up to 16 steps. A step is written, as soon as you press the key down on your keyboard. Even if you play more than one keys without releasing the first one always a new step is written with any new keypress

Writing will store a sequence only in the runtime memory. The sequence will be lost after a powering off or reset as it happens after uploading a new firmware.

To store the sequence permanently on the EEPROM, you have to use the functions SAVE and LOAD in the setup menu. If you want to use this Arduino board for other applications please obey the remarks in the chapter about -> setup -> save/store.

Write Mode extended - tied notes and rests

Lets write now a four note phrase.
Select an organ like sound at your synth. Take care, that there is no long "Release" on the sound.
  • Press WRITE
  • Play Key C
  • Press F2 (=REST)
  • Play Key C
  • Press F1 (=TIE)
  • Press STOP
Already while writing the steps, on the lower line of the display appeared a "+" (plus) for each key, a "-" (dash) for each F1/TIE and a "." (dot) for each F2/REST.
  • Press PLAY
The sequence will play something like "Dap, Daaaah, Dap, Daaah,...."
Do the same with A.A-C.C-A.A-E-G- and sing "Fly, Robin, Fly".

Write Mode extended - Correcting Steps

There is no real editing of a sequence for now (it may be possible in a later firmware version), but while writing you can step back by hitting the WRITE button for each step back. Example:
We want to enter a Cmaj scale, but hit G# instead of G:
  • C
  • D
  • E
  • F
  • G#
  • A ... Aaargh, Hold it! The G# was wrong...
  • WRITE (will step back and clear the A)
  • WRITE (will step back and clear the G#)
  • G
  • A
  • B
  • C
  • STOP
  • PLAY
Check the step counter and the "+++..."-step-display-line while stepping back.
I think you 've got it.

Write Mode extended - Cancel Write!

Sometimes it happens (at least to me), that you press WRITE, though you did not want to write a new sequence. In this moment you have the chance to cancel the write-mode (and keep the existing sequence), by pressing WRITE again. But it is important, that no MIDI-NoteOn came in meanwhile and that you did not hit TIE, REST, PLAY, or STOP. As soon as one event happens, that the write-mode would record, the former sequence is gone.

By the way: it is not possible to enter the write-mode while playing or while the setup. So the chance for this problem is quite low.

Write Mode - Write Values for CC-Tracks or Velocity Velocity Track

You can write a sequence of CC calues or velocity values in multiple ways:
  • write with the keyboard and use the full note range 0-127 (fine resolution)
  • write with the keyboard and use the octaves around the transpose center value (coarse resolution) (not implemented yet in V0.15
  • use knob CV1 for the value and confirm with any keyboard note
Write CC Values Using the Keyboard
  • In the setup menu set the track type to "Note"
  • Write the note date as described above.
  • A REST value will be interpreted as CC value = 0
  • A TIE value will cause that no CC data are sent for this step.
  • In the setup menu set the track type to "CC" or "Velocity".
That's it.
Disadvantage: the values are not sent as CC while writing and (depending on the note-thru settings) the notes might be sent to the synth.
Write CC Values using the CV1 Knob
  • Go to the setup menu (Press F1 and F2).
  • Verify that the the "Track Type" is set to "CC" or "Velocity".
  • Verify that the the "CC Edit Mode" set to "CV1 Knob".
  • Exit the setup menu (Press START and STOP).
  • Press WRITE. The display will look like this:
    WRITE #73       
    The CC-value (here "#73") will change if you turn the CV1 knob.
  • If the dialed value is as you want to write it for this step, then press any key on your keyboard. =>The stepcounter will increase and a "+" will be shown in the lower line
  • Writing a TIE (=button F1) or a REST (=button F2) does not require the additional key press. A REST value will be interpreted as CC value = 0, A TIE value will cause that no CC data are sent for this step.
  • Hit STOP to end the WRITE-mode

Erase All Tracks - (Version 0.17 and higher)

Sometimes you may want to start a pattern from the scratch. That for use the following order of button presses:
  • press and hold WRITE,
  • press and hold STOP,
  • release WRITE,
  • release STOP.
This will write pauses on all steps of all sequences. The track length of track 1 will be set to 16 steps, the track length of all other patterns to 1.

Play Mode

Playing a written sequence is simple: hit PLAY. The sequence will play in the tempo of the tempo potentiometer (or external clock - if selected) and with the blinking LED. (The LED blinks always - even when the sequence is stopped). Hit STOP to end the play mode.

Play Mode - set Tempo

The SQ-4M provides an internal clock generator. The tempo-knob controls the speed of the clock. This clock generator is software generated and may become slower if the processor has more tasks to handle. This is for sure while the setup mode and while the save action. For a stable tempo use an external trigger (see below).

Play Mode extended - Thru and Transpose

While the sequence is playing, MIDI information from the keyboard may be forwarded to the output (so called Soft-Thru); this forwarded note will be sent on the MIDI channel of the selected track. The SQ-4M provides various thru-settings. For details see the setup section.

The SQ-4M also provides the possibility to transpose the played sequence according to the incoming keyboard notes. There are four different types of TRANSPOSE: continous, momentary, button-enabled, and track. In the "track" transpose mode any other track can be used for transposition. Since the SQ-4M does not distinguish between values for notes, CC-values or velocity, any track may be used.
The center note for the transposition (where no transposition happens) can be choosen in the setup. For details see the setup section.

Play Mode extended - external Trigger-In

This is the topic, where the SQ-4M is different to all other MIDI step sequencers, we know.
Please read now first at the chapter "Setup Mode" about the two different NoteOff modes

You may replace the internal tempo clock or MIDI-clock, by an external trigger signal fed to the CLOCK-IN socket. To speak more exact: this is handled as a GATE signal. The input expects a voltage of +5 Volt (=gate on) or 0 Volt (=gate off).
If the input rises from 0V to +5V the MIDI noteOn messages for the notes in the actual step are sent.
If the input falls down from +5V to 0V and the noteOff mode is set to "clocked", then the MIDI noteOff messages for the notes in the actual step are sent.
This means the length of the incoming "clock gate" determines the length of the played note.
(The gate signal may be higher than 5V, but gate off has to be 0 Volts)

What is that good for?

Example 1:
Have a drum machine like Roland TR-808 that sends continuous 5V-clocks.
  • Connect the clock out of the drum machine with the CLOCK-IN of the SQ-4M.
  • Press PLAY on the SQ-4M (the sequence will not play yet!)
  • Start the drum machine
=> The SQ-4M will play in the tempo of the drum machine.

Example 2:
  • Have a drum machine with progammable trigger out, like the Roland TR-606 or Roland TR-08 or many others.
  • In the Setup reassure, that the "Note Off Mode" is set to "Held Note" (this is the default value from the factory - if you didn't change it until now, then go on)
  • Write a sequence of four notes:
    G A C D
  • In the drum machine set a trigger at the first step of a bar, but none on the other steps in the bar
  • Hit PLAY at the SQ-4M and start the drum machine
=> The SQ-4M will play a four bar sequence, with changing notes at every bar and each notelength is the full bar.
If you would try this with a regular internal 16th clock, you would need 64 steps using the TIE function. Having the externally programmed trigger on step one, you have to enter only four steps.

Example 3:
  • Have a drum machine with programmable trigger out, like the Roland TR-606 or Roland TR-08 or many others.
  • Write a sequence of four single notes:
    D E G A
  • In the drum machine set triggers at the following positions of a 4/4 pattern
    x.x.xx.x.xx.x.x. (x means a trigger, dot means no trigger)
  • Hit PLAY at the SQ-4M and start the drum machine
=> The SQ-4M will play a sequence which will repeat not before 9 bars.
Now change the sequence to "D" "E" "REST" "G" "A" "REST" => I think you will get it.

Clock Division per Track

The three previous examples assume that each incoming clock tick triggers one step of the sequence. Each track has a parameter "CLOCKDIVIDER". With this parameter you determine how many clockticks must come in to make this track advance to the next step. If you set the clockdivider to a different value for each track, you can get very complex sequences from very simple base tracks. Just one example: enter for each track two notes like this:
Track 1: C2 G2
Track 2: C3 G3
Track 3: H3 C4
Track 4: E5 D5
As long as the clockdivider has the same value on all tracks, this will be very boring. Now set the clockdivider like this:
Track 1: 2
Track 2: 1
Track 3: 3
Track 4: 5
The sequence will look like this:
Track 1: C2    G2    C2    G2    C2    G2    C2    G2    C2    G2    C2    G2    C2    G2    C2    G2    C2...
Track 2: C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3 G3 C3...
Track 3: H3       C4       H3       C4       H3       C4       H3       C4       H3       C4       H3      ...
Track 4: E5             D5             E5             D5             E5             D5             E5      ...
Now it takes 30 steps until this simple two step sequence repeates.

Mute the sequenced MIDI while playing

If the sequencer is playing and you press START again, then the MIDI-Out will be muted. No NoteOn messages will be sent from the sequence. MIDI NoteThru will still work. The "PLAY" in the top line of the display will change to "play", but you will see in the second display line, that the sequence continues running.
As soon as you press START again, the display will change to "plAY" and beginning with the next step #1 of the sequence the NoteOn messages will be sent again (and the display will change back to "PLAY"). If you press START again while the display shows  "plAY" then the sequence will be unmuted immediately.

If you want to mute all tracks at the same moment, press and hold F1 and press STOP (the sequence won't stop! Only all tracks will be muted). If you want to unmute all tracks at the same moment, press and hold F1 and press START.

If the sequence is stopped, then it depends on the setting of the track parameter "PLAY-ON-START" whether the initial Start command will unmute all tracks (setting "Play always"), or whether the muting status that was given when you stopped the sequence, will be kept (setting "Obey mute mode").
The muting will not affect the MIDI events provided by the MIDI-Thru functions!

A MIDI start command will not act as mute function, but if PLAY-ON-START is set to "Play always"

Velocity Control and Random Velocity

The velocity of the notes sent by the sequencer is basically fix, because the sequencer does not record the velocity value of the incoming notes. Beginning with Version 0.14 the velocity of the individual notes can be randomized. The knob CV1 determines the average velocity level, the knob CV2 determines the amount of the randomness. If you feed control voltages to the inputs CV1 and CV2 respectively, those voltages will control the velocity and random amount and the knobs CV1 and CV2 will determine the corresponding amount of the voltage control.

Shut up mode :-)

Under certain cirumstances it may happen that the synth produces "hanging" notes - even if the sequencer is stopped. To cancel these notes in play mode or stop mode simply press F1/TIE. This will send NoteOff messages for all 128 Notes, NoteOn with velocity 0 for all 128 Notes, and the All Notes Off CC #123 on the selected MIDI-out channel.
Pressing STOP in play mode sends also this kind of reset.

Shut up and reboot

Though software should be perfect, software never is perfect. So if this software hangs there exists a full system-reset:
pressing all five buttons at the same time will restart the program. Unfortunately the Arduino itself may hang. In this case you have either to power cycle your system, or press the reset button on the Arduino pcb.

Setup Mode

In the setup mode you configure the general behaviour of the SQ-4M. You can enter the setup mode in play mode or in stop mode. In write mode the setup is not available.
  • To enter the setup menu press F1 and F2 together.
  • The display will change and list the actual parameter in the upper line. The lower line will display the actual value of the parameter.
  • To page through the parameters use F2 for "next" and F1 for "previous".
  • To change the value of a parameter press WRITE.
    => An exclamation mark ("!") will appear at the start of the lower line to mark the EDIT mode.
  • Change the value with F1 (=decrease by one) and F2 (=increase by one). To change in larger steps you can use a combination of F1 and F2: Press and hold F1 and a short press on F2 will decrease by ten. Press and hold F2 and a short press on F1 will increase by ten.
  • Press WRITE again to leave the EDIT mode.
    => the value will be stored in the non volatile memory and the "!" disappears.
  • To leave the setup menu press PLAY and STOP together.
  • After a system reset or startup the setup starts always with "transpose mode". For clock select, save sequence, or load sequence you may use the "previous"-function; for the various play modes and track settings you may use the "next"-function. You may step through all parameters in a circle in the both directions.
    On each following lookup of the setup menu, you will be placed in the menu, where you left the setup before.
If you have entered the setup mode while the sequence was playing, the sequence will continue playing, but you cannot stop it in setup mode. You have to leave the setup mode to stop a playing sequence.
Since the internal clock is software created and the setup mode eats up a lot of processing, the internal clock will assumingly become a little slower.

List of the available Parameters:

  • "Transpose": switches between various transpose modes and off.
  • "Noteoff Mode": switches between a gated note length and notelength until the next step.
  • "Note Length": sets a minimum note length for the gated NoteOff mode.
  • "In-Channel": sets the MIDI channel on which the SQ-4M expects incoming note data.
  • "Out-Channel TR": sets the MIDI channel per track on which the SQ-4M sends its sequence.
  • "Tracktype TR": sets the type of MIDI message which is sent by this track
  • "CC-Number TR": sets the CC-Number which is sent, if the track type is CC.
  • "Vel.Track TR": Not in use in Version 0.15.
  • "Transp.Track": Not in use in Version 0.15.
  • "Clockdivider TR": sets the clockdivider per track.
  • "PlayOnStart TR": sets the mute behaviour of each track, when the sequence is started.
  • "Note-Thru": determines under which conditions incoming notes from the keyboard are forwarded to the synth.
  • "Control-Thru": sets whether incoming MIDI-ControlChange data are forwarded to the synth.
  • "Program-Thru": sets whether incoming MIDI-ProgramChange data are forwarded to the synth.
  • "Bend-Thru": sets whether incoming MIDI-Pitchbend data are forwarded to the synth.
  • "OtherCh-Thru": sets whether MIDI-data on other channels than the out channel are forwarded to the MIDI out.
  • "Adjust Poti-CVs": adopts the software for the real potentiometer values
  • "Factory Reset": restores to the default parameter values and loads the test sequence
  • "SaveSequence": saves the actual sequence in the EEPROM
  • "LoadSequence": loads the sequence from the EEPROM
  • "Clock": selects the clock source, and (MIDI-)clock division
  • "Transp.Center": sets the note value, that corresponds to 'no transposing'

Now the detailled desciption of the parameters

Transpose Mode

Transpose shifts the played sequence. Incoming noteOns on the selected MIDI-channel will shift the played sequence corresponding.
C5 (MIDI NoteNumber 60) corresponds to no transpose. MIDI NoteNumber 62 = D5 will shift the sequence a full note up, MIDI NoteNumber 53 = F4 will shift a quint down.
If a transpose shift is effective its amount will be displayed in play mode and stop mode.

Transpose does NOT affect the notes played manually via MIDI thru, and never affects the notes written in the memory - it is only a playback function. Transpose is not active for the Thru-Notes in write mode.
Value Comment
off No transpose.
Continous All incoming MIDI NoteOn events are used for the transposition.
MIDI Thru is deactivated in this transpose mode.
Momentary The sequence is transposed only as long as the transposing key on the keyboard is pressed.
MIDI Thru is deactivated in this transpose mode.
ButtonEnabled (Factory Default) While play mode press the F2 button and play a key on your keyboard to set the transposition. As soon as you release the F2 button this transpose value is kept and incoming MIDI Note events are used for MIDI Thru. Only the sequence will be transposed. The MIDI Thru events will not be changed.

This mode corresponds to the transpose mode of the Roland JX-4M or Juno-Series - with exception of the MIDI-Thru behaviour.

Noteoff Mode

The noteOff mode selects, what determines the outgoing noteOff. In play-mode this setup page can be reached directly by pressing the WRITE button.
Value Comment
Held Note (Factory Default) The noteOff is sent immediately before the next step. This mode is the same as in the Roland JX-4M or SH-101.

This mode is required for the chord progression trick described in "Example 2" in the section "What is it good for".

Please keep in mind that stopping an external clock source in this mode without stopping the SQ-4M sequence will cause the last note to "hang". Press STOP on the
SQ-4M then.
Gated fix The noteOff is sent when the incoming clock signal goes from +5V to 0V. With the internal clock this is at 50% off the step time.

The noteOff can be delayed by a fix number of milliseconds (See also parameter "Note length")
Gated CV-ctrl The time until the noteOff is sent is determined by the value provided by CV2
If a voltage is provided to input CV2, this voltage will control the notelength.
In this case the potentiometer CV2 controls the amount of this voltage.

Note Length

Some clock sources e.g. drum machines send extremely short trigger pulses. This may cause trouble with some sounds. To avoid this a minimum note length can be defined

Value Comment
1 - 240 milliseconds
(Factory Default 30ms)
Between 1ms and 20ms changed in 1ms steps.
Between 20ms and 240ms changed in 10ms steps.

Attention: large values at fast clock speeds will make the sequence stumble, because the noteOff is delayed after the next incoming clock pulse.

In Channel

The MIDI-channel on which the SQ-4M expects the data, that shall be written into the sequence.
Value Comment
1 - 16
(Factory Default = 1)
Incoming MIDI data on the in-channel will be sent out on the out-channel. This is valid also for control, programchange, and pitchbend data!
It is recommended to deactivate OtherChannelThru if in-channel and out-channel are different.

The main intention for this feature is that you may have a single keyboard, but several SQ-4Ms (or similar devices) in the thru chain. In that case you don't have to change the send channel on your keyboard, but simply use the out-channel on the SQ-4M.
Otherwise we recommend to set the In-Channel the same as the Out-Channel.

Out Channel (per Track)

The MIDI-channel on which the sequence of the corresponding track and thru'ed Program/Control/Bend-data are sent out.
Value Comment
1 - 16
(Factory Default = 1)
This parameter can be set per track. There is also a track selection "All". If you set the channel in this selection, then all track will be set to this value

Pay attention if you are in playmode:

Changing the Channel while the sequence is playing or thru'ed notes are active will cause note hangs. In some special cases this may be wanted behaviour, so we did not prevent this.
To end these hangs while play mode switch back to the former channel, leave the setup mode and press TIE (the sequence will play on) or STOP (the sequence will stop).

Tracktype (per Track)

Sets the type of MIDI message, which is sent by the corresponding track
Value Comment
Note (Factory Default) This Tracks sends MIDI Note messages
This track sends MIDI ControlChange messages.
Velocity This track can be used as velocity source for another note-track.

CC-Number (per Track)

If the track is a CC-track, then this value determines which ControlChange message is sent
Value Comment
0 - 127
(Factory Default = 1)
If the selected track is NOT a CC-track, then you cannot change this value. If it was before a CC-Track, the value is kept.

Vel.Track (per Track)

Sorry: not yet in use in Version 0.15

Transp.Track (per Track)

Sorry: not yet in use Version 0.15

Clockdivider (per Track)

This parameter sets how many clock ticks have to happen until the selected track advances to the next step.
Value Comment
1 - 16
(Factory Default = 1)
For Details see the explanation in the section "Clock Division per Track".

PlayOnStart (per Track)

This parameter sets whether the corrsponding track begins to play always on a start command, or whether the current mute state is obeyed
Value Comment
Play always (Factory Default) The corrsponding track begins to play always on a start command. If the track was muted before it will become unmuted.
Obey pause mode
On a Start command the current mute state is obeyed. If the track was muted before, it still will be muted when the sequencer begins running

Note Thru

This parameter determines under which condition note messages from the keyboard  (= on the in-channel) are forwarded to the synth (= on the out-channel).
Value Comment
Off Incoming note data are not forwarded.
Rec Incoming data will be forwarded while writing the sequence, but not while play or stop.
Incoming data will be forwarded while playing the sequence or stop, but not while writing the sequence.
This mode may be useful for using the SQ-4M live on stage. You may enter the sequence unheard, without the need to mute the synth.
Rec+Play (Factory Default)
Incoming data will be forwarded all the time.
This is an experimental mode, coming with version 1.1x:
Incoming notes will be forwarded normally while recording and while stop-mode.
In play-mode the incoming notes will be played in the same rhythm as the sequence.
In detail the play-mode works like this:
The original NoteOn is forwarded.
If a NoteOff is sent for the sequence, also a NoteOff is sent for the incoming held notes.
If the incoming note is still active (no NoteOff has been received) then a NoteOn for the sequence will redo a NoteOn for the incoming note.
If a NoteOff is coming in, it will not(!) be sent to the output immediately. It will be sent with the next NoteOff from the sequence.


Determines whether MIDI controlchange data from the keyboard (= in-channel) are forwarded to the synth (=out-channel)
Value Comment
On (Factory Default) see general comment regarding the thru modes below


Determines whether MIDI Programchange data from the keyboard (= in-channel) are forwarded to the synth (=out-channel)
Value Comment
see general comment regarding the thru modes below
Off (Factory Default)


Determines whether MIDI controlchange data from the keyboard (= in-channel) are forwarded to the synth (=out-channel)
Value Comment
On (Factory Default) see general comment regarding the thru modes below

!!! Important Remark on Thru-Modes !!!

If you use the same device as keyboard and as synth then all those Thru-settings depend on your instrument.
If the instrument has a local-off mode, then you should activate this local-off mode and you should set all Thru-settings to "On" and the NoteThru not to "On". For example my Rhodes Chroma Polaris in local off mode needs ControlThru and BendThru set to "On". Otherwise the Chroma Polaris could not be edited. But ProgramThru has to be set to "Off". Otherwise a MIDI-Loop on program change commands would happen and bring the whole MIDI-system to hang.
If the instrument has not(!) a local-off mode then you MUST set all Thru-settings to "Off". Otherwise you would create an endless MIDI-loop which typically makes all processors overload and leave the system in unusable state, which typically can be solved only by switch off both the synth and the SQ-4M. The same is valid if you use the SQ-4M at the input and output of a MIDI-sequencer like Logic, Cubase, Ableton, Reaper, what ever…


Determines whether incoming MIDI data (no matter which type) in channels other than the out-channel are forwarded to the output.

Value Comment
A high MIDI traffic on other channels will affect the performance of the SQ-4M since every data byte has to be handled by the processor. It even may cause the sequence to stutter or to stop. (Imagine an orchestras conductor who also has to hand out dishes from the kitchen while the concert all the time...)
Off (Factory Default)

Adjust Poti-CVs

Potentiometers are produced with a tolerance of 10% or even 20%. This function adopts the software to the individual potentiometers in this circuitry. This procedure has to be done after a factory reset.
Value Comment
no value - display reads:
Press Write
After pressing WRITE a screen will be displayed like
Turn the three potentiometers fully clockwise. Then press WRITE. The adjustment procedure will run automatically and display the potentiometer it is working on. Depending on the offset you will see the adjustment parameters counting up or down. Finally the display will read  "Tempo is good!" and switch on to the next knob. The display will switch to "CV1" and after some counting the display reads "CV-1 is good!". The display will switch to "CV2" finally, and after some couting the process will end with "CV2 is good!".

If you did not set the potentiometers to the maximum before pressing WRITE the second time, then wrong offsetvalues will be stored. This won't harm the module electrically, but unwanted effects might happen on the MIDI-out. If this happens, simply repeat the procedure with the potentiometers set to maximum really.

The offset-values will be stored in the non-volatile EEPROM. So usually this procedure has to be called only once.

Factory Reset

Writes the factory default settings in the non-volatile EEPROM and loads them then into the runtime memory.
Value Comment
no value - display reads:
Press Write twice
Press the WRITE button twice. The display will change to "Reset EEProm", and then you will see the "Load Sequence" display  (see below).

After the first WRITE you can cancel the Reset by pressing STOP.

This should not be done in PLAY mode. Hanging notes and other unwanted issues might occur.

Since the factory reset overwrites the settings of the potentiometer adjustment you have to redo the potentiometer adjustment.

Load Sequence

Loads the sequence stored in the non-volatile EEPROM into the runtime memory.
Value Comment
no value - display reads:
Press Write twice
Press the WRITE button twice. You will see a short flicker, when the function counts the notes and steps.
Then the lower line reads "Load Done".

After the first press on WRITE you can cancel the Load-action by pressing STOP.

Load should not be done in PLAY mode. Hanging notes and other unwanted issues might occur.

Save Sequence

Saves the sequence from the runtime memory in non-volatile EEPROM.

Value Comment
no value - display reads:
Press Write twice
Press the WRITE button twice. You will see a short flicker, when the function counts the notes and steps.
Then the lower line reads "Save Done".

After the first press on WRITE you can cancel the Save-action by pressing STOP.

Save may be done in PLAY mode, but the sequence may stumble if the save action takes longer than one step of the sequencer


Selects the clock source and the division factor, if the MIDI-clock is used. This setting is not stored in the internal memory. After switching off and on, always the internal clock is used.

Value Comment
Internal (Factory default) The internal clock generator is used. Neither MIDI-clock nor MIDI-start/stop commands are recognized
MIDI-clock 1/16 MIDI-clock is used with 16 triggers per 4/4-bar. MIDI-start/stop and(!) the internal START/STOP buttons are recognized. The pause function works only with the internal START-button
MIDI-clock 1/8 MIDI-clock is used with 8 triggers per 4/4-bar
MIDI-clock 1/4 MIDI-clock is used with 4 triggers per 4/4-bar
MIDI-clock 1/1 MIDI-clock is used with 1 trigger per bar
MIDI-clock 2/1 MIDI-clock is used with 1 trigger every second bar
MIDI Start/Stop The internal clock is used, but start and stop commands from MIDI are recognized
Attention! Do not change these settings while the sequencer is running!

Transp. Center

Sets the note value, that corresponds to 'no transposition'

Value Comment
(Factory default 60)
Press the WRITE button.
Now play that key on your keyboard that shall correspond to  'no transposition'.  All keys below this note will transpose down, all key above this note will transpose up.
Press WRITE again to store the value.

All product names and brand names beside "VMC-1", "SQ-4M" and "fanwander" belong to the corresponding owners. They are mentioned only for educational purposes.

All rights reserved, by Florian Anwander 2020 - 2022