» Hangszerek »Négyhangú szintetizátor az Arduino Uno készüléken

Négy hangos szintetizátor az Arduino Uno készüléken



Az rucco becenév alatt levő Instructables szerzője négyhangú 1,5 oktávos szintetizátorral jött létre Arduino Uno. Összehasonlításképpen: a széles körben elterjedt gyermek-szintetizátorok, amelyek csak formatervezésben különböznek egymástól és ugyanabból a chipekből készülnek, háromhangúak. Igaz, hogy automatikusan kísérik a zenét ritmussal, megjegyzik egyhangú dallamokat és utánozzák az állatok hangját. De akkor Házitermékek szépen hangzik. Miért?



A paraméterekről szól. Mintavételi frekvencia 31 kHz, 9 bit, 4 hang, FM szintézis időben változó sávval, ADSR boríték, 12 virtuális eszköz, 18 gomb, 1,5 oktáv átmérőjű.

A mester összeállítja a szintetizátor áramkört Fritzingben:



Ebben szimulálja az alkatrészek elhelyezkedését a kenyérlemez típusú kenyérlapon és a közöttük lévő kapcsolatokat:



És összegyűjti a sémát a valós életben:



Csak az „öntsd és használd” a legegyszerűbb dolog, amit megtehetsz a tervezéssel. 18 gomb (ELŐTT a negyedik oktávtól az ötödik FA-ig) - lejátszáshoz a kilencedik virtuális hangszereket kapcsol gyűrűvel: zongora, xilofon, gitár, dulcimer, harangok, funky, vibrato, fém, hegedű, basszus, trombita, harmonika. A hang jellegét befolyásolja a gombnyomások időtartama, de a professzionális szintetizátorokkal ellentétben az erőfeszítés nem. De a fejlesztő azt akarja, hogy kipróbálja a virtuális eszközöket is. Mindegyiket tíz paraméter adja meg. A varázsló megmondja, hogy milyen paramétertől függ.

ldness - térfogat

Ha ez a paraméter kevesebb, mint 64, akkor a túlterhelés és a kapcsolódó torzulások ki vannak zárva. De ha olyan virtuális műszert programoz be, amely hosszú ideig nem hangzik a maximális hangerőn, akkor ennek a paraméternek az értéke meghaladhatja a 64-et, mivel mind a négy hang egyszerre ritkán szól.

pitch0 - hangmagasság-eltolás

A tartomány megfelel a fentieknek, ha ezt a paramétert 12-re állítja. Csökkentés mozog lefelé, növeli - fel. A nulla pontosan egy oktáv lefelé, 24 - pontosan egy oktávval felfelé történő eltolódásának felel meg.

ADSR_a - a hangerő csökkentése nullától a maximálisig

Minél kisebb, annál lassabb.Például, 8192 megfelel 4 ms-nak, 256 - 128 ms-nak.

ADSR_d - sebesség a hangerő csökkentésére az ADSR_s paraméter által megadott maximálisról.

Az elv ugyanaz.

ADSR_s - az az érték, amelyre a hangerő csökken, ha a gombot hosszú ideig megnyomják

Például 256 - a hangerő egész idő alatt maximális marad, miközben a gombot tartja. 192 - a hangerő 80 százalékra esik és így marad, miközben a gombot tartja lenyomva. 0 - a hangerő nullára csökken, még akkor is, ha a gombot lenyomva tartják.

ADSR_r - sebesség a hangerő nullára csökkentéséhez a kulcs elengedése után

Az elv megegyezik az ADSR_a és ADSR_d paraméterekkel.

FM_inc - a modulációs frekvencia és a hang aránya

A 256 értéknél ez az arány 1: 1, 512 - 2: 1, 128 - 1: 2, a többi analógia alapján történik. Ha ezt a paramétert 64-es szorzóra állítja, akkor a hang anharmonikus lesz.

FM_a1 - a frekvencia moduláció tartománya egy hang elején

A 256 a harmonikák széles skálájának felel meg. A csökkenéssel a hang tisztább, a harmonikusok növekedésével pedig egyre inkább.

FM_a2 - söpörési frekvencia moduláció egy jegyzet végén

Az elv ugyanaz. A legtöbb valódi hangszernél a harmonikus hangok gyorsabban bomlanak le, mint az alaphang. Ha éppen ellenkezőleg cselekszik, szokatlan hangokat kap.

FM_dec - az FM_a1 által beállított és az FM_a2 által beállított frekvenciamodulációs tartomány átmeneti sebessége

Az elv megegyezik az ADSR_a, ADSR_d és ADSR_r paraméterekkel.

A 31 250 Hz PWM frekvenciát úgy kapjuk, hogy az órafrekvenciát (16 MHz) 512-el osztjuk. A programot úgy tervezték, hogy az események megszakítás nélkül az időhez kapcsolódjanak. Ehelyett egy időzítő túlcsordulási bitre van szükség. Annak érdekében, hogy a program mindent megtehessen, amire szükség van, csak 8 és 16 bit hosszú egész értékeket használunk. A szinuszhullámot 8 bites számú táblázat formájában mutatjuk be. A kiegészítő műveletek - a kulcsállapotok leolvasása, a virtuális eszközök megváltoztatása, a hangok kiválasztása, az időben változó jegyzetek paramétereinek kiszámítása - 15 eljárás között oszlanak meg, amelyek elvégzése 0,48 ms-t igényel. Ebben az időben néhány műveletet 32 ​​bites pontossággal hajtanak végre, ami szükséges a két 16 bites bináris szám szorzásához.

Az egyszerű szinuszhullám tompanak hangzik, mert spektrumában nincsenek harmonikusok. Az FM szintézis lehetővé teszi azok fogadását és az idővel megváltoztatni a spektrumukat, szimulálva a valódi hangok hangját. Több frekvencia anharmonikus hangot ad, amely például a harangokban fordul elő. A készülék jól utánozza a valódi hangszerekre jellemző spektrumváltozást az idő múlásával, amikor egyes harmonikusok gyorsabban bomlanak le, mint mások.
10
9.3
8.4

Adj hozzá egy megjegyzést

    • smilemosolyogxaxarendbendontknowjehunea
      főnökkarcolásbolondigenigen-igenagresszívtitok
      Bocsánattáncdance2dance3megbocsátássegítségitalok
      megállásbarátokjógoodgoodsípájulásnyelv
      füsttapsolóCrayállapítsagúnyosdon-t_mentionletöltés
      hőségingerültlaugh1MDAtalálkozómoskingnegatív
      not_ipopcornbüntetolvasmegijesztijesztkeresés
      gúnyolódásthank_youeztto_clueumnikakutegyetért
      rosszbeeeblack_eyeblum3pírdicsekvésunalom
      cenzúrázottvidámságsecret2fenyegetgyőzelemyusun_bespectacled
      ShokRespektlolprevedfogadtatáskrutoyya_za
      ya_dobryisegítőne_huliganne_othodiFLUDtilalomközel
1 megjegyzés
kiril_vihrov7892
Érdekes projekt.
Nemrég láttam kulcsként a "Szintetizátor az Arduinóban" projektet, szinte a teljes PC-billentyűzetet használják
Az összes Arduino részletei, hangszóró és számítógép.
A PC-alkalmazás elvégzi az összes munkát, a porton keresztül irányítja az Arduino-t
ismételve, minden jól működik. A nézet segíthet

Azt javasoljuk, hogy olvassa el:

Adja át az okostelefon számára ...