» Soittimet »Neläänääninen syntetisaattori Arduino Unossa

Neljän äänen syntetisaattori Arduino Unolla



Instructablesin lempinimellä rgco kirjoittanut keksi nelisoisen 1,5 oktaavin syntetisaattorin Työläs Uno. Vertailun vuoksi, laajalle levinneet lasten syntetisaattorit, jotka eroavat toisistaan ​​vain suunnittelun suhteen ja ovat saman sirun valmistamia, ovat kolme ääntä. Totta, he voivat automaattisesti seurata musiikkia rytmillä, muistaa yhden äänen melodiat ja jäljitellä eläinten ääniä. Mutta sitten kotitekoinen tuote kuulostaa mukavammalta. Miksi?



Kyse on parametreistä. Näytteenottotaajuus 31 kHz, 9 bittiä, 4 ääntä, FM-synteesi aikavaihdettavalla pyyhkäisyllä, ADSR-kirjekuori, 12 virtuaalia instrumenttia, 18 näppäintä, jotka ulottuvat 1,5 oktaavin taajuudelle.

Päällikkö säveltää syntetisaattoripiirin Fritzingissä:



Siinä se simuloi komponenttien sijaintia leipälautatyyppisellä leipälaudalla ja niiden välisiä yhteyksiä:



Ja kerää järjestelmän tosielämässä:



Vain "kaada ja käytä" on yksinkertaisin tapa, jonka voit tehdä suunnittelulla. 18 näppäintä (ENNEN ENNEN neljännen oktaavin ja viidennen FA: n) - soittaakseen yhdeksännentoista vaihtaa virtuaaliset instrumentit soittoäänellä: piano, ksylophone, kitara, dulcimer, soittokello, funky, vibrato, metalli, viulu, basso, trumpetti, harmonikka. Äänen luonteeseen vaikuttaa näppäimistön kesto, mutta ei vaivaa, toisin kuin ammattimaisilla syntetisaattoreilla. Mutta kehittäjä haluaa sinun kokeilevan myös virtuaalisten työkalujen ohjelmointia. Jokaiselle niistä annetaan kymmenen parametria. Ohjattu toiminto kertoo, mistä parametrista se riippuu.

ldness - tilavuus

Jos tämä parametri on alle 64, ylikuormitus ja siihen liittyvät vääristymät eivät ole mahdollisia. Mutta jos ohjelmoit sellaisen virtuaalisen instrumentin, joka ei kuulu pitkällä äänenvoimakkuudella, tämän parametrin arvo voi olla suurempi kuin 64, koska kaikki neljä ääntä kuulostavat samanaikaisesti harvoin.

pitch0 - pitch shift

Alue vastaa yllä olevaa, jos asetat tämän parametrin arvoon 12. Pienennä liikkuu alas, suurenna - ylös. Nolla vastaa siirtymää tarkalleen yhden oktaavin, 24 - ylöspäin tarkalleen yhden oktaavin.

ADSR_a - äänenvoimakkuuden kääntymisnopeus nollasta maksimiin

Mitä pienempi, sitä hitaampi.Esimerkiksi 8192 vastaa 4 ms, 256 - 128 ms.

ADSR_d - nopeus, jolla äänenvoimakkuutta voidaan vähentää ADSR_s-parametrin määrittämästä maksimimäärästä.

Periaate on sama.

ADSR_s - arvo, johon äänenvoimakkuus vähenee, kun näppäintä painetaan pitkään

Esimerkiksi 256 - äänenvoimakkuus pysyy suurimpana koko ajan, kun näppäintä pidetään painettuna. 192 - äänenvoimakkuus laskee 80 prosenttiin ja pysyy niin, kun näppäintä pidetään alhaalla. 0 - äänenvoimakkuus pienenee nollaan, vaikka näppäintä pidetään alhaalla.

ADSR_r - nopeus äänenvoimakkuuden alentamiseksi nollaan avaimen vapauttamisen jälkeen

Periaate on sama kuin ADSR_a- ja ADSR_d-parametreille.

FM_inc - modulaatiotaajuuden ja äänen suhde

Arvolla 256 tämä suhde osoittautuu 1: 1, 512 - 2: 1, 128 - 1: 2, loput tapahtuvat analogisesti. Jos tämä parametri on asetettu 64-kertaiseksi, ääni on epäharmoninen.

FM_a1 - taajuuden modulaatioalue nuotin alussa

256 vastaa laajaa harmonisten joukkoa. Vähentyessä äänimerkki on puhtaampaa, kun harmoniset harmoniat lisääntyvät, sitä tulee enemmän.

FM_a2 - pyyhkäisytaajuuden modulaatio nuotin lopussa

Periaate on sama. Useimpien oikeiden instrumenttien harmoniset hajoavat nopeammin kuin perusääni. Jos teet päinvastoin, saat epätavallisia ääniä.

FM_dec - taajuuden modulointialueen siirtymisnopeus FM_a1: n asettamasta FM_a2: n asettamaan nopeuteen

Periaate on sama kuin parametreille ADSR_a, ADSR_d ja ADSR_r.

PWM-taajuus 31 250 Hz saadaan jakamalla kellotaajuus (16 MHz) 512. Ohjelma on suunniteltu siten, että tapahtumat liitetään aikaan keskeytyksettä. Sen sijaan ajastin ylivuotobitti on mukana. Jotta ohjelma pystyy tekemään kaiken, mitä sitä vaaditaan, käytetään vain kokonaislukuja, joiden pituus on 8 ja 16 bittiä. Siniaalto esitetään 8-bittisistä numeroista koostuvan taulukon muodossa. Aputoiminnot - avaintietojen lukeminen, virtuaalisten instrumenttien vaihtaminen, äänien valitseminen, ajan myötä muuttuvien muistiinpanoparametrien laskeminen - on jaettu 15 toimenpiteelle, joiden suorittaminen vie 0,48 ms. Tällä hetkellä jotkut toiminnot suoritetaan 32-bittisellä tarkkuudella, mikä on välttämätöntä kertoa kaksi 16-bittistä binaarinumeroa.

Yksinkertainen siniaalto kuulostaa tylsältä, koska sen spektrissä ei ole harmonisia. FM-synteesi antaa sinun vastaanottaa niitä ja muuttaa niiden spektriä ajan myötä, simuloimalla oikeiden instrumenttien ääntä. Useita taajuuksia antaa anharmonisen äänen, joka esiintyy esimerkiksi kelloissa. Laite jäljittelee hyvin oikeille instrumenteille ominaista taajuuksien muutosta ajan myötä, kun jotkut harmoniset hajoavat nopeammin kuin toiset.
10
9.3
8.4

Lisää kommentti

    • hymyillähymyileexaxakunnossadontknowyahoonea
      pomonaarmutyperyskylläkyllä-kylläaggressiivinensalaisuus
      anteeksitanssidance2dance3anteeksihelpjuomat
      pysäytysystäväthyvägoodgoodpillipyörtyäkieli
      savutaputusCrayjulistaapilkallinenDon-t_mentiondownload
      lämpöirefullaugh1MDAkokousmoskingnegatiivinen
      not_ipopcornrangaistaluettupelästyttääpelottaaetsi
      kiusatathank_youtämäto_clueumnikakuuttisuostua
      huonoBeeeblack_eyeblum3punastuaylpeilläikävystyminen
      sensuroituhassutussecret2uhatavoittoyusun_bespectacled
      SHOKrespektlolprevedtervetuloakrutoyya_za
      ya_dobryiauttajane_huliganne_othodifludkieltolähellä
1 kommentti
kiril_vihrov7892
Mielenkiintoinen projekti.
Viime aikoina näin avaimina projektin "Synthesizer on Arduino", melkein koko tietokoneen näppäimistöä käytetään
Kaikkien Arduinon yksityiskohdista, kaiutin ja tietokone.
PC-sovellus tekee kaiken työn, se hallitsee Arduinoa portin kautta
toistettu, kaikki toimii hyvin. Katso voi auttaa

Suosittelemme lukemaan:

Anna se älypuhelimelle ...