Oggi cercheremo di realzzare un MiniMoog con Arduino… o almeno tentermo di capire come operare.
Nel precedente articolo abbiamo cercato di applicare alcuni concetti fondamentali legati alla produzione di suoni con Arduino, ma cercando di uscire fuori dai classici schemi dei sequencer.
Abbiamo innanzi tutto spiegato come sia possibile programmare la frequenza prodotta dalla nostra scheda utilizzando una serie di tasti, quindi abbiamo mostrato come simulare un oscillatore in base alla tensione inviata verso un pin analogico utilizzando prima un potenziometro, poi un partitore con una fotoresistenza. Ci siamo divertiti a valutare i diversi effetti possibili modificando alcuni parametri come il ritardo nel loop, l’estensione in frequenza o la durata degli impulsi (pitch).
Oggi riprenderemo da dove eravamo rimasti la volta scorsa, mostrando come sia possibile parametrizzare le variabili di un sorgente per rendere il nostro prodotto ancora più divertente.
Cos’è un Moog?
Contrariamente a quanto in genere si pensi, Moog non è un acronimo. Il sintetizzatore Moog prende il nome dal suo ideatore, l’ingegnere americano Robert Moog. Un Moog è composto tipicamente da numerosi moduli differenti, come oscillatori, amplificatori, generatori di inviluppo, filtri, generatori di rumore, risonatori, trigger e mixer.Collegando in modo diverso tra loro i vari moduli, è possibile creare e modellare forme d’onda diverse, utilizzando cavi di collegamento esterni o interruttori interni. Per suonare un Moog è possibile usare tastiere, joystick, pedali e controllori a nastro.
Ciacscun oscillatore può produrre onde sonore con timbri differenti, che a loro volta possono essere modulate e filtrate per produrre nuove combinazioni sonore.
L’innovazione principale di Moog consiste nell’utilizzare la tensione per controllare il pitch attraverso un voltage-controlled oscillator. Il sintetizzatore introdusse inoltre nuovi concetti legati alla modularità e generazione di inviluppo. Verso la fine degli Anni Sessanta numerose Rock e Pop bands adottarono un Moog: the Doors, the Grateful Dead, the Rolling Stones, e the Beatles, mentre nel decennio successivo gli Yes, i Tangerine Dream, ed Emerson, Lake & Palmer ne fecero il proprio elemento musicale distintivo.
Retromusic analogica, con un sound caratteristico
Allora un Moog con una tastiera a due ottave costava un patrimonio. E per programmarlo bene occorreva conoscere non solo il funzionamento di ciascuno dei moduli di cui era composto, ma avere anche una buona base di fisica elettronica per comprendere come lavorare ad esempio sui filtri o sull’interferenza onlulatoria.
Oggi, invece, le cose sono molto più semplici: basterà una scheda Arduino ed una manciata di componenti elettronici per poter iniziare a lavorare sul nostro Minimoog.
Osserviamo lo schema pratico che adotteremo:
Rispetto allo schema dello scorso articolo, qui abbiamo quattro potenziometri e quattro interruttori. Gli interruttori inseriranno nel circuito una serie di condensatori, che rappresentano un esempio di cosa sia un “filtro audio”. I condensatori hanno capacità differenti, e possono essere selzionati uno alla volta o in gruppo, per cercare di ricreare effetti sonori differenti.
I potenziometri, invece sono modificatori della creazione della forma d’onda. Il primo partendo da sinistra, collegato con il pin analogico A4, consente di “sweepare“, di passare cioè da una frequenza bassa ad una alta come se si eseguisse una scala musicale; il secondo, collegato con il pin analogico A3, modifica la “depth”, la profondità della scala: più depth è spostato in senso orario verso il massimo, maggiore sarà l’estensione raggiungibile dallo strumento. Il terzo potenziometro misura il tempo di attacco, o la lunghezza di ciascun impulso (stiamo lavorando con onda quadra), mentre il quarto potenziometro misura il tempo di attesa tra due esecuzioni del loop: giocando un po’ con il terzo ed il quarto potenziometro è possibile innescare effetti di sovrapposizione e cancellazione del suono.
Lista dei componenti:
- 1 x Arduino Uno R3
- 1 x buzzer piezoelettrico
- 1 x condensatore 10 nF
- 1 x condensatore 22 nF
- 1 x condensatore 33 nF
- 1 x condensatore 56 nF
- 1 x interruttore SPST DIP x 4
- 4 x potenziometro 10 kΩ
Di seguito il listato completo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/* Arduino Minimoog Plays a pitch that changes based on a changing analog input circuit created 13 Apr 2020 by Luigi Morelli This example code is in the public domain. */ void setup() { // inizializziamo la seriale (ci tornerà utile in fase di debugging del suono): Serial.begin(9600); } void loop() { // Input della nota int sensorReading = analogRead(A4); // stampa opzionale del valore ottenuto, per una calibrazione migliore // Serial.print(sensorReading); // mappatura del valore ottenuto sulla nota richiesta. // Le prime due cifre dipendono dalla sensibilità del potenziometro utilizzato // Le ultime due cifre determinano il range di frequenze riprodotte (max. 32Hx-8MHz): // e vengono impostate tramite il secondo potenziometro int depth = analogRead(A3)* 5; int thisPitch = map(sensorReading, 0, 1023, 100, depth); // Il terzo valore determina la lunghezza dell'impulso // suona la nota con valori tra 1 e 50 per la calibrazione. int attack = analogRead(A2); attack = map(attack, 1,1023, 1, 50); tone(8, thisPitch, attack); //ritardo per consentire al sistema di riallinearsi dopo ogni ciclo di suono // Può assumere valori tra 1 e 50 int ritardo = analogRead(A1); ritardo = map(ritardo, 0, 1023, 1, 20); delay(ritardo); } |
E anche per oggi abbiamo concluso. Se l’articolo incontrerà il vostro interesse, continueremo a presentare nuove idee per la sintesi musicale elettronica, creando magari ciascun modulo della catena di un Moog separatamente, per poi innestarli gli uni sugli altri per capire come effettivamente funzioni il tutto.
Attendiamo con ansia di valutare i progetti che avrete nel frattempo realizzato per migliorare le prestazioni di questi circuiti base: i migliori verranno senz’altro pubblicati sul blog.
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano
Seguici per non perdere le prossime novità!