Daftar Isi:

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, Juli
Anonim
Arduino MIDI Chiptune Synthesizer
Arduino MIDI Chiptune Synthesizer

Hidupkan kembali kesenangan musik game komputer awal dengan synthesizer chiptune 8-bit otentik, yang dapat Anda kendalikan melalui MIDI dari kenyamanan perangkat lunak DAW modern apa pun.

Sirkuit sederhana ini menggunakan Arduino untuk menggerakkan chip generator suara yang dapat diprogram AY-3-8910 (atau salah satu dari banyak klonnya) untuk menciptakan kembali suara tahun 1980-an itu. Tidak seperti banyak desain yang memerlukan perangkat lunak khusus untuk mengedit musik, ini terlihat seperti perangkat MIDI USB standar. Synthesizer memiliki algoritme pintar yang mencoba memainkan not yang paling relevan dengan musik; dalam banyak kasus Anda dapat langsung membuang file MIDI yang tidak diedit dan nadanya langsung keluar. Total biaya harus sekitar £ 20.

Langkah 1: Hal-hal yang Anda Butuhkan

Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan

Daftar bagian lengkap untuk ini, seperti yang Anda lihat dalam gambar, adalah sebagai berikut:

  • Klon Mikro Sparkfun Pro (opsi 5V, 16MHz). Saya menggunakan yang ini di Amazon.
  • Chip Yamaha YM2149F PSG. Saya mendapatkan milik saya dari eBay.
  • 2 x 100nF kapasitor keramik
  • 1 masing-masing resistor 75R, 1K dan 100K (rating 1/4 watt baik-baik saja).
  • 4.7nF kapasitor cakram keramik
  • Kapasitor elektrolit 1uF (peringkat tegangan> 5V).
  • Soket IC DIP 40 pin 0,6"
  • 2 x 12 way 0.1" header (yang ini dari BPK)
  • Papan prototipe, kira-kira 3" kali 2". Saya membeli paket massal ini, sekali lagi di Amazon.
  • Soket phono dudukan PCB
  • Miniatur kawat inti padat (seperti ini).

Anda juga membutuhkan besi solder, solder, pemotong kawat, tang, dan penari telanjang kawat.

Langkah 2: Bagian Alternatif

Suku Cadang Altern-t.webp
Suku Cadang Altern-t.webp
Suku Cadang Altern-t.webp
Suku Cadang Altern-t.webp
Suku Cadang Altern-t.webp
Suku Cadang Altern-t.webp

Chip generator suara alternatif yang dapat diprogram

YM2149 yang saya gunakan adalah tiruan dari IC General Instruments AY-3-8910 asli. (Prototipe pertama menggunakan AY-3-8910 yang saya beli dari eBay, tetapi ternyata generator white noise tidak berfungsi. Wajah sedih). Anda dapat menggunakan salah satu untuk proyek ini tanpa perubahan apa pun.

General Instruments juga membuat varian AY-3-8912 dan AY-3-8913, yang merupakan silikon yang sama di dalam kemasan yang lebih kecil, tanpa beberapa pin I/O tambahan. Pin ini tidak diperlukan untuk tujuan audio apa pun, dan proyek ini tidak menggunakannya. Anda dapat menggunakan AY-3-8912 atau -8913, cukup ikuti pinout yang ditunjukkan di atas.

Arduino alternatif

"Pro Micro" yang saya gunakan adalah salinan papan Pro Micro Sparkfun. Jika Anda tidak yakin dengan kode Arduino, sebaiknya tetap menggunakan ini; jika Anda senang menyesuaikan desain, Anda memerlukan spesifikasi berikut:

  • Perangkat ATmega 16u4 atau 32u4 (diperlukan untuk bertindak sebagai perangkat MIDI USB; ATmega 168 atau 328 tidak dapat melakukan ini).
  • Operasi 5V (AY-3-8910 berjalan pada 5V), dan kecepatan clock 16MHz.
  • Setidaknya 13 jalur I/O digital.

    Pin port PB5 harus terhubung (digunakan untuk menghasilkan sinyal clock 1MHz). Pada Pro Micro ini digunakan sebagai pin I/O D9

Papan Arduino Leonardo dan Micro keduanya sesuai dengan tagihan, meskipun saya belum mencobanya.

Komponen lainnya

Resistor dan kapasitor yang digunakan di sini tidak terlalu istimewa. Setiap bagian dari (kurang-lebih) nilai yang tepat harus berfungsi.

Langkah 3: Meletakkan Papan Sirkuit

Meletakkan Papan Sirkuit
Meletakkan Papan Sirkuit

Untuk membangun sirkuit, sebaiknya mulai dengan memposisikan soket, lalu tambahkan resistor dan kapasitor. Kami akan membahas pengkabelan ini bersama-sama di langkah berikutnya.

Dengan menggunakan gambar di atas sebagai panduan, posisikan soket IC 40-pin, balikkan papan dan cukup solder di dua pin sudut yang berlawanan terlebih dahulu. Jika soket tidak menempel rata pada papan, mudah untuk memperbaikinya dengan menyolder ulang satu atau pin lainnya. Jika sudah oke, solder sisanya.

Posisikan dua soket 12-pin, lalu masukkan Arduino ke dalamnya untuk menahannya secara vertikal dan stabil selama penyolderan. Sekali lagi, menyolder dua pin di setiap ujung terlebih dahulu akan memungkinkan pemeriksaan sebelum penyolderan akhir.

Untuk soket output audio, saya menggunakan bor kecil untuk memperbesar lubang PCB, karena tag pemasangannya agak besar.

Langkah 4: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Setelah komponen utama diposisikan, mereka dapat dihubungkan ke bagian belakang papan, mengikuti rangkaian di atas.

Komponen output audio (R2, R3, C2, C3) dan kapasitor decoupling (C1, C4) dapat dihubungkan dengan kabel inti padat (atau potongan kabel komponen). Sambungan ground dan daya dari Arduino ke chip PSG (kabel merah dan hitam, dalam gambar) sekarang dapat dibuat.

Berbagai output Pro Micro dihubungkan ke AY-3-8910 sebagai berikut (lihat panduan hookup untuk penetapan pin):

Sinyal 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 (via R1, 75 ohm)

Langkah 5: Pemrograman Menggunakan Arduino IDE

Pemrograman Menggunakan Arduino IDE
Pemrograman Menggunakan Arduino IDE

Jika Anda baru mengenal Arduino, saya sangat menyarankan untuk mencoba salah satu dari banyak tutorial tentang dasar-dasarnya. Panduan hookup Sparkfun memberikan detail lengkap. Anda dapat memeriksa apakah pemrograman dasar berfungsi dengan mengikuti tutorial "Blinkies". Arduino bisa sedikit sulit untuk dibujuk ke mode 'bootloader' (di mana Anda dapat memuat sketsa baru), jadi sedikit latihan dengan contoh sederhana berguna.

Setelah Anda puas, unduh file chiptunes.ino yang dilampirkan ke halaman ini, lalu buat dan unggah. (Saya telah menemukan bahwa menggunakan jenis papan "Arduino/Genuino Micro" tidak masalah untuk sketsa ini, jika Anda ingin melewatkan pemasangan dukungan papan Sparkfun).

Juga, perhatikan bahwa jika Anda menggunakan Mac, pengaturan "Port" perlu diubah setelah Anda memuat sketsa untuk pertama kalinya. Dengan Arduino 'kosong' (atau menggunakan sketsa Blinky) akan muncul seperti /dev/cu.usbmodemXXXX, seperti yang ditunjukkan pada gambar di atas. Ketika perangkat MIDI USB aktif (seperti yang digunakan oleh sketsa chiptunes.ino) itu akan menjadi /dev/cu.usbmodemMID1.

Langkah 6: Menguji dan Menggunakan Synth

Menguji dan Menggunakan Synth
Menguji dan Menggunakan Synth
Menguji dan Menggunakan Synth
Menguji dan Menggunakan Synth
Menguji dan Menggunakan Synth
Menguji dan Menggunakan Synth

Setelah Arduino diprogram, workstation Anda akan secara otomatis mengenalinya sebagai perangkat MIDI USB. Ini akan muncul dengan nama 'Arduino Micro' - Anda seharusnya dapat melihatnya di Pengelola Perangkat di Windows, atau aplikasi "Informasi Sistem" di Mac OS.

Di Mac, Anda dapat menggunakan app Pengaturan MIDI Audio untuk menjalankan pengujian dasar. Mulai aplikasi, lalu pilih Window -> Show MIDI Studio. Ini akan memunculkan jendela MIDI Studio - semua antarmuka MIDI Anda akan muncul dalam pengaturan yang sedikit acak - yang diharapkan akan menyertakan perangkat 'Arduino Micro'. Jika Anda mengklik ikon 'Test Setup' di toolbar, dan kemudian mengklik panah bawah (lihat gambar) pada perangkat Arduino Micro, aplikasi akan mengirimkan catatan MIDI ke synth. (Ini tidak terlalu merdu!) Synth seharusnya membuat beberapa suara acak pada saat ini.

Anda kemudian dapat menambahkan 'Arduino Micro' sebagai perangkat output ke pengaturan MIDI Digital Audio Workstation Anda, dan mulai bermain!

  • Synth merespon pada saluran MIDI 1 hingga 4. Setiap saluran memiliki suara yang berbeda (well, amplop volume yang berbeda).
  • Catatan MIDI antara 24 dan 96 (C1-C7) diterima; catatan di luar kisaran ini diabaikan.
  • MIDI channel 10 memainkan suara drum. Catat angka antara 35 dan 50 (lihat

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

  • Ada tiga saluran suara pada AY-3-8910. Firmware synth mencoba memainkan not yang paling baru dikirim, sambil tetap memainkan not tertinggi dan terendah yang diminta saat ini. Catatan lain (biasanya nada tengah dalam akord) dipotong jika perlu.

Dan itu saja. Selamat bersenang-senang!

Langkah 7: Catatan kaki

Tentang lagu demo

Lagu demo - aria Queen Of The Night Mozart yang terkenal - dibuat cukup cepat dari file MIDI yang saya temukan di Internet (https://www.midiworld.com/mozart.htm). Orang lain melakukan semua kerja keras!

Saya menggunakan Presonus Studio One di Mac, dan file MIDI diimpor ke empat trek terpisah. Sedikit pengeditan diperlukan di mana nada pengiring lebih tinggi dari nada utama, dan untuk menghilangkan beberapa kesalahan yang tidak menyenangkan di antara nada-nada.

Audio yang Anda dengar di klip langsung dari synth, hanya dengan sentuhan EQ dan saturasi untuk memberikan sedikit nuansa low-fi 'mesin arcade'.

Direkomendasikan: