MIDI-Fertigung einer elektronischen Orgel - Gunook
MIDI-Fertigung einer elektronischen Orgel - Gunook
Anonim
MIDI-Bearbeitung einer elektronischen Orgel
MIDI-Bearbeitung einer elektronischen Orgel

Dieses anweisbare führt Sie dabei, diese alte ungeliebte elektronische Orgel, die Sie in Ihrer Garage oder Ihrem Keller haben, zu nehmen und in ein modernes Musikinstrument umzuwandeln. Wir werden nicht zu sehr auf die Details der jeweiligen Orgel eingehen, die Sie besitzen, außer dass die typische Musiktastatur im Grunde genommen ein Satz von Tasten ist, die beim Drücken mit einem gemeinsamen Bus verbunden sind. In der alten Welt existierten neben den Schlüsseln beträchtliche Schaltungen, die dazu führten, dass ein Ausgang auf den Bus geleitet wurde, der wiederum verstärkt und an ein Audiosystem weitergegeben wurde. Heute ist die Tastatur eine Reihe von Sensoren; Wir lesen den Zustand der einzelnen Tasten aus und senden die Änderungen an einen Software-Synthesizer, der von MIDI-Befehlen gesteuert wird.

Das anweisbare deckt einen Großteil des beteiligten Prozesses ab, vom Sammeln des digitalen Zustands der Schlüssel, über die Verwaltung mit einem Arduino-Mikroprozessor, den Aufbau eines MIDI-Datenstroms und die Weitergabe an einen Computer (einschließlich Raspberry Pi), auf dem der Synthesizer ausgeführt wird.

Schritt 1: Die Tastatur abstrahiert

Das Folgende stellt eine abstrahierte elektronische Orgel dar, bei der jede Reihe ein Satz von Tasten oder Registern oder anderen Steuerschaltern ist. Die Einträge in der Spalte 0 stellen einzelne Tasten dar, und die - einen Bus, an dem die Taste beim Drücken angeschlossen ist. Das Great Manual mit 61 Tasten könnte die erste Reihe sein, das Swell Manual die zweite Reihe, die Pedale die dritte und die Stops usw. die vierte. Die Reihen enthalten aufgrund ihrer digitalen Bedeutung als Potenz von 2 über 61 hinaus tatsächlich 64 Elemente. Innerhalb der Tastenreihen folgen die Tasten der normalen musikalischen Konvention mit C links.

Bus 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 1 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 2 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 3 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Jeder Bus ist unabhängig und von seinen Peers elektrisch isoliert. Die ersten 8 Elemente sind fett hervorgehoben, mit 8 solcher Blöcke in der obigen Anordnung. Der nächste Schritt beschreibt eine Leiterplatte, die auf den fett gedruckten Elementen und den anderen 7 Blöcken davon arbeitet.

Die Tasten wurden oben als 0 dargestellt. Wir können dies noch ein wenig weiterführen und sagen, dass eine Taste beim Drücken eine digitale 1 ist, andernfalls eine 0. Und Tasten können konventionelle weiße Flats oder schwarze Sharps sein, oder Orgelpedale oder Orgelregister oder eine Reihe von Drehschaltern, die uns einen Saxophonton geben könnten. Wir betrachten das Instrument einfach als eine Reihe von Schaltern auf einer Reihe von Bussen und im Wesentlichen als einen digitalen Strom von Nullen und Einsen.

Schritt 2: Verdrahtung von den Tastaturen

Verkabelung von den Tastaturen
Verkabelung von den Tastaturen
Verkabelung von den Tastaturen
Verkabelung von den Tastaturen

Um bei der Verkabelung der Tastaturen zu helfen, wurde eine Leiterplatte mit Eagle CAD konstruiert. Seine Größe beträgt etwa 96 mm x 43 mm, und es werden 8 benötigt, die sich über die Rückseite der Orgel-Tastaturbaugruppen erstrecken.

Schauen wir uns diese Leiterplatte (PCB) im Detail an. Das linke Bild ist die Vorderseite der Leiterplatte, auf der die Komponenten montiert sind, und das rechte ist die Rückseite, wo wir die Komponenten verlöten.

Erstens sollen die 2X3-Komponenten oben mit den oberen Tasten verbunden werden, mit den oberen beiden Anschlüssen Bus 0 und 1, das nächste Paar 2 und 3 und das untere Paar auch Busse 2 und 3. Es wurde festgestellt, dass eine PCB Der 2X3-Header war starr genug, um einadriges Anschlusskabel von den Tasten aufzunehmen, die einfach in den Header geschoben wurden, ähnlich wie bei der Arduino-Abschirmungsverdrahtung. Der von mir verwendete Anschlussdraht wurde von der Originalorgel geborgen; es hat einen Durchmesser von 0,75 mm.

Jeder 2X3-Header enthält also eine Spalte der fett hervorgehobenen Tasten oder allgemein eine Note. Das Board benötigt somit 8 dieser Header. Das Bild enthält oben links eine dieser Buchsenleisten. Der mittlere Teil der Platine ist mit 32 Dioden (1N4148 oder ähnlich) bestückt, die jeweils einem der roten Eingänge entsprechen. Die Polarität der Diode ist wie auf der Platine angegeben, mit Kathode (schwarzes Band) am oberen Ende der Platine. An Position 4 ist eine einzelne Diode dargestellt. Schließlich bestückt ein einzelner 2X5-Stecker den untersten Abschnitt der Platine. Seine oberen 2 Pins sind nicht verbunden. Pin 1 befindet sich in der unteren rechten Ecke und ist mit den 4 Dioden ganz links verbunden, Pin 2 mit den Dioden 5-8 und schließlich 29-32 mit Pin 8. Der Header kann aus einem längeren DIL-Abschnitt abgeschnitten werden, wie auf Die Tafel. Die Verdrahtung zwischen den verschiedenen Komponenten erfolgt innerhalb der Leiterplatte selbst, wobei nur die Dioden und Header gelötet werden müssen.

8 dieser Kompletttafeln werden direkt unter den Manualen mit den dafür vorgesehenen Befestigungslöchern montiert und spannen sich bequem über die Orgel. Die Funktion dieser Platine besteht also darin, einen Block mit 8 Tasten über 4 Busse zu nehmen und ihn einem Stecker zu präsentieren, an den ein 10-Wege-Flachbandkabel für die Übertragung zur nächsten Stufe angeschlossen wird. Das Board-Design kann aus der bereitgestellten Zip-Datei heruntergeladen werden.

Schritt 3: Konsolidieren von Tastaturausgaben in Schieberegister

Konsolidieren von Tastaturausgaben in Schieberegister
Konsolidieren von Tastaturausgaben in Schieberegister

Es werden zwei weitere Platinen benötigt, wie oben abgebildet. Sie sind als DIN R5 bekannt und in der MIDI-Welt beliebt, obwohl sie lediglich eine Schieberegisterfunktion bieten. Im oberen horizontalen Bereich sieht man zunächst 4 2X5 Stiftleisten, die per Flachbandkabel mit dem 2X5 Gegenstück auf den 8 Platinen oben verbunden sind. Wir benötigen zwei DIN-Platinen, um unsere 8 solcher Kabel unterzubringen.

Weiter unten auf der Platine befinden sich IC-Chips, die ein 32-Bit-Schieberegister bilden, und schließlich sind für uns 2 weitere 2X5-Header interessant, von denen einer (J2) zu weiteren DIN-Boards (unserem zweiten) und der andere J1 zu unseren Arduino oder Arduino-ähnlichen Mikroprozessor.

Zusammenfassend haben wir -

  • Bis zu 4 Busse mit 64 Schlüsseln, die in
  • 8 Karten mit 32 Eingängen, 8 Ausgänge pro Bus
  • diese 64-Ausgänge speisen in 2 32-Bit-Schieberegister ein
  • Der Arduino-Mikroprozessor wird über die Busse kreisen

Schritt 4: Zusammenbau der Hardware

Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware

Die Verbindungen zwischen Arduino, den beiden DIN-Platinen und den Flachbandkabeln des Orgeltastenkomplexes sind im Bild oben dargestellt. Beachten Sie, dass J2 der zweiten DIN einfach leer gelassen wird.

Die Steckverbinder arbeiten mit IDC-Technologie (Insulation-Displacement-Contact) und die Adern müssen nicht abisoliert oder getrennt werden. Sie werden mit einem beim Bastler erhältlichen Kompressionswerkzeug auf das Kabel aufgebracht. Links kann das Ende des gequetschten Kabels mit einer Rasierklinge gesäubert werden; in der Mitte bietet die Unterseite des Steckers eine 2X5-Buchse; und rechts eine Draufsicht auf den Stecker.

Die DIN-Platinen und die kundenspezifischen Leiterplatten wurden mit Rundkopf-Messing-Holzschrauben und Abstandshaltern an Orgelholz befestigt. Eine Teilansicht der in der Orgel montierten benutzerdefinierten Leiterplatten ist oben abgebildet. Die oberen Anschlusskabel verbinden Stopps oder Bedienelemente mit den Boards, und die Masse auf der linken Seite geht von den Pedalen aus. Schließlich hat die Entfernung der Tongeneratoren und anderer verschiedener Funktionen der Originalorgel die Wiederverwendung des Gehäusehohlraums für die Weinlagerung ermöglicht.

Schritt 5: Der Arduino-Komplex

Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex
Der Arduino-Komplex

Der Arduino-Komplex links von den beiden obigen DIN-Platinen wird nun diskutiert. Es besteht aus drei verschiedenen Schichten, die als Arduino-Schilde miteinander verbunden sind. Die PCBs, aus denen die Schichten bestehen, sind zufällig blau, grün und rot gefärbt.

Die blaue Schicht (oben) ist ein von Freetronics hergestelltes Schild, das eine 16X2-Flüssigkristall-Zeichenanzeige bietet. (2 Zeilen mit 16 Zeichen). Es ist nicht unbedingt erforderlich, aber äußerst nützlich, um die Funktion von Keyboards, Pedalen und Stops zu überprüfen. Es wird von der LiquidCrystal-Bibliothek angetrieben, und andere Hardware-Varianten könnten leicht ersetzt werden.

Die rote Schicht (unten) ist ein Teensy 3.2, das auf einem Sparkfun Teensyduino-Board montiert ist. Der Teensy bietet direkte MIDI-Unterstützung und verhält sich ansonsten wie ein Arduino UNO. Die Verwendung des Teensy spart also nachgelagerte Komponenten. Der Anschluss für die Stromversorgung (5V 2A) befindet sich unten links und der USB-Anschluss, der die serielle oder MIDI-Ausgabe unterstützt, links in der Mitte. Die Header am oberen und unteren Rand bieten standardmäßige Arduino-Shield-Funktionalität.

Die grüne Schicht (sandwiched zwischen Blau und Rot) ist eine benutzerdefinierte Leiterplatte. Sein Zweck besteht im Allgemeinen darin, Bits und Teile wie die Verbindung zu den DIN-Platinen zu unterstützen und die externe Verkabelung zu reduzieren. Einige seiner Funktionen sind überflüssig. Es enthält einige Schaltungen zur Unterstützung von MIDI über ein Standard-Arduino UNO. Es bietet auch eine 2X5-Stiftleiste für die Flachbandkabelverbindung mit der J1-Stiftleiste auf der ersten DIN-Platine. Andere Funktionen umfassen die Unterstützung der Lautstärkeregelung; die ursprüngliche Orgel verwendete ein 10K-Potentiometer (Pot), das von einem Fußschuh angetrieben wurde.

Die vier horizontalen Header bieten standardmäßige Arduino-Shield-Konnektivität zum Teensy-Board darunter und zum Flüssigkristalldisplay. Der Aufdruck, der einer Busstation in der unteren linken Ecke ähnelt, ist ein Überbleibsel, und der lange vertikale Header auf der linken Seite bietet Konnektivität zu den vier Bussen, Lautstärkeregler und Masse.

Das kundenspezifische Board wurde mit Eagle CAD entwickelt, und Zip-Dateien des Gerber-Komplexes, die an PCB-Hersteller gesendet werden, sind in der PCB2-Zip-Datei verfügbar.

Schritt 6: Die Arduino-Software

Die Software wurde ursprünglich für ein Arduino UNO entwickelt und später mit wenigen Änderungen für die Verwendung des Teensy geändert. Die Pinbelegung ist unverändert.

Das Flüssigkristalldisplay verwendet ein halbes Dutzend Pins, und es wurde beschlossen, die analogen Pins im Digitalmodus zu verwenden, um einen Block benachbarter Pins für die Busse zu erhalten. Der Lautstärkeregler verwendet im Analogmodus einen weiteren analogen Pin.

Ein Großteil der Software beschäftigt sich mit dem Lesen der einzelnen Tastatur-, Pedal- und Stopptasten, indem sie jeden Bus der Reihe nach aktiviert und die Bitwerte aus den von den DIN-Karten bereitgestellten Schieberegistern marschiert.

Die Downstream-Umgebung umfasst normalerweise einen Prozessor, auf dem Windows, UNIX oder Linux ausgeführt wird, und einen Software-Synthesizer wie FluidSynth, der wiederum von jOrgan verwaltet werden kann. FluidSynth wird letztendlich von einem oder mehreren Soundfont(s) gesteuert, die angeben, welcher Sound erzeugt wird, wenn ein bestimmter MIDI-Befehl empfangen wird. Es gibt eine gewisse Analogie zu Schriftarten für die Textverarbeitung. Bei Tastatur und Pedalen führt eine Änderung gegenüber dem vorherigen Scan dazu, dass eine MIDI-Note-On- oder Note-Off-Sequenz erzeugt wird. Die Taste ganz links ist MIDI 36 und wird über die Tastatur erhöht. Der Busindex bietet leicht Platz für die MIDI-Kanalnummer. Für die Stopptasten werden MIDI-Programmsteuersequenzen generiert, oder es kann sinnvoll sein, Note On/Off zu generieren und jOrgan oder einer ähnlichen MIDI-Downstream-Software zur Interpretation, Anpassung und Erweiterung zu überlassen. Welcher Weg auch immer eingeschlagen wird, die endgültige Entscheidung wird durch die Definition des/der nachgeschalteten Soundfont(s) erzwungen. Die Software wurde in verschiedenen Formen verwendet, um MIDI über USB für Windows zu erzeugen, das die Wurlitzer-Anwendung und FluidSynth betreibt, sowie für einen Raspberry Pi, auf dem FluidSynth und ein General MIDI Soundfont ausgeführt werden. Diese Beschreibung ist zugegebenermaßen lückenhaft, aber jeder, der mit der Arduino-Umgebung oder C vertraut ist, wird keine Schwierigkeiten haben, sie für seine eigenen Zwecke zu ändern; es gibt eine angemessene interne Dokumentation und eine angemessene Modularität.

Die Arduino-Software ist in organino.zip enthalten.