Inhaltsverzeichnis:

Arduino MIDI Chiptune-Synthesizer - Gunook
Arduino MIDI Chiptune-Synthesizer - Gunook

Video: Arduino MIDI Chiptune-Synthesizer - Gunook

Video: Arduino MIDI Chiptune-Synthesizer - Gunook
Video: Obscura, an Arduino-compatible MIDI 8-bit Chiptune Synthesizer 2024, Juli
Anonim
Arduino MIDI-Chiptune-Synthesizer
Arduino MIDI-Chiptune-Synthesizer

Erleben Sie den Spaß früher Computerspielmusik mit einem authentischen 8-Bit-Chiptune-Synthesizer, den Sie bequem über MIDI mit jeder modernen DAW-Software steuern können.

Diese einfache Schaltung verwendet einen Arduino, um einen programmierbaren Soundgenerator-Chip AY-3-8910 (oder einen seiner vielen Klone) anzusteuern, um den Sound der 1980er Jahre nachzubilden. Im Gegensatz zu den vielen Designs, die spezielle Software zum Bearbeiten von Musik benötigen, sieht dies wie ein Standard-USB-MIDI-Gerät aus. Der Synthesizer verfügt über einen cleveren Algorithmus, der versucht, die musikalisch relevantesten Noten im Spiel zu halten; In vielen Fällen können Sie unbearbeitete MIDI-Dateien direkt darauf werfen und die Melodie kommt direkt heraus. Die Gesamtkosten sollten etwa 20 € betragen.

Schritt 1: Dinge, die Sie brauchen

Dinge, die du brauchen wirst
Dinge, die du brauchen wirst
Dinge, die du brauchen wirst
Dinge, die du brauchen wirst
Dinge, die du brauchen wirst
Dinge, die du brauchen wirst

Die vollständige Teileliste dafür, wie Sie auf den Bildern sehen, lautet wie folgt:

  • Sparkfun Pro Micro-Klon (5V, 16MHz-Option). Ich habe diesen bei Amazon verwendet.
  • Yamaha YM2149F PSG-Chip. Ich habe meine von eBay bekommen.
  • 2 x 100nF Keramikkondensatoren
  • Je 1 der 75R-, 1K- und 100K-Widerstände (1/4 Watt ist in Ordnung).
  • 4.7nF Keramikscheibenkondensator
  • 1uF Elektrolytkondensator (Nennspannung > 5V).
  • 40-poliger 0,6" DIP-IC-Sockel
  • 2 x 12-polige 0,1-Zoll-Header (dieser von CPC)
  • Prototyping-Platine, 3 "x 2" ca. Ich habe eine Großpackung davon gekauft, wieder bei Amazon.
  • Phonobuchse für Leiterplattenmontage
  • Miniatur-Vollkerndraht (wie dieser).

Sie benötigen außerdem einen Lötkolben, Lötzinn, Drahtschneider, Zangen und eine Abisolierzange.

Schritt 2: Alternative Teile

Alternative Teile
Alternative Teile
Alternative Teile
Alternative Teile
Alternative Teile
Alternative Teile

Alternative programmierbare Soundgenerator-Chips

Das von mir verwendete YM2149 ist ein Klon des originalen General Instruments AY-3-8910 IC. (Der erste Prototyp verwendete einen AY-3-8910, den ich bei eBay gekauft hatte, aber es stellte sich heraus, dass der Generator für weißes Rauschen nicht funktionierte. Trauriges Gesicht). Sie können beide für dieses Projekt ohne Änderungen verwenden.

General Instruments stellte auch die Varianten AY-3-8912 und AY-3-8913 her, die das gleiche Silizium in kleineren Gehäusen waren, ohne einige zusätzliche I/O-Pins. Diese Pins werden nicht für Audiozwecke benötigt und in diesem Projekt werden sie nicht verwendet. Sie können ein AY-3-8912 oder -8913 verwenden, folgen Sie einfach den oben gezeigten Pinbelegungen.

Alternative Arduinos

Das von mir verwendete "Pro Micro" ist eine Kopie des Pro Micro-Boards von Sparkfun. Wenn Sie mit Arduino-Code nicht vertraut sind, ist es am besten, dabei zu bleiben; Wenn Sie das Design gerne anpassen möchten, benötigen Sie die folgenden Spezifikationen

  • ATmega 16u4- oder 32u4-Gerät (wird als USB-MIDI-Gerät benötigt; der ATmega 168 oder 328 kann dies nicht).
  • 5V-Betrieb (der AY-3-8910 läuft mit 5V) und 16MHz Taktfrequenz.
  • Mindestens 13 digitale I/O-Leitungen.

    Port-Pin PB5 muss angeschlossen sein (wird verwendet, um ein 1-MHz-Taktsignal zu erzeugen). Beim Pro Micro wird dies als D9-I/O-Pin verwendet

Die Arduino Leonardo und Micro Boards passen beide auf die Rechnung, obwohl ich sie nicht ausprobiert habe.

Andere Komponenten

Die hier verwendeten Widerstände und Kondensatoren sind nicht besonders. Alle Teile des (ungefähr) richtigen Wertes sollten funktionieren.

Schritt 3: Auslegen der Platine

Auslegen der Platine
Auslegen der Platine

Um die Schaltung aufzubauen, beginnen Sie am besten mit der Positionierung der Buchsen und fügen Sie dann die Widerstände und Kondensatoren hinzu. Wir werden diese zusammen im nächsten Schritt verkabeln.

Verwenden Sie das Bild oben als Richtlinie, positionieren Sie den 40-poligen IC-Sockel, drehen Sie die Platine um und löten Sie zuerst zwei gegenüberliegende Eckstifte ein. Wenn die Buchse dann nicht flach an der Platine anliegt, lässt sie sich durch Umlöten des einen oder anderen Pins leicht beheben. Wenn es in Ordnung ist, löten Sie den Rest.

Positionieren Sie die beiden 12-poligen Buchsen und stecken Sie dann den Arduino hinein, um sie während des Lötens vertikal und stabil zu halten. Auch hier ermöglicht das Löten von zwei Stiften an jedem Ende zuerst eine Überprüfung vor dem endgültigen Löten.

Für die Audio-Ausgangsbuchse habe ich einen kleinen Bohrer verwendet, um die Leiterplattenlöcher zu vergrößern, da die Befestigungslaschen ziemlich groß sind.

Schritt 4: Verdrahten

Verkabelung
Verkabelung
Verkabelung
Verkabelung

Sobald die Hauptkomponenten positioniert sind, können sie auf der Rückseite der Platine gemäß der obigen Schaltung verdrahtet werden.

Die Audioausgangskomponenten (R2, R3, C2, C3) und Entkopplungskondensatoren (C1, C4) können mit Volldraht (oder Abzweigen von Komponentenleitungen) verbunden werden. Die Masse- und Stromverbindungen vom Arduino zum PSG-Chip (rote und schwarze Drähte, im Bild) können nun hergestellt werden.

Die verschiedenen Ausgänge des Pro Micro werden wie folgt mit dem AY-3-8910 verdrahtet (siehe Anschlussanleitung für die Pinbelegung):

Signal Arduino AY-3-8910 Pin

DA0 D2 37 DA1 D3 36 DA2 D4 35 DA3 D5 34 DA4 D6 33 DA5 D7 32 DA6 D8 31 DA7 A0/D18 30 BC1 D10 29 BC2 MOSI/D16 28 BDIR MISO/D14 27 RESET# SCLK/D15 23 CLOCK D9 22 (via R1, 75 Ohm)

Schritt 5: Programmierung mit der Arduino IDE

Programmierung mit der Arduino IDE
Programmierung mit der Arduino IDE

Wenn Sie neu bei Arduino sind, würde ich dringend empfehlen, eines der vielen Tutorials zu den Grundlagen auszuprobieren. Die Anschlussanleitung von Sparkfun enthält alle Details. Sie können überprüfen, ob die grundlegende Programmierung funktioniert, indem Sie dem Tutorial "Blinkies" folgen. Arduinos können ein wenig schwierig sein, um in den 'Bootloader'-Modus zu gelangen (in dem Sie neue Skizzen laden können), daher ist ein wenig Übung mit einem einfachen Beispiel nützlich.

Wenn Sie zufrieden sind, laden Sie die an diese Seite angehängte Datei chiptunes.ino herunter, erstellen Sie sie und laden Sie sie hoch. (Ich habe festgestellt, dass die Verwendung des Board-Typs "Arduino / Genuino Micro" für diese Skizze in Ordnung ist, wenn Sie die Installation der Sparkfun-Board-Unterstützung überspringen möchten).

Beachten Sie auch, dass auf einem Mac die Einstellung "Port" geändert werden muss, nachdem Sie die Skizze zum ersten Mal geladen haben. Bei einem 'leeren' Arduino (oder mit der Blinky-Skizze) wird es als /dev/cu.usbmodemXXXX angezeigt, wie im Bild oben gezeigt. Wenn das USB-MIDI-Gerät aktiv ist (wie von der chiptunes.ino-Skizze verwendet), ist es /dev/cu.usbmodemMID1.

Schritt 6: Testen und Verwenden des Synth

Testen und Verwenden des Synth
Testen und Verwenden des Synth
Testen und Verwenden des Synth
Testen und Verwenden des Synth
Testen und Verwenden des Synth
Testen und Verwenden des Synth

Sobald das Arduino programmiert ist, sollte Ihre Workstation es automatisch als USB-MIDI-Gerät erkennen. Es wird mit dem Namen "Arduino Micro" angezeigt - Sie sollten dies im Geräte-Manager in Windows oder in der App "Systeminformationen" in Mac OS sehen können.

Auf einem Mac können Sie die Audio-MIDI-Setup-App verwenden, um einen grundlegenden Test durchzuführen. Starten Sie die App und wählen Sie Window -> Show MIDI Studio. Dadurch wird das MIDI Studio-Fenster geöffnet - alle Ihre MIDI-Interfaces erscheinen in einer leicht zufälligen Anordnung - das hoffentlich das 'Arduino Micro'-Gerät enthält. Wenn Sie in der Symbolleiste auf das Symbol "Test Setup" klicken und dann auf den Abwärtspfeil (siehe Bild) auf dem Arduino Micro-Gerät klicken, sendet die App MIDI-Noten an den Synthesizer. (Diese sind nicht besonders melodisch!) Der Synth sollte an dieser Stelle einige zufällige Klänge von sich geben.

Sie können dann 'Arduino Micro' als Ausgabegerät zum MIDI-Setup Ihrer Digital Audio Workstation hinzufügen und losspielen!

  • Der Synth antwortet auf den MIDI-Kanälen 1 bis 4. Jeder Kanal hat einen anderen Klang (naja, eine andere Lautstärke-Hüllkurve).
  • MIDI-Noten zwischen 24 und 96 (C1-C7) werden akzeptiert; Noten außerhalb dieses Bereichs werden ignoriert.
  • MIDI-Kanal 10 spielt Schlagzeugklänge. Noten zwischen 35 und 50 (siehe

    www.midi.org/specifications-old/item/gm-level-1-sound-set) werden akzeptiert.

  • Das AY-3-8910 verfügt über drei Sprachkanäle. Die Synth-Firmware versucht, die zuletzt gesendete Note zu spielen, während die höchsten und niedrigsten aktuell angeforderten Noten weiterhin gespielt werden. Andere Noten (normalerweise die mittleren Noten eines Akkords) werden bei Bedarf abgeschnitten.

Und das war's. Spaß haben!

Schritt 7: Fußnoten

Über die Demo-Melodie

Die Demomelodie - Mozarts berühmte Queen Of The Night Arie - entstand relativ schnell aus einer MIDI Datei die ich im Internet gefunden habe (https://www.midiworld.com/mozart.htm). Jemand anderes hat die ganze harte Arbeit gemacht!

Ich verwende Presonus Studio One auf einem Mac und die MIDI-Datei wurde auf vier separate Spuren importiert. Ein wenig Bearbeitung war erforderlich, wenn die Begleitnoten höher als die Hauptmelodie sind, und um einige der unangenehmeren Störungen zwischen den Noten zu beseitigen.

Das Audio, das Sie im Clip hören, stammt direkt vom Synthesizer, mit nur einem Hauch von EQ und Sättigung, um ihm ein bisschen wie eine 'Arcade-Maschine'-Low-Fi-Feeling zu verleihen.

Empfohlen: