INHOUDSOPGAWE:

Arduino Soundlab: 3 stappe
Arduino Soundlab: 3 stappe

Video: Arduino Soundlab: 3 stappe

Video: Arduino Soundlab: 3 stappe
Video: Arduino soundlab 2024, November
Anonim
Image
Image
Konstruksie
Konstruksie

Dit is ongelooflik hoe 'n wye verskeidenheid ongelooflike klanke met die FM -sintetiese tegniek gegenereer kan word, selfs met 'n gewone Arduino. In 'n vorige instruksie is dit geïllustreer met 'n sintetiseerder met 12 vooraf geprogrammeerde geluide, maar 'n kyker het voorgestel dat dit baie koeler sou wees om volle beheer van die klankparameters met potensiometers te hê, en so is dit!

In hierdie klanklaboratorium kan klanke beheer word deur 8 parameters: 4 vir die ADSR -omhulsel van die luidheid en 4 vir die frekwensiemodulasie wat die tekstuur bepaal.

Die byvoeging van die 8 potensiometers was nie ten koste van die aantal sleutels nie: drie stelle van 8 sleutels word 'n paar mikrosekondes een na die ander uitgelees, vir 'n totaal van 24 sleutels, wat ooreenstem met twee volle oktawe. In werklikheid is twee Arduino -penne ongebruik, en dit kan moontlik uitgebrei word na 40 sleutels.

Kyk na die video oor hoe om wilde geluide te maak; hier is 'n kort oorsig:

* A = aanval: tyd vir 'n toon om sy maksimum hardheid te bereik (bereik 8ms-2s)

* D = verval: tyd vir 'n toon om af te neem tot sy bestendige hardheidsniveau (reikwydte 8ms-2s)

* S = volhoubaar: bestendige hardheid (bereik 0-100%)

* R = vrystelling: tyd vir 'n toon om uit te sterf (reeks 8ms-2s)

* f_m: verhouding van die modulasiefrekwensie tot die drafrekwensie (reeks 0,06-16) waardes onder 1 lei tot ondertone, hoër waardes in ondertone

* beta1: amplitude van die FM-modulasie aan die begin van die noot (reeks 0,06-16), klein waardes lei tot geringe variasies van die klanktekstuur. groot waardes lei tot mal geluide

* beta2: amplitude van die FM-modulasie aan die einde van die noot (reeks 0,06-16) Gee beta2 'n ander waarde as beta1 om die klanktekstuur mettertyd te laat ontwikkel.

* tau: spoed waarteen die FM-amplitude verander van beta1 tot beta 2 (reeks 8ms-2s) Klein waardes gee 'n kort knal aan die begin van 'n noot, groot waardes 'n lang en stadige evolusie.

Stap 1: Konstruksie

Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie

Dit is duidelik dat dit nog steeds 'n prototipe is, ek hoop dat ek of iemand anders eendag so groot en sterk en mooi sal bou met groot sleutels en regte draaiknoppies vir die potensiometers in 'n wonderlike omhulsel ….

Benodigde komponente:

1 Arduino Nano (dit werk nie met die Uno nie, wat slegs 6 analoog insette het)

24 drukknoppies

8 potensiometers, in die reeks 1kOhm - 100kOhm

1 potensiometer van 10 kOhm vir volumebeheer

1 kondensator - 10 mikrofarad elektrolities

1 3,5 mm -koptelefoonaansluiting

1 LM386 klankversterker -chip

2 1000microfarad elektrolitiese kondensator

1 keramiek 1microfarad kapasitor

1 mikroskakelaar

1 8 Ohm 2 Watt luidspreker

1 prototipe bord van 10 x 15 cm

Maak seker dat u die aangehegte skemas verstaan. Die 24 knoppies word in 3 groepe van 8 gekoppel, gelees by D0-D7 en geaktiveer op D8, D10 en D11. Die potte het +5V en word op die eindkrane gemaal en die sentrale krane word na die analoog insette A0-A7 gevoer. D9 het die klankuitset en word met AC gekoppel aan 'n 10kOhm potensiometer vir volumebeheer. Die klank kan direk met 'n koptelefoon geluister word, of met 'n LM386 -klankversterker -chip versterk word.

Dit pas alles op 'n 10 x 15 cm protoptipe bord, maar die knoppies is te naby om goed te speel, dus dit is beter om 'n groter klawerbord te bou.

Die stroombaan kan via die USB -verbinding op die Arduino Nano gevoed word, of met 'n eksterne 5V -kragtoevoer. 'N 2xAA-batterykas gevolg deur 'n stap-omskakelaar is 'n perfekte oplossing.

Stap 2: sagteware

Laai die aangehegte skets op na die Arduino Nano, en alles behoort te werk.

Die kode is eenvoudig en maklik om aan te pas, daar is geen masjienkode en geen onderbrekings nie, maar daar is 'n paar direkte interaksies met die registers, om met die timer te werk, om die uitlees van die knoppies te bespoedig en om die gedrag van die ADC te beheer vir die uitlees van die potensiometer

Stap 3: Toekomstige verbeterings

Idees uit die gemeenskap is altyd welkom!

Die knoppies pla my die meeste: hulle is klein en klik hard as hulle ingedruk word. Dit sal baie lekker wees om groter knoppies te hê wat gemakliker is om te druk. Met knoppies wat met krag of spoed gevoelig is, kan u ook die hardheid van die note beheer. Miskien kan 3-rigting drukknoppies of aanraakgevoelige knoppies werk?

Ander goeie dinge is om die klankinstellings in EEPROM te stoor. Deur kort liedjies in EEPROM te stoor, kan u ook baie meer interessante musiek maak. Uiteindelik kan meer komplekse klanke gegenereer word, as iemand weet hoe om perkussieklanke op 'n rekenkundige manier te genereer, sou dit wonderlik wees …

Aanbeveel: