Innholdsfortegnelse:
- Trinn 1: Deleliste
- Trinn 2: Konstruksjon
- Trinn 3: Programvare
- Trinn 4: Lenker
- Trinn 5: Bruke Sparkfun Board sammen med Adafruit Libraries
Video: Micro Midi Synthesizer: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Denne instruksen demonstrerer bruken av VLSI VS1053b Audio og Midi DSP-brikken i Midi-modus i sanntid. I denne modusen fungerer den som en 64 -stemme polyfonisk GM (General Midi) Midi -synthesizer. En frittstående Arduino Uno mikro styrer en OLED -skjerm, tre knapper (funksjonsvalg og opp eller ned, og sender Midi -datastrømmen videre til lyd -DSP. Musikkbrettet som ble valgt var Adafruit VS1053 codec breakout board, men et Sparkfun musikk breakout bord ble også testet. Adafruit VS1053b -bibliotekene ble brukt i stedet for det mye større SFEMP3 -biblioteket (anbefalt av Sparkfun, selv om de også har sitt eget sett med biblioteker), fordi jeg fant Adafruit -koden lettere å forstå.
Det meste av koden som ble brukt til å kontrollere audio/midi DSP ble utviklet ved hjelp av en Arduino Uno koblet til audio/midi breakout board gjennom et brødbrett. Etter at funksjonene viste seg å fungere tilfredsstillende, ble Uno brukt som programmerer for en frittstående ATmega 328 som deretter ble satt på en liten 30x20 størrelse Veroboard sammen med 6N139 opto-isolator IC som kreves på Midi-inngangen (en 5-pins DIN). Det var også tilkoblet et lite (64x48) OLED -skjold, tre knapper, en Midi -aktivitets -LED og en +5 volt fatkontakt for strøm og lydstereo -utgangskontakten som er lagt til. Strømkravene er svært beskjedne - ca 20 mA ved 5 volt.
Trinn 1: Deleliste
ATmega328 Micro 28 pin DIP + 28 pin DIP socket6N138 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 farge. Lydkontakt Strømuttak for 5 kontakt for å koble til en forsterker eller hodetelefoner Motstander: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Kondensatorer: 0.1uF 50v plast, 10uf 25v elektrolytisk, 2 x 27 pF keramikk Små stykker Veroboard (30 strimler med 20 kolonner og 4 strimler 16 kolonner), ABS -plastkapsling ca 85x55x25mm, ledninger og noen skruer muttere og skiver.
Trinn 2: Konstruksjon
Lokket på kabinettet inneholder OLED -skjermen, de tre knappene som er montert på et annet lite stykke Veroboard, og fatkontakten. Hovedkortet til Vero har to hull for å fikse musikkbryterbordet over ATmega328. For tilkoblingsdetaljer, se diagrammet for Fritzing strip board.
Den programmerte ATmega328 (se den neste delen for koden) settes deretter inn i kontakten etterfulgt av 6N139 og alt kobles til.
Lysdioden brukes som en Midi aktivitetsindikator og ble montert på forsiden av skapet. Den er koblet til D2 -utgangen til ATmega328 via en 470 ohm motstand.
OLED -skjermen bruker 3,3 volt utgang fra Adafruit -kortet for strøm - den krever mindre enn 20 mA.
Prøv å bytte de to Midi Din -tilkoblingene hvis du ikke hører lyd når du bruker synthen første gang.
Trinn 3: Programvare
Detaljer om skissen som skal lastes opp til ATmega328 er gitt i MidA.ino. Det er syv funksjoner tilgjengelig:
Alternativ P: Endre program - endre GM Midi -instrumentet fra 1 til 128 (jeg brukte 0 til 127), for eksempel et piano eller Synth -lyd. Alternativ B: Endre instrumentbanken mellom Melodic (Bank 0) og Percussion (Bank 1). Alternativ V: Juster volumet fra 1 til 10. Alternativ C: Endre Midi -kanalen som Synth vil svare på. Valgene er Kanal 0, kanal 1, kanal 9 (perkusjon), kanal 0 og 9, og kanal 1 og 9. Alternativ R: Slå Reverb -effekten på eller av Alternativ S: Lagre gjeldende parametere i Eeprom -minne (opp) eller Les (ned) den tilbake fra Eeprom -minnet. Dette er fordi innstillinger ellers ikke blir lagret når du slår av. Alternativ X: Send en melding fra alle notater (Midi Reset).
Et åttende alternativ er ennå ikke implementert - dette vil omgå ATmega som et Midi -filter og koble utgangen til optoisolatoren direkte til Rx -pinnen på DSP -kortet.
Vær oppmerksom på at VS1053b starter i sanntids Midi -modus ved å laste en 1039 byte komprimert oppdatering under oppstart - dette øker også størrelsen på Midi -bufferen og filtrerer systemets eksklusive Midi -databyte. Detaljer om denne oppdateringen finner du på VLSI -nettstedet.
En litt modifisert versjon av Adafruit Graphics -biblioteket hadde blitt brukt for å imøtekomme oppløsningen på 64 x 48 piksler på OLED -skjermen - se koblingene gitt til slutt for Mr Mcauser. En liste over de nødvendige bibliotekene er gitt i skissekoden.
Viktigere når skissen blir utført for første gang på ATmega328, enten den er på en Uno eller frittstående, vil koden laste inn parameter forhåndsinnstillinger fra ATmega328 Eeprom som kanskje ikke er gyldige. I så fall kan du enten skrive alle nuller til Eeprom ved å bruke X -alternativet med nedknappen, eller kommentere linjen i funksjonen for ugyldig oppsett som laster inn verdier fra Eeprom når den først startes, justere instrumentene etc. til din liker, og lagre forhåndsinnstillingene dine med S -alternativet Opp -knappen.
Kreditt gis til alle personene og enhetene som er nevnt for koden og bibliotekene.
Trinn 4: Lenker
VLSI:
Adafruit:
Github VS1053b:
Github-grafikk:
Oled:
Sparkfun:
Trinn 5: Bruke Sparkfun Board sammen med Adafruit Libraries
Tabellen på bildet forklarer hvordan du kobler til enten Adafruit eller Sparkfun Music Boards for å bruke et annet bibliotek.
Anbefalt:
Keytar Hero (ved hjelp av en Wii -gitarkontroller som en synthesizer): 7 trinn (med bilder)
Keytar Hero (Bruke en Wii Guitar Controller som en synthesizer): Guitar Hero -spillene var alle raseri for et dusin år siden, så det vil sikkert være mange gamle gitarkontrollere som ligger og samler støv. De har mange knapper, knapper og spaker, så hvorfor ikke bruke dem igjen? Gitarkontrollen
Arduino MIDI Chiptune Synthesizer: 7 trinn (med bilder)
Arduino MIDI Chiptune Synthesizer: Gjenopplev moroa med tidlig dataspillmusikk med en autentisk 8-biters chiptune-synthesizer, som du kan kontrollere over MIDI fra komforten til enhver moderne DAW-programvare. Denne enkle kretsen bruker en Arduino for å kjøre en AY-3- 8910 programmerbare lydslanger
Quad Speaker Synthesizer: 10 trinn (med bilder)
Quad Speaker Synthesizer: Her er en enkel synthesizer som har: 22 taster volumkontrolltone endret forskjellig lydeffektspan (for høyttalerne) fire høyttalere lys (for høyttalerne) Alle kan bygge den, bortsett fra de elektroniske komponentene, alt annet kan finnes hjemme
Arduino Synthesizer: 20 trinn (med bilder)
Arduino Synthesizer: Arduinoen kan sende ut lyd gjennom et bibliotek som er utviklet kalt Tone Library. Ved å lage et grensesnitt og et program som kan kalle visse verdier som skal sendes til en lydutgang, er Arduino Synthesizer et robust verktøy for
Laser Harp Synthesizer på Zybo Board: 10 trinn (med bilder)
Laser Harp Synthesizer på Zybo Board: I denne opplæringen vil vi lage en fullt funksjonell laserharpe ved hjelp av IR -sensorer med et serielt grensesnitt som lar brukeren endre tuning og tone på instrumentet. Denne harpen blir en nyinnspilling fra det 21. århundre av det gamle instrumentet. De