Innehållsförteckning:

Arduino Soundlab: 3 steg
Arduino Soundlab: 3 steg

Video: Arduino Soundlab: 3 steg

Video: Arduino Soundlab: 3 steg
Video: Arduino soundlab 2024, November
Anonim
Image
Image
Konstruktion
Konstruktion

Det är otroligt vad ett brett spektrum av fantastiska ljud kan genereras med FM -syntestekniken, även med en vanlig Arduino. I en tidigare instruerbar illustrerades detta med en synthesizer som hade 12 förprogrammerade ljud, men en tittare föreslog att det skulle vara mycket svalare att ha full kontroll över ljudparametrarna med potentiometrar, och så är det!

I detta ljudlabb kan toner styras av 8 parametrar: 4 för ADSR -kuvertet för ljudstyrkan och 4 för frekvensmoduleringen som bestämmer strukturen.

Tillägget av de 8 potentiometrarna gick inte på bekostnad av antalet nycklar: tre uppsättningar med 8 nycklar avläses några mikrosekunder efter varandra, för totalt 24 nycklar, motsvarande två hela oktaver. Faktum är att två Arduino -stift är oanvända och att expandera till 40 nycklar skulle vara möjligt.

Titta på videon för hur man gör vilda ljud, här är en kort översikt:

* A = attack: tid för en ton att nå sin maximala ljudstyrka (intervall 8ms-2s)

* D = förfall: tid för en ton att sjunka till sin konstanta ljudnivå (intervall 8ms-2s)

* S = Sustain: stadig ljudnivå (intervall 0-100%)

* R = release: tid för en ton att dö ut (intervall 8ms-2s)

* f_m: förhållandet mellan moduleringsfrekvensen och bärvågsfrekvensen (intervall 0,06-16) under 1 resulterar i undertoner, högre värden i övertoner

* beta1: amplituden för FM-moduleringen i början av noten (intervall 0,06-16) resulterar i små variationer i ljudstrukturen. stora värden resulterar i galna ljud

* beta2: amplituden för FM-moduleringen i slutet av noten (intervall 0,06-16) Ge beta2 ett annat värde än beta1 för att få ljudstrukturen att utvecklas i tid.

* tau: hastighet med vilken FM-amplituden utvecklas från beta1 till beta 2 (intervall 8ms-2s) Små värden ger en kort smäll i början av en ton, stora värden en lång och långsam utveckling.

Steg 1: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Det är klart att detta fortfarande är en prototyp, jag hoppas att jag eller någon annan en dag kommer att bygga detta stora och starka och vackra med stora nycklar och riktiga urtavlor för potentiometrarna i ett fantastiskt hölje ….

Komponenter som behövs:

1 Arduino Nano (Det fungerar inte med Uno, som bara har 6 analoga ingångar)

24 tryckknappar

8 potentiometrar, i intervallet 1kOhm - 100kOhm

1 potentiometer på 10 kOhm för volymkontroll

1 kondensator - 10 mikrofarad elektrolit

1 3,5 mm hörlursuttag

1 LM386 ljudförstärkarkrets

2 1000microfarad elektrolitkondensator

1 keramisk 1microfarad kondensator

1 mikrobrytare

1 8 Ohm 2 Watt högtalare

1 10x15cm prototypbräda

Se till att du förstår den bifogade schemat. De 24 knapparna ansluts i 3 grupper om 8, läses ut vid D0-D7 och aktiveras på D8, D10 och D11. Krukorna har +5V och mark på ändkranarna och de centrala kranarna matas till de analoga ingångarna A0-A7. D9 har ljudutgång och blir AC-kopplad till en 10 kOhm potentiometer för volymkontroll. Ljudet kan lyssna direkt med hörlurar eller förstärkas med ett LM386 ljudförstärkarkrets.

Allt passar på ett 10x15cm protoptypskort, men knapparna är för nära för att spela bra, så det är bättre att bygga ett större tangentbord.

Kretsen kan drivas via USB -anslutningen på Arduino Nano, eller med en extern 5V strömförsörjning. En 2xAA batterilåda följt av en stegomvandlare är en perfekt drivande lösning.

Steg 2: Programvara

Ladda upp den bifogade skissen till Arduino Nano och allt borde fungera.

Koden är enkel och enkel att ändra, det finns ingen maskinkod och inga avbrott, men det finns ett par direkta interaktioner med registren, för att interagera med timern, för att påskynda knappavläsningen och för att kontrollera ADC: s beteende för avläsning av potentiometern

Steg 3: Framtida förbättringar

Idéer från samhället är alltid välkomna!

Jag stör mig mest på knapparna: de är små och klickar hårt när de trycks. Det skulle vara riktigt trevligt att ha större knappar som är mer bekväma att trycka på. Knappar för kraft- eller hastighetskänslighet gör det också möjligt att styra tonernas ljudstyrka. Kanske kan 3-vägs tryckknappar eller beröringskänsliga knappar fungera?

Andra trevliga saker skulle vara att lagra ljudinställningar i EEPROM, lagring av korta låtar i EEPROM skulle också göra det möjligt att göra mycket mer intressant musik. Slutligen kan mer komplexa ljud genereras, om någon vet hur man genererar slagverksljud på ett beräkningseffektivt sätt skulle det vara fantastiskt …

Rekommenderad: