Isi kandungan:

Arduino MIDI Chiptune Synthesizer: 7 Langkah (dengan Gambar)
Arduino MIDI Chiptune Synthesizer: 7 Langkah (dengan Gambar)

Video: Arduino MIDI Chiptune Synthesizer: 7 Langkah (dengan Gambar)

Video: Arduino MIDI Chiptune Synthesizer: 7 Langkah (dengan Gambar)
Video: Arduino and Audio: Noise and Chiptune Magic with Sample-And-Hold | Simon Hutchinson 2024, Julai
Anonim
Arduino MIDI Chiptune Synthesizer
Arduino MIDI Chiptune Synthesizer

Nikmati keseronokan muzik permainan komputer awal dengan 8-bit chiptune synthesizer yang autentik, yang dapat anda kendalikan MIDI dari keselesaan mana-mana perisian DAW moden.

Litar sederhana ini menggunakan Arduino untuk menggerakkan cip penjana bunyi AY-3-8910 yang dapat diprogramkan (atau salah satu daripada banyak klonnya) untuk mencipta semula bunyi tahun 1980-an itu. Tidak seperti banyak reka bentuk yang memerlukan perisian khusus untuk mengedit muzik, ini kelihatan seperti peranti USB MIDI standard. Synthesizer mempunyai algoritma pintar yang cuba mengekalkan nota muzik yang paling relevan; dalam banyak kes, anda boleh melemparkan fail MIDI yang tidak diedit terus dan suaranya keluar dengan segera. Jumlah kos kira-kira £ 20.

Langkah 1: Perkara yang Anda Perlu

Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu

Senarai bahagian penuh untuk ini, seperti yang anda lihat dalam gambar, adalah seperti berikut:

  • Klon Sparkfun Pro Micro (pilihan 5V, 16MHz). Saya menggunakan yang ini di Amazon.
  • Cip Yamaha YM2149F PSG. Saya mendapat milik saya dari eBay.
  • Kapasitor seramik 2 x 100nF
  • 1 setiap perintang 75R, 1K dan 100K (penilaian 1/4 watt baik).
  • Kapasitor cakera seramik 4.7nF
  • Kapasitor elektrolitik 1uF (penilaian voltan> 5V).
  • Soket IC DIP 40 pin 0.6"
  • Header 2 x 12 cara 0.1 "(ini dari CPC)
  • Papan prototaip, kira-kira 3 "dengan 2" Saya membeli sebilangan besar ini, sekali lagi di Amazon.
  • Soket phono pasang PCB
  • Kawat teras pepejal miniatur (seperti ini).

Anda juga memerlukan besi pematerian, pateri, pemotong wayar, tang, dan pelucut wayar.

Langkah 2: Bahagian Alternatif

Bahagian Altern-t.webp
Bahagian Altern-t.webp
Bahagian Altern-t.webp
Bahagian Altern-t.webp
Bahagian Altern-t.webp
Bahagian Altern-t.webp

Alternatif cip penjana bunyi yang boleh diprogramkan

YM2149 yang saya gunakan adalah klon dari Instrumen Umum asli AY-3-8910 IC. (Prototaip pertama menggunakan AY-3-8910 yang saya beli dari eBay, tetapi ternyata penjana bunyi putih tidak berfungsi. Wajah sedih). Anda boleh menggunakan sama ada untuk projek ini tanpa perubahan.

Instrumen Umum juga membuat varian AY-3-8912 dan AY-3-8913, yang merupakan silikon yang sama di dalam bungkusan yang lebih kecil, tanpa beberapa pin I / O tambahan. Pin ini tidak diperlukan untuk tujuan audio, dan projek ini tidak menggunakannya. Anda boleh menggunakan AY-3-8912 atau -8913, ikuti pinout yang ditunjukkan di atas.

Arduino Alternatif

"Pro Micro" yang saya gunakan adalah salinan papan Pro Micro Sparkfun. Sekiranya anda tidak yakin dengan kod Arduino, lebih baik anda mengikutinya; jika anda senang menyesuaikan reka bentuk, anda memerlukan spesifikasi berikut

  • Peranti ATmega 16u4 atau 32u4 (diperlukan untuk bertindak sebagai peranti USB MIDI; ATmega 168 atau 328 tidak dapat melakukan ini).
  • Operasi 5V (AY-3-8910 berjalan pada 5V), dan kelajuan jam 16MHz.
  • Sekurang-kurangnya 13 talian I / O digital.

    Pin port PB5 mesti disambungkan (ia digunakan untuk menghasilkan isyarat jam 1MHz). Pada Pro Micro ini digunakan sebagai pin D9 I / O

Papan Arduino Leonardo dan Mikro sesuai dengan rang undang-undang, walaupun saya belum mencubanya.

Komponen lain

Perintang dan kapasitor yang digunakan di sini tidak begitu istimewa. Sebarang bahagian (kira-kira) nilai yang betul mesti berfungsi.

Langkah 3: Meletakkan Papan Litar

Membentangkan Papan Litar
Membentangkan Papan Litar

Untuk membina litar, sebaiknya mulakan dengan meletakkan soket, kemudian tambahkan perintang dan kapasitor. Kami akan membahas pendawaian ini bersama-sama pada langkah seterusnya.

Dengan menggunakan gambar di atas sebagai panduan, letakkan soket IC 40-pin, pusingkan papan dan pateri hanya pada dua pin sudut yang bertentangan terlebih dahulu. Sekiranya soket tidak berbaring di atas papan, mudah dipasang dengan meletakkan satu atau satu lagi pin. Apabila tidak apa-apa, selesaikan selebihnya.

