MIDI Sequencer

miniMO's Sequencer is a MIDI step sequencer with easy step edition and real time tempo and transposition control (see here for more details).


Download from Github


  • Configurable MIDI channel
  • Configurable number of steps
  • Configurable scales
  • Real time Tempo control
  • Real time Transposition with configurable intervals
  • Real time Octave control with configurable number of octaves
  • Real time selection of forward or reverse playback
  • Step Edition Mode with real time note and length control
  • Random sequence generation on start up
  • Automatic Battery check



  • 2: Output - MIDI notes
  • 4: Output - gate (note ON/OFF)


PLAY (default)

The sequencer plays through all the steps. The LED turns ON and OFF to mark each step

  • Knob: change tempo / transpose pattern
    • when you hop between parameters, miniMO waits until you reach the last value it has currently stored to start effecting changes
  • Single click: go to EDIT mode
    • To edit a step, click the button during the PREVIOUS step
    • The pattern freezes in the step after you click, which becomes ready to edit
  • Double click: change play mode between regular and reverse
  • Click and Hold (hold for about 1s): change knob's function between tempo / transposition control

Each time you turn the module OFF and ON, miniMO plays a new random sequence


The sequencer repeats the current step indefinitely at the tempo set in PLAY mode. The LED stays ON continuously

  • Knob: change note
    • miniMO waits until you reach the note it has currently stored to start effecting changes
  • Single click: go to PLAY mode
  • Double click: change note length between half (staccato), full (legato), and silence, in this order
    • By default, the first note is set to full (to mark the beginning of the pattern), and the other notes are set to half


When you switch the module ON,

  • If the LED blinks once, the battery is OK
  • If the LED blinks fast several times, the battery is running low


This program requires a modified version of the SoftwareSerial library to run. Get it here!

The module's "wait until the knob reaches the last stored value" behavior might be a bit unresponsive at low tempos