Daftar Isi:

Synthesizer Arpeggiating (Nyamuk I): 6 Langkah
Synthesizer Arpeggiating (Nyamuk I): 6 Langkah

Video: Synthesizer Arpeggiating (Nyamuk I): 6 Langkah

Video: Synthesizer Arpeggiating (Nyamuk I): 6 Langkah
Video: How to Play the Stranger Things Arpeggio 2024, Juli
Anonim
Synthesizer Arpeggiating (Nyamuk I)
Synthesizer Arpeggiating (Nyamuk I)

Mosquito I adalah synthesizer arpeggiating kecil yang menggunakan Arduino Nano dan perpustakaan sintesis suara Mozzi. Ini dapat memainkan lebih dari dua puluh urutan 8 langkah tetapi Anda dapat menambahkan sebanyak mungkin urutan khusus yang Anda suka. Ini relatif sederhana untuk diatur dan tidak memerlukan banyak bagian.

Perlengkapan:

  • Arduino Nano (atau Arduino apa pun benar-benar harus berfungsi)
  • Potensiometer 5 ea (10K Linear)
  • 2 ea Tombol tekan
  • 1 ea LED
  • 1 ea Resistor (330 ohm)
  • 2 ea Resistor (1K)
  • 1 ea Resistor (2K)
  • 1 ea Kapasitor Elektrolit (100 uF)
  • 1 unit Kapasitor Keramik (33 nF)
  • 1 ea Stereo Jack
  • Kawat penghubung
  • Papan tempat memotong roti

Langkah 1: Menyiapkan Arduino

Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino

Pertama, mari kita dapatkan Nano di papan tempat memotong roti dan mengatur kekuatan kita:

  1. Tempatkan Nano di papan tempat memotong roti. Tempatkan seperti yang ditunjukkan pada gambar di atas. Itu harus mengangkangi saluran tengah papan tempat memotong roti. Anda akan menginginkannya terletak di salah satu ujung papan tempat memotong roti, dengan port USB menghadap ke sisi itu. Dengan cara ini kabel tidak akan menghalangi saat kita mencolokkannya. Jika Anda menggunakan Arduino yang lebih besar seperti Uno atau Mega, Anda tentu tidak akan memasangnya di papan tempat memotong roti.
  2. Hubungkan rel listrik ke Arduino. Hubungkan salah satu rel positif (merah) dari papan tempat memotong roti Anda ke pin 5V Arduino menggunakan kabel atau kabel jumper. Kemudian sambungkan salah satu rel negatif (biru) ke salah satu pin GND Nano.
  3. Hubungkan rel listrik satu sama lain. Untuk mendapatkan daya di sepanjang rel di kedua sisi papan tempat memotong roti, sambungkan rel di kedua sisi papan tempat memotong roti satu sama lain dengan menjalankan kabel dari rel positif di satu sisi ke rel positif di sisi lain. Ulangi ini dengan rel negatif.

Langkah 2: Menambahkan Kontrol

Menambahkan Kontrol
Menambahkan Kontrol

Nyamuk I menggunakan lima potensiometer dan dua tombol untuk kontrol.

Potensiometer:

  1. Tempatkan pot di papan tempat memotong roti. Tempatkan pot sehingga setiap pin berada pada barisnya sendiri.
  2. Hubungkan pot ke rel listrik. Hubungkan pin sisi kiri setiap pot (jika Anda melihat sisi kenop) ke salah satu rel negatif pada papan tempat memotong roti. Hubungkan pin sisi kanan setiap pot ke salah satu rel positif papan tempat memotong roti.
  3. Hubungkan pot ke Arduino. Hubungkan pin tengah setiap pot ke salah satu pin analog pada Arduino. Pin tengah pot pertama terhubung ke A0, pot kedua ke A1 dan seterusnya dengan pot terakhir terhubung ke A4.

