Here is a completly amazing control surface for your favorite sequencer or synthesizer :
It’s a machine capable of playing Notes , Control Change and Program Changes
Photos are available at http://www.midibox.org/forum/index.php?topic=9655.0
Here is how it is made :
The machine is composed by 3 things :
1 - A 64 buttons keyboard, design of TK with the scan matrix
http://www.ucapps.de/mbhp/mbhp_scan_matrix1.pdf
2 - A control surface with 4 buttons, one jack for a footswitch and one clickable encoder and several LEDs
3 - Classic stuff from ucapps : 1 core (pic 18f452), 1DINX2, 1 DOUTX2, midi and supply connector, and things removed from the trash.
How to connect it :
Connect DINX2 and DOUTX2 at the core, ports J8 and J9.
Connect the Scan Matrix to the first Shift Register (SR1) of DIN & DOUT
Connect the encoder to pin 0&1 of SR2, the Clic at pin2 (on the 2nd DIN)
Connect the Jack at pin4 of SR2 (on the 2nd DIN)
Connect Button A,B,C,D at respectively pins 5, 6, 7, 8 of the 2nd DIN. Don’t forget the ground !!
Connect the LEDs to the SR of the 2nd DOUT :
4 green leds to pin 0 1 2 3
1 red led to pin 4
1 yellow led to pin 5
a tricolor led to pins 6 & 7 (red/green/yellow fluo)
Connect a light to the supply
Connect a light to pin J14 of the core.
How it works :
Button A = Note mode, and midi channel choosing ;
indicated by the 4 green leds. Coding hard to understand (a bit llke BinaryCodedDecimal, but different)
Button B = Program Change Mode ; indicated by red led
Button C : Control change mode ; indicated by yellow led
Button D : switch between the layers : A, B or C
Rq : Layer is a manner to have 128 virtual buttons with only 64 real ones.
Layer A corresponds to buttons 0 to 63 (led red fluo),
layer B corresponds to buttons 64 to 127(led green fluo)
and layer C is a mix of A & B, buttons 32 to 96 (led yellow fluo).
You choose which mode you want by pressing the corresponding button.
WARNING : The midi channel is selected by the note mode button.
For example I want to play a note c-1 at channel 4 :
Start the device. I press 4 times on buttonA, that means I am in midi channel 4, it is indicated by the 4th leds highlighted.
Then I choose the layer : it will be layer A because we are looking for the first note in MIDI (note 00).
the layer LED must be red fluo. If it’s not, press several time on buttonD until LED become red fluo.
Then play on the Keyboard the 1st button (up left corner).
the velocity is given by the encoder : turn clockwise to increase, anticlockwise to decrease, or press the click to get the maximum velocity.
By default at start up the velocity is 100 (0x64).
For example i want to send a program change message : 52
Press buttonB, choose layer A, then press the 52th button of the keyboard !
or choose layer C and press the 20th button of the keyboard. (32+20=52)
This manner is easy to command a drummachine which has its patterns defined by PC message (ex : Machinedrum, MPC, Jomox, etc).
The midi channel is always defined by buttonA.
That means that you have to pass by Note mode to change the channel.
To choose the channel you push the button A and the channel increase ; when it reaches 16, it then fall back to channel 1.
Leds show the corresponding midi channel, but coding 16 values with only 4 LEDs is a bit like speaking with an Alien : complicated.
Now I want to modulate Control change 13 at channel5 :
Choose channel 5 by pressing buttonA until the leds indicate that you are in channel 5 (look in main.c it is explained)
then switch to CC mode by pressing buttonC
Then choose CC13 by pressing the 13th button of the keyboard.
then modulate with the encoder !!
Press the footswitch (connected to the _ jack _) to start your favorite sequencer.
Whatever the mode be, the light connected to pin J14 of the core is highlighted when you send a midi message.
Have fun and send me feedback if you like it !!
In several months a special sequencer will maybe exist, based on this design with an additionnal Display.

