MidiSeq sequencer

Overview

MidiSeq is a polyphonic MIDI step sequencer with some great features, such as note step advance, step modifiers (tie, half, strum, and accent), super stable internal clock, nice swing and two modulation sources with velocity, after touch and CC destinations.

Demo: http://www.youtube.com/watch?v=Pt7XrHZre04

MidiSeq#1_small

MidiSeq records and plays back sequences of steps with up to 15 notes per step. Maximum number of steps depends on amount of notes in each step. If all steps have only one note, the maximum sequence length is about 300 notes. Four notes per step sequences can have up to a 100 steps. Each note is stored with velocity.

MidiSeq can store 32 sequences, however, only one sequence can be played back at the same time. Sequences can be seamlessly changed on the fly without stopping the sequencer.

The sequences can be saved to an external storage as SysEx files one by one or in bulk. The saved SysEx files can be restored to the original or a different location.

MidiSeq features a super stable internal clock which works great as the master clock source for other devices. It can also be synchronized to an external clock. In addition, MidiSeq can run in external trigger mode in which steps are triggered by note events received on MIDI IN.

When playing, sequences can be transposed by playing notes on the external keyboard connected to MIDI IN. Transposition is done relative to a root note associated with every sequence.

In addition to standard tie and accent step modifiers, MidiSeq has two unique ones: strum and half. Strum modifier, just like its name suggests, will cause step notes to be strummed instead of being played all at the same time. Half modifier shortens the step notes duration to half of their original duration.

MidiSeq’s swing implementation has wide range of swing settings which can be adjusted in 0.1% increments allowing for some super sweet spots in sub-percent areas, thanks to super stable internal clock that does not dilute those subtle settings with instabilities.

Finally, two independent modulation sources can simultaneously modulate velocity, after touch, and any selected continuous controller value synchronously with sequence events using saw, triangle, square or random modulation waves.

Resources

MidiSeq runs on MidiGAL hardware, however you can also run it on MidiBUD and, with some limitations due to the lack of the switch, on any MIDIpal compatible hardware.

Firmware (.syx and .hex): MidiSeq_097a (use midiseq_pal.syx if your device has MIDIpal bootloader)

Firmware source code: midiseq_097a_src

User interface

Press the switch to start and stop sequencer.

Turn the encoder to move between pages. Most pages display a single parameter.

Click the encoder to enter parameter changing mode, which is denoted by brackets around the parameter value. Turn the encoder to change the value. Click the encoder again when done.

On most pages pressing the switch while changing a parameter will reset it to a default value. Pressing the switch again will restore the original value.

Double clicking the encoder saves the current sequence with all its parameters so it can be restored later.

Main page

01[SeqA]
1/8

Click encoder to enter sequence selection mode. Brackets appear around the sequence name. Turn the encoder to select another sequence. Click the encoder when done to load the selected sequence into memory. This can be done without stopping the sequencer.

Pressing the switch while a sequence name is displayed within brackets activates name editing mode. Turn the encoder to change the character under the blinking cursor. Press the switch to move the blinking cursor to the next character. Click the encoder again to exit name editing mode.

Saving the sequence on the Main Page is slightly differs from that on all other pages because it allows you to save the sequence into a different location: double click the encoder, turn it to select target location, then click it again to save. To cancel save, press the switch.

Recording page

Record
1/8

Click the encoder to activate recording mode.

Turn the encoder to change sequence step. The current step notes will be sent to MIDI OUT for auditioning.

The top row displays the command in brackets which will be executed when you click the encoder again. Turn the encoder while holding down the switch to change the command:

  • [stop] – stops the recording.
  • [rest] – adds the rest step after the current step.
  • [tie] – toggles the “tie” modifier causing the step’s notes to sound for the whole step. If “tie” step is followed by one or more “rest” steps with “tie” modifiers, the notes duration will be extended to all the subsequent “tie” steps.
  • [half] – toggles the “half’ modifier causing the step’s notes to sound half the time they would sound otherwise.
  • [strum] – toggles the “strum” modifier causing the step’s notes to be strummed with the interval selected on Strum page.
  • [accent] – toggles the “accent” modifier causing the step’s notes’ velocity to be increased by the value specified on the Velocity page.
  • [delete] – deletes the current step.
  • [clear] – clears the current step removing all the notes and modifiers essentially converting it to the rest step. If the switch is held down when clicking the encoder this command will clear entire sequence by removing all the steps.
  • [patch] – toggles “patch” recording mode in which notes received on MIDI IN replace current step notes instead of being inserted after it. Patch mode is denoted by the % sign in the step display.

Pressing the switch while in recording mode terminates it. Pressing the switch again starts the sequencer.

Root Note page

RootNote
 C4

This page specifies the note relative to which the sequence will be transposed.

Click and turn the encoder to select the root note. Click the encoder again when done. You can also play a note on the keyboard controller connected to MIDI IN to “learn” the root note.

