Ein Musikinstrument aus einem Kassettenrekorder machen



Cassette Synthesizer



Ich mag ungewöhnliche Musikprojekte. Zum Beispiel habe ich ein Album veröffentlicht, das auf Aufnahmen basiert, die die NASA während der Apollo 12-Mission gemacht hat. Und kürzlich habe ich mein eigenes Herz benutzt , um das Tempo der Musik zu kontrollieren. Die Ergebnisse meiner musikalischen Experimente finden Sie hier .



Ich habe kürzlich einen MIDI-gesteuerten Synthesizer aus einem alten Kassettenrekorder hergestellt, der an Sonys Walkman erinnert. Dazu brauchte ich ein Arduino-Board und etwas Code. Was passiert ist, kann als "Kassettensynthesizer" bezeichnet werden.



Ein Kassettensynthesizer spielt einen monotonen Ton (eine Note) ab, der zuvor auf einer Kassette aufgezeichnet wurde. Die Tonhöhe kann gesteuert werden, dies hängt von der Geschwindigkeit des Bandes ab. Das Onde Magnétique- Projekt brachte mich auf die Idee, einen Kassettensynthesizer zu entwickeln , und die Macher dieses Projekts ließen sich von der Idee von Mellotron inspirieren .





Hier ist ein Video, das zeigt, wie ich einen Kassettensynthesizer mit einem MIDI-Keyboard spiele.



Das Gute an diesem Synthesizer ist, dass er beim Notenwechsel einen sehr "analogen" Klang erzeugt. Die Tonhöhe ändert sich nämlich beim Übergang von Note zu Note häufig sanft, was sich als sehr interessant herausstellt ( dh in der Musik, die auf diesem Synthesizer gespielt wird, wird häufig der Portamento- Effekt gefunden). Außerdem kann absolut jeder Ton auf Band aufgenommen werden, so dass sich mein Synthesizer als sehr vielseitig herausstellte.



Erstellen eines Kassettensynthesizers



Tatsächlich ist die Erstellung eines solchen Synthesizers sehr einfach. Ich habe ein gutes Video über das Modifizieren eines Kassettenrekorders gefunden, damit die Wiedergabegeschwindigkeit der Kassette mithilfe eines Spannungsreglers gesteuert werden kann. Ich habe meinen vorhandenen Player auf ähnliche Weise geändert. Ich habe auch basierend auf einem Browser einen einfachen MIDI-Controller erstellt, der die gewünschten Noten durch Ändern der Spannung erhält.



Die folgenden Anweisungen konzentrieren sich auf die Hardware des Synthesizers, die vom Player und dem Arduino dargestellt wird, sowie auf die Software, die vom MIDI-Controller abgespielt wird.



Materialien



  • GE 3-5362A Kassettenrekorder (15 US-Dollar, viel bei eBay)
  • Arduino (23 US-Dollar).
  • DAC MCP4725 (11 USD).
  • 3,5 ($8).
  • ( , $5).
  • , ($25, ).


GE 3-5362A



Beachten Sie, dass Sie den GE 3-5362A-Player nicht verwenden müssen. Jeder Spieler, der eine variable Wiedergabegeschwindigkeit unterstützt, kann dies tun. Wenn Sie einen Kassettensynthesizer auf der Basis eines anderen Players herstellen möchten, müssen Sie nur die interne Struktur und den Ort der entsprechenden Drähte herausfinden.



Beginnen wir mit dem Öffnen des Körpers des Spielers. Dazu müssen Sie die vier Schrauben auf der Rückseite des Geräts lösen. Sie müssen sich hier nicht viel Mühe geben - lösen Sie einfach die Schrauben und öffnen Sie das Gehäuse vorsichtig. Beachten Sie, dass die Vorder- und Rückseite des Geräts über Kabel miteinander verbunden sind, die die Elektronik des Players mit Strom versorgen. Schneiden Sie diese Drähte nicht ab.





Zerlegter Player, der bereits modifiziert wurde



Um den Player in einen Kassettensynthesizer zu verwandeln, müssen zwei neue Komponenten darauf gelötet werden. Das erste ist ein angeschlossenes KabelVin, mit dem wir die Geschwindigkeit des Abspielens des Bandes mithilfe eines Spannungsreglers steuern können. Der zweite ist ein angeschlossener Audio-Splitter, mitLine indem wir Sounds auf einer Kassette aufnehmen können (dies ist nützlich für diejenigen, die kein Tonbandgerät haben).



Wenn Sie nicht löten können, machen Sie sich keine Sorgen. Das ist einfach. Sehen Sie sich dieses Video an. Daraus lernen Sie, wie Sie Drähte an Pads löten.



Verbindung zu Vin herstellen und Steuerung der Bandgeschwindigkeit organisieren



Suchen Sie das Rad mit der Bezeichnung Variable Speed ​​Playback am Gehäuse des Geräts. Hier werden wir ein paar Drähte löten. Ich bevorzuge den roten Draht für das Plus und den braunen oder grünen Draht für das Minus. Daher löten wir den roten Draht an das VS + -Pad und den anderen Farbdraht an das Pad direkt unter B +.





Mit dem VS + -Pad und dem Pad in der Nähe von B + verlötete Drähte



Beachten Sie, dass ich in solchen Situationen Kabel mit Buchsen an einem Ende verwende. Es ist sehr bequem, etwas mit ihnen zu verbinden.



Verbindung zu Line in zum Organisieren der Tonaufnahme auf einer Kassette



Jetzt müssen Sie die MIC- und MIC + -Pads finden, an die die roten und schwarzen Drähte des Mikrofons gelötet sind. Sie können diese Drähte einfach ablöten und die Drähte des Audiokabels an diese Pads anlöten. Rot zu MIC +, Schwarz zu MIC-.





An MIC- und MIC + gelötete Drähte



Monotonen Ton auf Kassette aufnehmen



Jetzt können Sie die Kassette in den Player einlegen und Ton aufnehmen, indem Sie eine Verbindung zu Line in! Sie können den Ton jeder Note aufnehmen. In der Regel können Sie mit der Note "C" experimentieren. Die Aufnahme sollte lang genug sein - ungefähr 30 Minuten (hier wäre übrigens ein Band mit einer Bandschleife nützlich). Bitte beachten Sie, dass nur ein Ton auf der Kassette aufgenommen werden muss, da wir die Tonhöhe dieses Tons ändern, indem wir die Wiedergabegeschwindigkeit der Aufnahme steuern.





Tonaufnahme mit dem OP-1 auf Kassette



Vorbereiten des Arduino für die Verwendung als MIDI-Interface



Arduino fungiert als Vermittler zwischen der MIDI-Schnittstelle und dem Digital-Analog-Wandler, der für die Änderung der Spannung verantwortlich ist. Das MIDI-Keyboard ist mit dem Computer verbunden. Tastatursignale werden von einem in Chrome ausgeführten Programm empfangen. Es adressiert den Server, der Daten über die Spannungsänderung an das Arduino sendet, und das Arduino überträgt die entsprechenden Signale an den Digital-Analog-Wandler, der die Wiedergabegeschwindigkeit des Bandes auf dem Player steuert.





Anschließen des D / A-Wandlers MCP4725 an das Arduino



Zuerst müssen Sie den MCP4725 anhand des obigen Diagramms an das Arduino anschließen. Der MCP4725 ist ein Digital-Analog-Wandler, der vom Arduino aus gesteuert werden kann. Der OUT-Anschluss des Konverters muss mit dem roten Kabel verbunden sein, das wir zuvor mit dem Player verlötet haben. Der andere Draht muss mit dem GND-Pin am Arduino verbunden werden.



Der Code, der zwischen dem Computer und dem Arduino kommuniziert, kommuniziert mit dem Gerät und sendet ihm Informationen zum Ändern der Spannung. Wenn der Arduino beispielsweise einen Befehl empfängtdac.setVoltage(newVolts, 1), gibt der MCP4725 eine Spannung ausnewVolts. Hier ist der Code:



