Teine MIDI -CV -kast: 7 sammu (piltidega)
Teine MIDI -CV -kast: 7 sammu (piltidega)
Anonim
Veel üks MIDI to CV Box
Veel üks MIDI to CV Box

Teine MIDI to CV kast on projekt, mille arendasin välja, kui Korg MS10 koputas mu uksele ja leidis aset minu stuudios. Kuna minu seadistus on suuresti seotud MIDI -ga, et automatiseerida ja sünkroniseerida kõik instrumendid, oli mul MS10 ostmisel esimene probleem, millega ma silmitsi seisin, kuidas sellist kontrolli rakendada.

Korg MS20/10 ei ole MIDI rakendamiseks kõige lihtsamad süntesaatorid: esiteks tuginevad nad Hz/V juhtimisele (lineaarne korrelatsioon juhtpinge ja noodisageduse vahel), mitte okt/V (1V oktaavi kohta); teiseks, noodi käivitamiseks peate saatma negatiivse värava signaali ja lühistama sisendi maandusse (S-Trig), mitte +5 V signaali (V-trig).

Selliste instrumentide juhtimiseks on tänapäeval erinevaid kommertslahendusi (s.t. Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), kuid ma olen odav pätt ja isegi 100 eurot on "mitte kõlava" seadme jaoks liiga palju:).

Siin me siis oleme: las ma näitan teile, kuidas luua väikese eelarvega MIDI-CV kasti, et juhtida/automatiseerida MIDI-eelse süntesaatori helikõrgus, värav, kiirus ja katkestussagedus välise MIDI-kontrolleriga (klaviatuur, DAW, järjestus või mis iganes).

"Aga uus MS20 mini?"

Nagu peaaegu kõik teavad, on uus MS20 tegelikult MIDI -valmidus: IN 5 -pooluselise MIDI -pistikuga ja IN/OUT USB -pistikuga.

"Niisiis, kui mul on MS20 mini, on see asi kasutu!"

No ei. MS20 mini tuvastab ainult märkuste sisse- ja väljalülitamise sõnumid ning klaviatuur ei ole kiirustundlik. MS10/20 vintage- või miniklaviatuuriga pole sellest kuidagi võimalik üle saada, kuid midi -kasti ja kiirustundliku klaviatuuriga olete kuldne. Lisaks saate MIDI kasti abil automatiseerida filtri väljalülitamist (või mõnda muud pingega reguleeritavat parameetrit) või lasta seda moduleerida sissetuleva MIDI märkuse kohta kiiruse kohta. Jällegi, ainus MIDI -kanal MS20 mini reageerib kanalile 1. Selle kastiga saate ka selle piiri ületada.

"Mis siis, kui mul on Oct/V süntesaator?"

Pole probleemi! Minu kirjutatud kood ühildub Oct/V süntesaatoritega (testimata, kuid olen kindel, et see töötab kohe;)).

Samm 1: !! Ettevaatust - lahtiütlemine

Teie varustus on väga väärtuslik ja seda ei tohiks testide tegemiseks kasutada.

Elektriga mängimine võib teie seadmeid tõsiselt kahjustada või ennast kahjustada.

Ma ei vastuta teie seadmete/riistvara ega isegi teie enda kahjude eest, mis tulenevad mis tahes tarkvarast või skeemidest või teabest või linkidest, millest olen selles juhendis teatanud.

Sind on hoiatatud!

2. samm: riistvara konstrueerimine

Arduino on kasulik selliste projektidega tegelemisel. Suure kogukonna olemasolu ja väga head raamatukogud, mis hõlmavad peaaegu kõiki ühiseid ülesandeid, teevad sellest õige valiku. Siin on plaat programmeeritud nii, et see loeb sissetulevaid MIDI -andmeid ja saadab seejärel ajamile sobiva pinge:

- Pigi, teisendades pwm -väljundi analoogpingeks, et juhtida VCO -d digitaalse analoogmuunduri (DAC) kaudu

- Kiirus, filtreerides pwm -väljundi VCA juhtimiseks lihtsa RC -filtriga

- Filtri katkestussagedus, filtreerides pwm -väljundi, et juhtida VCF -i lihtsa RC -filtriga

- Värav, otse digiväljundist V-päästiku korral (pange 1Kohm väljundiga jadamisi voolu äravoolu vähendamiseks) või lihtsa pnp-transistorlülitiga digiväljundist välja (vt skemaatilisele skeemile lisatud skeemi).

Arduino ei ole võimeline väljastama otse püsivaid pingeid, vaid 0/+5 V impulsse erinevate perioodidega (PWM). Meil on vaja valamise jaoks digitaalseid analoogmuundureid (DAC). RC -filtrid on lihtsaim DAC, mida ma ette kujutan. RC -filter on piisav pingega juhitava võimendi ja filtri (VCA ja VCF) jaoks. RC -filtrid on kohandatud nii, et nende sagedus oleks <20 Hz (madalaim kuuldav sagedus).

Tegin mõne katse väikese võimsusega mittepolariseeritud kondensaatoritega ja ma lõpetasin mahu väärtusega 0,1 uF, et see sobiks kõige paremini. Testitud hästi MS20 MKII peal.

Kahjuks ei saa me pingega juhitava ostsillaatori (VCO) juhtimiseks tugineda RC -filtrile, kuna see poleks piisavalt täpne (Hz/V skaalal, alumises otsas erinevad kaks adiacendi pooltooni vähem kui 0,02 V; V -s /okt kaks kõrvalasuvat pooltooni erinevad 0,083 V korral); kasutame selleks IC DAC -i (MPC4725).

Tuntud piirangud

Piirates ajami pinget 5 V -ni (Arduino väljundpinge), on kiiruse jaoks kaetud kogu vahemik 0 kuni 5 V; katkestus on pooleldi kaetud (-5V kuni +5V); VCO vahemik on osaliselt kaetud, kuna Hz/V korral on 440 Hz A4 saavutamiseks vaja 8 V pinget. 5 V väljundpiiriga saame ostsillaatori helikõrguseks Hz/V kuni D4 sageduseni.

Samm: komponentide loend

Komponentide loend
Komponentide loend
Komponentide loend
Komponentide loend
Komponentide loend
Komponentide loend

Teil on vaja:

1x Arduino UNO (või nano)

1X MPC4725 DAC -plaat

4X 1/8 "või 1/4" monopistikud

1x MIDI -pistik

1X 6N138 optron

1X 1N4148 diood

1X 220 oomi 1/4 W takisti

1X 470 oomi 1/4 W takisti

1X 10K oomi 1/4 W takisti

4X 1K oomi 1/4 W takisti

2X 0,1 uF kondensaator

1X BC547 pnp transistor (S-trig korral)

1x ABS -kast (vähemalt 55 x 70 x 100 mm)

… Ja ilmselgelt leivaplaat või perfboard, jootekolb, jootetraat ja kaablid (piisab 2 meetrist 28 AWG -st).

Pange tähele, et minu prototüübi ülaosas olevatel piltidel on 100 uF elektrolüütilist korki, kuid need on mahtuvuslaadimisaja tõttu liiga aeglased. Mahtuvus 0,1 uF on õige valik.

Kasutasin oma arduino toiteallikaks täiendavat pistikut; ei ole vaja, et mikrokontrolleri mahla saaks otse sisseehitatud mini -USB -pistiku kaudu.

4. samm: ühendused/skeemid

Ühendused/skeemid
Ühendused/skeemid
Ühendused/skeemid
Ühendused/skeemid
Ühendused/skeemid
Ühendused/skeemid

MIDI IN

MIDI IN -ahel on lihtne ja võrgus hästi kirjeldatud. Võtke näiteks seda suurepärast juhendit Amid Gassaei MIDI ja Arduino kohta. Tegin asja kohta niikuinii n -nda skeemi.

Pange tähele, et lisasin skeemi MIDI IN lüliti (lüliti 1): see on vajalik uue eskiisi Arduinole üleslaadimisel, kuna opto häirib RX -rida isegi ilma sissetulevate midi -sõnumiteta. Enne eskiisi üleslaadimist peate lüliti avama, vastasel juhul ei suuda IDE uut visandit üles laadida.

Lõpuks saate visandit muuta, et kasutada tarkvara jadaühendust.

DAC, RC filter, süntesaator

DAC-, RC -filtrite ja Synthi ühendus (samm, värav ja kiirus) on näidatud ülaltoodud diagrammil. Võtsin võrdluseks Korg MS20 plaastripaneeli, kuid katsetasin kõike ka MS10 -ga. Kiiruse CV otsene ühendamine VCA "esialgse võimenduse" plaastripunktiga ei mõjuta (ma pean selle asja edasi kaevama), kuid kui ühendate selle "kokku" plaastripunktiga ja suurendate oma väliseid potte (MG/T. EXT)), kuulete meeldivaid toonivariatsioone sõltuvalt noodi kiirusest.

Minu skeemid (ja ka minu prototüüp) ei kasuta DAC -väljundis voolu piiravat takistit, kuid see on alati hea mõte paigutada see, et tagada vooluringide pikk eluiga. Piisab 220 oomi takistist.

Pange tähele, et ülaltoodud skeemidel on kirjeldatud 100 uF elektrolüütilist korki, kuid need on mahtuvuslaadimisaja tõttu liiga aeglased. Mittepolariseeritud 0,1 uF korgid on õige valik.

Värav välja

Juhul, kui kavatsete järjestada V-Trig (pinge päästik) signaalidega ühilduva süntesaatori, piisab voolu äravoolu vähendamiseks 1 k ohm seeria takistusest; S-Trig (lüliti päästik) süntesaatori puhul võiksite kasutada lihtsat PNP lülitusahelat (vt lisatud skeemi).

Samm 5: Tarkvara

Tarkvara
Tarkvara

Püüdsin visandit võimalikult selge ja "loetavana" hoida.

Töötasin lihtsa kalkulatsioonilehega, mille leidsin SIIT, et tuletada Voltage Vs Note# kõver ja kasutada otse mikrokontrolleri võrrandit. Võrrand on näidatud ülaosas oleval graafikul. Kasutasin võrdlusmärkusena C2 -d, et saada Arp/Korg -ühilduv Voltage Vs noodisuhe (C0 - 0,25V, C1 - 0,5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V ja nii edasi).

Hea häälestuse saamiseks pidin mänguasja jaoks määratlema mõne muutuja … võtke aega õigete väärtuste leidmiseks. Tuuner on vajalik.

Me suurendame taimeri/loenduri pwm sagedust, et vähendada väljundpinge pulsatsiooni (sama lihtne kui koodirida).

Et kood sissetulevatele baitidele reageeriks, sõltub kood suuresti funktsioonide tagasikutsumistest.

Teil on vaja koostada Sparkfuni "Adafruit_MCP4725.h" ja neljakümne seitsme efekti/Francois Besti "MIDI.h" raamatukogud! (Suur tänu neile isikutele: ilma nende jõupingutusteta see projekt kunagi teoks ei saaks!).

Eeldan, et teie arvutis on Arduino IDE valmis ja teate, kuidas visandit Arduino tahvlile laadida.

Ma pole päriselus kodeerija, seega on väga tõenäoline, et visand võiks olla paremini kirjutatud. Olen avatud ettepanekutele (õpin alati midagi, vaadates koodikoodi;))

Lisamärkused on kirjutatud allolevasse koodi. Installige kaks raamatukogu, avage IDE -s lisatud kood, ühendage tahvel, valige tahvli tüüp ja laadige üles.

6. samm: tõrkeotsing

Isegi kui projekt on madal, on palju asju, mis võivad valesti minna. Kui teil tekib probleeme oma MIDI -CV kasti loomise ajal, toimige järgmiselt.

1. Veenduge, et Arduino võtab õigesti vastu MIDI -sõnumeid

Kontrollige väljundkanalit, millele teie klaviatuur või DAW või sekventser edastab MIDI -sõnumeid. Arduino kuulab vaikimisi kanalit 1. Sissetuleva NoteON -sõnumi lugemiseks laadige üles "TEST_MIDI_IN.ino".

2. Kontrollige oma juhtmeid uuesti

… Või isegi parem: kontrollige neid kolm korda! Varuge selleks aega.

3. Kontrollige DAC -aadressi ja väljundit

DAC -i saab seadistada nii, et see võtaks andmeid vastu muul aadressil kui see, mille ma visandis määrasin. Kontrollige aadressi, käivitades "I2C_scanner.ino". Kui ilmneb tõrge "seadet ei leitud", kontrollige oma DAC -juhtmestikku (SDA ja SCL sisendid on erinevatel Arduino tahvlitel erinevad!). Kui teil on ostsillokoop (isegi need 15 -eurosed digitaalsed ostsilloskoobid on piisavad … ja nendega on lõbus mängida!), Saate oma DAC -i väljundit kontrollida, laadides üles DAC -teeki installitud kolmnurgalainegeneraatori näite.

Pidage meeles, et kui optoelement on ühendatud teie arduino plaadi RX sisendiga, ei saa te uut visandit üles laadida !! Asetage lüliti (see võib olla lihtne hüppaja) RX -tihvti ette.

Enamik neist testvisanditest ei ole minu omad või põhinevad vähemalt olemasoleval veebimaterjalil.

See asi kõlab minu jaoks häälest ära !?

See ei ole tegelik probleem: Hz/V juhtimiseks tuletatud võrrand on "ideaalne". Mõningane kõrvalekalle ideaalsest käitumisest võib tõusta teie tarnitud +5 V toiteallikast (mitte 5000 V), DACist ja instrumendist endast. Lahendamiseks peate tegutsema oma sünteesi/peenhäälestuse potentsiomeetri järgi ja "voilà" täiuslikult häälestatud MIDI -juhtseadisega;)

7. samm: kasulikud lingid

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Recept-…

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

Soovitan: