Isi kandungan:

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

Video: Arpeggiating Synthesizer (Nyamuk I): 6 Langkah

Video: Arpeggiating Synthesizer (Nyamuk I): 6 Langkah
Video: Dikasih Alat Canggih Terbaru Dari Roland (langsung 3 biji) 2024, Julai
Anonim
Arpeggiating Synthesizer (Nyamuk I)
Arpeggiating Synthesizer (Nyamuk I)

Mosquito I adalah synthesizer arpeggiating kecil yang menggunakan perpustakaan sintesis suara Arduino Nano dan Mozzi. Ia boleh memainkan lebih daripada dua puluh urutan 8 langkah tetapi anda boleh menambahkan seberapa banyak urutan tersuai yang anda mahukan. Penyediaannya agak mudah dan tidak memerlukan banyak bahagian.

Bekalan:

  • Arduino Nano (atau mana-mana Arduino semestinya berfungsi)
  • 5 ea Potensiometer (10K Linear)
  • 2 ea Butang tekan
  • 1 ea LED
  • 1 ea Perintang (330 ohm)
  • 2 ea Perintang (1K)
  • 1 ea Perintang (2K)
  • 1 ea Kapasitor Elektrolitik (100 uF)
  • 1 ea Kapasitor Seramik (33 nF)
  • 1 ea Jack Stereo
  • Kawat cangkuk
  • Papan roti

Langkah 1: Menyiapkan Arduino

Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino

Pertama, mari dapatkan Nano di papan roti dan siapkan kuasa kami:

  1. Letakkan Nano di papan roti. Letakkan seperti yang ditunjukkan dalam gambar di atas. Ia harus merangkai saluran tengah papan roti. Anda mahukannya terletak di salah satu hujung papan roti, dengan port USB menghadap ke sisi itu. Dengan cara ini kabel tidak akan menghalang ketika kita memasangnya. Sekiranya anda menggunakan Arduino yang lebih besar seperti Uno atau Mega, tentu saja anda tidak akan memasangnya di papan roti.
  2. Sambungkan rel elektrik ke Arduino. Sambungkan salah satu rel positif (merah) papan roti anda ke pin Arduino's 5V menggunakan wayar atau kabel jumper. Kemudian sambungkan salah satu rel negatif (biru) ke salah satu pin GND Nano.
  3. Sambungkan rel elektrik antara satu sama lain. Untuk mendapatkan kuasa di sepanjang rel di kedua sisi papan roti, sambungkan rel di kedua sisi papan roti antara satu sama lain dengan menggerakkan wayar dari rel positif di satu sisi ke rel positif di sisi lain. Ulangi ini dengan rel negatif.

Langkah 2: Menambah Kawalan

Menambah Kawalan
Menambah Kawalan

Nyamuk I menggunakan lima potensiometer dan dua butang untuk kawalan.

Potensiometer:

  1. Letakkan periuk di atas papan roti. Letakkan periuk sehingga setiap pin berada pada barisnya sendiri.
  2. Sambungkan periuk ke rel elektrik. Sambungkan pin sisi kiri setiap periuk (jika anda melihat sisi kenop) ke salah satu rel negatif di papan roti. Sambungkan pin sisi kanan setiap periuk ke salah satu landasan positif papan roti.
  3. Sambungkan periuk ke Arduino. Sambungkan pin tengah setiap periuk ke salah satu pin analog di Arduino. Pin tengah periuk pertama menghubungkan ke A0, periuk kedua ke A1 dan seterusnya dengan periuk terakhir disambungkan ke A4.

Butang Tekan:

  1. Letakkan butang di papan roti. Letakkan dua butang tekan di papan roti sehingga melangkaui saluran tengah.
  2. Sambungkan sisi positif. Di satu sisi papan roti, sambungkan salah satu pin penekan ke rel positif.
  3. Sambungkan sisi negatif. Letakkan salah satu perintang 1K di papan roti sehingga satu hujungnya dihubungkan ke pin tekan butang yang tidak digunakan dan sisi lain perintang menyambung ke rel negatif.
  4. Butang sambung ke Arduino. Jalankan wayar di baris yang menghubungkan butang ke rel negatif ke pin D2. Lakukan perkara yang sama dengan butang lain tetapi sambungkan ke D3.

