German Version English Version French Version

MIDIbox SEQ V2

16 Track Live Step and Morph Sequencer + advanced Arpeggiator

Created 2003-2004

NOTE: This design is expired! In 2009 MIDIbox SEQ V4 has been developed which replaced the old version. See this page for more details.

Feature list of the OLD V2 version:

  • optimized for live playing and editing
  • every parameter can be modified in realtime w/o affecting the sequencer timings
  • one sequencer pattern consists of 4 independent tracks
  • four patterns can be played at the same time -> makes 16 tracks
  • Each track consists of 3 layers which can be assigned to
    • Note Number, Velocity, Gate Length (on Note Events, Aftertouch, etc..)
    • CC Number, CC Value, Gate Length (on Controllers)
    • Pitch Bender, Gatelength
    • CV Outputs
  • in drum mode, one track can play three drum lines, makes up to 48 drum lines
  • available modes for every track: Normal/Transpose/Transpose+Hold/Arpeggiator/Arp.+Hold/Drums/Controller
  • available directions for every track: Forward/Backward/PingPong/Random
  • available clock divider for every track: BPM/1, BPM/2, BPM/4, BPM/8, BPM/16, BPM/32, BPM/64
  • available length for every track: 1-16
  • step events can be triggered multiple times (up to 4 times per step) with a delay value of 1-31 to realize drumrolls, ratterbeats, flams...
  • two groove styles (shuffle and inverse shuffle), prepared for 16 styles
  • two morphing modes (smooth and threshold)
  • enhanced humanizer function (random modification of note/velocity/gatelength)
  • Manual step triggering
  • Simple Step Record function
  • comfortable step shifting function
  • tracks and single steps can be muted
  • parameters can be changed for a single or for multiple tracks and steps at the same time (with a single rotary encoder turn)
  • Accent/Slide/CC sequences
  • 8 optional CV outputs for analog gear
  • 128 patterns can be saved in every BankStick
  • additional BankStick for up to 16 songs with 16 parts, each consists of 8 pattern sets
  • pattern sets can be looped and chained in song mode
  • it's possible to switch between the 16 parts quickly without affecting the sequencer timings, so that a song can be divided into fills/breaks/chorus, etc...
  • pattern switching can be synchronized to the measure
  • MIDI Remote functions
  • 48-255 BPM (MIDI clock master)
  • external sync (MIDI clock slave)
  • works with quadrubled MIDI clock resolution (96 ppqn)
  • several hardware options (from vintage design with 64 pots to ergonomic design with two 2x40 LCDs and 17 rotary encoders)

Sequencer Demos

These samples are intended for people who want to know more about the advantages of a hardware step sequencer. Note that the parts are mostly played live within one evening regardless of the sound quality. You see: the results come fast and sound interesting :)

mbseq_v2_demo1.mp3
Very experimental (the original is about 3 hours long, but I forgot to record it ;-), many Fx have been added, some of them are controlled from the sequencer via CCs. all patterns made with MIDIbox SEQ and recorded with Logic whenether they worked (means: the MIDIbox SEQ didn't play the whole song in this example since the song mode was not implemented at this time)
mbseq_v2_demo2.mp3
Just an arpeggiator test, nothing more - edited within 5 minutes, played some random chords and took the best ones ;-)
mbseq_v2_demo3.mp3
This example demonstrates the "shuffle" groove style, where every second step can be shifted by up to 15 microticks (@96 ppqn) - the shuffle feeling can be changed continuously during the sequencer is playing w/o affecting the timings!
mbfm_demo1.mp3
A morphed arpeggiator texture which consists of two 4-track patterns. Some three-finger chords are played with a keyboard, and the modulation wheel slightly "morphes" between the two patterns during the sequence is running. The resulting variations are nice and expressive and don't require additional edit effort.
DOC A tutorial sequence which demonstrates the advanced arpeggiator capabilities can be found here
DOC A tutorial which introduces the two morphing modes can be found here
DOC A tutorial which introduces the drum mode and multiple-events-per-step function can be found here
DOC A tutorial which introduces multi-arp events can be found here

Hardware costs

The MIDIbox SEQ can be extended successively from the minimal configuration to the complete control surface.
Please read also the discussion about the various hardware options before selecting the parts!

Here a list of the complete "MIDIbox SEQ V2" option - you can reduce the costs by choosing cheaper buttons, a cheaper case/panel and by organizing collective orders in the MIDIbox Forum!

Note that premade PCBs can be purchased at www.mikes-elektronikseite.de or http://mbhp.coinoptech.com. SmashTV also purchases complete kits of the CORE/DINX4 and DOUTX4 modules!!!

Prices and ordering numbers are from Reichelt if not specified. A list of alternative electronic shops outside germany can be found at the WhereToOrder page.

Part Description Price
1 MBHP_CORE
module
the brain of MIDIbox SEQ Parts: ca. 20 EUR
PCB: ca. 6 EUR
3 DINX4
module
digital inputs for buttons and encoders Parts: ca. 15 EUR
PCBs: ca. 15 EUR
1 DOUTX4
module
digital outputs for 32 LEDs Parts: ca. 3 EUR
PCB: ca. 5 EUR
LCDs cheap: one 1x16 Displaytech "LCD 162C LED"
deluxe: two 2x40 Displaytech "LCD 402A LED"
ca. 11 / 49 EUR
BankSticks 2 x 24C256, Part #ST 24C256 BN6 from Reichelt
or 1 x 24LC512 I/P, Part #579-24LC512-I/P from Mouser
ca. 4 EUR
44 buttons for example "DT 6 colour" (colour = BL, GN, GR, RT, SW) ca. 19 EUR
32 LEDs for example "LED 3mm St colour" ca. 6 EUR
17 encoders for example M-SW-ROT from Voti or the Bourns encoders from SmashTV's Shop ca. 20 EUR
16 Knobs
1 datawheel
12 x "DK13-164 black-soft", 4 x "DK13-164 gray-soft", 1 x "DK38-144" from Albs ca. 12 EUR
3 vectorboards for mounting the Buttons/Encoders/LEDs: "H25PR200" ca. 6 EUR
PSU Wall adapter (Power supply) 9V / 500 mA "MW 17-GS/6" ca. 6 EUR
Case 19" 3U rack #460 019 from Pollin ca. 33 EUR
Panel mbseq_v2.fpd from Schaeffer Apparatebau ca. 100 EUR

Download

Schematics & PCBs
File Size Description
MBHP LINK see MIDIbox Hardware Platform
mbseq_din_v2.pdf 26k default DIN pin assignments for the setup_mbseq_v2 option
mbseq_dout_v2.pdf 11k default DOUT pin assignments for the setup_mbseq_v2 option
mbseq_din_vintage.pdf 26k default DIN pin assignments for the setup_mbseq_vintage option
mbseq_dout_vintage.pdf 11k default DOUT pin assignments for the setup_mbseq_vintage option
Pictures LINK Some pictures of the inner life of MIDIbox SEQ
mbseq_v2.fpd 3k Panel which can be edited with the Frontpanel Designer of Schaeffer Apparatebau
Firmware
MIOS Download LINK MIOS based firmware for PIC18F devices with source code
Documentation
Options LINK Description about various hardware options
Manual LINK User Manual
Tutorial #1 LINK Tutorial #1
Tutorial #2 LINK Tutorial #2
Tutorial #3 LINK Tutorial #3
Tutorial #4 LINK Tutorial #4
mbseq_remote_functions.txt 2k MIDI Remote functions of MIDIbox SEQ
mbseq_remote_functions.pdf 2k Graphical overview about the MIDI Remote functions of MIDIbox SEQ
mbseq_cc_implementation.txt 12k CC Implementation of MIDIbox SEQ
mbseq_sysex_implementation.txt 1k SysEx Implementation of MIDIbox SEQ
mbseq_preset_list.pdf 22k Matteo Bosi has created a useful sheet template where you can write down some notes about the saved tracks - it improves the overview a lot!
Misc.
MIDIbox Forum LINK Support at the MIDIbox Forum
MIDIbox Wiki LINK A lot of additional informations on MIDIbox and MIOS

MIDIbox SEQ V2

Hardware Options

This page discusses various hardware options which are provided by MIDIbox SEQ. All these settings can be changed in the main.asm, resp. in the preconfigured setup_*.asm file. Once you've changed an option, you have to reassemble and upload the code to your MIDIbox like described in the GPASM tutorial

Pots or Encoders?

MIDIbox SEQ allows to modify step values with rotary encoders (endless knobs) or pots.

Since pot control sounds like "vintage", "old style" and "analog sequencer", and possibly could imply that pots are the best solution for perfect sequences, I want to warn you that this is just a popular fallacy and nothing else! In fact pots are only useful for sequencers which are controlling the analog gear directly, but for a MIDI sequencer you defenitely want to have features like "total recall" and "jumpless switching" between tracks, layers and patterns.

Therefore the most preferred option for MIDIbox SEQ should be rotary encoders!

There are two reasons why MIDIbox SEQ supports pots: 1) pots were used by the first PIC16F based implementation (MIDIbox SEQ V1) - users who already built this sequencer are able to upgrade to V2 by exchanging the PIC and the crystal in order to benefit from all the new features. 2) users who built the MIDIbox64 hardware are able to upload the MIDIbox SEQ firmware in order to have a lot of additional fun :-)

setup_*.asm

Two preconfigured setups are part of the MIDIbox SEQ package: setup_mbseq_vintage.asm (configuration with pots, called MIDIbox SEQ Vintage below) and setup_mbseq_v2.asm (configuration with rotary encoders, called MIDIbox SEQ V2 below). You can copy an existing setup to a new .asm file and change it for your needs if required. Keep in mind that changing the .asm filename also require to adapt the convert.bat script which converts the .hex binary to a .syx file.
The third setup "main.asm" is similar to setup_mbseq_v2.asm, but different encoders types are specified - this file matches with my own hardware.

How many buttons?

If you are building a new MIDIbox SEQ it's highly recommended to mount at least the buttons which are used in the original V2 design to ensure best ergonomic handling. This means, that you want to use at least 44 buttons!

But this doesn't mean that you are not able to use MIDIbox SEQ without these buttons. The MIDI Remote feature allows you to trigger the remaining functions with a MIDI keyboard. However, the handling isn't so perfect like with dedicated buttons (especially since the LEDs are missing on a master keyboard), but it works!

It's also not required that the buttons are assigned to the same DIN input pins like predefined in the setup files. You are able to change the pinning for your (existing) hardware. But if you want to keep it compatible, then use exactly the same pinning like me.

DIN Pinning of setup_mbseq_vintage,
DIN Pinning of setup_mbseq_v2

How many LEDs?

Some button functions require a LED as some kind of feedback which is not given by the LCD. For example, the selected Track and Layer are normaly not displayed by the LCD, also Solo/Fast/All and especially the played (unmuted) steps.

This means that you want to have at least 30 LEDs. One additional LED can be added as beat indicator. Two others to display the MIDI Rx/Tx activity (I don't use these two LEDs for my own design).

By default the 16 "general purpose" LEDs (which belong to the 16 "general purpose" buttons) display the mute status of the current selected track. If the sequencer is running, they display also the current sequencer position by inverting the appr. step LED. MIDIbox SEQ supports an option to handle 64 LEDs for all 4*16 steps of a pattern (which consists of 4 tracks) for people who think that this might be useful. This option requires just 4 additional DOUT pins which are driving the cathodes of the LED rows (The LED rows are driven time multiplexed like known from the LED rings of MIDIbox64E).

DOUT Pinning of setup_mbseq_vintage,
Vintage design with 4x16 LED matrix,
DOUT Pinning of setup_mbseq_v2,
V2 design with 4x16 LED matrix

Note: the LED matrix has to be enabled in the .asm setup you are using!

Which display size?

MIDIbox SEQ V1 provided only a 2x16 display, but it turned out that this is not enough for a sequencer, where you want to have an oversight over at least 4 beats. Therefore MIDIbox SEQ V2 supports up to 2x80 characters (two 2x40 displays).

Since especially the LCDs are different on some existing MIDIbox hardwares, MIDIbox SEQ supports following sizes:

  • two 2x40 LCD two 2x40 option
    all 16 steps are visible on screen.
  • 2x40 LCD 2x40 option
    only 8 steps are visible on screen (visible beats selected by last changed value).
  • 2x20 LCD 2x20 option
    only 4 steps are visible on screen (visible beat selected by last changed value).
  • 2x16 LCD 2x16 option
    only 4 steps are visible on screen (compressed without spaces, visible beat selected by last changed value).

Menu pages are still layouted for 2x16 characters to simplify the application development. For future releases it is planned to provide extented views for larger displays

  • two 2x40 LCD two 2x40 option
    menu pages are aligned to the right side of the first LCD.
  • 2x40 LCD 2x40 option
    menu pages are aligned to the right side of the LCD.
  • 2x20 LCD 2x20 option
    menu pages are centered on screen.
  • 2x16 LCD 2x16 option
    the whole menu page is visible on screen.

Note: If you are planning an upgrade to MIDIbox SEQ V3 later, two 2x40 LCDs are strongly recommended! This firmware won't support other display options anymore!

Left/Right button or Datawheel?

For the menu navigation and data entry either Left/Right buttons or a datawheel can be used. The datawheel (rotary encoder with big knob) should be the most preferred solution since it simplifies the selection of parameters with a wide value range (like BPM).

Banksticks

  • MIDIbox SEQ stores only a single pattern when no BankStick is connected!
  • With a 32k BankStick (24LC256) you are able to store 128 patterns
  • An additional BankStick (24LC256) is required to store 16 songs
  • Optionally you can use a 64k BankStick (24LC512) to store 128 patterns and 16 songs in a single EEPROM. This is the solution which I'm using for my own MIDIbox.
  • Multiple BankSticks for more than 128 patterns and 16 songs are not supported yet, but planned.
  • Keep in mind that every song consists of 128 positions, which can be looped up to 16 times. By setting jump points you are able to split a single song into multiple parts!

Detented or Non-Detented Encoders?

In difference to suggestions for MIOS based MIDI controllers, for MIDIbox SEQ I strongly suggest detented rotary encoders! Of course, MIOS provides three types, and all are working. But for a sequencer, where you want to select the notes exactly and not "smoothly", detented encoders are really the preferred ones.

For pots I solved this "problem" by reducing the value range of note values from 128 to 32 (the transpose function has to be used to select the octaves). This function could also be used for non-detented encoders, but this is only some kind of workaround and not what you really want for a sequencer.

CV outputs

MIDIbox SEQ can control up to 8 analog outputs by connecting an AOUT (mbhp_aout.pdf) module to the core. The interconnections are a little bit different from the schematic, since J10:RC is already allocated by the enable line of the second 2x40 LCD:

  • AOUT J1:Vs -> CORE J10:Vs
  • AOUT J1:Vd -> CORE J10:Vd
  • AOUT J1:CS -> CORE J10:SO
  • AOUT J1:DIN -> CORE J14 (different to standard wiring)
  • AOUT J1:SC -> CORE J10:MD (was J10:SC before, has been changed in V2.1!)

Tracks can be assigned to the outputs in the MIDI event menu. The AOUT "channels" route the events to following CV outputs:

  • Channel 1 routed to CV Out #1 and #2 and sets the gate #1 (for Notes)
  • Channel 2 routed to CV Out #3 and #4 and sets the gate #2 (for Notes)
  • Channel 3 routed to CV Out #5 and #6 and sets the gate #3 (for Notes)
  • Channel 4 routed to CV Out #7 and #8 and sets the gate #4 (for Notes)
  • Channel 5 routed to CV Out #1 and #2 and sets the gate #1 (for CCs)
  • Channel 6 routed to CV Out #3 and #4 and sets the gate #2 (for CCs)
  • Channel 7 routed to CV Out #5 and #6 and sets the gate #3 (for CCs)
  • Channel 8 routed to CV Out #7 and #8 and sets the gate #4 (for CCs)
  • Channel 9-16 routed to CV Out #1-8 (only the second MIDI byte is sent to the AOUT)

Since the AOUT module provides only two gate outputs, the remaining gates are available at pin RC0 (CORE::J6::RC) and RC1 (CORE::J6::SC) of the PIC

User Manual for MIDIbox SEQ V2

Buttons

GP #1-16 The "general purpose" buttons have various functions depending on following modes:
In Edit Mode: the GP buttons are used to mute/unmute the steps. The appr. LED will be lit when the step is not muted, and therefore will be played by the sequencer once it passes the position.
In Mute Mode: the GP buttons are used to mute/unmute the 16 tracks. In difference to edit mode the LED will be lit when a track is muted!
In Pattern Mode: the GP buttons are used to select a pattern. The 8 buttons at the left side are used to select one of 16 Pattern groups (A-h - press the button twice to select a "lower case" group), the 8 buttons at the right side are used to select the pattern number (1-8).
In Menu mode: the GP buttons are used to jump directly to a menu page (shortcut)
In Manual Trigger Mode: the GP buttons are used to trigger the step of all active tracks manually.
In Step Record Mode: the GP buttons are used to select the step where the record function should start.
(Track) 1-4 Use these buttons to select the track(s) which should be edited.
The track buttons behave like "radio buttons" if only one is pressed so that you can quickly change between the tracks views. It's also possible to select multiple tracks by holding one, and pushing the additional track buttons - in this case every parameter change will be done not only on one, but on all selected tracks.
In pattern and song mode these buttons are used to select the pattern group (1-4).
(Layer) A-C Use these buttons to select the layer which should be edited.
The layer buttons behave like "radio buttons", in distance to the track buttons multiple layers cannot be selected at once (since this doesn't make sense).
In song mode these buttons are used to select the song number/song position and loop points.
EDIT Changes to the edit menu.
MUTE Changes to the mute menu.
PATTERN Changes to the pattern menu.
SONG Change to the song menu.
SOLO If this function is active, only the selected tracks of the current pattern will be played. All other tracks will be muted.
Note that the behaviour of this button can be changed in the setup file. It behaves like a toggle button by default.
FAST Use this button to speed up the encoder and datawheel increments/decrements.
Note that the behaviour of this button can be changed in the setup file. It behaves like a toggle button by default.
ALL If this function active, value changes will be made for all selected tracks, layers and steps. This feature is very powerfull in conjunction with the step mutes, since it allows you to change all selected notes, CC numbers, gatelengths, etc. at the same time.
Note that the behaviour of this button can be changed in the setup file. In the setup_mbseq_v2 it behaves like a toggle button, in setup_mbseq_vintage it behaves like a push button.
F1-F4 These are user programmable buttons, the function has to be changed in the source code (seq_buttons.inc).
Following functions are assigned to the F buttons by default:
F1: shortcut to the save menu
F2: shortcut to step record menu
F3: unmutes all tracks
F4: mutes all tracks
It's planned to provide much more alternative functions for these buttons later (e.g. a randomizer, etc...)
MENU press this button together with a GP button in order to jump to a menu page directly. The page assignments are documented here.
SELECT in most menus this button is used to select the parameter (cursor position).
EXIT use this button to exit the current menu page.
LEFT/RIGHT or Datawheel used to increment/decrement the selected parameter.
SCRUB if active, the sequencer position can be shifted with the datawheel (smoothly!). Currently only the forward direction is supported!
Note that the behaviour of this button can be changed in the setup file. It behaves like a push button by default.
METRONOME if active, the note for a metronome click will be sent on every beat. The note event can be configured in the setup file (C#1 by default), the MIDI channel can be selected in the appr. menu page.
Note that the behaviour of this button can be changed in the setup file. It behaves like a toggle button by default.
STOP stops the sequencer.
PAUSE halts the sequencer until pause is pressed again.
PLAY resets the pattern/song position and (re)starts the sequencer.
REW decrements the song position (in song mode only)
If not in song mode, this button can be used to decrement the menu value alternatively to the datawheel
FWD increments the song position (in song mode only)
If not in song mode, this button can be used to increment the menu value alternatively to the datawheel

Menus

These snapshots are self explaining, no? ;-)
However, I never found the time to complete the description, and with MIDIbox SEQ V3 they got obsolete...

Display Page

Display Page

 

 

 

Mute Tracks

Mute Tracks

 

Patterns

Patterns

 

Song

Song

 

 

 

 

 

Track Events

Track Events

 

 

 

 

 

 

 

 

Track Mode

Track Mode

 

 

 

 

 

 

 

Direction

Direction

 

 

 

 

Clock Divider

Clock Divider

 

 

Track Length

Track Length

 

 

Track Transpose

Track Transpose

 

 

Track Groove

Track Groove

 

 

 

Layer Assignments

Layer Assignments

 

Track Shift

Track Shift

 

Manual Trigger

Manual Trigger

 

Record Steps

Record Steps

 

Morphing

Morphing

This menu allows you to configure the morphing features of MIDIbox SEQ. The screen shows the target pattern (Pt), the morphing position which can be modified directly with the datawheel or with the modulation wheel of an external keyboard, the selected track and the morphing mode.

Smth stands for "Smooth morphing": Layer A, B and C (on Notes: Note number, velocity, gatelength - on CC: CC number, value and gatelength) are faded smoothly from one to another pattern with the data/modulation wheel.

Thrs stands for "Threshold morphing" which has been implemented especially for Note events (Drum patterns):
Note and Velocity (Layer A and B) are switched to an alternative track once the morph position (controlled from the menu or with a modulation wheel) passes the so called threshold level of the played step.

The threshold can be set for each step separately in Layer C (normaly used for the gatelength).
In other words: the threshold levels of every step are used to determine at which morphing level the sequencer should play the note from another track.

The gatelength itself is fixed in this mode.

BPM

BPM

 

 

Save Pattern

Save Pattern

 

 

 

Metronome

Metronome

 

MBSEQ Options

MBSEQ Options

 

 

MIDI Configuration

MIDI Configuration

The MIDI merger allows you to plug the MIDIbox and a keyboard to a computer w/o the need for a second MIDI In interface. Just plug the MIDI Out of your keyboard to the MIDI In of MIDIbox and the MIDI Out of the MIDIbox to the MIDI In of your computer.

If you connect the MIDI In of the MIDIbox with MIDI Out of your computer, you should disable the MIDI merger in order to avoid endless feedback loops.

If multiple MIDIboxes should be cascaded based on the MIDIbox Link concept, all MIDIboxes have to be declared as MIDIbox Link Forwarding Point...

except for the last MIDIbox which has to be declared as MIDIbox Link Endpoint.

Note: In this menu, you are also able to enable the MIDIbox-to-COM option with the SELECT button. Find more informations at the MIDIbox-to-COM Interface Page!

Send SysEx

Send SysEx

In this submenu the device ID can be selected, and a SysEx dump of the current pattern can be triggered manually with the SELECT button.
Note that the device ID won't be saved in the EEPROM memory, it will be derived from the MIOS device ID after power-on.

NOTE: This design is expired! In 2009 MIDIbox SEQ V4 has been developed which replaced the old version. See this page for more details.



Last update: 2023-11-04

Copyright © 1998-2023, Thorsten Klose. All rights reserved.