#include <Wire.h>
#include <Adafruit_MCP4725.h>

Adafruit_MCP4725 dac;
String sdata = ""; //   .
bool started = false;
void setup(void) {
  Serial.begin(9600);

  //  Adafruit MCP4725A1  -  0x62 ( )  0x63 ( ADDR   VCC)
  //  MCP4725A0  -  0x60  0x61
  //  MCP4725A2  -  0x64  0x65
  dac.begin(0x62);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);

  Serial.println("Begin");
}

void loop(void) {
  if (started == false) {
    started = true;
    dac.setVoltage(0, 1);
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
  }
  byte ch;
  if (Serial.available()) {
    ch = Serial.read();
    sdata += (char)ch;
    if (ch == '\n') {
      sdata.trim();
      if (sdata.indexOf("voltage") > -1) {
        sdata.remove(0, 7);
        float newVal = sdata.toFloat();
        //  
        float newVoltage = round(910.0 * newVal);
        if (newVoltage > 4095) {
          newVoltage = 4095;
        }
        uint16_t newVolts = uint16_t(newVoltage);
        dac.setVoltage(newVolts, 1);
        Serial.print("volts: ");
        Serial.println(newVolts);
      } else {
        Serial.println("?");
      }
      sdata = "";
    }
  }
}


Server zum Senden von Befehlen an Arduino



Zur Steuerung des Arduino können Sie einen einfachen Server verwenden, der Befehle an die Karte sendet, die die Spannung ändern. Den entsprechenden Code finden Sie hier . Damit der Server funktioniert, benötigen Sie Golang . So bringen Sie Ihren Server zum Laufen:



$ git clone https://github.com/schollz/tape-synth
$ cd tape-synth
$ go build
$ ./tape-synth -com ARDUINOCOM


Wenn Sie Linux verwenden, müssen Sie den Befehl verwenden, um die Arbeit mit dem USB-Anschluss zu organisieren sudo. ARDUINOCOMIst ein COM-Anschluss für eine Arduino-Karte, die über USB mit einem Computer verbunden ist. Dies ist unter Windows üblich COM4.



Die Seite wird zum Verwalten des Servers verwendet index.html. Um es in Chrome zu öffnen, müssen Sie zur Adresse gehen localhost:8080. Als nächstes können Sie ein MIDI-Keyboard anschließen und Arduino-Befehle senden (Chrome ist der beliebteste Browser, der MIDI unterstützt ).



Aufbau des Systems und Spielen des Synthesizers



Um den Kassettensynthesizer abzuspielen, müssen Sie den Server starten, ein MIDI-Keyboard anschließen und unter Chrome zu Chrome wechseln localhost:8080. Jetzt können Sie den Player einschalten und loslegen! Die auf der Tastatur gespielte Note muss vom Spieler gespielt werden.



Synthesizer-Setup



Wir haben es mit einem mechanischen System zu tun, das die Tonhöhe durch Ändern der Geschwindigkeit des Bandes ändert. Daher muss unser Synthesizer abgestimmt werden. Dazu müssen Sie index.htmldie Eigenschaften des Objekts öffnen und bearbeiten voltageMap. Jeder Note muss eine Spannung (zwischen 0 und 3) zugewiesen werden, die ihrer Tonhöhe entspricht.



var voltageMap = {
    "C": 0,
    "C#": 0.7,
    "D": 0.9,
    "D#": 1.2,
    "E": 1.4,
    "F": 1.62,
    "F#": 1.85,
    "G": 2.25,
    "G#": 2.6,
    "A": 3.0,
    "A#": 0,
    "B": 0,
}


Ergebnis



Wenn ich etwas unverständlich erklärt habe (ich vermute, dass es das ist) - stellen Sie mir Fragen auf Twitter oder Instagram .



Planen Sie einen eigenen Kassettensynthesizer?










All Articles