Tekan tombol:

  1. Tempatkan tombol di papan tempat memotong roti. Tempatkan dua tombol tekan pada papan tempat memotong roti sehingga mengangkangi saluran tengah.
  2. Hubungkan sisi positif. Di satu sisi papan tempat memotong roti, sambungkan salah satu pin tombol tekan ke rel positif.
  3. Hubungkan sisi negatif. Tempatkan salah satu resistor 1K di papan tempat memotong roti sehingga salah satu ujungnya terhubung ke pin tombol yang tidak digunakan dan sisi lain resistor terhubung ke rel negatif.
  4. Hubungkan tombol ke Arduino. Jalankan kabel pada baris yang menghubungkan tombol ke rel negatif ke pin D2. Lakukan hal yang sama dengan tombol lainnya tetapi hubungkan ke D3.

Langkah 3: Menambahkan Output

Menambahkan Output
Menambahkan Output

Kami mengeluarkan audio dari pin 9 serta mem-flash LED pada langkah pertama setiap urutan. Berikut cara mengatur perangkat keras untuk itu.

LED

  1. Tempatkan LED di ruang kosong di papan tempat memotong roti.
  2. Hubungkan kaki negatif (pendek) LED ke rel negatif.
  3. Tempatkan resistor pembatas arus. Hubungkan satu sisi resistor 330 ohm ke kaki positif (panjang) LED. Hubungkan sisi lain resistor ke pin D4 Arduino.

Keluaran Audio

  1. Tempatkan jaringan RC. Sinyal output dari Arduino berasal dari pin 9 tetapi sinyalnya bisa sedikit lebih panas daripada yang bisa ditangani oleh beberapa speaker. Untuk membawanya ke sesuatu yang lebih dekat ke level garis, saya telah menambahkan jaringan RC (berdasarkan desain oleh Notes & Volts). Tempatkan kapasitor 33nF dan 100uF, bersama dengan resistor 2K seperti yang ditunjukkan pada gambar/skema. Pastikan kapasitor elektrolit 100uF terhubung dengan polaritas yang tepat (kaki positif/panjang menuju pin 9 pada Arduino dan kaki negatif/pendek terhubung ke jack).
  2. Hubungkan sisi negatif jack audio ke ground. Koneksi jack audio akan sedikit berbeda tergantung pada jenis yang Anda gunakan, tetapi umumnya semuanya bekerja sama. Kita perlu menghubungkan selongsong jack ke ground. Ini terkadang ditandai dengan simbol minus atau diberi label sebagai "lengan", "cincin", atau "gnd". Jika tidak ada label pada soket audio Anda, Anda mungkin perlu melihat lembar data atau hanya melakukan pemeriksaan saksama pada soket dan melihat apakah Anda dapat menentukan pin mana yang terhubung ke selongsong atau cincin luar soket.
  3. Hubungkan sisi positif jack audio ke sisi negatif kapasitor 100uF. Sinyal audio kami sekarang mengalir dari pin 9 Arduino melalui jaringan RC dan muncul dari sisi negatif kapasitor 100uF. Kami akan menghubungkannya ke sisi positif dari jack audio kami. Ini biasanya ditandai dengan simbol plus atau mungkin diberi label "tip". Sekali lagi, jika tidak diberi label, Anda mungkin perlu memeriksanya untuk mengetahui pin mana yang akan terhubung ke ujung jack. Juga, jika Anda menggunakan jack stereo, mungkin ada koneksi ujung L dan ujung R. Karena kami mengeluarkan sinyal mono, Anda cukup menyambungkan ke salah satu sambungan ujung.

Penting: Jika Anda menemukan bahwa audio terlalu senyap, Anda mungkin dapat menghilangkan jaringan RC pada langkah 1 dan menghubungkan langsung ke audio dari pin 9 Arduino. Ini seharusnya baik-baik saja jika Anda menghubungkan audio ke sesuatu dengan pre-amp seperti speaker komputer eksternal di mana Anda memiliki kenop volume, tetapi saya tidak akan merekomendasikannya untuk hal-hal seperti headphone, earbud, atau kabel langsung ke speaker. Jika Anda memutuskan untuk menghilangkan jaringan RC, saya sarankan untuk menurunkan volume pada speaker Anda sepenuhnya sebelum menyalakan Arduino, dan kemudian secara bertahap meningkatkan volume untuk menghindari meledaknya speaker Anda.

Setelah Anda menyiapkan semuanya, periksa kembali apakah semua koneksi terlihat benar dan cocok dengan gambar dan skema di atas

Langkah 4: Mengunggah Kode

Sekarang setelah semua perangkat keras disiapkan, kami siap untuk menangani sisi perangkat lunak:

  1. Luncurkan Arduino IDE. Di komputer Anda, luncurkan Arduino IDE (jika Anda tidak memilikinya, Anda dapat mengunduhnya dari
  2. Unduh perpustakaan Mozzi. Pustaka Mozzi memungkinkan kita menggunakan Arduino sebagai synthesizer. Untuk mendapatkan perpustakaan ini di IDE Anda, buka halaman github Mozzi https://sensorium.github.io/Mozzi/download/. Klik tombol hijau "Kode" dan pilih Unduh ZIP.
  3. Instal perpustakaan Mozzi dari file zip. Di Arduino IDE, buka Sketch->Include Library->Add. ZIP Library… Arahkan ke file zip yang Anda unduh untuk menambahkannya. Anda sekarang akan melihat Mozzi terdaftar di bawah bagian Sketch->Include Library.
  4. Unduh kode Arduino Nyamuk I. Anda bisa mendapatkan ini dari situs github saya https://github.com/analogsketchbook/mosquito_one. (Perhatikan skema juga tersedia di sana jika Anda membutuhkannya untuk referensi kabel.
  5. Hubungkan Arduino ke komputer dan unggah kodenya.

Langkah 5: Bermain-main

Itu dia. Anda harus dapat menghubungkan speaker Anda ke jack audio dan mendengar suara manis dari sintesis arpeggiated dari Nano ittybitty itu! Jika Anda tidak mendengar apa-apa pada awalnya, cobalah memusatkan kenop pada semua pot untuk memastikan Anda mendapatkan nilai awal yang layak.

Inilah yang dilakukan kontrol:

Pot:

Rate: Ini mengontrol seberapa cepat sequencer diputar ulang. Menolaknya memainkan not-not diskrit secara berurutan. Memutarnya ke atas akan mengotori nada bersama-sama untuk menciptakan bentuk gelombang yang benar-benar baru.

Legato: Panci kedua mengontrol legato atau panjang nada. Memutarnya lebih ke kiri menghasilkan nada sticatto pendek, sementara memutarnya ke kanan menghasilkan nada yang lebih panjang.

Pitch: Ini menetapkan nada dasar untuk urutan. Kontrol titinada menyetel nilai MIDI, sehingga meningkatkan/menurunkan titinada dalam seminada alih-alih pergeseran titinada kontinu.

Fase: Memutar kenop ini ke kanan memperkenalkan efek pentahapan yang halus. Secara teknis, ini menyebabkan dua osilator di Mosquito I menjadi sedikit detuned yang menyebabkan pentahapan. Namun, ini bukan pelacakan dengan nada sehingga efek pentahapan mungkin lebih terlihat pada nada nada yang lebih rendah.

Filter: Kenop ini mengontrol frekuensi cutoff dari Low Pass Filter. Memutarnya ke kiri memotong frekuensi tinggi yang menghasilkan suara yang lebih teredam, sementara memutarnya ke kanan menghasilkan suara yang lebih terang.

Tombol:

Nyamuk memiliki lebih dari dua puluh urutan berbeda yang dapat dimainkan secara default. Tombol push memungkinkan Anda untuk memilih urutan mana yang sedang diputar. Satu tombol memindahkan Anda ke atas daftar urutan dan yang lainnya turun daftar.

Langkah 6: Kustomisasi

Kustomisasi
Kustomisasi

Saya telah menambahkan banyak urutan default, sebagian besar skala yang berbeda, tetapi Anda dapat menyesuaikan kode dengan cukup mudah untuk mengubah urutan not yang dimainkan, menambahkan yang baru, atau mengubah jumlah not secara berurutan. Di bawah ini adalah detail tentang bagaimana hal itu dilakukan jika Anda ingin menyesuaikannya.

Mengubah Catatan dalam Urutan yang Ada

Urutan disimpan dalam array array yang disebut CATATAN. Setiap catatan disimpan sebagai nilai catatan MIDI, jadi jika Anda ingin mengubah catatan dalam urutan tertentu, cukup ubah nomor catatan MIDI untuk urutan itu. Pengaturan default adalah memainkan 8 langkah per urutan sehingga Anda hanya dapat memiliki 8 nilai MIDI dalam urutan (lihat di bawah jika Anda ingin memiliki panjang urutan yang berbeda).

Satu hal yang perlu diperhatikan, kenop nada menambahkan offset nada ke nilai MIDI yang ditentukan dalam larik NOTES. Saat kenop berada di tengah, ia memainkan not MIDI yang ditunjukkan dalam larik, tetapi saat Anda memutar kenop pitch, ia menambah atau mengurangi semi-nada ke not yang dimainkan.

Menambahkan Urutan Baru

Anda dapat menambahkan urutan baru ke larik CATATAN hanya dengan menambahkan larik 8 nada baru di akhir daftar. Jika Anda melakukan ini, Anda juga perlu mengubah nilai variabel numSequences agar sesuai dengan jumlah urutan yang baru. Misalnya, array NOTES memiliki 21 urutan secara default sehingga variabel numSequences diatur ke 21. Jika Anda menambahkan satu urutan baru, Anda harus mengubah variabel numSequences menjadi 22.

Anda dapat menambahkan sebanyak mungkin urutan baru yang Anda inginkan.

Mengubah Panjang Urutan

Jika Anda ingin mengubah panjang urutan Anda (jika Anda ingin mengatakan urutan 4 langkah atau 16 langkah), Anda dapat melakukannya, tetapi satu-satunya peringatan adalah bahwa semua urutan harus memiliki panjang yang sama. Anda juga harus mengatur variabel numNotes agar sesuai dengan panjang urutan Anda.

Perubahan Lainnya

Ada sejumlah penyesuaian lain yang mungkin dilakukan seperti beralih jenis bentuk gelombang, pengaturan/nilai filter, yang berada di luar cakupan tutorial ini. Mencari tahu kode Mozzi dapat sedikit menantang pada awalnya, tetapi saya telah mencoba untuk mendokumentasikan kode sebanyak mungkin untuk menunjukkan apa yang dilakukan oleh berbagai bagian kode.

Ada beberapa bagian utama dari kode untuk Mozzi yang memiliki kegunaan yang cukup spesifik dan saya telah mencantumkannya di bawah ini untuk memberi Anda gambaran tentang kegunaannya:

  • setup() - Jika Anda telah memprogram untuk Arduinos sebelum Anda terbiasa dengan fungsi ini dan itu hampir sama digunakan di Mozzi. Kami menggunakannya sebagian besar untuk mengatur pengaturan default untuk osilator, filter, dll.
  • updateControl() - Di sinilah bagian terbesar dari kode Mozzi melakukan tugasnya. Ini adalah tempat kami membaca nilai pot dan tombol, memetakan dan mengubah nilai tersebut untuk dimasukkan ke dalam synthesizer, dan di mana pengurutan sedang dilakukan.
  • updateAudio() - Ini adalah hasil akhir dari perpustakaan Mozzi. Biasanya kode di sini disimpan sangat kecil dan ramping karena fungsi ini digunakan oleh Mozzi untuk memaksimalkan semua siklus jam yang dapat dilakukan. Seperti yang Anda lihat dalam kode nyamuk, ini bisa menjadi sedikit samar tetapi pada dasarnya semua yang kami lakukan adalah menggabungkan/menggandakan berbagai bentuk gelombang kami dan kemudian mengubahnya sedikit agar sesuai dengan rentang angka tertentu. Yang terbaik adalah menjaga fungsi ini sangat ringan (bukan panggilan Serial atau membaca pin) dan meletakkan sebagian besar barang di fungsi controlUpdate() sebagai gantinya. Dokumentasi Mozzi merinci ini lebih teliti.

Direkomendasikan: