Membuat alat musik dari pemutar kaset



Cassette Synthesizer



Saya suka proyek musik yang tidak biasa. Misalnya, saya telah merilis album berdasarkan rekaman yang dibuat oleh NASA selama misi Apollo 12. Dan baru-baru ini saya menggunakan hati saya sendiri untuk mengontrol tempo musik. Anda dapat menemukan hasil eksperimen musik saya di sini .



Saya baru-baru ini membuat synthesizer yang dikendalikan MIDI dari pemutar kaset lama yang mengingatkan kita pada Walkman Sony. Untuk melakukan ini, saya membutuhkan papan Arduino dan beberapa kode. Apa yang terjadi bisa disebut "penyintesis kaset".



Sebuah synthesizer kaset bekerja dengan memainkan suara monoton (satu nada) yang direkam sebelumnya pada kaset. Pitch dapat dikontrol, itu tergantung pada kecepatan rekaman. Proyek Onde Magnétique membawa saya pada ide untuk membuat synthesizer kaset , dan pencipta proyek ini terinspirasi oleh ide Mellotron .





Berikut adalah video yang menunjukkan saya memainkan synthesizer kaset menggunakan keyboard MIDI.



Hal yang baik tentang synthesizer ini adalah ia menghasilkan suara yang sangat "analog" saat mengganti nada. Yakni, titinada sering berubah dengan mulus saat berpindah dari satu nada ke nada lain, hasilnya, suaranya ternyata sangat menarik (yaitu, dalam musik yang dimainkan pada synthesizer ini, efek portamento sering ditemukan). Selain itu, benar-benar suara apa pun dapat direkam pada tape, jadi synthesizer saya ternyata cukup serbaguna.



Membuat synthesizer kaset



Sebenarnya, membuat synthesizer seperti itu sangat sederhana. Saya menemukan video yang bagus tentang cara memodifikasi pemutar kaset sehingga kecepatan pemutaran kaset dapat dikontrol menggunakan pengatur tegangan. Saya telah memodifikasi pemain saya yang ada dengan cara yang sama. Saya juga membuat, berdasarkan browser, pengontrol MIDI sederhana yang dirancang untuk mendapatkan nada yang diinginkan dengan memodifikasi voltase.



Petunjuk di bawah ini berfokus pada perangkat keras penyintesis, yang diwakili oleh pemutar dan Arduino, dan perangkat lunak, yang dimainkan oleh pengontrol MIDI.



Bahan



  • GE 3-5362A Cassette Player ($ 15, banyak di eBay)
  • Arduino ($ 23).
  • DAC MCP4725 ($ 11).
  • 3,5 ($8).
  • ( , $5).
  • , ($25, ).


GE 3-5362A



Perhatikan bahwa Anda tidak perlu menggunakan pemutar GE 3-5362A. Semua pemain yang mendukung kecepatan pemutaran variabel bisa melakukannya. Jika Anda akan membuat synthesizer kaset berdasarkan pemutar lain, Anda hanya perlu mengetahui struktur internalnya dan di mana harus menyolder kabel yang sesuai.



Mari kita mulai dengan membuka tubuh pemain. Untuk melakukan ini, Anda perlu melepaskan keempat sekrup yang terletak di bagian belakang perangkat. Anda tidak perlu berusaha keras di sini - cukup buka sekrupnya dan buka casing dengan hati-hati. Perhatikan bahwa bagian belakang dan depan unit dihubungkan dengan kabel yang menyuplai daya ke elektronik pemutar. Jangan potong kabel ini.





Pemutar yang dibongkar yang telah dimodifikasi



Untuk mengubah pemutar menjadi synthesizer kaset, kita perlu menyolder dua komponen baru padanya. Yang pertama adalah kabel yang terhubungVin, yang dengannya kita dapat mengontrol kecepatan pemutaran kaset menggunakan pengatur tegangan. Yang kedua adalah audio splitter tersambungLine in, yang memungkinkan kita merekam suara pada kaset (ini berguna bagi mereka yang tidak memiliki tape recorder).



Jika Anda tidak dapat menyolder, jangan khawatir. Itu mudah. Tontonvideo ini . Dari situ Anda akan belajar cara menyolder kabel ke bantalan kontak.



Menghubungkan ke Vin dan mengatur kontrol kecepatan pita



Temukan roda berlabel Pemutaran Kecepatan Variabel di badan perangkat. Di sinilah kami akan menyolder beberapa kabel. Saya lebih suka menggunakan kabel merah untuk plus dan kabel coklat atau hijau untuk minus. Oleh karena itu, kami menyolder kabel merah ke bantalan VS +, dan kabel warna lainnya ke bantalan yang terletak tepat di bawah B +.





Kabel disolder ke bantalan VS + dan ke bantalan yang terletak di dekat B +



Perhatikan bahwa saya menggunakan kabel dengan konektor perempuan di satu ujung dalam situasi seperti ini. Sangat mudah untuk menghubungkan sesuatu dengan mereka.



Sambungan ke Saluran masuk untuk mengatur rekaman suara pada kaset



Sekarang Anda perlu menemukan bantalan MIC- dan MIC +, tempat kabel merah dan hitam dari mikrofon disolder. Anda cukup melepas kabel ini dan menyolder kabel kabel audio ke bantalan ini. Merah ke MIC +, hitam ke MIC-.





Kabel disolder ke MIC- dan MIC +



Merekam suara monoton pada kaset



Sekarang Anda dapat memasukkan kaset ke dalam pemutar dan merekam suaranya dengan menghubungkan ke Line in! Anda dapat merekam suara not apa pun. Sebagai aturan, Anda dapat memulai eksperimen dengan nada "C". Rekaman harus cukup lama - 30 menit atau lebih (di sini, omong-omong, pita dengan loop pita akan berguna). Harap dicatat bahwa hanya satu nada yang perlu direkam pada kaset, karena titinada nada inilah yang akan kita ubah dengan mengontrol kecepatan pemutaran rekaman.





Merekam suara ke kaset dengan OP-1



Mempersiapkan Arduino untuk digunakan sebagai antarmuka MIDI



Arduino bertindak sebagai perantara antara antarmuka MIDI dan konverter digital-ke-analog, yang bertanggung jawab untuk mengubah tegangan. Keyboard MIDI terhubung ke komputer. Sinyal keyboard diterima oleh program yang berjalan di Chrome. Ini alamat server, yang mengirimkan data tentang perubahan tegangan ke Arduino, dan Arduino mentransmisikan sinyal yang sesuai ke konverter digital-ke-analog, yang mengontrol kecepatan pemutaran rekaman pada pemutar.





Menghubungkan Konverter MCP4725 D / A ke Arduino



Pertama, Anda perlu menghubungkan MCP4725 ke Arduino menggunakan diagram di atas. MCP4725 adalah konverter digital-ke-analog yang dapat dikontrol dari Arduino. Terminal OUT dari konverter harus terhubung ke kabel merah yang sebelumnya kita solder ke pemain. Kabel lainnya harus dihubungkan ke pin GND di Arduino.



Kode yang berkomunikasi antara komputer dan Arduino berkomunikasi dengan perangkat, mengirimkan informasi tentang cara mengubah tegangan. Misalnya, jika Arduino menerima perintahdac.setVoltage(newVolts, 1), MCP4725 akan mengeluarkan tegangannewVolts. Ini kodenya:



#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 digunakan untuk mengirim perintah ke Arduino



Untuk mengontrol Arduino, Anda dapat menggunakan server sederhana yang mengirimkan perintah ke papan yang mengubah tegangan. Kode yang relevan dapat ditemukan di sini . Agar server berfungsi, Anda membutuhkan Golang . Berikut cara menyiapkan dan menjalankan server Anda:



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


Jika Anda menggunakan Linux, maka Anda perlu menggunakan perintah untuk mengatur pekerjaan dengan port USB sudo. ARDUINOCOMAdalah port COM untuk papan Arduino yang terhubung ke komputer melalui USB. Ini biasa terjadi di Windows COM4.



Halaman tersebut digunakan untuk mengelola server index.html. Untuk membukanya di Chrome, Anda harus pergi ke alamatnya localhost:8080. Selanjutnya, Anda dapat menghubungkan keyboard MIDI dan mengirim perintah Arduino (Chrome adalah browser paling populer yang mendukung MIDI ).



Membangun sistem dan memainkan synthesizer



Untuk memainkan synthesizer kaset, Anda perlu memulai server, menghubungkan keyboard MIDI dan pergi ke Chrome di localhost:8080. Sekarang Anda dapat menghidupkan pemain dan mulai bermain! Not yang dimainkan di keyboard harus dimainkan oleh pemain.



Penyiapan synthesizer



Kami berurusan dengan sistem mekanis yang mengubah nada dengan mengubah kecepatan pita. Oleh karena itu, penyintesis kami membutuhkan penyetelan. Untuk melakukan ini, Anda perlu membuka index.htmldan mengedit properti objek voltageMap. Setiap nada harus diberi tegangan (antara 0 dan 3) yang sesuai dengan nada.



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


Hasil



Jika saya menjelaskan sesuatu yang tidak dapat dipahami (saya curiga) - ajukan pertanyaan di Twitter atau Instagram .



Apakah Anda berencana untuk membuat synthesizer kaset Anda sendiri?










All Articles