Letakkan dua soket 12-pin, kemudian masukkan Arduino ke dalamnya untuk menegak dan tegak semasa pematerian. Sekali lagi, pematerian dua pin pada setiap hujung pertama akan membolehkan pemeriksaan sebelum pematerian terakhir.

Untuk soket output audio, saya menggunakan gerudi kecil untuk membesarkan lubang PCB, kerana tag pemasangannya agak besar.

Langkah 4: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian

Setelah komponen utama diposisikan, mereka boleh dipasang di bahagian belakang papan, mengikuti litar di atas.

Komponen output audio (R2, R3, C2, C3) dan kapasitor pemisah (C1, C4) dapat dihubungkan dengan wayar teras pepejal (atau pemotongan kabel komponen). Sambungan tanah dan kuasa dari Arduino ke cip PSG (wayar merah dan hitam, dalam gambar) kini boleh dibuat.

Pelbagai output Pro Micro disambungkan ke AY-3-8910 seperti berikut (lihat panduan penyambungan untuk penugasan pin):

Pin 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 (melalui R1, 75 ohm)

Langkah 5: Pengaturcaraan Menggunakan Arduino IDE

Pengaturcaraan Menggunakan Arduino IDE
Pengaturcaraan Menggunakan Arduino IDE

Sekiranya anda baru menggunakan Arduino, saya sangat mengesyorkan mencuba salah satu daripada banyak tutorial mengenai asasnya. Panduan penyambungan Sparkfun memberikan maklumat lengkap. Anda boleh memastikan bahawa pengaturcaraan asas berfungsi dengan mengikuti tutorial "Blinkies". Arduino sedikit sukar untuk dipujuk ke mod 'bootloader' (di mana anda boleh memuatkan lakaran baru), jadi sedikit latihan dengan contoh mudah berguna.

Setelah anda gembira, muat turun fail chiptunes.ino yang dilampirkan ke halaman ini, dan bina dan muat naiknya. (Saya mendapati bahawa menggunakan jenis papan "Arduino / Genuino Micro" adalah sesuai untuk lakaran ini, jika anda mahu melangkau pemasangan papan sokongan Sparkfun).

Juga, perhatikan bahawa jika anda menggunakan Mac, tetapan "Port" perlu diubah setelah memuatkan lakaran untuk pertama kalinya. Dengan Arduino 'kosong' (atau menggunakan lakaran Blinky) ia akan kelihatan seperti /dev/cu.usbmodemXXXX, seperti yang ditunjukkan dalam gambar di atas. Apabila peranti USB MIDI aktif (seperti yang digunakan oleh lakaran chiptunes.ino) ia akan menjadi /dev/cu.usbmodemMID1.

Langkah 6: Menguji dan Menggunakan Sintesis

Menguji dan Menggunakan Sintesis
Menguji dan Menggunakan Sintesis
Menguji dan Menggunakan Sintesis
Menguji dan Menggunakan Sintesis
Menguji dan Menggunakan Sintesis
Menguji dan Menggunakan Sintesis

Setelah Arduino diprogramkan, stesen kerja anda akan mengenalinya secara automatik sebagai peranti USB MIDI. Ini akan muncul dengan nama 'Arduino Micro' - anda seharusnya dapat melihatnya di Device Manager di Windows, atau aplikasi "Information System" di Mac OS.

Pada Mac, anda boleh menggunakan aplikasi Penyediaan MIDI Audio untuk menjalankan ujian asas. Mulakan aplikasi, kemudian pilih Window -> Show MIDI Studio. Ini akan memunculkan tetingkap MIDI Studio - semua antara muka MIDI anda akan muncul dalam susunan yang agak rawak - yang diharapkan akan merangkumi peranti 'Arduino Micro'. Sekiranya anda mengklik ikon 'Test Setup' di bar alat, dan kemudian klik anak panah ke bawah (lihat gambar) pada peranti Arduino Micro, aplikasi akan menghantar nota MIDI ke synth. (Ini tidak terlalu sesuai!) Synth harus membuat beberapa bunyi rawak pada ketika ini.

Anda kemudian boleh menambahkan 'Arduino Micro' sebagai peranti output ke persediaan MIDI Digital Audio Workstation anda, dan mula bermain!

  • Synth bertindak balas pada saluran MIDI 1 hingga 4. Setiap saluran mempunyai bunyi yang berbeza (baik, sampul kelantangan yang berbeza).
  • Nota MIDI antara 24 dan 96 (C1-C7) diterima; nota di luar julat ini tidak diambil kira.
  • Saluran MIDI 10 memainkan bunyi drum. Perhatikan nombor antara 35 dan 50 (lihat

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

  • Terdapat tiga saluran suara di AY-3-8910. Firmware synth cuba memainkan nota yang paling baru dihantar, sambil mengekalkan nota tertinggi dan terendah yang diminta semasa masih dimainkan. Catatan lain (biasanya nota tengah dalam kord) dipotong jika perlu.

Dan itu sahaja. Berseronok!

Langkah 7: Nota kaki

Mengenai lagu demo

Lagu demo - Queen of The Night yang terkenal di Mozart - dibuat dengan pantas dari fail MIDI yang saya dapati di Internet (https://www.midiworld.com/mozart.htm). Orang lain melakukan semua kerja keras!

Saya menggunakan Presonus Studio One pada Mac, dan fail MIDI diimport ke empat trek yang berasingan. Sedikit pengeditan diperlukan di mana nota iringan lebih tinggi daripada nada utama, dan untuk menghilangkan beberapa gangguan yang lebih tidak menyenangkan antara nota.

Audio yang anda dengar pada klip langsung dari synth, dengan hanya sentuhan EQ dan ketepuan untuk memberikan sedikit nuansa 'arcade machine' rendah.

Disyorkan: