Inhoudsopgave:

Micro Midi-synthesizer: 5 stappen (met afbeeldingen)
Micro Midi-synthesizer: 5 stappen (met afbeeldingen)

Video: Micro Midi-synthesizer: 5 stappen (met afbeeldingen)

Video: Micro Midi-synthesizer: 5 stappen (met afbeeldingen)
Video: Hoe je de kapsels van mannen moet knippen! Modieuze stijlvolle mannen kapsel! Stap voor stap! 2024, November
Anonim
Micro Midi-synthesizer
Micro Midi-synthesizer
Micro Midi-synthesizer
Micro Midi-synthesizer
Micro Midi-synthesizer
Micro Midi-synthesizer

Deze instructable demonstreert het gebruik van de VLSI VS1053b Audio en Midi DSP-chip in de realtime Midi-modus. In deze modus fungeert het als een 64-stemmige polyfone GM (General Midi) Midi-synthesizer. Een Arduino Uno standalone micro bestuurt een OLED-display, drie knoppen (Function Select en Up of Down, en geeft de Midi-gegevensstroom door aan de audio-DSP. Het gekozen muziekbord was het Adafruit VS1053-codec-breakout-bord, maar een Sparkfun-muziekbreakout-bord werd ook met succes getest. De Adafruit VS1053b-bibliotheken werden gebruikt in plaats van de veel grotere SFEMP3-bibliotheek (aanbevolen door Sparkfun hoewel ze ook hun eigen set bibliotheken hebben), omdat ik de Adafruit-code gemakkelijker te begrijpen vond.

De meeste code die wordt gebruikt om de audio/midi-DSP te besturen, is ontwikkeld met behulp van een Arduino Uno die via een breadboard op het audio/midi-breakoutboard is aangesloten. Nadat de functies naar tevredenheid bleken te werken, werd de Uno gebruikt als programmer voor een stand-alone ATmega 328 die vervolgens op een klein 30x20 formaat Veroboard werd geplaatst samen met de 6N139 opto-isolator IC die nodig was op de Midi-ingang (een 5-pins DIN). Er was ook een klein (64x48) OLED-schild, drie knoppen, een Midi-activiteits-LED en een +5 volt barrel-connector voor voeding en de audio-stereo-uitgangsconnector toegevoegd. De stroomvereisten zijn zeer bescheiden - ongeveer 20 mA bij 5 volt.

Stap 1: Onderdelenlijst

ATmega328 Micro 28-pins DIP + 28-pins DIP-socket6N138 of 6N139 opto-isolator + 4-pins DIP-socket Wemos 64x48 I2C OLED-display of vergelijkbaarAdafruit VS1053b Codec breakout board3 miniatuurdrukknoppen5-pins DIN Midi-socket PCB-montage bij voorkeurKleine LED elke kleur. Barrel-type stopcontact voor de 5v voedingStereo audio aansluiting om een versterker of koptelefoon aan te sluiten Weerstanden: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Condensatoren: 0.1uF 50v plastic, 10uf 25v elektrolytisch, 2 x 27 pF keramiekKleine stukjes Veroboard (30 strips bij 20 kolommen en 4 strips door 16 kolommen), ABS plastic behuizing ongeveer 85x55x25mm, bedrading en een paar schroeven, moeren en ringen.

Stap 2: constructie

Bouw
Bouw
Bouw
Bouw
Bouw
Bouw

Het deksel van de behuizing herbergt het OLED-scherm, de drie knoppen die op een ander klein stukje Veroboard zijn gemonteerd en de stroomconnector. De belangrijkste Vero-printplaat heeft twee gaten om de Music breakout-kaart boven de ATmega328 te bevestigen. Raadpleeg het Fritzing-stripborddiagram voor verbindingsdetails.

De geprogrammeerde ATmega328 (raadpleeg de volgende sectie voor de code) wordt vervolgens in de aansluiting gestoken, gevolgd door de 6N139 en alles is aangesloten.

De LED wordt gebruikt als een Midi-activiteitsindicator en werd aan de voorkant van de behuizing gemonteerd. Het is verbonden met de D2-uitgang van de ATmega328 via een weerstand van 470 ohm.

Het OLED-display gebruikt de 3,3 volt-uitgang van het Adafruit-bord voor stroom - het vereist minder dan 20 mA.

Probeer de twee Midi Din-aansluitingen om te wisselen als u geen geluid hoort wanneer u de synth voor het eerst gebruikt.

Stap 3: Software

Details van de schets die moet worden geüpload naar de ATmega328 worden gegeven in MidA.ino. Er zijn zeven functies beschikbaar:

Optie P: Programma wijzigen - verander het GM Midi Instrument van 1 tot 128 (ik gebruikte 0 tot 127), zoals een piano- of synthgeluid. Optie B: Verander de Instrumentbank tussen Melodic (Bank 0) en Percussion (Bank 1). Optie V: Pas het volume aan van 1 tot 10. Optie C: Verander het Midi-kanaal waarop de Synth zal reageren. De keuzes zijn Kanaal 0, kanaal 1, kanaal 9 (percussie), kanaal 0 en 9, en kanaal 1 en 9. Optie R: Schakel het Reverb-effect in of uit. Optie S: Sla de huidige parameters op in het Eeprom-geheugen (Up) of Lees (omlaag) het terug uit het Eeprom-geheugen. Dit komt omdat instellingen anders niet worden opgeslagen bij het uitschakelen. Optie X: Stuur een all notes off-bericht (Midi Reset).

Een achtste optie is nog niet geïmplementeerd - deze omzeilt de ATmega als een Midi-filter en verbindt de uitgang van de opto-isolator rechtstreeks met de Rx-pin van het DSP-bord.

Merk op dat de VS1053b opstart in een real-time Midi-modus door een gecomprimeerde patch van 1039 bytes te laden tijdens het opstarten - dit vergroot ook de grootte van de Midi-buffer en filtert systeemexclusieve Midi-databytes. Details van deze patch zijn te vinden op de VLSI-website.

Er is een licht gewijzigde versie van de Adafruit Graphics-bibliotheek gebruikt om te voorzien in de 64x48 pixelresolutie van het OLED-scherm - raadpleeg de links aan het einde voor Mr Mcauser. Een lijst van de vereiste bibliotheken wordt gegeven in de schetscode.

Belangrijk is dat wanneer de schets voor de eerste keer wordt uitgevoerd op de ATmega328, of het nu op een Uno of standalone is, de code parameter-presets van de ATmega328 Eeprom laadt die mogelijk niet geldig zijn. In dat geval kunt u ofwel alle nullen naar de Eeprom schrijven met behulp van de X-optie met de omlaag-knop, of commentaar geven op de regel in de void setup-functie die waarden laadt van de Eeprom wanneer deze voor het eerst wordt gestart, uw instrumenten enz. aanpassen aan uw en sla je presets op met de S-optie Up-knop.

Alle genoemde personen en entiteiten worden gecrediteerd voor hun code en bibliotheken.

Stap 4: Koppelingen

VLSI:

Adafruit:

Github VS1053b:

Github-graphics:

Oled:

Sparkfun:

Stap 5: Het Sparkfun-bord gebruiken met de Adafruit-bibliotheken

Het Sparkfun-bord gebruiken met de Adafruit-bibliotheken
Het Sparkfun-bord gebruiken met de Adafruit-bibliotheken

In de tabel in de afbeelding wordt uitgelegd hoe u de Adafruit- of de Sparkfun-muziekborden kunt aansluiten om een andere bibliotheek te gebruiken.

Aanbevolen: