Indholdsfortegnelse:

Micro Midi Synthesizer: 5 trin (med billeder)
Micro Midi Synthesizer: 5 trin (med billeder)

Video: Micro Midi Synthesizer: 5 trin (med billeder)

Video: Micro Midi Synthesizer: 5 trin (med billeder)
Video: Simple Minds - Don't You (Forget About Me) 2024, November
Anonim
Micro Midi Synthesizer
Micro Midi Synthesizer
Micro Midi Synthesizer
Micro Midi Synthesizer
Micro Midi Synthesizer
Micro Midi Synthesizer

Denne instruerbare demonstrerer brugen af VLSI VS1053b Audio og Midi DSP-chippen i sin real-time Midi-tilstand. I denne tilstand fungerer den som en 64 -stemme polyfonisk GM (General Midi) Midi -synthesizer. En selvstændig Arduino Uno -mikro styrer et OLED -display, tre knapper (funktionsvalg og op eller ned og sender Midi -datastrømmen videre til lyd -DSP. Musikkortet blev valgt Adafruit VS1053 codec breakout board, men et Sparkfun musik breakout board blev også testet. Adafruit VS1053b -bibliotekerne blev brugt i stedet for det meget større SFEMP3 -bibliotek (anbefalet af Sparkfun, selvom de også har deres eget sæt biblioteker), fordi jeg fandt Adafruit -koden lettere at forstå.

Det meste af koden, der blev brugt til at styre audio/midi DSP, blev udviklet ved hjælp af en Arduino Uno forbundet til audio/midi breakout boardet via et brødbræt. Efter at funktionerne viste sig at fungere tilfredsstillende, blev Uno brugt som programmerer til en selvstændig ATmega 328, som derefter blev sat på en lille 30x20 størrelse Veroboard sammen med 6N139 opto-isolator IC påkrævet på Midi-indgangsstikket (en 5-polet DIN). Tilsluttet var også et lille (64x48) OLED -skjold, tre knapper, en Midi -aktivitets -LED og et +5 volt tønde -stik til strøm og lydstereo -udgangsstik tilføjet. Strømkravene er meget beskedne - cirka 20 mA ved 5 volt.

Trin 1: Deleliste

ATmega328 Micro 28 pin DIP + 28 pin DIP socket 6N138 eller 6N139 optoisolator + 4 pin DIP socket Wemos 64x48 I2C OLED Display eller lignendeAdafruit VS1053b Codec breakout board3 miniature trykknapper 5 pin DIN Midi socket PCB mount foretrukket Små LED enhver farve. stik til tilslutning til en forstærker eller hovedtelefoner Modstande: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Kondensatorer: 0.1uF 50v plast, 10uf 25v elektrolytisk, 2 x 27 pF keramik Små stykker Veroboard (30 strimler med 20 søjler og 4 strimler 16 søjler), ABS -plastkabinet ca 85x55x25mm, ledninger og et par skruer møtrikker og skiver.

Trin 2: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Låget på kabinettet huser OLED -displayet, de tre knapper, der er monteret på et andet lille stykke Veroboard, og tønde -strømstikket. Det vigtigste Vero -printkort har to huller til at fastsætte Music breakout -kortet over ATmega328. For tilslutningsoplysninger henvises til Fritzing strip board diagrammet.

Den programmerede ATmega328 (se det næste afsnit for koden) indsættes derefter i stikket efterfulgt af 6N139, og alt er forbundet.

LED'en bruges som Midi -aktivitetsindikator og blev monteret på forsiden af kabinettet. Den er forbundet til D2 -udgangen på ATmega328 via en 470 ohm modstand.

OLED -skærmen bruger 3,3 volt udgang fra Adafruit -kortet til strøm - det kræver mindre end 20 mA.

Prøv at skifte de to Midi Din -forbindelser, hvis du ikke hører nogen lyd, når du først bruger synth.

Trin 3: Software

Detaljer om skitsen, der skal uploades til ATmega328, er angivet i MidA.ino. Der er syv funktioner til rådighed:

Mulighed P: Skift program - skift GM Midi -instrumentet fra 1 til 128 (jeg brugte 0 til 127), f.eks. Et klaver eller en Synth -lyd. Valg B: Skift instrumentbank mellem Melodic (Bank 0) og Percussion (Bank 1). Mulighed V: Juster lydstyrken fra 1 til 10. Valg C: Skift den Midi -kanal, som Synth vil reagere på. Valgmulighederne er Kanal 0, kanal 1, kanal 9 (slagtøj), kanal 0 og 9 og kanal 1 og 9. Valg R: Slå rumklangseffekten til eller fra Alternativ S: Gem de aktuelle parametre i Eeprom -hukommelse (op) eller Læs (ned) tilbage fra Eeprom -hukommelsen. Dette skyldes, at indstillinger ellers ikke gemmes, når der slukkes. Valg X: Send en meddelelse om alle noter fra (Midi Reset).

En ottende mulighed er endnu ikke implementeret - dette vil omgå ATmega som et Midi -filter og forbinde optoisolatorens output direkte til Rx -stiften på DSP -kortet.

Bemærk, at VS1053b starter i en real -time Midi -tilstand ved at indlæse en 1039 byte komprimeret patch under opstart - dette øger også størrelsen på Midi -bufferen og filtrerer systemets eksklusive Midi -databyte. Detaljer om denne patch findes på VLSI -webstedet.

En lidt modificeret version af Adafruit Graphics -biblioteket var blevet brugt til at tage højde for opløsningen på 64 x 48 pixel på OLED -skærmen - se de links, der blev givet til sidst for hr. Mcauser. En liste over de nødvendige biblioteker er angivet i skitsekoden.

Det er vigtigt, når skitsen udføres for første gang på ATmega328, uanset om den er på en Uno eller standalone, indlæser koden parameterforudindstillinger fra ATmega328 Eeprom, der muligvis ikke er gyldige. I så fald kan du enten skrive alle nuller til Eeprom ved hjælp af X -indstillingen med ned -knappen eller kommentere linjen i hulrumsopsætningsfunktionen, der indlæser værdier fra Eeprom, når den først startes, justere dine instrumenter osv. Til din kan lide, og gem derefter dine forudindstillinger med knappen S op.

Kredit gives til alle de personer og enheder, der er nævnt for deres kode og biblioteker.

Trin 4: Links

VLSI:

Adafruit:

Github VS1053b:

Github-grafik:

Oled:

Sparkfun:

Trin 5: Brug af Sparkfun Board med Adafruit Libraries

Brug af Sparkfun -bordet med Adafruit -bibliotekerne
Brug af Sparkfun -bordet med Adafruit -bibliotekerne

Tabellen på billedet forklarer, hvordan du enten forbinder Adafruit eller Sparkfun Music Boards for at bruge et andet bibliotek.

Anbefalede: