Cuprins:

Arduino Soundlab: 3 pași
Arduino Soundlab: 3 pași

Video: Arduino Soundlab: 3 pași

Video: Arduino Soundlab: 3 pași
Video: Arduino soundlab 2024, Noiembrie
Anonim
Image
Image
Constructie
Constructie

Este incredibil ce poate fi generat o gamă largă de sunete uimitoare cu tehnica de sinteză FM, chiar și folosind un Arduino simplu. Într-o instrucțiune anterioară, acest lucru a fost ilustrat cu un sintetizator care avea 12 sunete pre-programate, dar un spectator a sugerat că ar fi mult mai răcoros să ai control deplin al parametrilor de sunet cu potențiometre și așa este!

În acest laborator de sunet, tonurile pot fi controlate de 8 parametri: 4 pentru învelișul ADSR al sonorității și 4 pentru modulația de frecvență care determină textura.

Adăugarea celor 8 potențiometre nu s-a dus la costul numărului de taste: trei seturi de 8 taste sunt citite câteva microsecunde unul după altul, pentru un total de 24 de taste, corespunzător a două octave complete. De fapt, doi pini Arduino sunt neutilizați și ar fi posibilă extinderea la 40 de taste.

Uită-te la videoclip pentru a face sunete sălbatice, iată o scurtă prezentare generală:

* A = atac: timpul pentru ca un ton să atingă intensitatea maximă (interval 8ms-2s)

* D = decadere: timpul pentru ca un ton să coboare la nivelul său constant de intensitate (interval 8ms-2s)

* S = sustain: nivel constant de intensitate (interval 0-100%)

* R = eliberare: timpul pentru ca un ton să dispară (interval 8ms-2s)

* f_m: raportul dintre frecvența modulației și frecvența purtătoarei (intervalul 0,06-16) valori sub 1 rezultă în subtonuri, valori mai mari în supratone

* beta1: amplitudinea modulației FM la începutul notei (interval 0,06-16) valori mici duc la variații minore ale texturii sunetului. valorile mari duc la sunete nebunești

* beta2: amplitudinea modulației FM la sfârșitul notei (interval 0,06-16) Dați beta2 o valoare diferită de beta1 pentru a face ca textura sunetului să evolueze în timp.

* tau: viteza la care amplitudinea FM evoluează de la beta1 la beta 2 (interval 8ms-2s) Valorile mici dau o scurtă lovitură la începutul unei note, valorile mari o evoluție lungă și lentă.

Pasul 1: Construcție

Constructie
Constructie
Constructie
Constructie
Constructie
Constructie

În mod clar, acesta este încă un prototip, sper că într-o zi eu sau altcineva vom construi acest mare și puternic și frumos cu taste mari și cadrane reale pentru potențiometre într-o incintă minunată….

Componente necesare:

1 Arduino Nano (Nu va funcționa cu Uno, care are doar 6 intrări analogice)

24 butoane

8 potențiometre, în intervalul 1kOhm - 100kOhm

1 potențiometru de 10kOhm pentru controlul volumului

1 condensator - 10microfarad electrolitic

1 mufă pentru căști de 3,5 mm

1 cip amplificator audio LM386

2 1000microfarad condensator electrolitic

1 condensator ceramic 1microfarad

1 microîntrerupător

1 difuzor de 8 Ohm 2Watt

1 placa prototip de 10x15cm

Asigurați-vă că înțelegeți schemele atașate. Cele 24 de butoane sunt conectate în 3 grupuri de 8, pentru a fi citite la D0-D7 și pentru a fi activate pe D8, D10 și D11. Ghivecele au + 5V și se împământă la robinetele finale, iar robinetele centrale sunt alimentate la intrările analogice A0-A7. D9 are ieșirea audio și este cuplat în curent alternativ la un potențiometru de 10kOhm pentru controlul volumului. Sunetul poate fi ascultat direct cu căști sau amplificat cu un cip amplificator audio LM386.

Totul se potrivește pe o placă de tip prototip de 10x15cm, dar butoanele sunt prea aproape pentru a se putea juca bine, deci ar fi mai bine să construiți o tastatură mai mare.

Circuitul poate fi alimentat prin conexiunea USB de pe Arduino Nano sau cu o sursă de alimentare externă de 5V. O cutie de baterii 2xAA urmată de un convertor step-up este o soluție perfectă de alimentare.

Pasul 2: Software

Încărcați schița atașată pe Arduino Nano și toate ar trebui să funcționeze.

Codul este direct și ușor de modificat, nu există cod mașină și nu există întreruperi, dar există câteva interacțiuni directe cu registrele, pentru a interacționa cu cronometrul, pentru a accelera citirea butonului și pentru a controla comportamentul ADC pentru citirea potențiometrului

Pasul 3: Îmbunătățiri viitoare

Ideile comunității sunt întotdeauna binevenite!

Mă deranjează cel mai mult butoanele: sunt mici și fac clic puternic când sunt apăsate. Ar fi foarte frumos să ai butoane mai mari, care să fie mai confortabile de apăsat. De asemenea, butoanele sensibile la forță sau viteză ar permite controlul intensității notelor. Poate că butoanele cu 3 căi sau butoanele sensibile la atingere ar putea funcționa?

Alte lucruri frumoase ar fi stocarea setărilor de sunet în EEPROM, stocarea melodiilor scurte în EEPROM ar permite, de asemenea, să faci muzică mult mai interesantă. În cele din urmă, s-ar putea genera sunete mai complexe, dacă cineva știe cum să genereze sunete de percuție într-un mod eficient din punct de vedere al calculului, ar fi minunat …

Recomandat: