» Musikinstrument »Fyra-röst-synthesizer på Arduino Uno

Fyra-röst synthesizer på Arduino Uno



Författaren till Instructables under smeknamnet rgco kom med en fyra-röst 1,5-oktavssyntes Arduino Uno. Som jämförelse är de utbredda barnesynteserna som skiljer sig från varandra endast i design och tillverkade av samma chip tre röst. Det är riktigt att de automatiskt kan följa musiken med rytm, memorera en-röstmelodier och imitera djurens röster. Men då hemgjorda produkt låter trevligare. Varför?



Det handlar om parametrarna. Provtagningsfrekvens 31 kHz, 9 bitar, 4 röster, FM-syntes med ett tidsvarierande svep, ADSR-kuvert, 12 virtuella instrument, 18 tangenter som sträcker sig över 1,5 oktaver.

Befälhavaren komponerar synteskretsen i Fritzing:



I den simulerar den platsen för komponenter på en brädskiva av brödskivstyp och kopplingarna mellan dem:



Och samlar in schemat i det verkliga livet:



Bara "hälla och använda" är det enklaste du kan göra med designen. 18 tangenter (från FÖR den fjärde oktaven till FA femte) - för att spela växlar den nittonde virtuella instrument i en ring: piano, xylofon, gitarr, dulcimer, klockor, funky, vibrato, metall, violin, bas, trumpet, dragspel. Ljudets natur påverkas av tangenttryckningernas varaktighet, men inte av ansträngningen, till skillnad från professionella synthesizers. Men utvecklaren vill att du också ska prova att programmera dina virtuella verktyg. Var och en av dem ges av tio parametrar. Guiden berättar vilken parameter det beror på.

ldness - volym

Om denna parameter är mindre än 64, är överbelastning och relaterade distorsioner uteslutna. Men om du programmerar ett sådant virtuellt instrument som inte låter i maximal volym länge, kan värdet på denna parameter överstiga 64, eftersom alla fyra röster samtidigt låter sällan.

tonhöjd0 - tonhöjdsskift

Området motsvarar ovanstående, om du ställer in denna parameter till 12. Minska rör sig nedåt, öka upp. Noll motsvarar en växling ned exakt en oktav, 24 - upp exakt en oktav.

ADSR_a - svängfrekvens från noll till max

Ju mindre, desto långsammare.Till exempel motsvarar 8192 4 ms, 256 till 128 ms.

ADSR_d - hastighet för att minska volymen från det maximala till det som anges av ADSR_s-parametern.

Principen är densamma.

ADSR_s - värdet som volymen minskar när du trycker på knappen under lång tid

Till exempel 256 - volymen förblir maximal hela tiden medan knappen hålls intryckt. 192 - volymen sjunker till 80 procent och förblir så medan tangenten hålls intryckt. 0 - volymen minskar till noll, även om knappen hålls intryckt.

ADSR_r - hastighet för att minska volymen till noll efter att tangenten har släppts

Principen är densamma som för ADSR_a- och ADSR_d-parametrarna.

FM_inc - förhållande mellan modulationsfrekvens och ton

Med ett värde på 256 visar sig detta förhållande vara 1: 1, med 512 - 2: 1, med 128 - 1: 2, resten är analogt. Om denna parameter är inställd på en multipel av 64 kommer ljudet att vara anharmoniskt.

FM_a1 - intervallet för frekvensmodulering i början av en anteckning

256 motsvarar ett brett spektrum av övertoner. Med en minskning är tonen renare, med en ökning av övertoner blir den mer.

FM_a2 - svepfrekvensmodulering i slutet av en anteckning

Principen är densamma. För de flesta verkliga instrument förfaller övertoner snabbare än den grundläggande tonen. Om du gör det motsatta får du ovanliga ljud.

FM_dec - övergångshastighet för frekvensmoduleringsområdet från det som ställts in av FM_a1 till det som ställts in av FM_a2

Principen är densamma som för parametrarna ADSR_a, ADSR_d och ADSR_r.

En PWM-frekvens på 31 250 Hz erhålls genom att dela klockfrekvensen (16 MHz) med 512. Programmet är utformat på ett sådant sätt att händelser är tidsbundna utan avbrott. Istället är en timeröverskridande bit involverad. För att programmet ska lyckas göra allt som krävs av det, används endast heltal med 8 och 16 bitars längd. Sinusvågen presenteras i form av en tabell med 8-bitarsnummer. Hjälpoperationer - läsning av nyckeltillstånd, ändring av virtuella instrument, val av röster, beräkning av anteckningsparametrar som ändras i tid - fördelas mellan 15 procedurer, som tar totalt 0,48 ms. För närvarande utförs vissa operationer med 32-bitars precision, vilket är nödvändigt för att multiplicera två 16-bitars binära tal.

En enkel sinusvåg låter tråkigt eftersom det inte finns några övertoner i dess spektrum. Med FM-syntes kan du ta emot dem och ändra deras spektrum över tid, genom att simulera ljudet från riktiga instrument. Flera frekvenser ger ett anharmoniskt ljud som till exempel förekommer i klockor. Enheten imiterar väl förändringen i spektrum som är inneboende i verkliga instrument över tid, när vissa harmoniska förfaller snabbare än andra.
10
9.3
8.4

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
1 kommentar
kiril_vihrov7892
Ett intressant projekt.
Nyligen såg jag projektet "Synthesizer på Arduino" som nycklar, nästan hela PC-tangentbordet används
Av detaljerna om alla Arduino, en högtalare och en dator.
PC-applikationen gör allt arbete, det styr Arduino genom com-port
upprepas, allt fungerar bra. Look kan hjälpa

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...