Langkah 3: Menambah Hasil

Menambah Hasil
Menambah Hasil

Kami mengeluarkan audio dari pin 9 serta memancarkan LED pada langkah pertama setiap urutan. Inilah cara untuk menyediakan perkakasan untuk itu.

LED

  1. Letakkan LED di tempat kosong di papan roti.
  2. Sambungkan kaki negatif (pendek) LED ke rel negatif.
  3. Letakkan perintang pengehad arus. Sambungkan satu sisi perintang 330 ohm ke kaki positif (panjang) LED. Sambungkan sisi perintang yang lain ke pin D4 Arduino.

Keluaran Audio

  1. Letakkan rangkaian RC. Isyarat keluaran dari Arduino berasal dari pin 9 tetapi isyaratnya sedikit lebih panas daripada yang boleh dikendalikan oleh beberapa pembesar suara. Untuk menurunkannya ke sesuatu yang lebih dekat dengan tahap garis, saya telah menambahkan rangkaian RC (berdasarkan reka bentuk oleh Notes & Volts). Letakkan kapasitor 33nF dan 100uF, bersama dengan perintang 2K seperti yang ditunjukkan dalam gambar / skema. Pastikan kapasitor 100uF elektrolitik disambungkan dengan kekutuban yang betul (kaki positif / panjang akan menyisipkan 9 pada Arduino dan kaki negatif / pendek disambungkan ke bicu).
  2. Sambungkan sisi negatif bicu audio ke tanah. Sambungan bicu audio akan sedikit berbeza bergantung pada jenis yang anda gunakan, tetapi semuanya berfungsi sama. Kita perlu menyambungkan lengan jack ke tanah. Ini kadang-kadang ditandakan dengan simbol tolak atau dilabel sebagai "lengan", "cincin", atau "gnd". Sekiranya tidak ada label pada bicu audio anda, anda mungkin perlu melihat lembar data atau lakukan pemeriksaan dekat pada bicu dan lihat apakah anda dapat menentukan pin mana yang disambungkan ke lengan atau cincin luar bicu.
  3. Sambungkan sisi positif bicu audio ke sisi negatif kapasitor 100uF. Sinyal audio kami kini mengalir dari pin 9 Arduino melalui rangkaian RC dan muncul dari sisi negatif kapasitor 100uF. Kami akan menghubungkannya ke sisi positif bicu audio kami. Ini biasanya ditandai dengan simbol tambah atau mungkin dilabel "tip". Sekali lagi, jika tidak dilabel, anda mungkin perlu memeriksanya untuk mengetahui pin mana yang akan disambungkan ke hujung bicu. Juga, jika anda menggunakan bicu stereo, mungkin ada sambungan tip tip L dan R. Oleh kerana kami mengeluarkan isyarat mono, anda hanya boleh menyambung ke salah satu sambungan tip.

Penting: Sekiranya anda mendapati bahawa audio terlalu senyap, anda mungkin dapat menghilangkan rangkaian RC pada langkah 1 dan menyambung terus ke audio dari pin 9 Arduino. Ini tidak masalah jika anda menyambungkan audio ke sesuatu dengan pra-amp seperti pembesar suara komputer luaran di mana anda mempunyai tombol kelantangan, tetapi saya tidak mengesyorkannya untuk perkara seperti fon kepala, earbud, atau pendawaian terus ke pembesar suara. Sekiranya anda memutuskan untuk menyingkirkan rangkaian RC, saya sarankan untuk mengecilkan kelantangan pada pembesar suara anda sebelum menyalakan Arduino, dan kemudian meningkatkan kelantangan secara beransur-ansur untuk mengelakkan penutupan pembesar suara anda.

Setelah anda siapkan semuanya, periksa semula bahawa semua sambungan kelihatan betul dan sepadan dengan gambar dan skema di atas

Langkah 4: Memuat naik Kod

Sekarang setelah semua perkakasan disiapkan, kami sudah bersedia untuk mengatasi sisi perisian:

  1. Lancarkan Arduino IDE. Di komputer anda, lancarkan Arduino IDE (jika anda tidak memilikinya, anda boleh memuat turunnya dari
  2. Muat turun perpustakaan Mozzi. Perpustakaan Mozzi adalah yang membolehkan kami menggunakan Arduino kami sebagai synthesizer. Untuk mendapatkan pustaka ini di IDE anda, pergi ke laman github Mozzi https://sensorium.github.io/Mozzi/download/. Klik pada butang "Kod" hijau dan pilih Muat turun ZIP.
  3. Pasang pustaka Mozzi dari fail zip. Di Arduino IDE, pergi ke Sketch-> Include Library-> Add. ZIP Library… Navigasi ke fail zip yang anda muat turun untuk menambahkannya. Anda sekarang mesti melihat Mozzi tersenarai di bawah Sketsa-> Sertakan Perpustakaan bahagian.
  4. Muat turun kod Mosquito I Arduino. Anda boleh mendapatkannya dari laman github saya https://github.com/analogsketchbook/mosquito_one. (Perhatikan skema juga tersedia di sana jika anda memerlukannya untuk rujukan pendawaian.
  5. Sambungkan Arduino ke komputer dan muat naik kodnya.

Langkah 5: Berpusing-pusing

Itu sahaja. Anda seharusnya dapat menyambungkan pembesar suara anda ke bicu audio dan mendengar suara manis dari sintesis arpeggiated dari ittybitty Nano itu! Sekiranya anda tidak mendengar apa-apa pada mulanya, cubalah memusatkan tombol pada semua periuk untuk memastikan anda mendapat nilai permulaan yang baik.

Inilah yang dilakukan oleh kawalan:

Pot:

Nilai: Ini mengawal seberapa pantas penjujukan dimainkan semula. Menurunkannya memainkan nota diskret mengikut urutan. Mengubahnya melekatkan nota bersama-sama untuk membuat bentuk gelombang yang sama sekali baru.

Legato: Pot kedua mengawal legato atau panjang nota. Memusingkannya lebih ke kiri menghasilkan nota sticatto pendek, sementara memutarnya ke kanan menghasilkan nota yang lebih panjang.

Pitch: Ini menetapkan nada asas untuk urutan. Kontrol nada menetapkan nilai MIDI, sehingga meningkatkan / menurunkan nada dalam semitoness daripada pergeseran nada berterusan.

Fasa: Memusingkan tombol ini ke kanan memperkenalkan kesan fasa halus. Secara teknikal, ini menyebabkan kedua-dua pengayun di Nyamuk I sedikit terpencil dan inilah yang menyebabkan fasa. Walau bagaimanapun, tidak menjejaki dengan nada sehingga kesan fasa mungkin lebih ketara pada nada nada yang lebih rendah.

Penapis: Tombol ini mengawal frekuensi pemotongan Penapis Lulus Rendah. Memusing ke kiri memotong frekuensi tinggi menghasilkan bunyi yang lebih teredam, sambil memutarnya ke kanan menghasilkan bunyi yang lebih terang.

Butang:

Nyamuk mempunyai lebih dari dua puluh urutan yang berbeza yang boleh dimainkan secara lalai. Butang tekan membolehkan anda memilih urutan yang dimainkan. Satu butang mengarahkan anda ke senarai urutan dan yang lain turun ke senarai.

Langkah 6: Penyesuaian

Penyesuaian
Penyesuaian

Saya telah menambahkan sekumpulan urutan lalai, skala yang kebanyakannya berbeza, tetapi anda boleh menyesuaikan kod dengan mudah untuk mengubah urutan nota yang dimainkan, menambah yang baru, atau mengubah bilangan nota mengikut urutan. Berikut adalah perincian bagaimana ia dilakukan sekiranya anda ingin menyesuaikannya.

Menukar Nota dalam Urutan Sedia Ada

Urutan disimpan dalam pelbagai tatasusunan yang disebut CATATAN. Setiap nota disimpan sebagai nilai nota MIDI, jadi jika anda ingin menukar nota dalam urutan tertentu, ubah nombor nota MIDI untuk urutan itu. Persediaan lalai adalah memainkan 8 langkah setiap urutan sehingga anda hanya dapat memiliki 8 nilai MIDI dalam urutan (lihat di bawah jika anda ingin mempunyai panjang urutan yang berbeza).

Satu perkara yang perlu diperhatikan, tombol nada menambah catatan mengimbangi nilai MIDI yang dinyatakan dalam array NOTES. Apabila tombol dipusatkan, ia memainkan nota MIDI yang ditunjukkan dalam array, tetapi semasa anda memutar tombol nada, ia menambah atau mengurangkan separa nada pada nota yang dimainkan.

Menambah Urutan Baru

Anda boleh menambahkan urutan baru ke array NOTES dengan hanya menambahkan susunan 8-nota baru di akhir senarai. Sekiranya anda melakukannya, anda juga perlu mengubah nilai pemboleh ubah numSequences untuk memadankan bilangan urutan yang baru. Sebagai contoh, array NOTES mempunyai 21 urutan secara lalai sehingga pemboleh ubah numSequences ditetapkan ke 21. Sekiranya anda menambahkan satu urutan baru, anda perlu menukar pemboleh ubah numSequences menjadi 22.

Anda boleh menambahkan seberapa banyak urutan baru yang anda mahukan.

Mengubah Panjang Urutan

Sekiranya anda ingin mengubah panjang urutan anda (jika anda mahu mengatakan urutan 4 langkah atau 16 langkah), anda boleh melakukannya, tetapi satu-satunya peringatan ialah semua urutan harus panjangnya sama. Anda juga perlu menetapkan pemboleh ubah numNotes agar sesuai dengan panjang urutan anda.

Perubahan Lain

Ada sejumlah penyesuaian lain yang mungkin seperti beralih jenis bentuk gelombang, tetapan / nilai penapis, yang berada di luar ruang lingkup tutorial ini. Memahami kod Mozzi pada awalnya agak mencabar, tetapi saya cuba mendokumentasikan kod sebanyak mungkin untuk menunjukkan apa yang dilakukan oleh pelbagai bahagian kod tersebut.

Terdapat beberapa bahagian utama kod untuk Mozzi yang mempunyai kegunaan yang cukup spesifik dan saya telah menyenaraikannya di bawah untuk memberi anda idea mengenai perkara yang mereka gunakan:

  • setup () - Sekiranya anda telah memprogram untuk Arduino sebelum anda mengetahui fungsi ini dan ia hampir sama digunakan di Mozzi. Kami menggunakannya terutamanya untuk menetapkan tetapan lalai untuk pengayun, penapis, dll.
  • updateControl () - Di sinilah bahagian kod Mozzi berfungsi dengan baik. Di sinilah kita membaca nilai pot dan butang, memetakan dan mengubah nilai-nilai tersebut untuk dimasukkan ke dalam synthesizer, dan di mana penjujukannya dilakukan.
  • updateAudio () - Ini adalah keluaran terakhir dari perpustakaan Mozzi. Biasanya kod di sini disimpan sangat kecil dan ramping kerana fungsi ini digunakan oleh Mozzi untuk memaksimumkan semua pusingan jam yang dapat dilakukannya. Seperti yang anda lihat dalam kod nyamuk, ia mungkin agak samar tetapi pada dasarnya semua yang kita lakukan menggabungkan / mengalikan pelbagai bentuk gelombang kita dan kemudian mengubahnya agar sesuai dengan julat nombor tertentu. Sebaiknya pastikan fungsi ini sangat ringan (bukan panggilan bersiri atau pin bacaan) dan letakkan sebahagian besar perkara dalam fungsi controlUpdate (). Dokumentasi Mozzi memperincikannya dengan lebih terperinci.

Disyorkan: