MBBS user manual
MBBS – MIDI keyboard
firmware version 1.x
Roman Sowa 2010
This manual describes the use and functionality of MBBS, a small MIDI controller for
one 5-octave kayboard, that can be expanded to work with more keyboards, pots and
Apart from direct inputs for 5-octave keyboard with common bus bar, there are 2
scanner inputs. Each of them can take up to 128 keys if keyboard scanner is
connected, or up to 64 potentiometers if pot scanner is used. Up to 5 keyboard
scanners can work together but only one input at a time can work with a chain of
potentiometer scanners. It is possible to combine keyboard and potentiometer
scanners on one input, thus 319 keys and 64 pots.
63 direct inputs for keyboard switches
2 scanner inputs, for keyboards and potentiometers
user defined split for every keyboard
independent transposition for all keyboards/splits
user defined MIDI channel for each keyboard/split and pot
user defined MIDI event for each pot and keyboard split
select patch (MIDI Program Change) from keyboard by entering patch number.
all settings remain after disconnecting power
DC power supply (6V-12V DC)
keyboard connectors
scanner connectors
(chapter 7)
MIDI output
common ground for
keyboard switches
Power supply
Recommended power supply range is between 6 and 12V DC. It is possible to run this
board from lower voltage, but its operation is not guaranteed then. Current
consumption depends on the number of attached scanners and does not exceed
10mA, making it suitable for battery operation. This figure doesn't include the load
caused by potentiometers if they are used with appropriate scanners. If e.g. those are
20k pots, current consumption will rise by 0.25mA per pot. LCD module takes more
current, about 20mA. It is highly recommended to connect no more than one LCD
module to MBBS.
The board comes with screw terminals for power. Make sure to use proper polarity of
power supply. Connecting power in reverse will not cause any damage, but of course it
will only work when proper power polarity is asured.
Connecting keyboards
Main keyboard connects to 4 onboard IDC headers according to the schematic below.
Each black connector holds 16 inputs for
keyboard switches. The pin numbering
within one connector is shown here:
At the edge of the board there are 3 soldering pads (holes) to connect common
ground of all swithces in a keyboard. The common may be connected there, or minus
(-) supply lead of MBBS, whatever is more convenient.
Additional keyboards can only be connected via additional keyboard scanner. There are
several scanners available: for 32, 64, 128 keys, with switches organized in 8x8 matrix
and single-rod bus-bar. All available scanners are described in chapter 9. Type of the
scanner is determined by keyboard size and the way how switches are organized.
Connection between keyboard scanner and MBBS main board is always the same,
regardless of the type of scanner. MIDI settings of those keyboards can be changed by
the user after all connections are in place. 8x8 scanner driver can be used if the
keyboard has “scanning diode matrix”, that's very simple circuit, made of diodes
forming electric XY array of 8 rows and 8 columns. Usually all modern keyboards are
equipped with it. In fact it is integral part of the contacts board found beneath the
keys. Those kind of keyboards can work directly with DMS-2K scanner. Its advantage is
that it can connect 2 such keyboards. Older keyboards, and especially those used in
old analog organs, usually don't have such a thing, so in order to use 8x8 scanner, you
must build diode matrix yourself, assuming it is possible to separate the contacts into
groups of 8 keys. There are also scanners especially designed for keyboards without
diodes, where all keys share only one common bus, this is typical keyboard
arrangement in all old organ consoles.
Below is a short table showing which scanner can be used with different keyboards:
Keyboard type
Independent switches, no connections
Switches organized in 8x8 diode matrix
Switches organized in 5x12 and other
One common rail for all switches
● - can be used directly
◊ - with additional diodes
‡ - rewiring of original contacts circuit required
Connecting potentiometers
Pot inputs may be added with use of proper scanners, like POT32X, POT12, POT3 or
PEDSCAN-X. They can be used as continuous controllers for things like volume,
modulation etc. Usually those inputs would be connected to potentiometers, but it's
possible to use them as analog inputs with range of 0..+5V. Applying voltage of 0V
creates CC with lowest value, while +5V makes highest possible value of assigned
MIDI parameter. Each input in the system has separately assigned MIDI event and
channel. This assignment can be easily changed by the user with use of special
programing keypad, or lowest 10 keys of any connected keyboard. Every
potentiometer scanner is described in chapter 9, with connection schematics.
All potentiometers must be linear taper (not audio) in range 10-50k,
preferably 20k.
If there are 2 or more potentiometer scanners in the system, they must be chained,
i.e. first board is connected to MBBS, and second one is connected to first POT board,
etc. If you use both inputs of MBBS to connect POT boards, they both will share the
same settings. That means it would be like having 2 potentiometers for the same MIDI
parameter on the same channel. The chain of potentiometer scanners can be
connected to any of the two MBBS inputs, or any daisy-chain input of other connected
scanners, but only one. Only keyboard scanners can be connected to all inputs at the
same time.
You can mix different kinds of POT scanners in one chain. There can be for example
one POT32X, then two POT12, and POT3 at the end. Although this configuration is a
bit strange, it will work as expected, giving you total of 59 potentiometer inputs. The
total number of active inputs is limited to 64. All additional inputs will be ignored.
Every POT scanner has pins for connecting outer leads of the pots. They are described
as +5V and GND. You must NOT connect anything except potentiometers, they are
only for connection end potentiometer taps.
Analog inputs update rate
All analog inputs of potentiometer scanners (POT32X, POT12, POT3, PEDSCAN-X)
translate input voltages, or potentiometer position into MIDI. Actual pot position is
updated via MIDI every time it changes. However, the update is not immediate - this is
common to any MIDI knob box. The fastest response for potentiometer movement on
a single input is about 5ms. It means that when you constantly move the pot, MBBS
will issue a MIDI update every 5ms. This is more than enough for most of uses. In
some instruments, either hardware, or virtual, some problem may occur when there is
a lot of MIDI going on. It is also sometimes desirable to limit MIDI traffic e.g. to
minimize the size of recorded MIDI file. It is possible to change this setting using
command "#98n" from the keypad, where "n" determines update rate according to the
table below. If you don't have the keypad, use the last input of J4, marked as "EDIT
input" instead of "#" button, and lowet 10 keyboard inputs as numbers 0-9.
Default factory setting is 18ms.
#980 #981 #982 #983 #984 #985 #986 #987 #988 #989
pot latency
update rate
200Hz 145Hz 115Hz 80Hz
13ms 18ms 25ms 35ms 50ms 70ms 0.1s
55Hz 40Hz
This setting is available for all POT32X, POT12, POT3 and PEDSCAN-X scanners
connected to MBBS board. Each board may have different update rates. For example
you can set it to 50ms on first POT scanner, and 13ms on second one (assuming you
have 2). As usual, to change any settings for particular board, select it first by moving
a bit any potentiometer connected to board in question. Then using your keypad enter
the code from above table. New settings will be activated and remembered.
More on user settings and general procedure can be found in next chapter.
MIDI settings and special functions
All settings are accessible from any keyboard connected to MBBS, either to onboard
direct inputs, or with any type of compatible scanner. The last pin (64th) of onoard
keyboard scanner (pin 16 of J4) should be connected to a separate momentary switch.
This is the entry to EDIT mode and allows changing all settings of entire set. Detailed
settings are described later in this chapter. To make the settings more ergonomic and
easier, there's optional numeric keypad available, similar to phone keypad. It is
connected the same way as any keyboard scanner with 4-wire cable, and works like
actual keyboard, meaning it is possible to play notes with it. But the advantage is the
„#” key, which duplicates the EDIT function available in mentioned 64th onboard pin.
To change any settings in EDIT mode, you have to enter new value of given
parameter. To do so, use lowest 10 keys of the keyboard as numeric entry. Lowest key
is digit „0”, while 10th key is digit „9”. As a general rule, any change on a controller
(keyboard, or potentiometer) requires selecting this controller first before making
change. For example, if you want to change MIDI channel of certain potentiometer,
move it a bit, and go into MIDI channel settings mode. Or to change the split point –
first play any note on the keyboard to be split, and enter split-point change mode.
In this chapter, describing how to set all parameters, whenever „#” sign is mentioned,
it means the "EDIT" key, connected to 64th pin shown in the layout section, or the „#”
or "*" key on numeric keypad if one is present in the system. All three have exactly
the same function. Numeric entries are provided with the assumption that numeric
keypad is used, but the same can be achieved with lowest 10 keys of any keyboard
connected to MBBS. It helps to add a sticker over those keys with numbers from 0 to 9
if only musical keyboard is used.
If you also have dedicated LCD module - MiDisp, all settings activity is visible. It's
much easier then to recognize what stage of programming you are in, and short
prompts are displayed according to your selection.
Transposition of keyboards
Transposition of keyboards connected to MBBS is unlimited, that means any key can
generate any note from full MIDI range of over 12 octaves. There are two ways of
using it. Typical one is by selecting new middle C position. First you have to select the
keyboard you want to edit by playing any note on it. Enter „#” then „1" on the keypad.
Now, whatever key you press, it will be the new position of the middle C MIDI note
afterwards. You can select new position of middle C note anywhere between 3rd and
top key of the keyboard.
Another option is to use lowest 2 keys of the keyboard, or numbers "0" and "1" of the
keypad. It doesn't matter if keyboard starts with key C or F or whatever, those are
always two lowest keys. The 1st one shifts the keyboard one semitone down with each
sequence (#10), the 2nd shifts the keyboard one semitone up (#11).
Of course the keyboard to transpose must be the last one played. This is useful when
you want to shift the keyboard in range not available by the first method, for example
in bass pedals.
7.2 MIDI event assignment for keyboards and analog
MIDI event assigned to given potentiometer or keyboard split can be easily changed.
To perform this, turn a bit the knob, or play a key on the split you want to assign, and
then select the controller type by entering keys # then 2 and then appropriate number
from the list that follows. You need to enter 2 or 3 digits for each input controller
depending on entered number. To assign another one, again you must turn the pot it a
bit, or play the key on another split, and then start from "#2" sequence followed by
event type number.
Possible MIDI event codes are from 000 to 149.
Standard setting for a keyboard is "# 2 131" - single notes, and for analog
input is Continuous Controller: "# 2 nnn" - where "nnn" is number from 001 to
64. This is factory default.
Possible settings are:
Control Change - #2 CC
whew "CC" is any MIDI Control Change number in range from "000" up to "127".
Numbers above 127 are used to generate MIDI events other than Control Change, or
turn them into other functions, what is described next.
Pitch Bend - #2128
The pot will work then as pitch bender. If assigned to a keyboard (not recommended),
each key will set pitch bender in 1/128 steps across the keyboard. Range can be
adjusted with transposition settings.
Program Change - #2129
If assigned to a keyboard, pressing each key will generate MIDI Program Change
message with different patch number. Starting number can be adjusted with
transposition setting. This is useful for organ emulators, where bank of Program
Change buttons can be used to work as pistons (sets of registers). Although this is
rather unusual usage for a potentiometer, it will generate MIDI Program Change
messages with its every move. Program Change can be also generated from the
keypad, by using sequence "# 4 <number>" – this is described in 7.4. Yet another
way of selecting Program Change is described in 7.2.8
Channel After Touch - #2130
Turning such pot will cause Channel After Touch messages to be sent out. If assigned
to a keyboard, each key will set After Touch in 1/128 steps across the keyboard. Range
can be adjusted with transposition settings.
Standard keyboard action – single notes - #2131
Whenever MIDI event 131 is assigned to a keyboard, it works as typical MIDI
keyboard, playing MIDI notes. It is also possible to generate notes played in glissando,
when this event is assigned to a pot. Select the pot to be edited, enter "# 2 131". This
knob becomes then a note generator resembling quantized Theremin. Move the knob
and a series of notes will be played. There's only one note played at a time (with
velocity set like described later) and it is released just before new note is about to
play. Whole knob slow rotation plays 128 notes from entire MIDI range.
Note on only - #2132
This mode is somehow similar to the action described just before, but only "note-on"
messages are generated, that means whenever you move this pot, new notes will be
played, and they will stay on forever unless proper note-off message will be issued by
another means. If assigned to a keyboard, only note-on messages will be sent. It will
work like with constantly depressed sustain pedal.
Note off only - #2133
This is like "note-on" mode described before, but instead it sends out only note-off
messages. It can be used to mute part of notes already played, or as some kind of
panic button – slow full rotation mutes all notes in assigned channel. If assigned to a
keyboard, it will send only note-offs, so it may be used to quiet some notes played
One-touch Patch Recall - #2134
Keyboard in this mode serves as an array of favorite patches buttons. Each key recalls
Program Change (or in another words - selects a patch/preset) that was earlier
programmed. There's 64 memory locations, so you can use one full 64 key scanner.
For example you can program key 1 to send Program Change 37, key 2 as PC#76, key
3 as PC#20 etc. Assigning Program Change numbers to a specific key is described
later, in paragraph 7.6 "Programming Patch Recall Buttons".
CC keyboard - #2135
This feature has no effect on a pot, i.e. the pot will generate no MIDI event if it has
this feature assigned. In this mode you can use keyboard as toggle switches selecting
min/max values in a subset of CCs. All keys have increasing MIDI Continuous
Controller assigned. Pressed key sends CC with max value (127), while key release
generates the same CC but with minimum value (0). CCs are ordered just like there
would be MIDI notes, i.e. typically they start from CC#36 at the lowest key, next key is
CC#37 etc. Use transposition settings to set different starting CC.
MIDI channel shift for all controls - #2136
This is usable only with keyboard scanners, because using it with pot needs high
precision, as full change takes about 1/8 of a turn. When assigned to a keyboard, first
16 keys work like MIDI channel selector for all controllers. After one of the keys is hit,
notes played on all keyboards are played in altered channel. Individual channel
settings for every keyboard and potentiometer described in chapter 7.3 work together
with this setting. For example if one keyboard was set to channel 3, and you change
the channel using this feature to +4 (by hitting 5th key), resulting channel is 7 (3+4).
If all controllers are set to channel 1, then all 16 keys assigned to this feature are
direct channel selectors from 1 to 16.
Small Transposer - #2137
Select the pot to be edited, enter "# 2 137". Turning such pot will shift all notes played
on all connected keyboard scanners by number of semitones determined by pot
position. In the middle it gives no shift, and full rotation has range from -4 to +4
semitones. It's most useful when pot is replaced by 9-position switch with 8 resistors
of equal value connected between switch leads. Assigning this to a keyboard is also
possible, but you cannot reach full range of transposition then.
Big Transposer - #2138
Turning such pot will shift all notes played on all connected keyboard scanners by
number of semitones determined by pot position. In the middle it gives no shift, and
full rotation has range from -8 to +8 semitones. Assigning this to a keyboard is also
possible, but you cannot reach full range of transposition then.
Velocity - #2139
Position of this pot will then determine velocity parameter of all MIDI notes played. If
assigned to a keyboard, each key will set velocity of all notes in 1/128 steps across the
keyboard. Range can be adjusted with transposition settings. There can be only one
such potentiometer for the whole system, and its settings affect all notes played on all
keyboards in all channels. It's not intended for initialisation setup during installation,
but rather as a way of performance expression during play. To set the velocity once,
and always use chosen value, even after power cycle, use parameter #2149. It works
exactly like the one described here, but additionally it remembers last position in
nonvolatile memory, so it will use the same value after next power-up.
Native Instruments B4 chorus/vibrato - #2140
Turning this pot will be reflected in B4 as "chorus/vibrato"
switch move. It has only 6 positions, and appropriate
command will be sent from MBBS to B4 every time the
potentiometer crosses each threshold representing another
vibrato/chorus mode. That's why it is recommended to use
small circuit with rotary switch shown on the right for easier
B4 usage.
MidiTzer stops control - #2141
When assigned to a keyboard, each key becomes specific stop controller. When a key
is pressed, MIDI controller 81 (51 hex) is sent, and when it is released, MIDI controller
80 (50 hex). Value of the controller is determined by the button pressed. This is
default way of controlling stops in MidiTzer organ software.
Ahlborn Archive module stops control - #2142
If assigned to a keyboard, each key becomes stop control in Ahlborn Archive organ
sound-module. When a key is pressed, MIDI controller 73 (49 hex) is sent, when
released, MIDI controller 74 (4A hex). Value of the controller is determined by the
button pressed. This is default way of controlling stops in Ahlborn Archive module.
Ahlborn Organs stops control - #2143
When assigned to a keyboard, each key becomes specific stop controller in Ahlborn
Organs. When a key is pressed, MIDI controller 70 (46 hex) is sent with bit 6 of the
value set, and when it is released, the same MIDI controller but with bit 6 of the value
cleared. Other bits of the value are determined by the button pressed. In another
words, pressing the button sends CC 70 with value range 0-63, and releasing a button
- CC 70 with value range 64-127. This is default way of controlling stops in Ahlborn
Program selector - #2144
This is special mode for potentiometer, that together with another pot configured as
described in 7.2.19 alows to select one of 120 available MIDI Program Changes
(presets) by use of 2 rotary switches. Program selector selects one of 12 Programs
within a bank. For better feel, you should rather use 12-position rotary switch. To do
so, use schematics below to build appropriate resistor network around the switch.
Bank selector - #2145
This mode works in combination
with the one described in 7.2.18. A
potentiometer or switch assigned to
this mode selects banks of 12
Programs. E.g. if it is in lowest
position, you can select any of
Program numbers from range 1-12
using Program selector described
above. If you change the bank one
position higher, Program selector
will then select programs from
range 13-24, and so on, up until
program number 120. To use 10position rotary switch instead of
potentiometer, you must add appropriate resistor network around the switch leads, as
shown in schematics above.
Bank selector and Program selector are useful only if you really want to select
programs by rotary switches, for example to match MIDI controller behavior to NI B4
Hammond emulator, where bank selector works exactly like that. In typical case you'd
probably use different way of selecting programs, like "#4<number> described in
chapter 7.4.
One time velocity setup - #2149
This is similar to velocity settings described in 7.2.13, but in addition, it saves last used
velocity settings in nonvolatile memory. This should be used only during installation,
when you want to set default velocity of notes after each power up. For expression
and frequent usage, control the velocity by assigning #2139.
MIDI Channel
Channel of each device, like potentiometer or keyboard can be set individually. To
change MIDI channel of certain potentiometer select the pot by simply turning it a bit.
Then select the MIDI channel with the following sequence: "# 3 <channel number>".
The channel number must be in range 1-16. Channels from 2 to 9 require only 1 key
stroke, while 1 needs to be entered as 2 digits – namely "01". Channel 10 and above
of course need 2 keystrokes too. Then turn another potentiometer and select its
channel the same way. To change MIDI channel of the keyboard, first select it by
playing a note, and enter mentioned sequence with channel number.
Program Change
MBBS allows you to send Program Change MIDI messages, or in another words –
change patches. Three ways are available. Two were mentioned in Event Assignment
chapter (7.2.), where you could program the potentiometer to act like 128-position
patch rotary switch, or use keyboard assigned to Program Change to act like array of
single touch patch select buttons. To change the patch on selected keyboard directly
to specific number, play a note on this keyboard and enter the sequence: "# 4
<program number>". The Program Change MIDI message is sent directly after last
digit of entered patch number. This may happen after 2nd or 3rd digit. You only need
to enter 2 digit, when the patch number is in range 13-99. Programs lower than 13
require 3 digits, with 0s in front, for example 012, or 003. Obviously, programs with
numbers higher than 99 also need 3 digits. The range of Program Change is from 000
to 127.
Keyboard split
It is possible to split each keyboard into 2 independent parts. The split point can be
anywhere on the keyboard, and both parts can work with independently adjusted MIDI
channel, type of event and starting note (transposition) or range of other controllers if
something else than notes is assigned to a keyboard. Assuming that both scanner
connectors of MBBS are populated with DMS-2K dual keyboard scanners, or chains of
2 BBS-1K, it is possible to make a system with 10 splits. To set up the split point, you
have to select the keyboard by playing a note on it, and then enter sequence „# 5”
followed by stroke of the key that you want to be the top one of the lower part.
Since then, lower part remains on the same channel that was used for whole
keyboard, while upper part switches to different settings, which by default is 5 MIDI
channels higher. To change MIDI channel, type of event, transposition, or send a
Program Change for split part, follow directions described before, regarding non-split
keyboard, but now changes are made only in this split part, which was selected by
playing a note prior entering the edit mode.
Programming Patch Recall Buttons
Whenever a program/patch/instrument selected from MBBS is often used, it is worth
to memorize as fast recall button. There can be 64 such buttons, selected for last
played keyboard, split, or turned pot. First you play on a keyboard, and to change a
patch, simply select one of the buttons assigned as one-touch program recall
described in chapter 7.2.8. This key can be any of 64 keys in any keyboard scanner, or
digit 0-9 from numeric keypad. It's nice to have buttons with LEDs showing last
selected patch. This can be realized with use of LITSW board, described in scanners
section. MBBS will send the patch number in channel of last played keyboard, or last
turned pot. To set any patch this way, you have to first select this patch somehow –
either by entering „# 4 <patch number>”, or by turning „Program Change” knob if one
is assigned, or by using one of the keys in keyboard assigned to Program Change
event. Then simply press "# 6", and then the key where the patch should be stored.
Next time whenever you press this key/button, the MIDI Program Change message
will be send, setting the patch that was programmed into that button.
MIDI monitor
MBBS board have one outstanding feature that helps during installation and
troubleshooting. You can activate MIDI monitor if you have special LCD module
connected. To activate this function, select #971, and the LCD will turn red, showing
"DEBUG MODE". Each activity on any scanner will be shown in the display. Every time
you press or release any key, or turn the potentiometer, the display will change, and
show last transmitted data. The meaning of displayed values are: "D" - internal device
number in the system, "Ch" - MIDI channel, "E" - event number as described in
chapter 7.2., "S" - MIDI status byte in hex, "V1" - value of 1st MIDI data byte in hex,
"V2" - value of 2nd MIDI data byte in hex. MIDI monitor should not be enabled at all
times, it increases MIDI latency and may cause dropped notes during very fast
keyboard playing. To turn off the MIDI monitor, simply enter #970 from the keypad.
MBBS board is the merging point for all keyboard and potentiometer scanners.
Depending on their sizes, the whole system can cover up to 5 keyboards with 319 keys
over single MIDI socket together with 64 potentiometers at the same time.
Currently available sizes are: 32, 64 and 128 keys, the last one has the 128 keys
grouped in 2 keyboards. For analog (pots) there are boards with 3, 12 and 32 inputs
pedal scanner - PEDSCAN-X
Pedal board controller takes care of 32 keys and one analog input, usually all what's
needed for pedals with a swell shoe. It's a small board that can be fitted inside pedal
board, and it connects to the main board via supplied 4-wire cable from J2 connector.
3 pads labeled in this picture as J3, are for
potentiometer. The picture shows how to connect the
pot, and also in which pot position you get the
maximum, or minimum value of given MIDI parameter
controlled by the pot. Go to chapter 6.1 for more info.
Keys must be connected in diode matrix exactly like in
the schematics below:
The groups of 8 switches with 1 common lead must be separate. In case of
keyboard with 1 common bus bar going through entire keyboard, you have
to cut the bar every 8th key.
dual keyboard scanner - DMS-2K
For keyboards with installed diode matrix ideal solution is to use DMS-2K, adding 128
inputs. This can be described as "diode matrix driver" for 2 keyboards. The layout is
shown on the next page. There are two 16-way connectors, that usually are used to
connect diode-matrix keyboards. Smaller connector is used to connect it with main
controller board - MBBS. The keyboards must have “8x8 scanning diode matrix”, that's
very simple circuit, made of diodes forming electric XY matrix. Usually all modern
keyboards are equipped with it although sometimes the matrix is organized differently,
sometimes it is 5x12 or 6x11. In such case you must rewire the diodes, or order
customized DMS-2K.
J1 – connector of 1st group of keys (1 to
J2 – connector of 2nd group of keys (65
to 128)
J3 – connector linking this board with the
main board
Each 16-way connector covers one keyboard.
Schematic on the right shows example of diode matrix compatible
with DMS-2K board. Although this is default matrix layout, DMS-2K
can be reconfigured by the user to work with 4 different diode
matrix types. All 4 are need to be 8x8 but can have different order
of notes. The only requirement is that cathodes are connected to
odd pins of DMS-2K connector, and anodes to even pins. Either
directly or via key switch. If, after the keyboard is connected, the
order of keys is not correct, you can try one of the 4 modes of
DMS-2K operation in the following way:
1. play any note on a keyboard connected to DMS-2K
2. enter EDIT mode either by activating 64th input of onboard
MBBS scanner, or by pressing "#" keypad button
3. enter "92" from numeric keypad, or onboard scanner (pin
10 and then pin 3 of J1)
4. enter one digit from range 1-4 using keypad, or inputs 2-5
of J1. Each digit turns the scanner into different one of 4
modes of how notes are ordered.
5. play the DMS-2K keyboard to check if it is OK now. If not,
start from the beginning, but now select different digit from
range 1-4 in step 4.
9.3 common contact scanner - BBS64X,
There's another family of keyboard scanners, especially suitable
for keyboards with single rod used as common bus for all switches
in entire keyboard. This one does not use diode matrix, and can
be used with almost any type of switch arrangement, it can also
be controlled by logic gates. The BBSX boards come in 2 variants.
They can work with either positive or negative keying, which
means that key pressed is represented by 0V, or +5V, but proper
BBS version must be selected when placing order. The board can
have less 16-pin connectors available, covering only 32 keys. It's
then called BBS32X.
In case of the big, 64-keys version, keyboard is connected to four 16-pin connectors J1, J2, J3 and J4 shown below. Each of them covers 16 keys.
The key contacts can have one common buss bar (with GND), or it can be driven from
logic IC outputs. 0V at an input means “key pressed”, +5V at input or left open means
“key released”. The BBS board can be also ordered with reversed logic, i.e. positive
voltage at input means “key pressed”, 0V - “key released”.
Keyboard should be connected to four 16-pin headers according to the diagram below.
It's best to use 4 IDC connectors and 16-wire flat computer grade cable. Each cable
connects to 16 consecutive keys.
common contact chained scanner - BBS-1K
This one has the same functionality as BBSX boards described in chapter 9.3, but adds
a few interesting features. For basic functionality and connections description please
refer to chapter 9.3, here are only outlined the differences between those 2 boards.
BBS-1K has daisy-chain input, which allows to pack more scanners into the system.
For example you can use 4 BBS-1K boards, but only 2 BBSX boards. It also has a bit
different connector layout, but all 4 connectors for ribbon cable are the same. In
contrary to BBSX, this one comes always in 64-inputs version, there's no smaller one.
Each black connector covers 16 keys, and little sticker on the board shows what range
of inputs is assigned to each connector. This is also explained in the following diagram.
BBS-1K must be connected towards
the MBBS with 4-way connector
indicated above as "OUT". The
connector marked "IN" is for the
purpose of adding next optional
scanner. There can be only 2
keyboard scanners (BBS-1K or
other) connected in one chain. If
third keyboard scanner is used on
one input, it will behave like
paralleled inputs of 2nd BBS-1K in
the chain. Hence the limit of 5 keyboards.
LITSW - button scanner with LED drivers
LITSW is the controller for lighted switches. It has 24 inputs for contacts, and 24
outputs for LEDs associated with them. Currently available modes of operation for this
board are:
1. independent registers, where each button hit turns the LED on and off, and
proper MIDI message is generated according to MBBS setting for that scanner.
If this is MIDI note, a note-on is generated at LED turn-on and note-off when
LED turns off. If it is Program Change, only one event is generated, when the
LED turns on
2. dependent choice, where only one LED-button can be active (lights up).
Pressing any other button makes all previously lighted ones to turn off, and the
one pressed lights up now. If assigned to notes, only MIDI note-on is
generated, so this mode is more suitable for use with Program Change
3. keyboard mode, where button action can be treated as typical keyboard
scanner. So all kinds of MIDI events applicable to a keyboard are also possible
4. potentiometer mode, where LITSW simulates potentiometer scanner. Buttons
don't act like in keyboard scanner, but simulate min/max position of a
potentiometer. This allows to assign MIDI events and channels separately to
each of the buttons.
5. bank/select, useful for preset selectors. In this mode LITSW must be split in 2
parts. One is serving as bank select, the other one - as program select. If the
split is made at 10th key, lower split is representing units of given Program
number, and the upper one - tens of this number. Of course it makes more
sense when MIDI event 129 is programmed in MBBS (that's Program Change)
It is possible to select more than one mode at once, although not always it makes
sense. For example modes 1-2, as well as 3-4 are mutually exclusive, but you can set
for example modes 1, 3 and 5 together.
LED-buttons 1-8
LED buttons 9-16
LED buttons 17-24
connector to MBBS
The pins of each LED-button connector are
interlaced for easier installation. Odd pins are
LED outputs, and even pins are button inputs
in the following manner: pin 1 - LED 1, pin 2 button 1, pin 3 - LED 2, pin 4 - button 2, etc.
This is shown in the schematic on the left.
Each 16-pin connector's layout is the same.
LITSW setup
In order to change the way how LITSW operates, it MUST be connected directly to one
of scanner inputs of MBBS, and not via any daisy-chaining scanners, like POT32,
POT12, display, or BBS-1K. After programming is done, it can be placed anywhere in
the system if it's more feasible, and only after that you can assign channels and events
to the buttons. Do not try to change MIDI events or channels for LITSW until it is in its
final position with regards to daisy chained modules.
With factory settings it generates note-on and note-off messages with momentary
buttons and LEDs, most useful as register control in organ emulator. But it can be
converted into a few variations, finding its way toward other non-typical uses. Possible
controls are:
Split point - #905
This is different kind of split than the one described in paragraph 7.5 and is
independent of that one. So you can use both kinds of split at one time, and they can
be at different points. The kind described here controls only button's behavior, and not
actual MIDI data transmitted by MBBS to MIDI OUT socket. Each split can work in
different mode, with independent or dependent buttons, generating CCs or notes. To
have different MIDI events or channels in the splits you have to also split it logically,
using procedure described in 7.5.
Independent mode - #908
In independent mode, all buttons work without interactions to each other. If a button
is pressed, associated LED lights, and note-on is sent by MBBS (only if it is configured
to send notes on this input - sequence #2131). Another touch of this button and LED
turns off and note-off is sent. To set this mode on a split, you have to select it first by
pressing one of the buttons in that split.
Dependent mode - #909
In dependent mode, there can be only one LED active at a time. If you press another
button, it will light up and any one that was previously lit, will now turn off. In this
mode only note-on messages are generated, there is no note-off. This is most useful
for selecting presets on MIDI instrument, like described in chapters 7.2.3., and 7.2.8.
To set this mode on a split, you have to select it first by pressing one of the buttons in
that split.
Bank/preset select - #910
It is possible to split the LITSW board into 2 parts by keypad sequence #5 described in
MIDI settings paragraph. If you type #910 on the keypad, LITSW board will then work
as patch selector with separate row of "banks" buttons and "presets" buttons. If the
split is made after 10 keys, lowest 10 buttons will act like preset selector within a
bank, and all buttons above 10 - as bank selectors. Although it is possible to use this
mode with independent buttons, described in 9.6.2, most obvious use is together with
dependent butons mode described in 9.6.3. To use it as Program Change selector, you
should program appropriate MIDI event on this input, which for Program Change is #2129. The split point doesn't have to be after 10 buttons. It can be e.g. after 6
buttons. Then first bank will select patches from 1 to 6, second bank from 7 to 12 etc.
Disable bank/select mode - #911
To disable bank/select mode described above, you must type #911 sequence on the
keypad. It then returns to normal mode, where each button has the same weight,
there's no split for banks or presets.
Note keyboard scanner mode - #912
This is normal way of operation for this scanner. When a button is pressed, MBBS can
then generate MIDI notes, or any other MIDI event that can be programmed to a
keyboard scanner. This is the oposite to CC mode described next. To set this mode on
a split, you have to select it first by pressing one of the buttons in that split.
CC scanner mode - #913
In this mode LITSW behaves like potentiometer scanner. When button is pressed, it
simulates turning a potentiometer to a maximum, and when the button is deactivated
(LED is turned off) it simulates a potentiometer turned into minimum. So it works like
24 potentiometers with only 2 valid positions: min and max. This is useful for switching
parameters in virtual instruments, e.g. Hammond emulators. For each button you can
then setup individual MIDI event (like CC or anything else) and MIDI channel. To set
this mode on a split, you have to select it first by pressing one of the buttons in that
Left split blink - #916
When you type this sequence on a keypad, LITSW will blink all LEDs in lower split of
LITSW. This can be used to determine where the split point is, and where are the LEDs
Right split blink - #917
When you type this sequence on a keypad, LITSW will blink all LEDs in upper split of
LITSW. This can be used to determine where the split point is, and where are the LEDs
All LEDs blink - #918
When you type this sequence on a keypad, whole LITSW will blink all LEDs. This can
be used to see if every LED is connected properly and where they are located.
POT32X - potentiometer scanner
POT32X adds 32 potentiometer to MIDI system built around MBBS. It has two 20-pin
black connectors for potentiometers, and 2 small 4-pin sockets, typical for all midihardware.com MIDI board. One of those is used to connect the potentiometer scanner
to MBBS. The other one can be used to connect another scanner, be it keyboard or
another potentiometer. You can chain only up to 2 POT32X scanners, giving you
maximum of 64 potentiometer inputs for the whole system.
Here's layout of the POT32X potentiometer scanner:
Notice the orientation of angled corners of the small
connectors in the drawing to properly connect it. 4pin connector on the left side must be connected to
MBBS, either directly, or via another scanner.
Connector on the right side can be used to add
another scanner, e.g. next POT32X, or keypad. If
you reverse connections between those 2 sockets,
the board will not work, and potentiometer
movement will not result in any MIDI activity.
However this does not cause any damage to the
POT32X board, or MBBS.
Two bigger black connectors are
the potentiometer inputs. Their
connection is shown on the right.
Only one connector shown, 2nd
one is identical.
Each sockets contains 2 pairs of
contacts for potentiometer
common rails, namely GND and
+5V. This is only for convenience
of installation, and one pair can
be omitted if needed. The cable
from each IDC20 connector can be split in half and routed to a group of 8
potentiometers. If you don't use all potentiometers you may want to connect unused
inputs to VCC (pins 1 and 11). Keeping any, or all inputs open is quite safe, but
in some cases may result in unexpected MIDI messages. That's especially
possible with fast response settings described in chapter 6.1. With fast update rate
and inputs left open, moving one potentiometer may trigger unexpected other MIDI
messages. In such cases it is enough to connect all unused inputs to VCC (pin 1 or 11
of each black connector) and spurious messages will never appear again.
POT12 - potentiometer scanner
POT12 is a smaller version of POT32X. All general guidelines of POT32X apply, it differs
only in the number of pot inputs, refer to chapter 9.7 for more details.
Here's layout of the POT12 potentiometer scanner:
4-pin connector on the left side marked "OUT" must be
connected to MBBS, either directly, or via another scanner.
Connector on the right side marked "IN" can be used to
add another scanner, e.g. next POT12, or keypad etc. The
bigger black connector holds potentiometer inputs. Their
connection is shown below:
POT3 - tiny potentiometer scanner
POT3 is the smallest board of all available at midi-hardware.com. It can be used when
you need to MIDI convert only one to three swell pedals etc. In contrary to other pot
scanners, it has no daisy-chain input, hence it must always be the last scanner in a
chain. Below is connection diagram, looking at the components side:
There's 5 pins on one side of this micro
board. They can be soldered to bigger
board, or wires, or plug can be used.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF