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: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:Connectors on back side: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. |