Press the switch to set the default root note C4. Press the switch again to restore the original root note.

Setting the root note to the lowest value disables sequence transposition and received note events are passed through, so you can play along with the playing sequence.

Tempo page

Tempo
 120

This page specifies the tempo with which the sequence will be played back.

Click and turn the encoder to select the tempo between 25 and 250 BPM. Click the encoder again when done.

Press the switch repeatedly along with the quarter notes beat to “tap tempo”.

Step page

Step
 1/8

This page specifies the sequence step duration.

Click and turn the encoder to select the step duration between 1/64th triplet and 2 whole notes. Click the encoder again when done.

Press the switch to set the default step duration of 1/8th note. Press the switch again to restore the original step duration.

Gate page

Gate
 auto

This page specifies the sequence note duration.

Click and turn the encoder to select the note duration between 1/64th triplet and 2 whole notes or “auto”, which means “half the step duration”. Click the encoder again when done.

Press the switch to set the default note duration of “auto”. Press the switch again to restore the original note duration.

Most of the time note duration will be shorter than the step duration, however setting note duration longer than step duration could create interesting sequencing effects, especially with long sustain sounds.

Strum page

Strum
 1/64T

This page specifies the delay between strummed notes.

Click and turn the encoder to select the delay between 1/64th triplet and 2 whole notes. Click the encoder again when done.

Press the switch to set the default note duration of 1/64th triplet. Press the switch again to restore the original delay.

While strummed notes delay is usually pretty short, using longer delays creates interesting sequencing effects somewhat similar to rhythmic delays.

Swing page

Swing
 50.0%

This page specifies the amount of swing to playback the sequence with for added shuffle feel.

Click and turn the encoder to select the swing value between 0.1% and 99.9%, with 50.0% being the “no swing” setting. Click the encoder again when done.

Press the switch to set the default “no swing” value. Press the switch again to restore the original swing value.

Swing value is adjusted in 0.1% increments which allow for some subtle groove settings.

Key Start page

KeyStart
 off

This page specifies if the playback has to be started when a note is played on the keyboard controller connected to MIDI IN. Note that the note played will also transpose the sequence relative to the root note.

Click and turn the encoder to set the value to “on” or “off”. Click the encoder again when done.

Press the switch to set the default “off” value. Press the switch again to restore the original value.

Key Sync page

Key sync
 off

This page specifies if the running sequence has to be re-started when a note event is received on MIDI IN. This comes handy when playing live.

If the sequence is not running and Key Sync is set to “step”, the sequencer will play the current step and advance to the next one every time a note event is received on MIDI IN. This is similar to Roland SH-101 External Trigger feature.

Click and turn the encoder to set the value to “on”, “off” or “step”. Click the encoder again when done.

Press the switch to set the default “off” value. Press the switch again to restore the original value.

Velocity

Velocity
 key

This page specifies the velocity to play the sequence notes back with. Click and turn the encoder to select the velocity value between 1 and 127 or “key”, which means the velocity the note was recorded with. Click the encoder again when done. Press the switch to set the default “key” value. Press the switch again to restore the original value.

Accent

Accent
 32

This page specifies the value to add to the velocity of the accented notes.

Click and turn the encoder to select the velocity addendum value between 1 and 127. Click the encoder again when done.

Press the switch to set the default value of 32. Press the switch again to restore the original value.

Mod Wave page

Mod1Wave
 saw

This page specifies the modulation wave shape. Click and turn the encoder to select the wave shape: saw, triangle, square or random. Click the encoder again when done. Press the switch to set the default value of saw. Press the switch again to restore the original value.

Mod Length page

Mod1Leng
 seq

This page specifies the modulation period.

Click and turn the encoder to select the modulation period which could be relative to sequence step count (seq, seq x 2, seq x 3, etc.) or an absolute value between 2 and 192. Click the encoder again when done.

Press the switch to set the default value of “seq”. Press the switch again to restore the original value.

Mod Velocity page

Mod1Velo
 0

This page specifies the note velocity modulation value. Click and turn the encoder to select the note velocity modulation value between -127 and 127 with 0 being the “no modulation” value. Click the encoder again when done. Press the switch to set the default value of 0. Press the switch again to restore the original value.

Mod Aftertouch page

Mod1Atch
 0

This page specifies the after touch modulation value.

Click and turn the encoder to select the after touch modulation value between -127 and 127 with 0 being the “no modulation” value. Click the encoder again when done.

Press the switch to set the default value of 0. Press the switch again to restore the original value.

Mod Ctrl page

Mod1Ctrl
 0

This page specifies the control change message number. Click and turn the encoder to select the control change message number between 0 and 119. Click the encoder again when done. Press the switch to set the default value of 0. Press the switch again to restore the original value.

Mod CC# page

Mod1CC#
 1

This page specifies the control change modulation number.

Click and turn the encoder to select the control change modulation value between -127 and 127 with 0 being the “no modulation” value. Click the encoder again when done.

Press the switch to set the default value which is CC#1 (ModWheel) for Mod1 and CC#10 (Pan) for Mod2. Press the switch again to restore the original value.

Channel page

Channel
 1

This page specifies the MIDI channel number device is receiving and sending MIDI messages on. Click and turn the encoder to select the MIDI channel number between 1 and 16. Click the encoder again when done. Press the switch to set the default value of 1. Press the switch again to restore the original value.

Clock page

Clock
 int

This page specifies the MIDI Clock options.

Click and turn the encoder to select an option. Click the encoder again when done.

Clock options are:

  • [int] – sequencer runs on internal clock
  • [ext] – sequencer runs on external clock relying on MIDI Clock and Start/Stop events received on MIDI IN
  • [intOut] – sequencer runs on internal clock and acts as Master device sending MIDI Clock and Start/Stop events to MIDI OUT
  • [extOut] – sequencer runs on external clock relying on MIDI Clock and Start/Stop events received on MIDI IN and passing them to MIDI OUT

Press the switch to set the default value of “int”. Press the switch again to restore the original value.

Program Change page

ProgChng
 none

This page specifies Program Change handling options. Click and turn the encoder to select an option. Click the encoder again when done. Press the switch to set the default value of ‘none’. Press the switch again to restore the original value.

Program Change handling options are:

  • [none] – ignore and pass through
  • [recv] – load sequence from the specified slot
  • [send] – send when sequence is loaded from a slot
  • [both] – both receive and send, as above

Controller # pages

Stop
 CC#114

These pages specify the MIDI Control Change Numbers used for various sequencer actions. These come useful when you want to control the sequencer from your controller keyboard.

  • [Stop] – stops the sequencer
  • [Playback] — starts the sequencer if it’s stopped or re-starts the running sequence
  • [Record] – toggle the sequence recording mode[Add Rest] – adds a rest after the current step
  • [Add Tie] – toggles the “tie” modifier on the current step
  • [Add Half] – toggle the “half” modifier on the current step
  • [Add Strum] – toggle the “strum” modifier on the current step
  • [Add Accnt] – toggle the “accent” modifier on the current step
  • [Del Step] – deletes the current step
  • [Clr Step] – clears the current step notes and modifiers
  • [Clear Seq] – clears the sequence removing all steps

Note that “Add …” CCs act both during recording and playback. When received during playback they temporarily modify the next played step without affecting the stored sequence. Good for live playing! Click and turn the encoder to select Control Change Number. Click the encoder again when done. Press the switch to set the default Control Change Number. Press the switch again to restore the original value.

Sysex page

Sysex
 cur

This page allows you to send current or all sequences to an external storage device as one or more SysEx messages for backup purposes.

Click and turn the encoder to select “current” or “all”. Click the encoder again when done.

Press the switch to send the SysEx message.

Send those SysEx messages back to MidiSeq when you want to restore them. Single sequence SysEx will be received into current sequence editing buffer so you’ll need to save it afterward. Bulk sequence SysEx dumps will be stored in the original slots.

Miscellaneous

Powering the device up with the switch pressed returns all MidiSeq settings to factory defaults erasing all your stored sequences.

Powering the device up with the encoder knob pressed enters the firmware upgrade mode: device expects firmware sysex file to be sent to MIDI IN.

12 thoughts on “MidiSeq sequencer

  1. Pingback: New MidiGAL firmware: MidiSeq | MidiSizer

  2. I have the original midipal that I bought preassembled from MI in 2013. I tried to install midiseq_pal but it didn’t work. Is there any chance that it could work?

    • I believe back then Olivier used different bootloader and sysex manufacturer code, so the modern MIDIpal sysexes don’t work with it.It’s still possible to re-flash your device with alternate firmware, but this will require Atmel programmer. Or a lot of trial and error tweaking the firmware sysex generator Python code.

  3. Can patterns be made to start once the currently playing pattern has completed? Or do patterns only load instantly when changed on the hardware or when receiving a program change message? Thanks!

  4. I meant to trig the sequence with an incoming signal (like a rim shot from TR 909 to the SH-101 sequencer) so we can “play/break” the sequence. Is it possible ?
    Thanks

  5. modcc# section and modctrl section seem to be mixed up. also, is there anyway to set the baseline value for cc modulation wave? currently, im using it to modulate the cutoff on a waldorf rocket, but it seems to start the cutoff at 0 and then goes up/down from there. this means that the rocket is essentially inaudible for a lot of the sequence, so id like something more moderate, like starting from 64 or something, or being able to define a range of values to modulate within, like set 30-80 and then define the wave and period for that. is that possible somehow that im not seeing or should i actually invest in an avr isp ii this time around?

    i tried using the mod1velocity to effect this behavior, but i guess i dont really understand what that does since it didnt help with this.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s