Simple (MIDI-)Keyboard

Update 07.09.2011: This keyboard interface is not in use any more. It is replaced by the keyboard controller of the uNet, see also here.


This new keyboard replaces the old monophonic Formant keyboard currently in usage. The first idea was to expand the discrete solution of my old keyboard controller to a polyphonic version, but as I had already completed my MIDI2CV interface I decided to develop a simple MIDI controller to work with my UCVM as an 8 voice polyphonic controller instead of expanding a complicated discrete circuit.

Oh yeah, I can hear the questions: Why didn't you use a (cheap) MIDI keyboard? Answer: because it looks like shit. For me a complete modular synthesizer *must* contain a keyboard which fits into the (optical) concept (see MOOG and so on). Without a proper keyboard you don't have a modular system, you have some modules in a box. Sorry, but this is what I think about that. Beside that I needed a place for my power supply and it was an opportunity for playing around with another member of the ATMEL µController family. This time I used an AT90S2313, a 20 pin chip with an UART which is the ideal solution for this MIDI controller.
And now I have MIDI keyboard in vintage look.


Board of the MIDI controller:


Above: The board of the MIDI controller. The schematic can be found here. Attention: Following the link means accepting the disclaimer on page bottom!
Upper side right: Power supply and MIDI output.
Lower side right: AT90S2313 µController, ISP interface and X-multiplexer.
Lower side left: Lower half keyboard connector and comparators.
Upper side left: Upper half keyboard connector, comparators and Y-multiplexer.

I used a standard keyboard of the FATAR company which I bought from WERSI. These keyboards work with rubber contacts nowadays which are connected and wired with a diode matrix on the keyboard bottom side (61 keys). This matrix is accessed via 8 input (X transmitter side) and 16 output lines (Y receiver side). So 1 input leads to 2 outputs which close contact with a certain time delay depending of key velocity. One can measure this delay to gain key velocity information, but I didn't by using just one output.
According to keypressure the electrical resistance of the rubber contact changes. This information can be used for key pressure information, but I didn't do this also, as my synthesizer is a studio instrument, not an instrument for stages. That's why you won't find wheels or joysticks on my keyboard. I am just interested in the key information, nothing more.

The circuit works that way: The AT90S2313 counts the rows and the columns of the diode matrix. Via the two 4051 multiplexers the X/Y adresses are put on the keyboard and the PORTD (pin 11 of the AT90S2313) detects whether a key is pressed or not. The FET opamps (2xTL064) work as comparators which toggle to high (log 1) if a key is pressed.
If a key is detected as 'pressed' during a keyboard scan cycle the corresponding MIDI message is created and sent if not sent yet, and the corresponding key value is stored in memory (up to 8 keys). If the information is already sent, the key value information in memory is refreshed. If a key is released, the refresh is ommitted and the note off message is created and sent.

Software of the keyboard controller.


Keyboard panel:


Above: Panel of the keyboard. It contains the two voltage indicator LEDs (+/-15V), the ISP programming interface of the AT90S2313 and the MIDI output of the keyboard.


Connectors on back side:


Above: The backside of the keyboard (panel side) with the power trannies of the synthesizer power supply (mounted on cooling devices), the power switch, the AC power connector and the analogue bus (currently used as power supply for the module cabinets).


Main view:




Schematic:
The circuit can be found here. Attention: Following the link means accepting the disclaimer on page bottom!

Sound examples:
None (is just a keyboard).

Reproduction hints:
None.
If you have any questions, suggestions or comments:
Mail to: Carsten Toensmann

Home



Disclaimer:
No warranty for completeness or correctness of technical descriptions, schemas or any information provided on www.analog-monster.de/* pages.
Contents of linked pages are in responsibility of the page owners and analog-monster dissociates from them.
All information provided on www.analog-monster.de/* pages is in ownership of www.analog.monster.de (except especially marked) and for private use only. All rights reserved.