» Mga instrumentong pangmusika »Apat na boses synthesizer sa Arduino Uno

Apat na boses synthesizer sa Arduino Uno



Ang may-akda ng Mga Tagagamit sa ilalim ng palayaw rgco ay dumating sa isang apat na boses na 1.5-octave synthesizer sa Arduino Uno. Para sa paghahambing, ang laganap na mga synthesizer ng mga bata na naiiba sa bawat isa lamang sa disenyo at ginawa ng parehong chip ay tatlong-boses. Totoo, maaari silang awtomatikong samahan ang musika na may ritmo, kabisaduhin ang isang boses na melodies at gayahin ang mga tinig ng mga hayop. Ngunit pagkatapos gawang bahay mas maganda ang tunog. Bakit?



Lahat ito ay tungkol sa mga parameter. Sampling dalas ng 31 kHz, 9 bit, 4 na tinig, FM synthesis na may time-varying sweep, ADSR sobre, 12 virtual na instrumento, 18 key na sumasaklaw sa 1.5 octaves.

Binubuo ng master ang synthesizer circuit sa Fritzing:



Sa loob nito, tinutularan nito ang lokasyon ng mga bahagi sa isang uri ng breadboard type at mga koneksyon sa pagitan nila:



At kinokolekta ang pamamaraan sa totoong buhay:



Ang "ibuhos at paggamit" lamang ang pinakasimpleng bagay na maaari mong gawin sa disenyo. 18 mga susi (mula noong BAGONG ika-apat na oktaba hanggang FA pang-lima) - upang i-play, ang ikalabing siyam ay lumipat sa virtual na mga instrumento sa isang singsing: piano, xylophone, gitara, cymbals, bells, funky, vibrato, metal, violin, bass, trumpeta, akurdyon. Ang likas na katangian ng tunog ay apektado ng tagal ng mga keystroke, ngunit hindi ang pagsisikap, hindi katulad ng mga propesyonal na synthesizer. Ngunit nais ng developer na subukan mo ang pag-programming ng iyong mga virtual na tool din. Ang bawat isa sa kanila ay binibigyan ng sampung mga parameter. Sinasabi sa iyo ng wizard kung anong parameter ang nakasalalay sa ito.

kahinaan - dami

Kung ang parameter na ito ay mas mababa sa 64, ang labis na karga at mga nauugnay na distortions ay hindi kasama. Ngunit kung nagprograma ka ng tulad ng isang virtual na instrumento na hindi tunog ng maximum na dami ng haba, ang halaga ng parameter na ito ay maaaring lumampas sa 64, dahil ang lahat ng apat na tinig nang sabay-sabay na tunog nang madalas.

pitch0 - pitch shift

Ang saklaw ay tumutugma sa itaas, kung itinakda mo ang parameter na ito sa 12. Bawasan ang paggalaw, pagtaas - up. Ang Zero ay tumutugma sa isang pagbaba nang eksakto sa isang oktaba, 24 - hanggang eksaktong isang oktaba.

ADSR_a - dami ng pumatay rate mula sa zero hanggang sa maximum

Ang mas maliit, mas mabagal.Halimbawa, ang 8192 ay tumutugma sa 4 ms, 256 hanggang 128 ms.

ADSR_d - bilis upang bawasan ang lakas ng tunog mula sa maximum hanggang sa tinukoy ng parameter ng ADSR_s.

Ang prinsipyo ay pareho.

ADSR_s - ang halaga kung saan bumababa ang lakas ng tunog na may isang mahabang pindutin ng susi

Halimbawa, 256 - ang lakas ng tunog ay nananatiling maximum sa lahat ng oras habang ang key ay gaganapin. 192 - ang dami ng bumaba sa 80 porsyento at nananatiling gayon habang ang susi ay gaganapin. Ang 0 - dami ay bumabawas sa zero, kahit na ang key ay gaganapin.

ADSR_r - bilis upang bawasan ang lakas ng tunog sa zero pagkatapos maipalabas ang susi

Ang prinsipyo ay kapareho ng para sa mga ADSR_a at ADSR_d na mga parameter.

FM_inc - ratio ng dalas ng modulation sa tono

Sa halagang 256, ang ratio na ito ay lumiliko na 1: 1, na may 512 - 2: 1, na may 128 - 1: 2, ang natitira ay sa pamamagitan ng pagkakatulad. Kung ang parameter na ito ay nakatakda sa isang maramihang 64, ang tunog ay magiging anharmonic.

FM_a1 - ang saklaw ng modulation ng dalas sa simula ng isang tala

256 tumutugma sa isang malawak na hanay ng mga kaharmonya. Sa isang pagbawas, ang tono ay mas malinis, na may isang pagtaas sa pagkakaarmonya ay nagiging higit pa.

FM_a2 - modyul ng dalas ng pagwawalis sa dulo ng isang tala

Ang prinsipyo ay pareho. Para sa karamihan ng mga tunay na instrumento, mas mabilis ang pagkabulok nang mas mabilis kaysa sa pangunahing tono. Kung gagawin mo ang kabaligtaran, nakakakuha ka ng mga hindi pangkaraniwang tunog.

FM_dec - bilis ng paglipat ng saklaw ng modulation ng dalas mula sa isang hanay ng FM_a1 hanggang sa isang hanay ng FM_a2

Ang prinsipyo ay kapareho ng para sa mga parameter ADSR_a, ADSR_d at ADSR_r.

Ang dalas ng PWM na 31,250 Hz ay ​​nakuha sa pamamagitan ng paghati sa dalas ng orasan (16 MHz) sa pamamagitan ng 512. Ang programa ay dinisenyo sa isang paraan na ang mga kaganapan ay naka-link sa oras nang hindi nakakagambala. Sa halip, ang isang timer na overflow bit ay kasangkot. Upang mapangasiwaan ng programa na gawin ang lahat na kinakailangan nito, ang mga integer lamang ng 8 at 16 bit haba ang ginagamit. Ang sine wave ay ipinakita sa anyo ng isang talahanayan ng mga 8-bit na numero. Ang mga operasyon ng ninuno - pagbabasa ng mga pangunahing estado, pagbabago ng mga virtual na instrumento, pagpili ng mga tinig, pagkalkula ng mga parameter ng mga tala na nagbabago sa oras - ay ipinamamahagi sa 15 mga pamamaraan, na tumatagal ng 0.48 ms upang makumpleto. Sa oras na ito, ang ilang mga operasyon ay isinasagawa na may 32-bit na katumpakan, na kinakailangan upang maparami ang dalawang 16-bit na mga binary number.

Ang isang simpleng alon ng tunog ay mapurol dahil walang mga pagkakaayon sa spectrum nito. Pinapayagan ka ng FM synthesis na matanggap mo ang mga ito at baguhin ang kanilang spectrum sa paglipas ng panahon, pag-simulate ang tunog ng mga tunay na instrumento. Ang maraming mga frequency ay nagbibigay ng isang anharmonic tunog na nangyayari, halimbawa, sa mga kampanilya. Ang aparato ay mahusay na ginagaya ang pagbabago sa spectrum na likas sa totoong mga instrumento sa paglipas ng panahon, kapag ang ilang mga pagkakatugma ay mas mabilis kaysa sa iba.
10
9.3
8.4

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
1 komentaryo
kiril_vihrov7892
Isang kawili-wiling proyekto.
Kamakailan lamang ay nakita ko ang proyekto na "Synthesizer on Arduino" bilang mga susi, halos ang buong PC keyboard ay ginagamit
Sa mga detalye ng lahat ng Arduino, isang tagapagsalita at isang computer.
Ginagawa ng PC application ang lahat ng gawain, kinokontrol nito ang Arduino sa pamamagitan ng com port
paulit-ulit, gumagana ang lahat. Makakatulong ang tulong

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...