Sommario:

Sintetizzatore di arpeggiamento (Mosquito I): 6 passaggi
Sintetizzatore di arpeggiamento (Mosquito I): 6 passaggi

Video: Sintetizzatore di arpeggiamento (Mosquito I): 6 passaggi

Video: Sintetizzatore di arpeggiamento (Mosquito I): 6 passaggi
Video: ORIO-PARTE TASTIERA-SENZA LUCE 2024, Dicembre
Anonim
Sintetizzatore di arpeggiamento (Mosquito I)
Sintetizzatore di arpeggiamento (Mosquito I)

Mosquito I è un piccolo sintetizzatore arpeggiante che utilizza un Arduino Nano e la libreria di sintesi sonora Mozzi. Può riprodurre più di venti sequenze in 8 passaggi, ma puoi aggiungere tutte le sequenze personalizzate che desideri. È relativamente semplice da configurare e non richiede molte parti.

Forniture:

  • Arduino Nano (o qualsiasi Arduino dovrebbe davvero funzionare)
  • 5 ciascuno Potenziometri (10K lineare)
  • 2 pulsanti ciascuno
  • 1 LED ciascuno
  • 1 cia Resistore (330 ohm)
  • 2 resistenze (1K)
  • 1 ogni resistore (2K)
  • 1 condensatore elettrolitico (100 uF)
  • 1 ciascuno condensatore ceramico (33 nF)
  • 1 jack stereo ciascuno
  • Cavo di collegamento
  • tagliere

Passaggio 1: configurazione di Arduino

Configurare Arduino
Configurare Arduino
Configurare Arduino
Configurare Arduino

Per prima cosa, mettiamo il Nano sulla breadboard e impostiamo la nostra potenza:

  1. Posiziona il Nano sulla breadboard. Posiziona come mostrato nell'immagine sopra. Dovrebbe essere a cavallo del canale centrale della breadboard. Dovrai posizionarlo verso un'estremità della breadboard, con la porta USB rivolta verso quel lato. In questo modo il cavo non si intrometterà quando lo colleghiamo. Se stai usando un Arduino più grande come Uno o Mega, ovviamente non lo monterai sulla breadboard.
  2. Collega i binari di alimentazione ad Arduino. Collega uno dei binari positivi (rossi) della tua breadboard al pin 5V di Arduino usando fili o ponticelli. Quindi collegare uno dei binari negativi (blu) a uno dei pin GND del Nano.
  3. Collegare tra loro i binari di alimentazione. Per ottenere alimentazione lungo i binari su entrambi i lati della breadboard, collegare tra loro i binari su entrambi i lati della breadboard eseguendo un filo dal binario positivo su un lato al binario positivo sull'altro lato. Ripeti questo con le rotaie negative.

Passaggio 2: aggiunta dei controlli

Aggiunta dei controlli
Aggiunta dei controlli

Mosquito I utilizza cinque potenziometri e due pulsanti per i controlli.

Potenziometri:

  1. Posiziona le pentole sulla breadboard. Posiziona i vasi in modo che ogni spilla sia sulla propria riga.
  2. Collega le pentole ai binari di alimentazione. Collega il pin del lato sinistro di ogni pentola (se stai guardando il lato della manopola) a uno dei binari negativi sulla breadboard. Collega il pin del lato destro di ogni pentola a una delle guide positive della breadboard.
  3. Collega le pentole ad Arduino. Collega il pin centrale di ogni pot a uno dei pin analogici dell'Arduino. Il pin centrale del primo potenziometro si collega ad A0, il secondo potenziometro ad A1 e così via con l'ultimo potenziometro connesso ad A4.

Premi i pulsanti:

  1. Posiziona i pulsanti sulla breadboard. Posiziona i due pulsanti sulla breadboard in modo che si trovino a cavallo del canale centrale.
  2. Collega i lati positivi. Su un lato della breadboard, collega uno dei pin del pulsante alla guida positiva.
  3. Collega i lati negativi. Posiziona uno dei resistori da 1K sulla breadboard in modo che un'estremità sia collegata al pin inutilizzato del pulsante e l'altro lato del resistore si colleghi al binario negativo.
  4. Pulsante Connetti ad Arduino. Eseguire un filo sulla riga che collega il pulsante alla guida negativa al pin D2. Fai lo stesso con l'altro pulsante ma collegalo a D3.

Passaggio 3: aggiunta di output

Aggiunta di uscite
Aggiunta di uscite

Stiamo emettendo l'audio dal pin 9 e facendo lampeggiare un LED al primo passaggio di ogni sequenza. Ecco come configurare l'hardware per questo.

GUIDATO

  1. Posiziona un LED in uno spazio vuoto sulla breadboard.
  2. Collegare la gamba negativa (corta) del LED alla guida negativa.
  3. Posizionare un resistore di limitazione della corrente. Collegare un lato di un resistore da 330 ohm alla gamba positiva (lunga) del LED. Collega l'altro lato del resistore al pin D4 di Arduino.

Uscita audio

  1. Posiziona la rete RC. Il segnale in uscita dall'Arduino proviene dal pin 9, ma il segnale può essere un po' più caldo di quello che possono gestire alcuni altoparlanti. Per portarlo a qualcosa di più vicino al livello di linea, ho aggiunto una rete RC (basata su un progetto di Notes & Volts). Posiziona i condensatori da 33nF e 100uF, insieme al resistore da 2K come mostrato nell'immagine/schema. Assicurati che il condensatore elettrolitico da 100uF sia collegato con la giusta polarità (il polo positivo/lungo che va al pin 9 di Arduino e il polo negativo/corto collegato al jack).
  2. Collegare il lato negativo del jack audio a terra. Le connessioni jack audio variano leggermente a seconda del tipo utilizzato, ma generalmente funzionano tutte allo stesso modo. Dobbiamo collegare la manica del jack a terra. Questo a volte è contrassegnato da un simbolo meno o etichettato come "manicotto", "anello" o "massa". Se non ci sono etichette sul jack audio, potrebbe essere necessario consultare la scheda tecnica o semplicemente eseguire un'ispezione ravvicinata del jack e vedere se è possibile determinare quale pin è collegato al manicotto o all'anello esterno del jack.
  3. Collega il lato positivo del jack audio al lato negativo del condensatore da 100uF. Il nostro segnale audio ora fluisce dal pin 9 di Arduino attraverso la rete RC ed emerge dal lato negativo del condensatore da 100uF. Lo collegheremo al lato positivo del nostro jack audio. Questo di solito è contrassegnato da un simbolo più o potrebbe essere etichettato come "suggerimento". Di nuovo, se non è etichettato, potrebbe essere necessario ispezionarlo per capire quale pin si collegherà alla punta del jack. Inoltre, se stai usando un jack stereo, potrebbe esserci una connessione con punta L e punta R. Poiché stiamo emettendo un segnale mono, puoi semplicemente collegarti a una delle connessioni tip.

Importante: se trovi che l'audio è troppo basso potresti essere in grado di eliminare la rete RC nel passaggio 1 e collegarti direttamente all'audio dal pin 9 di Arduino. Questo dovrebbe andare bene se stai collegando l'audio a qualcosa con un preamplificatore come altoparlanti esterni per computer dove hai una manopola del volume, ma non lo consiglierei per cose come cuffie, auricolari o cablaggio diretto a un altoparlante. Se decidi di eliminare la rete RC, ti suggerisco di abbassare completamente il volume degli altoparlanti prima di accendere Arduino, quindi aumentare gradualmente il volume per evitare di far saltare gli altoparlanti.

Dopo aver impostato tutto, ricontrolla che tutte le connessioni siano corrette e corrispondano all'immagine e allo schema sopra

Passaggio 4: caricamento del codice

Ora che l'hardware è tutto configurato, siamo pronti per affrontare il lato software:

  1. Avvia l'IDE Arduino. Sul tuo computer, avvia l'IDE Arduino (se non lo hai, puoi scaricarlo da
  2. Scarica la libreria Mozzi. La libreria Mozzi è ciò che ci permette di utilizzare il nostro Arduino come sintetizzatore. Per ottenere questa libreria nel tuo IDE, vai alla pagina github di Mozzi https://sensorium.github.io/Mozzi/download/. Fare clic sul pulsante verde "Codice" e scegliere Scarica ZIP.
  3. Installa la libreria Mozzi dal file zip. Nell'IDE di Arduino, vai su Sketch->Include Library->Add. ZIP Library… Naviga fino al file zip che hai scaricato per aggiungerlo. Ora dovresti vedere Mozzi elencato nella sezione Schizzo-> Includi libreria.
  4. Scarica il codice Mosquito I Arduino. Puoi ottenerlo dal mio sito github https://github.com/analogsketchbook/mosquito_one. (Nota che gli schemi sono disponibili anche lì se ne hai bisogno per riferimento al cablaggio.
  5. Collega Arduino al computer e carica il codice.

Passaggio 5: scherzare

Questo è tutto. Dovresti essere in grado di collegare i tuoi altoparlanti al jack audio e ascoltare il dolce suono della sintesi arpeggiata da quel Nano ittybitty! Se all'inizio non senti nulla, prova a centrare le manopole su tutti i potenziometri per assicurarti di ottenere valori iniziali decenti.

Ecco cosa fanno i controlli:

pentole:

Rate: controlla la velocità di riproduzione del sequencer. Abbassandolo si suonano note discrete in sequenza. Alzandolo, le note si uniscono per creare forme d'onda completamente nuove.

Legato: il secondo potenziometro controlla il legato o la lunghezza delle note. Ruotandolo più a sinistra si ottengono note brevi e sticatto, mentre ruotandolo a destra si ottengono note più lunghe.

Pitch: imposta il pitch di base per la sequenza. Il controllo dell'intonazione sta impostando i valori MIDI, quindi aumenta/diminuisce l'intonazione in semitoni invece di uno spostamento continuo dell'intonazione.

Fase: ruotando questa manopola verso destra si introduce un sottile effetto di fase. Tecnicamente parlando, questo sta causando un leggero detuning dei due oscillatori in Mosquito I, che è ciò che causa il phasing. Tuttavia, non sta seguendo l'intonazione, quindi l'effetto di phasing è probabilmente più evidente sulle note più basse.

Filtro: questa manopola controlla la frequenza di taglio di un filtro passa basso. Ruotandolo a sinistra si tagliano le alte frequenze producendo un suono più ovattato, mentre ruotandolo a destra si produce un suono più brillante.

Pulsanti:

Mosquito ha più di venti sequenze diverse che può riprodurre per impostazione predefinita. I pulsanti consentono di selezionare quale sequenza è in riproduzione. Un pulsante ti sposta in alto nell'elenco delle sequenze e l'altro in basso nell'elenco.

Passaggio 6: personalizzazione

personalizzazione
personalizzazione

Ho aggiunto un sacco di sequenze predefinite, per lo più scale diverse, ma puoi personalizzare il codice abbastanza facilmente per cambiare la sequenza delle note suonate, aggiungerne di nuove o cambiare il numero di note in una sequenza. Di seguito sono riportati i dettagli di come viene fatto nel caso in cui desideri personalizzarlo.

Modifica delle note nella sequenza esistente

Le sequenze sono memorizzate in un array di array chiamato NOTES. Ogni nota è memorizzata come valore di nota MIDI, quindi se vuoi cambiare le note in una particolare sequenza, cambia semplicemente i numeri di nota MIDI per quella sequenza. L'impostazione predefinita prevede la riproduzione di 8 passaggi per sequenza in modo da poter avere solo 8 valori MIDI in una sequenza (vedere di seguito se si desidera avere lunghezze di sequenza diverse).

Una cosa da notare, la manopola del pitch aggiunge un offset di nota ai valori MIDI specificati nell'array NOTES. Quando la manopola è centrata, riproduce le note MIDI indicate nell'array, ma quando si ruota la manopola del pitch aggiunge o sottrae un semitono alle note suonate.

Aggiunta di nuove sequenze

Puoi aggiungere nuove sequenze all'array NOTES semplicemente aggiungendo un nuovo array di 8 note alla fine dell'elenco. Se lo fai, tuttavia, dovrai anche modificare il valore della variabile numSequences in modo che corrisponda al nuovo numero di sequenze. Ad esempio, l'array NOTES ha 21 sequenze per impostazione predefinita, quindi la variabile numSequences è impostata su 21. Se aggiungi una nuova sequenza, dovrai modificare la variabile numSequences in 22.

Puoi aggiungere tutte le nuove sequenze che desideri.

Modifica della lunghezza della sequenza

Se vuoi cambiare la lunghezza delle tue sequenze (se vuoi dire una sequenza di 4 o 16 passi), puoi farlo, ma l'unica avvertenza è che tutte le sequenze devono essere della stessa lunghezza. Dovrai anche impostare la variabile numNotes in modo che corrisponda alla lunghezza delle tue sequenze.

Altre modifiche

Ci sono una serie di altre personalizzazioni che sono possibili come cambiare i tipi di forme d'onda, impostazioni/valori del filtro, che esulano dallo scopo di questo tutorial. Capire il codice Mozzi può essere un po' difficile all'inizio, ma ho cercato di documentare il codice il più possibile per mostrare cosa stanno facendo le varie parti del codice.

Ci sono alcune parti principali del codice per Mozzi che hanno usi abbastanza specifici e le ho elencate di seguito per darti un'idea di cosa sono usate:

  • setup() - Se hai già programmato per Arduinos prima hai familiarità con questa funzione ed è praticamente usata allo stesso modo in Mozzi. Lo usiamo principalmente per configurare le impostazioni predefinite per oscillatori, filtri, ecc.
  • updateControl() - Qui è dove la parte del leone del codice Mozzi sta facendo il suo lavoro. È dove leggiamo i valori di pot e pulsanti, mappiamo e trasformiamo quei valori per alimentare il sintetizzatore e dove viene eseguita la sequenza.
  • updateAudio() - Questo è l'output finale della libreria Mozzi. In genere il codice qui viene mantenuto molto piccolo e snello perché questa funzione viene utilizzata da Mozzi per massimizzare tutti i cicli di clock possibili. Come puoi vedere nel codice della zanzara, può essere un po' criptico, ma in pratica tutto ciò che stiamo facendo è combinare/moltiplicare le nostre varie forme d'onda e poi spostarle in bit per adattarle a un intervallo di numeri specifico. È meglio mantenere questa funzione molto leggera (non chiamate seriali o pin di lettura) e inserire la maggior parte delle cose nella funzione controlUpdate() invece. La documentazione di Mozzi lo descrive in modo più approfondito.

Consigliato: