Cuprins:

Sintetizator Micro Midi: 5 pași (cu imagini)
Sintetizator Micro Midi: 5 pași (cu imagini)

Video: Sintetizator Micro Midi: 5 pași (cu imagini)

Video: Sintetizator Micro Midi: 5 pași (cu imagini)
Video: Povestea salvării unui mistreț. Mistrețul avea nevoie de ajutor 2024, Iulie
Anonim
Sintetizator Micro Midi
Sintetizator Micro Midi
Sintetizator Micro Midi
Sintetizator Micro Midi
Sintetizator Micro Midi
Sintetizator Micro Midi

Acest instructiv demonstrează utilizarea cipului VLSI VS1053b Audio și Midi DSP în modul său Midi în timp real. În acest mod acționează ca un sintetizator Midi polifonic GM (General Midi) cu 64 de voci. Un micro Arduino Uno independent controlează un afișaj OLED, trei butoane (funcția Selectare și Sus sau Jos și trece fluxul de date Midi prin DSP audio. Placa muzicală aleasă a fost placa Adafruit VS1053 codec breakout, dar o placă Sparkfun muzică a fost, de asemenea, testat cu succes. Bibliotecile Adafruit VS1053b au fost utilizate în locul Bibliotecii SFEMP3 mult mai mari (recomandată de Sparkfun, deși au și propriul set de biblioteci), deoarece am găsit codul Adafruit mai ușor de înțeles.

Majoritatea codului folosit pentru a controla DSP audio / midi a fost dezvoltat folosind un Arduino Uno conectat la placa audio / midi breakout printr-o placă de verificare. După ce funcțiile s-au dovedit a fi satisfăcătoare, Uno a fost folosit ca programator pentru un ATmega 328 independent, care a fost apoi pus pe un Veroboard de dimensiuni mici de 30x20 împreună cu IC optoizolator 6N139 necesar pe mufa de intrare Midi (un DIN cu 5 pini). De asemenea, a fost conectat un mic ecran OLED (64x48), trei butoane, un LED de activitate Midi și un conector cu butoi de +5 volți pentru alimentare și s-a adăugat conectorul de ieșire stereo audio. Cerințele de alimentare sunt foarte modeste - aproximativ 20 mA la 5 volți.

Pasul 1: Lista pieselor

ATmega328 Micro 28 pini DIP + 28 pini DIP soclu 6N138 sau 6N139 optoizolator + 4 pini DIP Wemos 64x48 I2C OLED Display sau similar Adafruit VS1053b Codec breakout board3 butoane miniaturale 5 pini DIN Midi soclu PCB preferat LED mic oricare culoare. mufa pentru conectarea la un amplificator sau căști Rezistoare: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Condensatoare: plastic 0.1uF 50v, electrolitic 10uf 25v, 2 x 27 pF ceramică Mici bucăți de Veroboard (30 benzi pe 20 coloane și 4 benzi cu 16 coloane), carcasă din plastic ABS de aproximativ 85x55x25mm, cablare și câteva șuruburi piulițe și șaibe.

Pasul 2: Construcție

Constructie
Constructie
Constructie
Constructie
Constructie
Constructie

Capacul carcasei găzduiește afișajul OLED, cele trei butoane montate pe o altă bucată mică de Veroboard și conectorul de alimentare al butoiului. Placa de circuite Vero principală are două găuri pentru fixarea plăcii Music Breakout deasupra ATmega328. Pentru detalii legate de conexiune, vă rugăm să consultați diagrama plăcii de bandă Fritzing.

ATmega328 programat (vă rugăm să consultați secțiunea următoare pentru cod) este apoi introdus în soclul său, urmat de 6N139 și totul este conectat.

LED-ul este folosit ca indicator de activitate Midi și a fost montat pe partea frontală a incintei. Este conectat la ieșirea D2 a ATmega328 printr-un rezistor de 470 ohmi.

Afișajul OLED utilizează ieșirea de 3,3 volți de pe placa Adafruit pentru alimentare - necesită mai puțin de 20 mA.

Încercați să schimbați cele două conexiuni Midi Din dacă nu auziți niciun sunet la prima utilizare a sintetizatorului.

Pasul 3: Software

Detalii despre schița care ar trebui încărcată pe ATmega328 sunt date în MidA.ino. Există șapte funcții disponibile:

Opțiunea P: Schimbați programul - schimbați instrumentul GM Midi de la 1 la 128 (am folosit de la 0 la 127), cum ar fi un sunet de pian sau de sintetizare. Opțiunea V: Reglați volumul de la 1 la 10. Opțiunea C: Modificați canalul Midi la care va răspunde Synth. Opțiunile sunt Canalul 0, canalul 1, canalul 9 (percuție), canalul 0 și 9 și canalul 1 și 9. Opțiunea R: Activați sau dezactivați efectul de reverberare Opțiunea S: Salvați parametrii curenți în memoria Eeprom (sus) sau Citiți-l (jos) din memoria Eeprom. Acest lucru se datorează faptului că altfel setările nu sunt salvate la oprire. Opțiunea X: Trimiteți un mesaj pentru toate notele (Midi Reset).

A opta opțiune nu este încă implementată - aceasta va ocoli ATmega ca filtru Midi și va conecta ieșirea optoizolatorului direct la pinul Rx al plăcii DSP.

Rețineți că VS1053b pornește într-un mod Midi în timp real, încărcând un patch comprimat de 1039 octeți în timpul pornirii - aceasta crește, de asemenea, dimensiunea tamponului Midi și filtrează octeții de date Midi exclusivi ai sistemului. Detalii despre acest patch pot fi găsite pe site-ul web VLSI.

O versiune ușor modificată a bibliotecii Adafruit Graphics a fost utilizată pentru a satisface rezoluția de 64x48 pixeli a ecranului OLED - vă rugăm să consultați linkurile date la sfârșit pentru domnul Mcauser. O listă a bibliotecilor necesare este dată în codul schiței.

Important, când schița este executată pentru prima dată pe ATmega328, indiferent dacă este pe un Uno sau independent, codul va încărca presetările parametrilor din ATmega328 Eeprom care ar putea să nu fie valabile. În acest caz, puteți fie să scrieți toate zero-urile pe Eeprom folosind opțiunea X cu butonul în jos, fie să comentați linia din funcția de configurare nulă care încarcă valori de la Eeprom la prima pornire, reglați instrumentele etc. și apoi salvați presetările cu opțiunea S butonul Sus.

Se acordă credit tuturor persoanelor și entităților menționate pentru codul și bibliotecile lor.

Pasul 4: Link-uri

VLSI:

Adafruit:

Github VS1053b:

Grafică Github:

Oled:

Sparkfun:

Pasul 5: Utilizarea plăcii Sparkfun cu bibliotecile Adafruit

Utilizarea Sparkfun Board cu bibliotecile Adafruit
Utilizarea Sparkfun Board cu bibliotecile Adafruit

Tabelul din imagine explică cum să conectați fie Adafruit, fie Sparkfun Music Boards pentru a utiliza o altă bibliotecă.

Recomandat: