Sommario:
- Passaggio 1: elenco delle parti
- Fase 2: Costruzione
- Passaggio 3: software
- Passaggio 4: collegamenti
- Passaggio 5: utilizzo della scheda Sparkfun con le librerie Adafruit
Video: Sintetizzatore Micro Midi: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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
La tabella nell'immagine spiega come collegare Adafruit o Sparkfun Music Board per utilizzare un'altra libreria.
Consigliato:
Sintetizzatore d'acqua con MakeyMakey e Scratch: 6 passaggi (con immagini)
Sintetizzatore d'acqua con MakeyMakey e Scratch: usare MakeyMakey per trasformare materiali diversi in interruttori o pulsanti e quindi attivare movimenti o suoni sul computer è una cosa affascinante. Si apprende quale materiale conduce l'impulso di corrente debole e si può inventare e sperimentare i
Fantastico sintetizzatore analogico/organo che utilizza solo componenti discreti: 10 passaggi (con immagini)
Fantastico sintetizzatore/organo analogico che utilizza solo componenti discreti: i sintetizzatori analogici sono molto interessanti, ma anche piuttosto difficili da realizzare. Quindi volevo crearne uno il più semplice possibile, in modo che il suo funzionamento possa essere facilmente comprensibile. Perché funzioni, tu bisogno di alcuni sotto-circuiti di base: un semplice oscillatore con resist
Costruiamo un sintetizzatore MIDI USB SN76489 con Arduino Nano: 7 passaggi
Costruiamo un sintetizzatore MIDI USB SN76489 con Arduino Nano: hai mai desiderato costruire il tuo sintetizzatore basato su vecchi chip-tunes degli anni '80? Riproduci semplici brani polifonici che suonano proprio come suonavano questi vecchi videogiochi Sega Master System e Megadrive? Ho, quindi, ho ordinato alcuni chip SN76489 da eb
Sintetizzatore Chiptune MIDI Arduino: 7 passaggi (con immagini)
Arduino MIDI Chiptune Synthesizer: rivivi il divertimento della musica dei primi giochi per computer con un autentico sintetizzatore chiptune a 8 bit, che puoi controllare tramite MIDI comodamente da qualsiasi moderno software DAW. Questo semplice circuito utilizza un Arduino per pilotare un AY-3- 8910 generi sonori programmabili
Controller per strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: 7 passaggi (con immagini)
Controller di strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: questo controller lampeggia luci a strisce LED tricolore per 50 mS per nota. Blu per G5 a D # 6, rosso per E6 a B6 e verde per C7 a G7. Il controller è un dispositivo MIDI ALSA, quindi il software MIDI può inviare l'output ai LED contemporaneamente a un dispositivo synth MIDI