Sommario:

Sintetizzatore Micro Midi: 5 passaggi (con immagini)
Sintetizzatore Micro Midi: 5 passaggi (con immagini)

Video: Sintetizzatore Micro Midi: 5 passaggi (con immagini)

Video: Sintetizzatore Micro Midi: 5 passaggi (con immagini)
Video: Microkorg Arpeggiator guide 2024, Luglio
Anonim
Sintetizzatore Micro Midi
Sintetizzatore Micro Midi
Sintetizzatore Micro Midi
Sintetizzatore Micro Midi
Sintetizzatore Micro Midi
Sintetizzatore Micro Midi

Questa istruzione dimostra l'uso del chip VLSI VS1053b Audio e Midi DSP nella sua modalità Midi in tempo reale. In questa modalità funge da sintetizzatore Midi GM (General Midi) polifonico a 64 voci. Un micro autonomo Arduino Uno controlla un display OLED, tre pulsanti (Function Select e Up o Down e passa il flusso di dati Midi attraverso il DSP audio. La scheda musicale scelta è stata la scheda breakout codec Adafruit VS1053, ma una scheda breakout musica Sparkfun è stato anche testato con successo. Le librerie Adafruit VS1053b sono state utilizzate al posto della libreria SFEMP3 molto più grande (consigliata da Sparkfun anche se hanno anche il proprio set di librerie), perché ho trovato il codice Adafruit più facile da capire.

La maggior parte del codice utilizzato per controllare il DSP audio/midi è stato sviluppato utilizzando un Arduino Uno collegato alla scheda breakout audio/midi tramite una breadboard. Dopo che le funzioni si sono rivelate soddisfacenti, Uno è stato utilizzato come programmatore per un ATmega 328 standalone che è stato poi inserito su una piccola Veroboard di dimensioni 30x20 insieme al IC optoisolatore 6N139 richiesto sulla presa di ingresso Midi (un DIN a 5 pin). Inoltre era collegato un piccolo schermo OLED (64x48), tre pulsanti, un LED di attività Midi e un connettore cilindrico da +5 volt per l'alimentazione e il connettore di uscita audio stereo aggiunto. I requisiti di alimentazione sono molto modesti - circa 20 mA a 5 volt.

Passaggio 1: elenco delle parti

ATmega328 Micro 28 pin DIP + 28 pin DIP socket6N138 o 6N139 optoisolatore + 4 pin DIP socketWemos 64x48 I2C Display OLED o simileAdafruit VS1053b Scheda breakout codec3 pulsanti in miniaturaPresa DIN Midi 5 pinPreferito montaggio su PCB LED piccolo qualsiasi colore. Presa di alimentazione a barilotto per l'alimentazione 5vAudio stereo presa per collegare un amplificatore o cuffieResistenze: 7 x 10k, 2 x 470 ohm, 2 x 220 ohmCondensatori: plastica 0.1uF 50v, elettrolitico 10uf 25v, ceramica 2 x 27 pFPiccoli pezzi di Veroboard (30 strisce per 20 colonne e 4 strisce da 16 colonne), custodia in plastica ABS circa 85x55x25mm, cablaggio e alcune viti, dadi e rondelle.

Fase 2: Costruzione

Costruzione
Costruzione
Costruzione
Costruzione
Costruzione
Costruzione

Il coperchio della custodia ospita il display OLED, i tre pulsanti montati su un altro piccolo pezzo di Veroboard e il connettore di alimentazione a botte. La scheda principale Vero ha due fori per fissare la scheda breakout Music sopra l'ATmega328. Per i dettagli di collegamento, fare riferimento allo schema della scheda a strisce di Fritzing.

Si inserisce quindi nella sua presa l'ATmega328 programmato (per il codice si rimanda alla sezione successiva) seguito dal 6N139 e si collega il tutto.

Il LED viene utilizzato come indicatore di attività Midi ed è stato montato sul lato anteriore della custodia. È collegato all'uscita D2 dell'ATmega328 tramite un resistore da 470 ohm.

Il display OLED utilizza l'uscita a 3,3 volt dalla scheda Adafruit per l'alimentazione: richiede meno di 20 mA.

Prova a scambiare le due connessioni Midi Din se non senti alcun audio quando usi il synth per la prima volta.

Passaggio 3: software

I dettagli dello schizzo che dovrebbe essere caricato sull'ATmega328 sono forniti in MidA.ino. Sono disponibili sette funzioni:

Opzione P: Change Program - cambia lo strumento GM Midi da 1 a 128 (ho usato da 0 a 127) come un suono di Piano o Synth. Opzione B: Cambia il banco di strumenti tra Melodic (Bank 0) e Percussion (Bank 1). Opzione V: Regola il volume da 1 a 10. Opzione C: Cambia il canale Midi a cui risponderà il Synth. Le scelte sono Canale 0, canale 1, canale 9 (percussioni), canale 0 e 9 e canale 1 e 9. Opzione R: Attiva o disattiva l'effetto Reverb. Opzione S: Salva i parametri correnti nella memoria Eeprom (Su) oppure Rileggerlo (Giù) dalla memoria Eeprom. Questo perché le impostazioni non vengono altrimenti salvate allo spegnimento. Opzione X: invia un messaggio di disattivazione di tutte le note (Reset MIDI).

Un'ottava opzione non è ancora implementata: bypasserà l'ATmega come filtro Midi e collegherà l'uscita dell'optoisolatore direttamente al pin Rx della scheda DSP.

Si noti che il VS1053b si avvia in modalità Midi in tempo reale caricando una patch compressa da 1039 byte durante l'avvio - questo aumenta anche la dimensione del buffer Midi e filtra i byte di dati Midi esclusivi del sistema. I dettagli di questa patch sono disponibili sul sito Web VLSI.

Una versione leggermente modificata della libreria Adafruit Graphics è stata utilizzata per soddisfare la risoluzione di 64x48 pixel del display OLED - fare riferimento ai collegamenti forniti alla fine per Mr Mcaur. Un elenco delle librerie richieste è fornito nel codice dello schizzo.

È importante sottolineare che quando lo schizzo viene eseguito per la prima volta sull'ATmega328, sia che si tratti di uno o autonomo, il codice caricherà i preset dei parametri dall'Eeprom ATmega328 che potrebbero non essere validi. In tal caso puoi scrivere tutti gli zeri sull'Eeprom usando l'opzione X con il pulsante giù, o commentare la riga nella funzione di configurazione del vuoto che carica i valori dall'Eeprom al primo avvio, regolare i tuoi strumenti ecc. mi piace, quindi salva i tuoi preset con l'opzione S pulsante Su.

Viene dato credito a tutte le persone ed enti citati per il loro codice e biblioteche..

Passaggio 4: collegamenti

VLSI:

Adafruit:

Github VS1053b:

Grafica Github:

Oled:

Sparkfun:

Passaggio 5: utilizzo della scheda Sparkfun con le librerie Adafruit

Utilizzo della scheda Sparkfun con le librerie Adafruit
Utilizzo della scheda Sparkfun con le librerie Adafruit

La tabella nell'immagine spiega come collegare Adafruit o Sparkfun Music Board per utilizzare un'altra libreria.

Consigliato: