Innholdsfortegnelse:
- Trinn 1: !! Merk av forsiktighet - Ansvarsfraskrivelse
- Trinn 2: Konstruer maskinvaren
- Trinn 3: Komponentliste
- Trinn 4: Tilkoblinger/skjemaer
- Trinn 5: Programvaren
- Trinn 6: Feilsøking
- Trinn 7: Nyttige koblinger
Video: En annen MIDI til CV -boks: 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
En annen MIDI til CV -boks er et prosjekt jeg utviklet da en Korg MS10 banket på døren min og fant sted i studioet mitt. Siden oppsettet mitt er sterkt knyttet til MIDI for å automatisere og synkronisere alle instrumentene, da jeg kjøpte MS10, var det første problemet jeg måtte møte, hvordan jeg skulle implementere slik kontroll.
Korg MS20/10 er ikke de enkleste synthene for å implementere MIDI for å: først og fremst stole på Hz/V -kontroll (lineær korrelasjon mellom kontrollspenning og notfrekvens), i stedet for okt/V (1V per oktav); for det andre, for å utløse et notat må du sende et negativt gate-signal og korte inngangen til bakken (S-Trig), ikke et +5 V-signal (V-trig).
Det er forskjellige kommersielle løsninger for å kontrollere slike instrumenter i dag (dvs. Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), men jeg er en billig jævel og til og med 100 euro er for mye for en "ikke høres" enhet:).
Her er vi da: la meg vise deg hvordan du bygger en lavbudsjett MIDI til CV-boks for å kontrollere/automatisere en pre-MIDI synths tonehøyde, gate, hastighet og cutoff-frekvens med en ekstern MIDI-kontroller (tastatur, DAW, sequencer eller hva som helst).
"Hva med den nye MS20 mini?"
Som nesten alle vet, er den nye MS20 faktisk MIDI -klar: IN med en 5 -polet MIDI -kontakt og IN/OUT med USB -kontakt.
"Så hvis jeg har en MS20 mini er denne tingen ubrukelig!"
Vel nei. MS20 mini gjenkjenner bare notater på/av meldinger og tastaturet er ikke hastighetsfølsomt. Det er ingen måte å overvinne dette med MS10/20 vintage eller mini -tastaturet, men med midi -boks og et hastighetsfølsomt tastatur er du gylden. I tillegg kan du med MIDI -boksen automatisere filteravbrudd (eller en annen spenningskontrollerbar parameter) eller få den modulert av den innkommende MIDI -noten om hastighet. Igjen, den eneste MIDI -kanalen MS20 mini reagerer på er kanal 1. Med denne boksen kan du også overvinne denne grensen.
"Hva om jeg har en Oct/V -synth?"
Ikke noe problem! Koden jeg skrev er kompatibel med Oct/V-synthesizere (uprøvd, men jeg er sikker på at det vil fungere utenom boksen;)).
Trinn 1: !! Merk av forsiktighet - Ansvarsfraskrivelse
Utstyret ditt er veldig verdifullt og bør ikke brukes til å utføre tester.
Leke med elektrisitet kan skade utstyret ditt alvorlig eller skade deg selv.
Jeg kan ikke holdes ansvarlig for skader på utstyret/maskinvaren eller til og med deg selv som kommer fra programvaren eller programmene eller informasjon eller lenker jeg rapporterte i denne instruksen.
Du har blitt advart!
Trinn 2: Konstruer maskinvaren
Arduino er nyttig når du arbeider med prosjekter som dette. Eksistensen av et stort fellesskap og veldig gode biblioteker som strekker seg over nesten alle vanlige oppgaver, gjør det til det riktige valget. Her vil tavlen bli programmert slik at den vil lese innkommende MIDI -data og deretter sende passende spenninger for å kjøre:
- Pitch, ved å konvertere en pwm -utgang til en analog spenning for å drive VCO via en digital til analog omformer (DAC)
- Hastighet, ved å filtrere en pwm -utgang for å drive VCA med et enkelt RC -filter
- Filter Cutoff Frequency, ved å filtrere en pwm -utgang for å drive VCF med et enkelt RC -filter
- Port, direkte fra en digital utgang i tilfelle V-trig (sett en 1Kohm i serie med utgangen for å redusere strømavløpet) eller ved en enkel pnp-transistorbryter ut av den digitale utgangen (se skjematisk vedlagt skjematisk trinn).
Arduino er ikke i stand til å sende direkte jevn spenning, men 0/+5 V pulser med forskjellige perioder (PWM). Vi trenger digitale til analoge omformere (DAC) for pourpouse. RC -filtre er den enkleste DAC jeg kan tenke meg. Et RC -filter er godt nok for spenningsstyrt forsterker og filter (VCA og VCF). RC -filtrene er skreddersydd for å resultere i en cutoff -frekvens <20Hz (laveste hørbare frekvens).
Jeg gjorde en test med ikke -polariserte kondensatorer med lav kapasitet, og jeg avsluttet med en kapasitetsverdi på 0.1uF for å passe best. Testet godt på en MS20 MKII.
Dessverre kan vi ikke stole på et RC -filter for å drive den spenningsstyrte oscillatoren (VCO) siden det ikke ville være nøyaktig nok (i Hz/V -skala, i nedre ende er to adiacend -halvtoner forskjellige for mindre enn 0,02V; i V /okt to adiacente halvtoner er forskjellige for 0,083 V); vi skal bruke en IC DAC (MPC4725) til dette.
Kjente grenser
Ved å begrense stasjonsspenningen til 5V (Arduino -utgangsspenningen), dekkes hele 0 til 5V -området for hastighet; cutoff er halvt dekket (-5V til +5V); VCO -området er delvis dekket fordi det i Hz/V ville være nødvendig med en spenning på 8 V for å nå 440 Hz A4. Med en 5V utgangsgrense kan vi sette oscillatoren opp til D4 -frekvensen i Hz/V.
Trinn 3: Komponentliste
Du trenger:
1X Arduino UNO (eller nano)
1X MPC4725 DAC -kort
4X 1/8 "eller 1/4" monokontakter
1X MIDI -kontakt
1X 6N138 optokobler
1X 1N4148 diode
1X 220 ohm 1/4 W motstand
1X 470 ohm 1/4 W motstand
1X 10K ohm 1/4 W motstand
4X 1K ohm 1/4 W motstand
2X 0,1 uF kondensator
1X BC547 pnp-transistor (i tilfelle S-trig)
1X ABS -boks (minst 55 x 70 x 100 mm)
… og åpenbart brødbrett eller perfboard, loddejern, loddetråd og kabler (2 meter 28 AWG bør være nok).
Legg merke til at på bildene over monterer prototypen min 100 uF elektrolitthetter, men de er for trege på grunn av kapasitetens ladetid. En kapasitans på 0.1uF er det riktige valget.
Jeg brukte en ekstra kontakt for å levere strøm til min arduino; det er ikke nødvendig å være i stand til å juice mikrokontrolleren direkte via den innebygde mini -USB -kontakten.
Trinn 4: Tilkoblinger/skjemaer
MIDI IN
MIDI IN -kretsen er enkel og godt beskrevet på nettet. Ta DENNE glimrende instruksen om MIDI og Arduino av Amanda Gassaei, for eksempel. Jeg lagde den niende skjematikken om saken uansett.
Legg merke til at jeg la til en bryter i MIDI IN -opplegget (bryter 1): dette er nødvendig når du laster opp en ny skisse til Arduino fordi optoen forstyrrer RX -linjen selv uten innkommende midi -meldinger. Du må åpne bryteren før du laster opp skissen din, ellers vil IDE ikke laste opp den nye skissen.
Du kan til slutt endre skissen for å bruke en seriell programvarekommunikasjon.
DAC, RC -filter, synthesizer
Tilkobling for DAC, RC -filtre og Synth (pitch, gate og velocity) er vist i diagrammet øverst. Jeg tok for referanse et Korg MS20 patch -panel, men jeg testet alt på en MS10 også. Den direkte tilkoblingen av hastighet CV til VCA "initial gain" patch -punkt har ingen effekt (jeg må grave denne tingen videre), men hvis du kobler den til "Total" patch -punktet og øker de totale eksterne potter (MG/T. EXT), vil du høre fine tonevariasjoner som en funksjon av notathastigheten.
Skjemaene mine (og prototypen min også) bruker ikke en gjeldende begrensningsmotstand ved DAC -utgangen, men det er alltid en god idé å plassere en for å sikre lang levetid for kretsene dine. En 220 ohm motstand vil være nok.
Legg merke til at i skjemaene over 100 uF elektrolittkapsler er rapportert, men de er for trege på grunn av kapasitetens ladetid. Ikke -polariserte, 0.1uF caps er det riktige valget.
Port ut
Hvis du skal sekvensere en synth som er kompatibel med V-Trig (spenningstrigger) signaler, vil en 1k ohm serie motstand for å redusere strømavløpet være tilstrekkelig; i tilfelle av en S-Trig (switch trigger) synth, kan du bruke en enkel PNP-bryterkrets (se vedlagt skjema).
Trinn 5: Programvaren
Jeg prøvde å holde skissen så tydelig og "lesbar" som mulig.
Jeg jobbet på et enkelt kalkblad jeg fant HER for å utlede en Voltage Vs Note# -kurve og bruke ligningen direkte i mikrokontrolleren. Ligningen er vist i grafen øverst. Jeg brukte C2 som referansenote for å få en Arp/Korg -kompatibel Spenning Vs notatforhold (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V og så videre).
Jeg måtte definere en variabel å leke med for å få en god tuning … ta deg tid til å finne de riktige verdiene. En tuner er nødvendig.
Vi kommer til å øke pwm -frekvensen til en timer/teller for å redusere utgangsspenninger (så enkelt som en kode).
For å holde koden lydhør for innkommende byte, er koden sterkt avhengig av tilbakeringing av funksjoner.
Du trenger Sparkfun "Adafruit_MCP4725.h" og Forty Seven Effects/Francois Bests "MIDI.h" biblioteker for å kompilere! (Tusen takk til disse personene: uten deres innsats ville dette prosjektet aldri blitt realisert!).
Jeg antar at du har Arduino IDE klar på PCen, og du vet hvordan du laster en skisse til Arduino -kortet.
Jeg er ikke en koder i det virkelige liv, så det er sannsynlig at skissen kan skrives på en bedre måte. Jeg er åpen for forslag (jeg lærer alltid noe å se på koderkoden;))
Ytterligere notater er skrevet i koden nedenfor. Installer de to bibliotekene, åpne den vedlagte koden på IDE -en din, koble til brettet ditt, velg type brett og last opp.
Trinn 6: Feilsøking
Selv om prosjektet er lavt, er det tonnevis av ting som kan gå galt. Følg disse trinnene hvis du opplever problemer mens du prøver å lage din egen MIDI til CV -boks:
1. Sørg for at Arduino mottar MIDI -meldinger riktig
Kontroller utgangskanalen tastaturet eller DAW eller Sequencer sender ut MIDI -meldinger til. Arduino hører på kanal 1 som standard. Last opp "TEST_MIDI_IN.ino" for å lese en innkommende noteON -melding.
2. Dobbeltsjekk ledningene dine
… eller enda bedre: trippel sjekk dem! Behold tiden din til dette.
3. Kontroller DAC -adressen og utgangen
DAC kan settes til å motta data på en annen adresse enn den jeg angav i skissen. Kontroller adressen ved å kjøre "I2C_scanner.ino". Hvis det oppstår en "ingen enhet funnet" -feil, må du kontrollere DAC -ledningene (SDA- og SCL -innganger er forskjellige på forskjellige Arduino -kort!). Hvis du har et oscillokop (selv de 15 euro digitale oscilloskopene er gode nok … og morsomt å leke med!) Kan du sjekke utgangen til DAC ved å laste opp triangelbølgeneratoreksemplet som fulgte med installasjonen av DAC -biblioteket.
Husk at når en optokobler er koblet til RX -inngangen på arduino -kortet, vil du ikke kunne laste opp en ny skisse !! Plasser en bryter (det kan være en enkel jumper) før RX -pinnen.
De fleste av disse testskissene er ikke mine eller i det minste basert på eksisterende elektronisk materiale.
Denne tingen høres ut for meg !?
Dette er ikke et reelt problem: ligningen som er avledet for Hz/V -kontroll er "ideell". Noen avvik fra den ideelle oppførselen kan stige fra +5V du leverer, ikke 5.000V, fra DAC og fra selve instrumentet. For å løse må du handle på ditt synthtune/fine tune -potensiometer og "voilà" en perfekt innstilt MIDI -kontroll;)
Trinn 7: Nyttige koblinger
en.wikipedia.org/wiki/CV/gate
www.instructables.com/id/Send-and-Receive-…
www.songstuff.com/recording/article/midi_me…
pages.mtu.edu/~suits/NoteFreqCalcs.html
espace-lab.org/activites/projets/en-arduin…
learn.sparkfun.com/tutorials/midi-shield-h…
provideyourown.com/2011/analogwrite-conver…
www.midi.org/specifications/item/table-3-c…
arduino-info.wikispaces.com/Arduino-PWM-Fr…
sim.okawa-denshi.jp/en/PWMtool.php
Anbefalt:
Send numeriske data fra en Arduino til en annen: 16 trinn
Send numeriske data fra en Arduino til en annen: Introduksjon av David Palmer, CDIO Tech. ved Aston University. Trengte du noen gang å sende noen numre fra en Arduino til en annen? Denne instruksen viser hvordan. Du kan enkelt teste det fungerer ved ganske enkelt å skrive inn en streng med tall som skal sendes på S
MIDI 5V LED Strip Light Controller for Spielatron eller annen MIDI Synth: 7 trinn (med bilder)
MIDI 5V LED Strip Light Controller for Spielatron eller annen MIDI Synth: Denne kontrolleren blinker trefargede LED stripelys for 50mS per note. Blå for G5 til D#6, rød for E6 til B6 og grønn for C7 til G7. Kontrolleren er en ALSA MIDI -enhet, slik at MIDI -programvare kan mates ut til lysdiodene samtidig som en MIDI -synthenhet
Konverter (bare om) hvilken som helst mediefil til (bare om) hvilken som helst annen mediefil gratis !: 4 trinn
Konverter (bare om) hvilken som helst mediefil til (bare om) hvilken som helst annen mediefil gratis !: Min første instruks, hei! Uansett, jeg var på Google på utkikk etter et gratis program som ville konvertere Youtube.flv -filene mine til et format som er mer universell, som. wmv eller.mov. Jeg søkte på utallige forum og nettsteder og fant deretter et program som heter
Mestre din mikro: bit med Arduino IDE-knapp og annen GPIO: 3 trinn (med bilder)
Master din mikro: bit Med Arduino IDE-Button and Other GPIO: I vår forrige blogg Master Your Micro: bit med Arduino IDE - - Light LED, vi har snakket om hvordan du installerer micro: bit bibliotek på Arduino IDE og hvordan å kjøre LED på micro: bit med Arduino IDE. I denne artikkelen skal vi fortelle deg
Koble en iPod eller annen mp3 -spiller til vanlige husholdningshøyttalere uten en dyr og omfangsrik forsterker !: 4 trinn
Koble en Ipod eller annen mp3 -spiller til vanlige husholdningshøyttalere uten en dyr og omfangsrik forsterker !: Har du mange ekstra stereohøyttalere som enten kom med stereoanlegg som gikk i stykker, eller du bare har dem uten noen åpenbar grunn? I denne instruksen vil jeg vise deg hvordan du kan koble dem til hvilken som helst Mp3 -spiller eller hvilken som helst enhet med en lydport