Innholdsfortegnelse:

En annen MIDI til CV -boks: 7 trinn (med bilder)
En annen MIDI til CV -boks: 7 trinn (med bilder)

Video: En annen MIDI til CV -boks: 7 trinn (med bilder)

Video: En annen MIDI til CV -boks: 7 trinn (med bilder)
Video: Min opgave er at observere skoven, og her sker noget mærkeligt. 2024, Juli
Anonim
Nok en MIDI til CV -boks
Nok en MIDI til CV -boks

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

Komponentliste
Komponentliste
Komponentliste
Komponentliste
Komponentliste
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

Tilkoblinger/skjemaer
Tilkoblinger/skjemaer
Tilkoblinger/skjemaer
Tilkoblinger/skjemaer
Tilkoblinger/skjemaer
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

Programvaren
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: