Indholdsfortegnelse:

Arduino Soundlab: 3 trin
Arduino Soundlab: 3 trin

Video: Arduino Soundlab: 3 trin

Video: Arduino Soundlab: 3 trin
Video: Breadboarding the Music from Outer Space VCO 2024, Oktober
Anonim
Image
Image
Konstruktion
Konstruktion

Det er utroligt, hvad en lang række fantastiske lyde kan genereres med FM -synteseteknikken, selv ved hjælp af en almindelig Arduino. I en tidligere instruerbar blev dette illustreret med en synthesizer, der havde 12 forprogrammerede lyde, men en seer foreslog, at det ville være meget køligere at have fuld kontrol over lydparametrene med potentiometre, og det er det også!

I dette lydlaboratorium kan toner styres af 8 parametre: 4 for ADSR -kuvert for lydstyrken og 4 for frekvensmodulationen, der bestemmer teksturen.

Tilføjelsen af de 8 potentiometre gik ikke på bekostning af antallet af taster: tre sæt med 8 taster læses et par mikrosekunder efter hinanden, i alt 24 nøgler, svarende til to hele oktaver. Faktisk er to Arduino -pins ubrugte, og det ville være muligt at udvide til 40 nøgler.

Se på videoen for at lave vilde lyde, her er en kort oversigt:

* A = angreb: tid for en tone at nå sin maksimale lydstyrke (område 8ms-2s)

* D = henfald: tid for en tone til at falde til dens faste lydstyrkeniveau (område 8ms-2s)

* S = sustain: konstant lydstyrke (område 0-100%)

* R = frigivelse: tid for en tone til at dø ud (interval 8ms-2s)

* f_m: forholdet mellem modulationsfrekvensen og bærefrekvensværdierne (område 0,06-16) under 1 resulterer i undertoner, højere værdier i overtoner

* beta1: amplitude af FM-modulationen i begyndelsen af noten (område 0,06-16) små værdier resulterer i mindre variationer af lydtekstur. store værdier resulterer i skøre lyde

* beta2: amplitude af FM-modulationen i slutningen af noten (område 0,06-16) Giv beta2 en anden værdi end beta1 for at få lydtekstur til at udvikle sig i tide.

* tau: hastighed, hvormed FM-amplituden udvikler sig fra beta1 til beta 2 (interval 8ms-2s) Små værdier giver et kort brag i begyndelsen af en note, store værdier en lang og langsom udvikling.

Trin 1: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Det er klart, at dette stadig er en prototype, jeg håber, at jeg eller en anden dag vil bygge denne store og stærke og smukke med store nøgler og ægte urskiver til potentiometrene i et fantastisk kabinet ….

Nødvendige komponenter:

1 Arduino Nano (Det fungerer ikke med Uno, som kun har 6 analoge indgange)

24 trykknapper

8 potentiometre, i området 1kOhm - 100kOhm

1 potentiometer på 10 kOhm til lydstyrkekontrol

1 kondensator - 10microfarad elektrolit

1 3,5 mm øretelefonstik

1 LM386 lydforstærkerchip

2 1000microfarad elektrolitisk kondensator

1 keramisk 1microfarad kondensator

1 mikrokontakt

1 8 Ohm 2 Watt højttaler

1 prototavle på 10 x 15 cm

Sørg for at du forstår vedlagte skemaer. De 24 knapper får forbindelse i 3 grupper på 8, der skal læses op ved D0-D7 og aktiveres på D8, D10 og D11. Gryderne har +5V og jordet på endehanerne, og de centrale vandhaner føres til de analoge indgange A0-A7. D9 har lydudgangen og får AC-kobling til et 10kOhm potentiometer til lydstyrkekontrol. Lyden kan lyttes direkte med øretelefoner eller forstærkes med en LM386 lydforstærkerchip.

Det hele passer på et 10x15cm protoptype -bord, men knapperne er for tætte til at spille godt, så det ville være bedre at konstruere et større keyboard.

Kredsløbet kan drives via USB -forbindelsen på Arduino Nano eller med en ekstern 5V strømforsyning. En 2xAA batteriboks efterfulgt af en step-up converter er en perfekt strømforsyningsløsning.

Trin 2: Software

Upload den vedhæftede skitse til Arduino Nano, og alt burde fungere.

Koden er ligetil og let at ændre, der er ingen maskinkode og ingen afbrydelser, men der er et par direkte interaktioner med registre, for at interagere med timeren, for at fremskynde knappeaflæsning og for at kontrollere ADC's adfærd til udlæsning af potentiometer

Trin 3: Fremtidige forbedringer

Ideer fra samfundet er altid velkomne!

Jeg er mest generet af knapperne: de er små og klikker hårdt, når de skubbes. Det ville være rart at have større knapper, der er mere behagelige at trykke på. Kraft- eller hastighedsfølsomme knapper gør det også muligt at styre tonernes lydstyrke. Måske kunne 3-vejs trykknapper eller berøringsfølsomme knapper fungere?

Andre gode ting ville være at gemme lydindstillinger i EEPROM, gemme korte melodier i EEPROM ville også give mulighed for at lave meget mere interessant musik. Endelig kunne mere komplekse lyde genereres, hvis nogen ved, hvordan man genererer perkussionslyde på en beregningsmæssigt effektiv måde, ville det være fantastisk …

Anbefalede: