» Instrumente muzicale »Sintetizator cu patru voci pe Arduino Uno

Sintetizator cu patru voci pe Arduino Uno



Autorul Instructables sub porecla rgco a venit cu un sintetizator de patru voci de 1,5 octave pe Arduino Uno. Spre comparație, sintetizatoarele pentru copii răspândite, care diferă unele de altele doar în ceea ce privește designul și realizate de același cip sunt cu trei voci. Adevărat, ei pot însoți automat muzica cu ritm, pot memora melodii cu o singură voce și imita vocile animalelor. Dar atunci produs home-made suna mai frumos. De ce?



Totul este vorba despre parametri. Frecvența de eșantionare 31 kHz, 9 biți, 4 voci, sinteză FM cu o variază de timp variabilă, plic ADSR, 12 instrumente virtuale, 18 taste cu o distanță de 1,5 octave.

Maestrul compune circuitul sintetizator în Fritzing:



În ea, simulează locația componentelor pe o placă de panou tip panou și conexiunile dintre acestea:



Și colectează schema în viața reală:



Doar „turnați și folosiți” este cel mai simplu lucru pe care îl puteți face cu designul. 18 taste (de dinaintea celei de-a patra octave la FA a cincea) - pentru a juca, nouăsprezece comută instrumentele virtuale într-un inel: pian, xilofon, chitară, cipale, clopote, funky, vibrato, metal, vioară, bas, trompetă, acordeon. Natura sunetului este afectată de durata apăsărilor, dar nu de efort, spre deosebire de sintetizatoarele profesionale. Dar dezvoltatorul dorește să încercați să vă programați și instrumentele virtuale. Fiecare dintre ei este dat de zece parametri. Expertul vă spune de ce parametru depinde.

Ldness - volum

Dacă acest parametru este mai mic de 64, suprasarcina și distorsiunile aferente sunt excluse. Dar dacă programați un astfel de instrument virtual care nu sună la volum maxim timp îndelungat, valoarea acestui parametru poate depăși 64, deoarece toate cele patru voci sună simultan rar.

pitch0 - schimbare pitch

Intervalul corespunde celor de mai sus, dacă setați acest parametru la 12. Reducerea se deplasează în jos, crește - crește. Zero corespunde unei deplasări în jos exact a unei octave, 24 - cu exact o octavă.

ADSR_a - viteza de redresare volum de la zero la maxim

Cu cât este mai mic, cu atât mai lent.De exemplu, 8192 corespunde la 4 ms, 256 la 128 ms.

ADSR_d - viteza pentru a reduce volumul de la maxim la cel specificat de parametrul ADSR_s.

Principiul este același.

ADSR_s - valoarea la care volumul scade la apăsarea tastei o lungă perioadă de timp

De exemplu, 256 - volumul rămâne maxim tot timpul în timp ce este menținută tasta. 192 - volumul scade la 80% și rămâne așa, în timp ce tasta este ținută apăsată. 0 - volumul scade la zero, chiar dacă tasta este ținută apăsată.

ADSR_r - viteza pentru a reduce volumul la zero după eliberarea cheii

Principiul este același ca și pentru parametrii ADSR_a și ADSR_d.

FM_inc - raportul dintre frecvența de modulare și ton

Cu o valoare de 256, acest raport este 1: 1, cu 512 - 2: 1, cu 128 - 1: 2, restul este similar. Dacă acest parametru este setat pe un multiplu de 64, sunetul va fi anarmonic.

FM_a1 - intervalul de modulare a frecvenței la începutul unei note

256 corespunde unei game largi de armonice. Cu o scădere, tonul este mai curat, cu o creștere a armonicilor devine mai mult.

FM_a2 - modularea frecvenței de măturare la sfârșitul unei note

Principiul este același. Pentru majoritatea instrumentelor reale, armonicile se descompun mai repede decât tonul fundamental. Dacă faceți invers, sunete neobișnuite.

FM_dec - viteza de tranziție a intervalului de modulare a frecvenței de la cea setată de FM_a1 la cea setată de FM_a2

Principiul este același ca și pentru parametrii ADSR_a, ADSR_d și ADSR_r.

O frecvență PWM de 31.250 Hz este obținută prin împărțirea frecvenței de ceas (16 MHz) la 512. Programul este proiectat astfel încât evenimentele să fie legate de timp fără întreruperi. În schimb, este implicat un bit de preaplin cu cronometru Pentru ca programul să reușească să facă tot ceea ce i se cere, se folosesc numai numere întregi de 8 și 16 biți. Onda sinusoidală este prezentată sub forma unui tabel cu numere de 8 biți. Operațiunile auxiliare - citirea stărilor cheie, schimbarea instrumentelor virtuale, selectarea vocilor, calcularea parametrilor notelor care se modifică în timp - sunt distribuite între 15 proceduri, care necesită 0,48 ms pentru a fi finalizate. În acest moment, unele operații sunt efectuate cu o precizie de 32 biți, care este necesară pentru a multiplica două numere binare de 16 biți.

O undă sinusoidală simplă sună plictisitoare, deoarece nu există armonice în spectrul său. Sinteza FM vă permite să le primiți și să le schimbați spectrul în timp, simulând sunetul instrumentelor reale. Frecvențele multiple dau un sunet anharmonic care apare, de exemplu, în clopote. Dispozitivul imită bine schimbarea spectrului inerentă instrumentelor reale de-a lungul timpului, când unele armonice se descompun mai repede decât altele.
10
9.3
8.4

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
1 comentariu
kiril_vihrov7892
Un proiect interesant.
Recent am văzut proiectul „Sintetizator pe Arduino” ca taste, aproape întreaga tastatură a PC-ului este folosită
Dintre detaliile tuturor Arduino, un difuzor și un computer.
Aplicația PC face toate lucrările, controlează Arduino prin portul com
repetat, totul funcționează bine. Uite, te poate ajuta

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...