Diese neue Tastatur ersetzt die bisher im Einsatz befindliche monophone Formant-Tastatur. Die sollte zwar ursprünglich mal auf polyphonen Betrieb aufgerüstet werden, aber da ich zwischenzeitlich mein MIDI2CV-Interface fertiggestellt hatte, beschloß ich, statt eines aufwendigen diskreten Moduls einen simplen MIDI-Keyboard-Controller zu entwickeln, der zusammen mit dem UCVM ein 8-stimmig-polyphones Spiel ermöglicht.
Ich hör schon den Aufschrei: Warum kein fertiges (Billig-)MIDI-Keyboard verwenden? Antwort: Weil es scheiße aussieht. Ein vollständiges Modularsystem muß ein Keyboard enthalten, was dazu paßt (siehe MOOG u.s.w.). Ohne passende Tastatur hat man kein Modularsystem, sondern einen Haufen Module in einer Kiste. Sorry, aber das ist meine Überzeugung. Außerdem brauchte ich Platz für das Netzteil. Und es war eine Gelegenheit, sich mit einem weiterem Exemplar der Gattung 'ATMEL' auseinanderzusetzen. Diesmal war es der µController AT90S2313, ein 20-Pin-IC mit UART, welcher für die Anforderungen ideal war. Und nu habe ich ein MIDI-Keyboard im Vintage-Look! Platine des MIDI-Controllers:Oben rechts: Spannungsversorgung und MIDI-Ausgang. Unten rechts: AT90S2313 µController, ISP-Interface und X-Multiplexer. Unten links: Lower Half Keyboard Connector und Komparator. Oben links: Upper Half Keyboard Connector, Komparator und Y-Multiplexer. Ich habe eine Standardtastatur der Firma FATAR verwendet, die ich von der Firma WERSI bezogen habe. Diese Tastaturen verfügen über die heute üblichen Rubber-Kontakte, die über eine Diodenmatrix auf der Keyboard-Unterseite miteinander verknüpft sind (61 Tasten). Die Diodenmatrix verfügt über 8 Eingänge (X- bzw. Sende-Seite) und 16 Ausgänge (Y- bzw. Empfänger-Seite). Pro Eingang gibt es also zwei Ausgänge, welche zeitverzögert schließen, je nachdem, wie schnell man die Taste drückt. Man kann diese Verzögerung auswerten, um anschlagdynamische Informationen zu erhalten; ich habe jedoch darauf verzichtet, indem ich nur einen der beiden Ausgänge verwende. Je nach Tastendruck variiert der Ohmsche Widerstand der Rubberkontakte. Diese Informationen kann man für Key-Pressure-Informationen auswerten, aber ich habe auch darauf verzichtet, da es sich hierbei um kein Life-, sondern ein reines Studioinstrument handelt. Darum sucht man auch Wheels oder Joysticks bei meinem Keyboard vergebens. Mich interessieren lediglich die Tasteninfos, mehr nicht. Die Schaltung arbeitet folgendermaßen: Der AT90S2313 zählt die Zeilen und Spalten der Matrix durch. Dabei werden über die beiden 4051-Multiplexer die X/Y-Adressen an die Tastatur angelegt und geprüft, ob die Taste gedrückt ist (PORTD6, Pin 11 des AT90S2313). Dabei arbeiten die FET-OpAmps (TL064 o.ä.) als Komparatoren, die bei einer gedrückten Taste auf high (log 1) umschalten. Falls eine Taste gedrückt wurde, wird die entsprechende MIDI-Message gesendet, falls sie noch nicht gesendet wurde, und der entsprechende Notenwert wird im Speicher festgehalten (bis zu 8 Stück). Bei jedem vollständigen Scan-Zyklus der Tastatur werden die Tasten-Informationen refresht. Wurde eine Taste wieder losgelassen, so unterbleibt der Refresh und die Note-Off-Message wird gesendet. Software des Keyboard Controllers. Panel des Keyboards:Rückwärtige Anschlüsse:Gesamtansicht:Schematic: Die Schaltung findet sich hier. Achtung: Anklicken der Schaltung bedeutet Akzeptanz des Disclaimers am Seitenende! Soundbeispiele: Unnötig (ist halt ein Keyboard). Nachbauhinweise: Keine. |