Fabriquer un instrument de musique à partir d'un lecteur de cassettes



Synthétiseur de cassette



J'aime les projets musicaux insolites. Par exemple, j'ai sorti un album basé sur des enregistrements réalisés par la NASA lors de la mission Apollo 12. Et récemment, j'ai utilisé mon propre cœur pour contrôler le tempo de la musique. Vous pouvez trouver les résultats de mes expériences musicales ici .



J'ai récemment fabriqué un synthétiseur contrôlé par MIDI à partir d'un vieux lecteur de cassettes qui rappelle le Walkman de Sony. Pour ce faire, j'avais besoin d'une carte Arduino et d'un code. Ce qui s'est passé peut être appelé un "synthétiseur de cassette".



Un synthétiseur de cassette fonctionne en jouant un son monotone (une note) précédemment enregistré sur une cassette. La hauteur peut être contrôlée, cela dépend de la vitesse à laquelle la bande est lue. Le projet Onde Magnétique m'a conduit à l'idée de créer un synthétiseur à cassette , et les créateurs de ce projet se sont inspirés de l'idée de Mellotron .





Voici une vidéo me montrant en train de jouer sur un synthétiseur de cassettes à l'aide d'un clavier MIDI.



L'avantage de ce synthétiseur est qu'il produit un son très "analogique" lors du changement de note. A savoir, la hauteur change souvent en douceur lors du passage de note en note, le son, par conséquent, s'avère très intéressant (c'est-à-dire que dans la musique jouée sur ce synthétiseur, on retrouve souvent l'effet portamento ). De plus, n'importe quel son peut être enregistré sur bande, donc mon synthétiseur s'est avéré assez polyvalent.



Créer un synthétiseur de cassette



En fait, créer un tel synthétiseur est très simple. Je suis tombé sur une bonne vidéo sur la façon de modifier un lecteur de cassette afin que la vitesse de lecture de la cassette puisse être contrôlée à l'aide d'un régulateur de tension. J'ai modifié mon lecteur existant de la même manière. J'ai également créé, à partir d'un navigateur, un simple contrôleur MIDI conçu pour obtenir les notes souhaitées en modifiant la tension.



Les instructions ci-dessous se concentrent sur le matériel du synthétiseur, représenté par le lecteur et l'Arduino, et le logiciel, qui est joué par le contrôleur MIDI.



Matériaux



  • Lecteur de cassettes GE 3-5362A (15 $, beaucoup sur eBay)
  • Arduino (23 $).
  • DAC MCP4725 (11 $).
  • 3,5 ($8).
  • ( , $5).
  • , ($25, ).


GE 3-5362A



Notez que vous n'avez pas besoin d'utiliser le lecteur GE 3-5362A. Tout lecteur prenant en charge une vitesse de lecture variable fera l'affaire. Si vous envisagez de créer un synthétiseur à cassette basé sur un autre lecteur, il vous suffit de déterminer sa structure interne et où souder les fils correspondants.



Commençons par ouvrir le corps du joueur. Pour ce faire, vous devez dévisser les quatre vis situées à l'arrière de l'appareil. Vous n'avez pas besoin de faire beaucoup d'efforts ici - il suffit de dévisser les vis et d'ouvrir soigneusement le boîtier. Notez que l'arrière et l'avant de l'appareil sont connectés par des fils qui alimentent l'électronique du lecteur. Ne coupez pas ces fils.





Lecteur démonté qui a déjà été modifié



Pour transformer le lecteur en synthétiseur à cassette, nous devons lui souder deux nouveaux composants. Le premier est un fil connecté àVin, avec lequel nous pouvons contrôler la vitesse de lecture de la bande à l'aide d'un régulateur de tension. Le second est un séparateur audio connecté àLine in, qui nous permettra d'enregistrer des sons sur une cassette (cela est utile pour ceux qui n'ont pas de magnétophone).



Si vous ne pouvez pas souder, ne vous inquiétez pas. C'est simple. Regardez cette vidéo. De là, vous apprendrez à souder des fils aux pads.



Connexion à Vin et organisation du contrôle de la vitesse de la bande



Trouvez la molette intitulée Lecture à vitesse variable sur le corps de l'appareil. C'est là que nous allons souder quelques fils. Je préfère utiliser le fil rouge pour le plus et le fil marron ou vert pour le moins. Par conséquent, nous soudons le fil rouge au pad VS + et l'autre fil de couleur au pad situé immédiatement en dessous de B +.





Fils soudés au pad VS + et au pad situé près de B +



Notez que j'utilise des câbles avec des connecteurs femelles à une extrémité dans des situations comme celle-ci. Il est très pratique de leur connecter quelque chose.



Connexion à Line in pour organiser l'enregistrement sonore sur une cassette



Vous devez maintenant trouver les pads MIC- et MIC +, auxquels les fils rouge et noir du microphone sont soudés. Vous pouvez simplement dessouder ces fils et souder les fils du câble audio sur ces pastilles. Rouge à MIC +, noir à MIC-.





Fils soudés à MIC- et MIC +



Enregistrement d'un son monotone sur une cassette



Vous pouvez maintenant insérer la cassette dans le lecteur et enregistrer le son dessus en vous connectant à Line in! Vous pouvez enregistrer le son de n'importe quelle note. En règle générale, vous pouvez commencer des expériences avec la note «C». L'enregistrement devrait être assez long - 30 minutes environ (ici, au fait, une bande avec une boucle de bande serait utile). Veuillez noter qu'une seule tonalité doit être enregistrée sur la cassette, car c'est la hauteur de cette tonalité que nous changerons en contrôlant la vitesse de lecture de l'enregistrement.





Enregistrement du son sur une cassette avec l'OP-1



Préparation de l'Arduino pour une utilisation comme interface MIDI



Arduino agit comme un intermédiaire entre l'interface MIDI et le convertisseur numérique-analogique, qui est responsable du changement de tension. Le clavier MIDI est connecté à l'ordinateur. Les signaux du clavier sont reçus par un programme exécuté dans Chrome. Il s'adresse au serveur, qui envoie des données sur le changement de tension à l'Arduino, et l'Arduino transmet les signaux correspondants au convertisseur numérique-analogique, qui contrôle la vitesse de lecture de la bande sur le lecteur.





Connexion du convertisseur N / A MCP4725 à l'Arduino



Tout d'abord, vous devez connecter le MCP4725 à l'Arduino en utilisant le schéma ci-dessus. Le MCP4725 est un convertisseur numérique-analogique qui peut être contrôlé à partir de l'Arduino. La borne OUT du convertisseur doit être connectée au fil rouge que nous avons précédemment soudé au lecteur. L'autre fil doit être connecté à la broche GND de l'Arduino.



Le code qui communique entre l'ordinateur et l'Arduino communique avec l'appareil, lui envoyant des informations sur la façon de changer la tension. Par exemple, si l'Arduino reçoit une commandedac.setVoltage(newVolts, 1), le MCP4725 donnera une tensionnewVolts. Voici le 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 = "";
    }
  }
}


Serveur utilisé pour envoyer des commandes à Arduino



Pour contrôler l'Arduino, vous pouvez utiliser un simple serveur qui envoie des commandes à la carte qui modifient la tension. Le code correspondant peut être trouvé ici . Vous avez besoin de Golang pour exécuter le serveur . Voici comment mettre votre serveur en marche:



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


Si vous utilisez Linux, vous devez utiliser la commande pour organiser le travail avec le port USB sudo. ARDUINOCOMEst un port COM pour une carte Arduino connectée à un ordinateur via USB. Ceci est courant sur Windows COM4.



La page est utilisée pour gérer le serveur index.html. Pour l'ouvrir dans Chrome, vous devez accéder à l'adresse localhost:8080. Ensuite, vous pouvez connecter un clavier MIDI et envoyer des commandes Arduino (Chrome est le navigateur le plus populaire qui prend en charge MIDI ).



Construire le système et jouer au synthétiseur



Pour lire le synthétiseur de cassette, vous devez démarrer le serveur, connecter un clavier MIDI et accéder à Chrome à l'adresse localhost:8080. Vous pouvez maintenant allumer le lecteur et commencer à jouer! La note jouée sur le clavier doit être jouée par le joueur.



Configuration du synthétiseur



Nous avons affaire à un système mécanique qui change le pitch en changeant la vitesse de la bande. Par conséquent, notre synthétiseur doit être réglé. Pour ce faire, ouvrez index.htmlet modifiez les propriétés de l'objet voltageMap. Chaque note doit se voir attribuer une tension (entre 0 et 3) correspondant à sa hauteur.



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,
}


Résultat



Si j'explique quelque chose de manière incompréhensible (je suppose que c'est le cas), posez-moi des questions sur Twitter ou Instagram .



Envisagez-vous de construire votre propre synthétiseur à cassettes?










All Articles