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.mp3Very 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.mp3Just an arpeggiator test, nothing more - edited within 5 minutes, played some random chords and took the best ones ;-)

mbseq_v2_demo3.mp3This 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.mp3A 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.

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?

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.

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).

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
all 16 steps are visible on screen.

2x40 LCD
only 8 steps are visible on screen (visible beats selected by last changed value).

2x20 LCD
only 4 steps are visible on screen (visible beat selected by last changed value).

2x16 LCD
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
menu pages are aligned to the right side of the first LCD.

2x40 LCD
menu pages are aligned to the right side of the LCD.

2x20 LCD
menu pages are centered on screen.

2x16 LCD
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:

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 menuF2: shortcut to step record menuF3: unmutes all tracksF4: 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

Mute Tracks

Patterns

Song

Track Events

Track Mode

Direction

Clock Divider

Track Length

Track Transpose

Track Groove

Layer Assignments

Track Shift

Manual Trigger

Record Steps

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

Save Pattern

Metronome

MBSEQ Options

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

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.