English Version French Version

MIDIbox SID Control Surface

Created 2003

WARNING: This tutorial describes features of MIDIbox SID V1 - they are partly handled on a different way in MIDIbox SID V2. More details can be found in the MBSID V2 User Manual.

The intention behind the minimal MIDIbox SID Control surface was to provide a flexible menu navigation for a fast access to all parameters. It doesn't allocate too much memory so that enough program space is still free for even more sound features, and it supports various hardware options, so that users can decide how much money (and panel area) they want to spent for their SID synthesizer.

If you haven't read the introduction of MIOS yet, you should do it now, because the control unit is only supported by the PIC18F version of MIDIbox SID. There is no way to integrate something similar into the PIC16F version due to the limitations of this product family. Therefore the PIC16F based cores can only be used as pure sound devices whose parameters are soley controllable via MIDI. However, a later version of the control surface will provide a link to PIC16F (and PIC18F) cores so that several MIDIbox SIDs running with the older chip can be accessed from the PIC18F control unit.


Current implementation status:

  • Step A: done - a minimal control unit w/ some navigations buttons and an optional rotary encoder for data entry
  • Step B: done - the possibility to control up to 4 SIDs from the control surface
  • Step C: done - the complete control surface

Hardware options

Currently following options are provided. They have to be configured in the main.asm file of the application source code:

  • 2x40 LCD 2x40 option
    SCHEMATIC: With rotary encoder (2x40_enc.pdf) or Inc/Dec buttons (2x40_b.pdf), one menu and 10 selection buttons.
  • 2x20 LCD 2x20 option
    SCHEMATIC: With rotary encoder (2x20_enc.pdf) or Inc/Dec buttons (2x20_b.pdf), one menu and 5 selection buttons.
  • 2x16 LCD 2x16 option
    SCHEMATIC: With rotary encoder (2x16_enc.pdf) or Inc/Dec buttons (2x16_b.pdf), one menu and 4 selection buttons.

I will use a 2x20 LCD for my own control surface, since a 2x40 is too big for the panel, and not necessary anyhow due to the additional encoders. With the complete setup the data entry unit is still usefull for editing wavetables and for further configurations (MIDI channel, patch number, patch name, etc...)

Menu navigation

The menu navigation is based on inspirations from the VST control feature of Logic Control and the menu handling of my HP48 calculator ;-)

A (slow) blinking cursor notifies the selected menu item. Here: OSC
If the item, which should be modified, is not visible on screen, you can scroll through the parameter list with the rotary encoder (or Inc/Dec buttons - in the following it will not be mentioned anymore that the encoder can be replaced by two buttons)
the parameters are shifted to the left step by step by the encoder...
...until the end of item list has been reached
Once you've found the parameter, just press the appropriate selection button to enter the edit mode.
Tweak the encoder to change the value.
You can press another selection button anytime to edit another value.
And you've to press the menu button to leave the edit mode.
Press the menu button again to change to the next upper menu.

Meaning of the parameters

Here a short introduction of the available parameters. Note that upcoming versions of MIDIbox SID could provide even more which are not listed here!

In the main section you can select between several submenus: OSC (oscillators), FIL (filters), LFO (low frequency oscillators), ENV (envelopes), MOD (modulation matrix), ...
WT (wavetables), CFG (configuration), SAV (save patch)

OSC submenu

OSC selects the oscillator(s). The parameters right to this item are displayed accordingly. If more than one oscillator is selected, only the values of the first will be displayed, but the values of all selected will be changed.
WAV stands for waveform, S/R for Sync/Ringmodulation, Del for Delay, Atk for Attack.
Dec Decay, Sus Sustain, Rel Release, PRnl Pitch Range, Trn Transpose
Trn Transpose, Fin Finetune, Por Portamento Rate, Arp Arpeggiator Rate, PW Pulsewidth

FIL submenu

Chn Channels which are assigned to the filter, Cut Cutoff Frequency, Res Resonance, Mod Mode (L: Lowpass, B: Bandpass, H Highpass)
Ext activates filter also for the audio input, 3Of disables the 3rd oscillator.

LFO submenu

LFO selects 1 of 6 LFOs, Wav selects the waveform (Sin since, Tri Triangle, Saw Saw, Pul Pulse), Rte LFO rate, Dep LFO depth, Syn synchronization to note events (no unsynced, All to all notes, Asn to assigned notes of the same channel)

ENV submenu

ENV selects 1 of 2 envelopes
Dep envelope depth, Atk Attack, Dec Decay, Sus Sustain, Rel Release

MOD submenu

Mod selects the modulation target: O[123]P OSC1/2/3 pitch, O[123]W OSC1/2/3 pulsewidth, Fil filter
With E1, E2, L1, L2, L3, L4, L5, L6 the modulation sources (envelopes and LFOs) can be assigned to the selected targets.

WT submenu

Pos selects wavetable entry, Mod the mode (Ply: Play, Jmp: Jump, End end). #1, #2 and #3 are the parameters which are modified with every step.
Rte the play rate (speed) of the wavetable, CC1-3 the CC values which are modified by the wavetable sequencer
Btw.: since it's difficult to remember all available CC numbers, the CC parameter string will be displayed when you modify the number

CFG submenu

Chn MIDI channel, Dev Device ID (only the ID of the control surface can be changed here!), Nam Patch Name, Vol volume, Ply Play mode (Mon mono, Leg legato, WTS Notes only controlled by Wavetable sequencer, Pol Poly)
SuK SusKey on/off, Clk Clock sources (Int all targets clocked from internal, else combinations of: W: Wavetable, L: LFOs, E: Envelopes are clocked from external), VCC CC number assigned to velocity, VIn Init value, VDp Depth
MCC CC number assigned to the modulation wheel, MIn Init value, MDp Depth, ACC CC number assigned to the aftertouch, MIn Init value
ADp Aftertouch depth
When you select the Nam item, an edit screen will appear which allows you to change the patch name

Top Screen

Press the enter button twice to reach the top screen. Here you can select the patch with the rotary encoder. Additional informations: P Patch number, C MIDI Channel, 1234 selected SIDs
Note: patch number as well as parameter changes will be forwarded to all selected SIDs

(*) Please note: in MIDIbox SID V2, the LINK/CC/EDIT buttons got a new/modified function! The LINK button has the purpose of a SHIFT button (the MIDI link is obsolete, since MIDIbox Link has been replaced by MBNet). In addition, it displays a special configuration page, which for example allows you to switch between left and right SID channel. The CC button is used for "Page Up" (increments OSC/LFO/ENV/MOD/TRG/KNB), and the Edit button is used for "Page Down" (decrements OSC/LFO/ENV/MOD/TRG/KNB). SHIFT+CC and SHIFT+EDIT still switch the CC/Edit function like before (means: the two LED labels are still valid).
This changed behaviour should be considered when labling a new front panel

Wanna tweak more?

...then continue here...

Last update: 2023-11-04

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