Inhoudsopgave:

Arduino Soundlab: 3 stappen
Arduino Soundlab: 3 stappen

Video: Arduino Soundlab: 3 stappen

Video: Arduino Soundlab: 3 stappen
Video: Vivos Therapeutics 3 12 19 2024, Oktober
Anonim
Image
Image
Bouw
Bouw

Het is ongelooflijk wat een breed scala aan verbazingwekkende geluiden kan worden gegenereerd met de FM-synthesetechniek, zelfs met behulp van een gewone Arduino. In een eerdere instructable werd dit geïllustreerd met een synthesizer die 12 voorgeprogrammeerde geluiden had, maar een kijker suggereerde dat het veel cooler zou zijn om volledige controle over de geluidsparameters te hebben met potentiometers, en dat is het ook!

In dit geluidslab kunnen tonen worden geregeld door 8 parameters: 4 voor de ADSR-envelop van de luidheid en 4 voor de frequentiemodulatie die de textuur bepaalt.

De toevoeging van de 8 potmeters ging niet ten koste van het aantal toetsen: drie sets van 8 toetsen worden enkele microseconden na elkaar uitgelezen, voor een totaal van 24 toetsen, overeenkomend met twee volle octaven. In feite zijn twee Arduino-pinnen ongebruikt en zou uitbreiding naar 40 sleutels mogelijk zijn.

Bekijk de video voor het maken van wilde geluiden, hier is een kort overzicht:

* A=attack: tijd voor een toon om zijn maximale luidheid te bereiken (bereik 8ms-2s)

* D=verval: tijd voor een toon om te dalen tot zijn constante luidheid (bereik 8ms-2s)

* S=sustain: constant geluidsniveau (bereik 0-100%)

* R=release: tijd voor een toon om uit te sterven (bereik 8ms-2s)

* f_m: verhouding van de modulatiefrequentie tot de draaggolffrequentie (bereik 0,06-16) waarden onder 1 resulteren in ondertonen, hogere waarden in boventonen

* beta1: amplitude van de FM-modulatie aan het begin van de noot (bereik 0,06-16) kleine waarden resulteren in kleine variaties van de geluidstextuur. grote waarden resulteren in gekke geluiden

* beta2: amplitude van de FM-modulatie aan het einde van de noot (bereik 0,06-16) Geef beta2 een andere waarde dan beta1 om de geluidstextuur in de tijd te laten evolueren.

* tau: snelheid waarmee de FM-amplitude evolueert van bèta1 naar bèta 2 (bereik 8ms-2s) Kleine waarden geven een korte knal aan het begin van een noot, grote waarden een lange en langzame evolutie.

Stap 1: constructie

Bouw
Bouw
Bouw
Bouw
Bouw
Bouw

Het is duidelijk dat dit nog steeds een prototype is, ik hoop dat ik of iemand anders ooit deze grote en sterke en mooie zal bouwen met grote toetsen en echte wijzerplaten voor de potentiometers in een geweldige behuizing ….

Benodigde componenten:

1 Arduino Nano (het werkt niet met de Uno, die slechts 6 analoge ingangen heeft)

24 drukknoppen

8 potentiometers, in het bereik van 1kOhm - 100kOhm

1 potmeter van 10kOhm voor volumeregeling

1 condensator - 10microfarad elektrolytisch

1 3,5 mm koptelefoonaansluiting

1 LM386 audioversterkerchip

2 1000 microfarad elektrolitische condensator

1 keramische condensator van 1 microfarad

1 microschakelaar

1 8Ohm 2Watt luidspreker

1 prototypebord van 10x15cm

Zorg ervoor dat u de bijgevoegde schema's begrijpt. De 24 knoppen worden aangesloten in 3 groepen van 8, uit te lezen op D0-D7, en te activeren op D8, D10 en D11. De potten hebben +5V en massa op de eindaftakkingen en de centrale aftakkingen worden toegevoerd aan de analoge ingangen A0-A7. D9 heeft de audio-uitgang en wordt AC-gekoppeld aan een 10kOhm-potentiometer voor volumeregeling. Het geluid kan direct worden beluisterd met oortelefoons, of worden versterkt met een LM386 audioversterkerchip.

Het past allemaal op een 10x15cm protoptype bord, maar de knoppen zijn te dichtbij om goed te spelen, dus het zou beter zijn om een groter toetsenbord te bouwen.

Het circuit kan worden gevoed via de USB-aansluiting op de Arduino Nano, of met een externe 5V-voeding. Een 2xAA-batterijdoos gevolgd door een step-up-converter is een perfecte voedingsoplossing.

Stap 2: Software

Upload de bijgevoegde schets naar de Arduino Nano en alles zou moeten werken.

De code is eenvoudig en gemakkelijk aan te passen, er is geen machinecode en er zijn geen interrupts, maar er zijn een aantal directe interacties met de registers, om te communiceren met de timer, om het uitlezen van de knoppen te versnellen en om het gedrag van de ADC te regelen voor de uitlezing van de potentiometer

Stap 3: Toekomstige verbeteringen

Ideeën uit de community zijn altijd welkom!

Ik heb het meeste last van de knoppen: ze zijn klein en klikken hard als ze worden ingedrukt. Het zou heel leuk zijn om grotere knoppen te hebben die comfortabeler zijn om in te drukken. Ook zouden kracht- of snelheidsgevoelige knoppen het mogelijk maken om de luidheid van de noten te regelen. Misschien kunnen 3-weg drukknoppen of aanraakgevoelige knoppen werken?

Andere leuke dingen zouden zijn om geluidsinstellingen in EEPROM op te slaan. Het opslaan van korte deuntjes in EEPROM zou het ook mogelijk maken om veel interessantere muziek te maken. Ten slotte zouden er complexere geluiden kunnen worden gegenereerd, als iemand weet hoe percussiegeluiden op een rekenkundig efficiënte manier kunnen worden gegenereerd, zou dat geweldig zijn …

Aanbevolen: