» Alat muzik »Synthesizer empat suara pada Arduino Uno

Synthesizer empat suara pada Arduino Uno



Penulis Instructables di bawah nama panggilan rgco datang dengan synthesizer 1.5-octave empat suara Arduino Uno. Sebagai perbandingan, penyesuai kanak-kanak yang luas yang berbeza antara satu sama lain hanya dalam reka bentuk dan dibuat oleh cip yang sama adalah tiga suara. Benar, mereka secara automatik boleh mengiringi muzik dengan irama, menghafal melodi satu suara dan meniru suara haiwan. Tetapi kemudian buatan sendiri kedengarannya lebih baik. Mengapa?



Ini semua mengenai parameter. Kekerapan persampelan 31 kHz, 9-bit, 4 suara, sintesis FM dengan sapu pelbagai masa, sampul surat ADSR, 12 instrumen maya, 18 kekunci yang bersaiz 1.5 oktaf.

Tuan itu menyusun litar sintesis di Fritzing:



Di dalamnya, ia menyusun lokasi komponen pada papan roti jenis roti dan sambungan di antara mereka:



Dan mengumpul skema dalam kehidupan sebenar:



Hanya "tuangkan dan gunakan" adalah perkara paling mudah yang boleh anda lakukan dengan reka bentuk. 18 kunci (dari SEBELUM oktaf keempat ke FA kelima) - untuk bermain, kesembilan belas beralih instrumen maya dalam gelang: piano, xylophone, gitar, cincin, loceng, funky, vibrato, logam, biola, bass, sangkakala, akordion. Sifat bunyi itu dipengaruhi oleh tempoh ketukan kekunci, tetapi bukannya usaha, tidak seperti penyegerakan profesional. Tetapi pemaju mahu anda mencuba pengaturcaraan alat maya anda juga. Setiap daripada mereka diberikan oleh sepuluh parameter. Penyihir memberitahu anda parameter apa yang ia bergantung kepada.

ketenangan - kelantangan

Sekiranya parameter ini kurang dari 64, kelebihan beban dan penyimpangan yang berkaitan dikecualikan. Tetapi jika anda mempraktikkan alat maya seperti itu yang tidak berbunyi pada jumlah maksimum untuk jangka masa panjang, nilai parameter ini mungkin melebihi 64, kerana kesemua empat suara pada masa yang sama bunyi tidak senonoh.

pitch0 - pitch shift

Julat ini sepadan dengan yang di atas, jika anda menetapkan parameter ini kepada 12. Kurangkan bergerak ke bawah, naikkan. Zero bersesuaian dengan pergeseran ke bawah tepat satu oktaf, 24 - tepat tepat satu oktaf.

ADSR_a - kadar membunuh volum dari sifar hingga maksimum

Yang lebih kecil, semakin perlahan.Sebagai contoh, 8192 sepadan dengan 4 ms, 256 hingga 128 ms.

ADSR_d - kelajuan untuk menurunkan volum dari maksimum kepada yang ditentukan oleh parameter ADSR_s.

Prinsipnya sama.

ADSR_s - nilai yang jumlahnya berkurangan apabila kunci ditekan untuk jangka masa yang panjang

Contohnya, 256 - jumlahnya tetap maksimum sepanjang masa sementara kunci itu dipegang. 192 - jumlah turun kepada 80 peratus dan masih kekal sementara kunci ditahan. 0 - kelantangan berkurangan kepada sifar, walaupun kunci ditekan.

ADSR_r - kelajuan untuk mengurangkan kelantangan kepada sifar selepas melepaskan kunci

Prinsipnya adalah sama dengan parameter ADSR_a dan ADSR_d.

FM_inc - nisbah frekuensi modulasi ke nada

Dengan nilai 256, nisbah ini ternyata menjadi 1: 1, dengan 512 - 2: 1, dengan 128 - 1: 2, sisanya adalah dengan analogi. Jika parameter ini ditetapkan kepada berganda sebanyak 64, bunyi itu akan menjadi anharmonik.

FM_a1 - julat frekuensi modulasi pada permulaan nota

256 sepadan dengan pelbagai harmonik. Dengan penurunan, nada lebih bersih, dengan peningkatan harmonik menjadi lebih.

FM_a2 - modulasi kekerapan menyapu pada akhir nota

Prinsipnya sama. Bagi kebanyakan instrumen yang sebenar, harmonik merosakkan lebih cepat daripada nada asas. Sekiranya anda melakukan sebaliknya, anda akan mendapat bunyi luar biasa.

FM_dec - kelajuan peralihan pelbagai modulasi kekerapan dari satu set oleh FM_a1 kepada satu set oleh FM_a2

Prinsipnya adalah sama dengan parameter ADSR_a, ADSR_d dan ADSR_r.

Kekerapan PWM sebanyak 31,250 Hz diperoleh dengan membahagikan frekuensi jam (16 MHz) sebanyak 512. Program ini direka sedemikian rupa sehingga acara dikaitkan dengan masa tanpa gangguan. Sebaliknya, sedikit pemasa melampau terlibat. Agar program itu dapat menguruskan untuk melakukan semua yang diperlukan, hanya bilangan bulat panjang 8 dan 16 bit yang digunakan. Gelombang sinus dibentangkan dalam bentuk jadual nombor 8-bit. Operasi tambahan - membaca kata kunci, menukar instrumen maya, memilih suara, mengira nota parameter yang berubah dalam masa - diedarkan di antara 15 prosedur, yang mengambil 0.48 ms untuk diselesaikan. Pada masa ini, beberapa operasi dilakukan dengan ketepatan 32-bit, yang diperlukan untuk membiak dua nombor biner 16-bit.

Gelombang sinus mudah terdengar membosankan kerana tidak ada harmonik dalam spektrumnya. Sintesis FM membolehkan anda menerima mereka dan menukar spektrum mereka dari semasa ke semasa, meniru bunyi instrumen sebenar. Frekuensi pelbagai memberikan bunyi anharmonik yang berlaku, contohnya, dalam loceng. Peranti ini juga meniru perubahan spektrum yang wujud dalam instrumen sebenar dari masa ke masa, apabila sesetengah harmonik mereput lebih cepat daripada yang lain.
10
9.3
8.4

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup
1 ulasan
kiril_vihrov7892
Satu projek yang menarik.
Baru-baru ini saya melihat projek "Synthesizer on Arduino" sebagai kunci, hampir seluruh keyboard PC digunakan
Butir-butir semua Arduino, penceramah dan komputer.
Aplikasi PC melakukan semua kerja, ia mengendalikan Arduino melalui port com
berulang, semuanya berfungsi dengan baik. Lihat boleh membantu

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...