INHOUDSOPGAWE:

Nog 'n MIDI na CV -boks: 7 stappe (met foto's)
Nog 'n MIDI na CV -boks: 7 stappe (met foto's)

Video: Nog 'n MIDI na CV -boks: 7 stappe (met foto's)

Video: Nog 'n MIDI na CV -boks: 7 stappe (met foto's)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Julie
Anonim
Nog 'n MIDI na CV Box
Nog 'n MIDI na CV Box

'N Ander MIDI tot CV -boks is 'n projek wat ek ontwikkel het toe 'n Korg MS10 aan my deur klop en in my ateljee plaasvind. Aangesien my opstelling sterk verband hou met MIDI om al die instrumente te outomatiseer en te sinkroniseer, was die eerste probleem wat ek moes ondervind, toe ek die MS10 gekoop het, hoe om hierdie beheer te implementeer.

Korg MS20/10 is nie die maklikste synths om MIDI te implementeer nie: in die eerste plek maak hulle staat op Hz/V -beheer (lineêre korrelasie tussen die beheerspanning en nootfrekwensie), in plaas van oct/V (1V per oktaaf); tweedens, om 'n noot te aktiveer, moet u 'n negatiewe heksein stuur en die invoer kort na die grond (S-Trig), nie 'n +5 V-sein (V-trig) nie.

Daar is deesdae verskillende kommersiële oplossings om sulke instrumente te beheer (dws Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), maar ek is 'n goedkoop baster en selfs 100 euro is te veel vir 'n 'nie-klinkende' toestel:).

Hier is ons dan: laat ek u wys hoe u 'n lae begroting MIDI na CV-boks kan bou om die toonhoogte, hek, snelheid en afsnyfrekwensie van 'n pre-MIDI-synth te beheer/outomatiseer met 'n eksterne MIDI-beheerder (sleutelbord, DAW, sequencer of wat ook al).

"Wat van die nuwe MS20 mini?"

Soos byna almal weet, is die nuwe MS20 eintlik MIDI -gereed: IN met 'n 5 -polige MIDI -aansluiting en IN/OUT met USB -aansluiting.

'Dus, as ek 'n MS20 mini het, is hierdie ding nutteloos!'

Wel, nee. MS20 mini herken slegs noot aan/uit boodskappe en sleutelbord is nie snelheidsgevoelig nie. Daar is geen manier om dit te oorkom met die MS10/20 vintage of mini -sleutelbord nie, maar met 'n midi -boks en 'n snelheidsgevoelige sleutelbord is u goudkleurig. Boonop kan u met die MIDI -boks die filteronderbreking (of enige ander spanningsbeheerbare parameter) outomatiseer of laat moduleer deur die inkomende MIDI -noot oor snelheid. Weereens, die enigste MIDI -kanaal waarop MS20 mini reageer, is kanaal 1. Met hierdie boks kan u ook hierdie limiet oorkom.

"Wat as ek 'n Oct/V synth het?"

Geen probleem! Die kode wat ek geskryf het, is verenigbaar met Oct/V-sintetiseerders (ongetoets, maar ek is vol vertroue dat dit uit die boks sal werk;)).

Stap 1: !! Let op versigtigheid - vrywaring

U toerusting is baie waardevol en moet nie gebruik word om toetse uit te voer nie.

Speel met elektrisiteit kan jou toerusting ernstig beskadig of jouself benadeel.

Ek kan nie aanspreeklik gehou word vir skade aan u toerusting/hardeware of selfs u self as gevolg van die sagteware of skemas of inligting of skakels wat ek in hierdie instruksies gerapporteer het nie.

Jy is gewaarsku!

Stap 2: Ontwerp die hardeware

Arduino kom handig te pas by die hantering van projekte soos hierdie. Die bestaan van 'n groot gemeenskap en baie goeie biblioteke wat oor byna elke algemene taak strek, maak dit die regte keuse. Hier sal die bord so geprogrammeer word dat dit inkomende MIDI -data sal lees en dan die toepaslike spannings na die stuur stuur:

- Pitch, deur 'n pwm -uitset om te skakel in 'n analoog spanning om die VCO via 'n digitaal na analoog omskakelaar (DAC) te dryf

- Snelheid, deur 'n pwm -uitset te filter om die VCA met 'n eenvoudige RC -filter te bestuur

- Filter afsnyprekwensie, deur 'n pwm -uitset te filter om die VCF te bestuur met 'n eenvoudige RC -filter

- Hek, direk vanaf 'n digitale uitgang in geval van V-trig (sit 'n 1Kohm in serie met die uitset om die huidige afvoer te verminder) of deur 'n eenvoudige pnp-transistor-skakelaar uit die digitale uitgang (sien skematiese aanhangsel by die skematiese stap).

Arduino is nie in staat om direk konstante spannings uit te voer nie, maar 0/+5 V pulse met verskillende periodes (PWM). Ons benodig digitale na analoog -omsetters (DAC) vir die stroom. RC -filters is die maklikste DAC waaraan ek kan dink. 'N RC -filter is goed genoeg vir die spanningsbeheerde versterker en filter (VCA en VCF). Die RC -filters is aangepas om 'n afsnyfrekwensie <20Hz (laagste hoorbare frekwensie) tot gevolg te hê.

Ek het 'n toets gedoen met nie -gepolariseerde kondensators met 'n lae kapasiteit, en ek het geëindig met 'n kapasiteitswaarde van 0.1uF om die beste te pas. Goed getoets op 'n MS20 MKII.

Ongelukkig kan ons nie op 'n RC -filter staatmaak om die spanningsbeheerde ossillator (VCO) aan te dryf nie, aangesien dit nie akkuraat genoeg sou wees nie (in Hz/V -skaal, aan die onderkant verskil twee na -halwe halftone vir minder as 0,02V; in V /okt twee adiaanse halftones verskil vir 0,083 V); ons gaan hiervoor 'n IC DAC (MPC4725) gebruik.

Bekende grense

Deur die dryfspanning tot 5V (die Arduino -uitgangsspanning) te beperk, word die volle 0 tot 5V -reeks vir snelheid gedek; die afsny is half bedek (-5V tot +5V); die VCO -reeks word gedeeltelik gedek, aangesien in Hz/V 'n spanning van 8 V nodig sou wees om die 440 Hz A4 te bereik. Met 'n uitgangsgrens van 5V kan ons die ossillator tot die D4 -frekwensie in Hz/V steek.

Stap 3: Lys met komponente

Komponentelys
Komponentelys
Komponentelys
Komponentelys
Komponentelys
Komponentelys

U benodig:

1X Arduino UNO (of nano)

1X MPC4725 DAC -bord

4X 1/8 "of 1/4" mono -aansluitings

1X MIDI -aansluiting

1X 6N138 optokoppelaar

1X 1N4148 diode

1X 220 ohm 1/4 W weerstand

1X 470 ohm 1/4 W weerstand

1X 10K ohm 1/4 W weerstand

4X 1K ohm 1/4 W weerstand

2X 0.1 uF kapasitor

1X BC547 pnp transistor (in geval van S-trig)

1X ABS -boks (minstens 55 x 70 x 100 mm)

… en natuurlik broodplank of perfboard, soldeerbout, soldeerdraad en kabels (2 meter 28 AWG moet genoeg wees).

Let op dat die prototipes hierbo 100 uF elektrolitiese kappies bevat, maar dit is te stadig as gevolg van die laaityd. 'N Kapasiteit van 0.1uF is die regte keuse.

Ek het 'n ekstra aansluiting gebruik om my arduino van krag te voorsien; dit is nie nodig om die mikrobeheerder direk via die ingeboude mini -USB -aansluiting te sap nie.

Stap 4: Verbindings/skemas

Verbindings/skemas
Verbindings/skemas
Verbindings/skemas
Verbindings/skemas
Verbindings/skemas
Verbindings/skemas

MIDI IN

Die MIDI IN -kring is eenvoudig en goed beskryf op die net. Neem byvoorbeeld hierdie uitstekende instruksie oor MIDI en Arduino deur Amanda Gassaei. Ek het in elk geval die nde skematiese oor die saak gemaak.

Let op dat ek 'n skakelaar in die MIDI IN -skema (skakelaar 1) bygevoeg het: dit is nodig wanneer 'n nuwe skets na Arduino opgelaai word, omdat die opto die RX -lyn belemmer, selfs sonder inkomende midi -boodskappe. U moet die skakelaar oopmaak voordat u u skets oplaai, anders kan die IDE nie die nuwe skets oplaai nie.

U kan die skets uiteindelik verander om 'n seriële sagtewarekommunikasie te gebruik.

DAC, RC -filter, sintetiseerder

Aansluiting vir DAC, RC -filters en Synth (toonhoogte, hek en snelheid) word in die diagram hierbo getoon. Ek het 'n Korg MS20 -pleisterpaneel as verwysing geneem, maar ek het ook alles op 'n MS10 getoets. Die direkte verbinding van die snelheids -CV met VCA "aanvanklike versterking" pleisterpunt het geen effek nie (ek moet hierdie ding verder grawe), maar as u dit aan die "Totale" pleisterpunt koppel en u totale eksterne potte verhoog (MG/T. EXT), hoor u mooi toonvariasies as 'n funksie van die nootsnelheid.

My skemas (en my prototipe ook) gebruik nie 'n stroombeperkende weerstand by die DAC -uitgang nie, maar dit is altyd 'n goeie idee om een te plaas om 'n lang lewensduur van u stroombane te verseker. 'N Weerstand van 220 ohm is voldoende.

Let op dat in die skemas meer as 100 uF elektrolitiese pette gerapporteer word, maar dit is te stadig as gevolg van die laaityd van die kapasiteit. Nie -gepolariseerde 0.1uF -doppe is die regte keuse.

Poort Uit

As u 'n synth wat verenigbaar is met V-Trig (spanning sneller) seine gaan volg, is 'n 1k ohm reeks weerstand om die stroomafvoer te verminder voldoende; In die geval van 'n S-Trig (switch trigger) synth, kan u 'n eenvoudige PNP-skakelaar gebruik (sien aangehegde skema).

Stap 5: Die sagteware

Die sagteware
Die sagteware

Ek het probeer om die skets so duidelik en 'leesbaar' moontlik te hou.

Ek het gewerk aan 'n eenvoudige berekeningblad wat ek HIER gevind het om 'n Voltage Vs Note# -kromme af te lei en die vergelyking in die mikrobeheerder direk te gebruik. Die vergelyking word bo in die grafiek getoon. Ek het C2 as verwysingsnota gebruik om 'n Arp/Korg -voldoening Vs nootverhouding te verkry (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V ensovoorts).

Ek moes 'n veranderlike definieer om mee te speel om 'n goeie afstemming te kry … neem die tyd om die regte waardes te vind. 'N Ontvanger is nodig.

Ons gaan die pwm -frekwensie van 'n timer/teller verhoog om die uitsetspannings (so maklik soos 'n reël kode) te verminder.

Om die kode reageer op inkomende grepe, is die kode sterk afhanklik van terugbelfunksies.

U benodig die "Adafruit_MCP4725.h" van Sparkfun en die sewe en veertig effekte/Francois Best se "MIDI.h" -biblioteke! (Baie dankie aan hierdie persone: sonder hul pogings sou hierdie projek nooit gerealiseer word nie!).

Ek neem aan dat u Arduino IDE gereed het op u rekenaar en u weet hoe u 'n skets op u Arduino -bord kan laai.

Ek is nie 'n kodeerder in die werklike lewe nie, en dit is heel waarskynlik dat die skets op 'n beter manier geskryf kan word. Ek is oop vir voorstelle (ek leer altyd iets om na die kodeerder se kode te kyk;))

Bykomende aantekeninge word in die onderstaande kode geskryf. Installeer die twee biblioteke, maak die aangehegte kode op u IDE oop, koppel u bord, kies die tipe bord en laai dit op.

Stap 6: Probleemoplossing

Selfs as die projek op 'n lae vlak is, is daar baie dinge wat verkeerd kan gaan. Volg hierdie stappe as u probleme ondervind terwyl u probeer om u eie MIDI na CV -boks te skep:

1. Maak seker dat Arduino MIDI -boodskappe korrek ontvang

Kontroleer die uitsetkanaal waarop u sleutelbord of DAW of Sequencer MIDI -boodskappe stuur. Arduino luister standaard na kanaal 1. Laai "TEST_MIDI_IN.ino" op om 'n inkomende nota ON -boodskap te lees.

2. Kontroleer u bedrading

… of nog beter: kyk drie keer! Hou u tyd hiervoor.

3. Gaan die DAC -adres en uitvoer na

Die DAC kan ingestel word om data op 'n ander adres te ontvang as wat ek in die skets gestel het. Gaan die adres na deur "I2C_scanner.ino" uit te voer. As 'n "geen toestel gevind" -fout voorkom, kyk na u DAC -bedrading (SDA- en SCL -insette verskil op verskillende Arduino -borde!). As u 'n ossillokoop het (selfs die digitale ossilloskope van 15 euro is goed genoeg … en lekker om mee te speel!), Kan u die uitvoer van u DAC nagaan deur die voorbeeld van die driehoekgolfopwekker wat by die DAC -biblioteekinstallasie bygevoeg is, op te laai.

Onthou dat as 'n optokoppelaar gekoppel is aan die RX -ingang van u arduino -bord, u nie 'n nuwe skets kan oplaai nie !! Plaas 'n skakelaar (dit kan 'n eenvoudige springer wees) voor die RX -pen.

Die meeste van hierdie toetssketse is nie myne of ten minste gebaseer op bestaande aanlyn materiaal.

Hierdie ding klink vir my uit pas !?

Dit is nie 'n werklike probleem nie: die vergelyking vir Hz/V -beheer is "ideaal". Sommige afwykings van die ideale gedrag kan styg van die +5V wat u verskaf, nie 5.000V nie, van die DAC en van die instrument self. Om dit op te los, moet u op u synth tune/fine tune potensiometer werk en 'voilà' 'n perfek afgestemde MIDI -kontrole;)

Stap 7: Nuttige skakels

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

Aanbeveel: