Bagaimana penulis TV-B-Gone membuat synthesizer musik ArduTouch

Instrumen pelatihan pemrosesan sinyal digital yang kompatibel dengan Arduino




Sebuah artikel oleh Mitch Altman, penemu yang menemukan remote control universal untuk mematikan televisi TV-B-Gone, dan penyelenggara konferensi hacker

Sebagai seorang anak, saya tertarik pada musik, dan saya dikejutkan oleh suara synthesizer Moog dari album 1968 Switched-On Bach . Saya perlu belajar bagaimana membuat suara seperti itu! Maka mulailah pelatihan dan pembuatan synthesizer seumur hidup, paralel dengan masuknya saya ke industri teknologi , di mana saya akhirnya membuat TV-B-Gone , sebuah gadget yang memungkinkan Anda mematikan hampir semua TV yang dikendalikan dari jarak jauh. Sejak mendapatkan popularitas TV-B-Gone, saya telah membuat banyak kit untuk membuat perangkat outdoor yang menyenangkan yang saya presentasikan di seluruh dunia di konferensi DIY . Pada mereka, pemula belajar menyolder, membuat jalan mereka ke dunia elektronik dan mikrokontroler. Mengingat masa muda saya, saya ingin memberi mereka satu set yang mudah untuk dirakit dan digunakan, tetapi pada saat yang sama itu adalah synthesizer musik lengkap.

Beginilah cara ArduTouch, senilai $ 30, muncul. Proyek ini mencakup satu papan, papan ketik sentuh, ATMega328P (prosesor yang sama yang digunakan di Arduino Uno) dan penguat audio dengan pengeras suara. Ini juga memiliki perpustakaan perangkat lunak yang dapat berfungsi sebagai titik masuk ke dunia pemrosesan sinyal digital.

Kesulitan terbesar dalam mengembangkan papan adalah terbatasnya jumlah pin I / O pada ATMega328P. Saya menggunakan 12 pin untuk keyboard untuk mewujudkan seluruh skala musik berwarna secara keseluruhan. Keyboard ini mirip dengan Stylophone - salah satu synthesizer analog favorit saya di akhir 1960-an - dan menggunakan sensor kapasitif untuk pengenalan. Dua pin lagi digunakan untuk output suara stereo, dan dua lainnya untuk transfer data serial (ArduTouch dapat diprogram menggunakan alat pengembangan standar untuk Arduino, meskipun kabel FTDI diperlukan untuk terhubung ke komputer). Kontak yang tersisa hanya cukup untuk dua tombol dan dua potensiometer yang mengendalikan synthesizer.

Agar seseorang dapat segera mendapatkan hasil yang dapat didengar setelah penyolderan, saya meletakkan chip amplifier LM386 dan speaker di papan (amplifier memotong saat menghubungkan jack audio). Chip DAC mahal, jadi saya menggunakan modulasi lebar-pulsa untuk menyandikan saluran audio stereo yang keluar dari ATMega328P. Filter low-pass untuk setiap saluran, yang terdiri dari resistor dan kapasitor, mengubah PWM menjadi audio.

Insinyur elektronik yang berpengalaman akan memahami bahwa rangkaian ArduTouch sederhana. Dasar dari proyek ini adalah pustaka perangkat lunak sintesis audio canggih yang digunakan untuk memprogram ATMega328P.

Cukup mudah untuk membuat mikrokontroler mengeluarkan catatan paling sederhana. Cukup sambungkan speaker ke kontak, dan berganti-ganti, mengirim gelombang persegi pada frekuensi yang berbeda (teknologi ini digunakan oleh Alan Turing sendiri di komputer Manchester Mark II ). Tetapi hasilnya adalah suara yang tajam, jauh dari palet yang kaya dari synthesizer Moog.

Untuk meningkatkan suara, saya perlu beralih ke synthesizer digital. Mereka terlibat dalam penciptaan representasi biner dari gelombang audio, distorsi dan konversi angka-angka ini menjadi sinyal analog. Ini dapat dilakukan dengan berbagai cara, dan saya senang mencatat bahwa ArduTouch mendukung cukup banyak teknik yang berbeda, termasuk menggunakan tabel gelombang (menggunakan sampel yang disimpan dalam memori) dan menghasilkan suara (menghitung audio dengan cepat).

Setelah membuat representasi biner dasar suara, kita beralih ke tahap kritis dari "distorsi" nya. Jika Anda tidak bermain dengan suara, biasanya menjadi tipis dan steril. Suara keren diperoleh setelah manipulasi dinamis. ArduTouch mampu menerapkan berbagai fungsi dan efek dinamis digital, termasuk tremolo, vibrato, portamento, serta filter frekuensi rendah dan tinggi.




ArduTouch menggunakan komponen yang relatif sedikit


Bahkan pemula dapat mengumpulkannya

Dan meskipun secara konseptual semua hal di atas bukanlah sesuatu yang sulit untuk dipelajari dan dipahami, pemrograman itu sendiri cukup rumit. Perpustakaan ArduTouch, yang dibuat oleh saya bersama dengan teman saya Bill Alessi, melakukan semua perhitungan tingkat rendah - dan kami membutuhkan waktu dua tahun untuk membuatnya.

Perpustakaan dirancang untuk menjadi fleksibel dan bahkan memungkinkan pengguna yang tidak berpengalaman untuk membuat synthesizer baru yang menghasilkan suara yang berbeda. The Tebal synthesizer menggabungkan empat gelombang gigi gergaji datang dengan kit, dan synthesizer lainnya dapat diunduh secara terpisah . Pengguna yang berpengalaman dapat mempelajari cara membuat synthesizer dari awal dengan menjalankan fungsi tingkat tinggi. Saya harap orang-orang yang menyukai proyek ini akan membuat synthesizer baru dan membagikan kode mereka kepada saya sehingga saya bisa membaginya dengan orang lain.

Tetapi bahkan ketika menggunakan synthesizer default, suara secara tak terduga bagus untuk mikrokontroler berdaya rendah (mendukung frekuensi pengambilan sampel hanya 15 kHz) dan peralatan murah. Anda dapat mendengarkan banyak demo di saluran YouTube saya.

Untuk mengembangkan proyek di masa depan, saya akan terus meningkatkan perpustakaan ArduTouch untuk Arduino dan memposting tambahan synthesizer siap pakai. Saya juga sedang berupaya membuat versi ArduTouch yang lebih kuat, cocok untuk pertunjukan. Itu tidak lagi menjadi kit, tetapi masih akan tetap kompatibel dengan Arduino. Ini akan memiliki mikrokontroler 32-bit dengan banyak pin I / O, DAC, banyak memori (yang memungkinkan MIDI ), layar LCD kecil, beberapa tombol dan potensiometer, dan indikator LED - dan, tentu saja, suara yang lebih baik.

Source: https://habr.com/ru/post/id433212/


All Articles