Tartalomjegyzék:

Egy másik MIDI -CV doboz: 7 lépés (képekkel)
Egy másik MIDI -CV doboz: 7 lépés (képekkel)

Videó: Egy másik MIDI -CV doboz: 7 lépés (képekkel)

Videó: Egy másik MIDI -CV doboz: 7 lépés (képekkel)
Videó: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Egy másik MIDI -CV doboz
Egy másik MIDI -CV doboz

Egy másik MIDI -CV doboz egy olyan projekt, amelyet akkor fejlesztettem ki, amikor egy Korg MS10 bekopogott az ajtómon, és a műteremben került sor. Mivel a beállításom erősen kapcsolódik a MIDI -hez az összes műszer automatizálásához és szinkronizálásához, az MS10 megvásárlásakor az első probléma az volt, hogy szembe kell néznem az ilyen vezérlés végrehajtásával.

A Korg MS20/10 nem a legegyszerűbb szintetizátor a MIDI megvalósításához: először is a Hz/V vezérlésre támaszkodnak (lineáris korreláció a vezérlőfeszültség és a hangfrekvencia között), okt/V helyett (1V oktávonként); másodszor, a hangjelzés kiváltásához negatív kapujelet kell küldeni, és a bemenetet földelni kell (S-Trig), nem pedig +5 V jelet (V-trig).

Manapság különféle kereskedelmi megoldások léteznek az ilyen műszerek vezérlésére (azaz Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), de én olcsó barom vagyok, és még a 100 euró is sok egy "nem hangzó" készülékhez:).

Itt tartunk: hadd mutassam meg, hogyan lehet alacsony költségvetésű MIDI-CV dobozot létrehozni, hogy egy külső MIDI-vezérlővel (billentyűzet, DAW, szekvenszer vagy bármi más) vezérelje/automatizálja a MIDI előtti szintetizátor hangmagasságát, kapuját, sebességét és levágási frekvenciáját..

- Mi lesz az új MS20 mini -vel?

Mint szinte mindenki tudja, az új MS20 valójában MIDI -kész: IN 5 pólusú MIDI csatlakozóval és IN/OUT USB csatlakozóval.

"Szóval, ha van egy MS20 mini -m, ez a dolog haszontalan!"

Hát nem. Az MS20 mini csak a be- és kikapcsolási üzeneteket ismeri fel, és a billentyűzet nem érzékeli a sebességet. Ezt nem lehet leküzdeni az MS10/20 vintage vagy mini billentyűzettel, de midi dobozzal és sebességérzékeny billentyűzettel arany vagy. Ezenkívül a MIDI doboz segítségével automatizálhatja a szűrő lekapcsolását (vagy bármely más feszültségvezérelhető paramétert), vagy modulálhatja a bejövő MIDI megjegyzéssel a sebességről. Ismét az egyetlen MS20 mini MIDI csatorna az 1. csatorna.

- Mi van, ha Oct/V szintetizátorom van?

Nincs mit! Az általam leírt kód kompatibilis az Oct/V szintetizátorokkal (nem tesztelt, de bízom benne, hogy a csomagoláson kívül működni fog;)).

1. lépés: !! Figyelmeztetés - Jogi nyilatkozat

A berendezés nagyon értékes, és nem használható tesztek elvégzésére.

Az elektromos árammal való játék súlyosan károsíthatja a berendezést, vagy önmagát.

Nem vállalok felelősséget a berendezésében/hardverében vagy akár önmaga által okozott károkért, amelyek az alábbi útmutatóban közölt szoftverekből, rendszerekből, információkból vagy linkekből származnak.

Figyelmeztetve lettél!

2. lépés: A hardver tervezése

Az Arduino jól jön, ha ilyen projektekkel foglalkozik. A nagy közösség és a nagyon jó, szinte minden közös feladatot átfogó könyvtárak megléte a helyes választás. Itt a tábla úgy lesz programozva, hogy beolvassa a bejövő MIDI adatokat, majd megfelelő feszültséget küld a meghajtónak:

- Pitch, a pwm kimenet analóg feszültséggé alakításával, hogy a VCO -t digitális -analóg átalakítón (DAC) keresztül vezesse

- Sebesség, pwm kimenet szűrésével a VCA meghajtásához egy egyszerű RC szűrővel

- Szűrő levágási frekvencia, pwm kimenet szűrésével a VCF meghajtásához egy egyszerű RC szűrővel

- Kapu, közvetlenül a digitális kimenetről V-trig (esetén 1Kohm-ot sorba kell kötni a kimenettel, hogy csökkentse az áramlefolyást), vagy egy egyszerű pnp tranzisztoros kapcsolóval a digitális kimenetről (lásd a kapcsolási rajzhoz csatolt vázlatot).

Az Arduino nem képes egyenletes feszültségek közvetlen kimenetére, de 0/+5 V impulzusokat különböző periódusokkal (PWM). Szükségünk van digitális -analóg konverterekre (DAC) az öntőberendezéshez. Az RC szűrők a legegyszerűbb DAC, ami eszembe jut. Az RC szűrő elegendő a feszültségvezérelt erősítőhöz és szűrőhöz (VCA és VCF). Az RC szűrőket úgy alakították ki, hogy a vágási frekvencia <20Hz legyen (a legalacsonyabb hallható frekvencia).

Végeztem néhány tesztet kis kapacitású, nem polarizált kondenzátorokkal, és 0,1uF kapacitás értékkel végeztem, hogy a legjobban illeszkedjek. Jól tesztelt MS20 MKII -n.

Sajnos nem támaszkodhatunk RC szűrőre a feszültségvezérelt oszcillátor (VCO) meghajtásához, mivel az nem lenne elég pontos (Hz/V skálán, az alsó végén két adiacend félhang eltér 0,02 V -nál; V /okt két szomszédos félhang eltér 0,083 V -nál); ehhez IC DAC -t (MPC4725) fogunk használni.

Ismert korlátok

A hajtás feszültségét 5 V -ra (az Arduino kimeneti feszültségre) korlátozva, a teljes 0–5 V tartomány lefedi a sebességet; a levágás félig le van fedve (-5V- +5V); a VCO tartomány részben le van fedve, mivel Hz/V -ban 8 V feszültség szükséges a 440 Hz -es A4 eléréséhez. 5 V -os kimeneti korlát esetén az oszcillátort a D4 frekvenciára emelhetjük Hz/V -ban.

3. lépés: Alkatrészek listája

Komponensek listája
Komponensek listája
Komponensek listája
Komponensek listája
Komponensek listája
Komponensek listája

A következőkre van szüksége:

1X Arduino UNO (vagy nano)

1X MPC4725 DAC kártya

4X 1/8 "vagy 1/4" mono csatlakozók

1X MIDI csatlakozó

1X 6N138 optocsatoló

1X 1N4148 dióda

1X 220 ohmos 1/4 W ellenállás

1X 470 ohmos 1/4 W ellenállás

1X 10K ohm 1/4 W ellenállás

4X 1K ohm 1/4 W ellenállás

2X 0,1 uF kondenzátor

1X BC547 pnp tranzisztor (S-trig esetén)

1X ABS doboz (legalább 55 x 70 x 100 mm)

… És nyilvánvalóan kenyeretábla vagy perforált lemez, forrasztópáka, forrasztóhuzal és kábelek (2 méter 28 AWG elegendő).

Vegye figyelembe, hogy a fenti képeken a prototípusom 100 uF elektrolitsapkát rögzít, de túl lassúak a kapacitás töltési ideje miatt. A 0,1uF kapacitás a megfelelő választás.

Egy további csatlakozót használtam az arduino tápellátására; nem szükséges, hogy a mikrokontrollert közvetlenül a fedélzeti mini USB -csatlakozón keresztül lehessen gyümölcslévé tenni.

4. lépés: Kapcsolatok/vázlatok

Kapcsolatok/vázlatok
Kapcsolatok/vázlatok
Kapcsolatok/vázlatok
Kapcsolatok/vázlatok
Kapcsolatok/vázlatok
Kapcsolatok/vázlatok

MIDI IN

A MIDI IN áramkör egyszerű és jól le van írva a neten. Vegyük például ezt a kiváló oktathatót a MIDI -n és az Arduino -n, Amanda Gassaei. Amúgy elkészítettem az n -edik sémát az ügyben.

Vegye figyelembe, hogy egy kapcsolót adtam hozzá a MIDI IN sémához (1. kapcsoló): erre akkor van szükség, amikor új vázlatot tölt fel az Arduino -ba, mert az opto bejövő midi üzenetek nélkül is zavarja az RX vonalat. A vázlat feltöltése előtt ki kell nyitnia a kapcsolót, különben az IDE nem tudja feltölteni az új vázlatot.

Végül a vázlatot soros szoftverkommunikáció használatára módosíthatja.

DAC, RC szűrő, szintetizátor

A DAC, RC szűrők és a Synth csatlakoztatása (hangmagasság, kapu és sebesség) a fenti ábrán látható. Referenciaként vettem egy Korg MS20 patch panelt, de mindent teszteltem MS10 -en is. A sebesség -CV közvetlen összekapcsolása a VCA "kezdeti erősítés" patch -pontjával nincs hatással (tovább kell ásnom ezt a dolgot), de ha csatlakoztatja a "Total" patch -ponthoz, és növeli az összes külső edényt (MG/T. EXT), szép hangváltozásokat fog hallani a hangsebesség függvényében.

A sémáim (és a prototípusom is) nem használnak áramkorlátozó ellenállást a DAC kimeneten, de mindig jó ötlet egy ilyet elhelyezni az áramkörök hosszú élettartamának biztosítása érdekében. Egy 220 ohmos ellenállás elegendő lesz.

Vegye figyelembe, hogy a fenti vázlatokban 100 uF elektrolit sapka szerepel, de a kapacitás töltési ideje miatt túl lassúak. A nem polarizált, 0,1uF kupakok a megfelelő választás.

Kapu ki

Abban az esetben, ha a V-Trig (feszültség trigger) jelekkel kompatibilis szintetizátort kíván szekvenálni, elegendő egy 1 k ohmos soros ellenállás az áramleeresztés csökkentésére; S-Trig (kapcsoló trigger) szintetizátor esetén használhat egy egyszerű PNP kapcsolóáramkört (lásd a mellékelt sémát).

5. lépés: A szoftver

A szoftver
A szoftver

Próbáltam a vázlatot a lehető legtisztábban és "olvashatóbban" tartani.

Egy egyszerű számítási lapon dolgoztam, amelyet ITT találtam, hogy levezessem a Voltage Vs Note# görbét, és közvetlenül használjam a mikrokontroller egyenletét. Az egyenlet a fenti grafikonon látható. Referencia megjegyzésként a C2 -t használtam az Arp/Korg -kompatibilis Voltage Vs jegyzetkapcsolat (C0 - 0,25 V, C1 - 0,5 V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V és így tovább) megszerzéséhez.

Meg kellett határoznom néhány változót a játékhoz, hogy jó hangolást érjek el … szánjon időt a helyes értékek megtalálására. Tuner szükséges.

Növeljük az időzítő/számláló pwm frekvenciáját, hogy csökkentsük a kimeneti feszültségek hullámzását (olyan egyszerű, mint egy kódsor).

Annak érdekében, hogy a kód reagáljon a bejövő bájtokra, a kód nagymértékben függ a funkciók visszahívásától.

Szüksége van a Sparkfun "Adafruit_MCP4725.h" és negyvenhét effektus/Francois Best "MIDI.h" könyvtárainak összeállítására! (Hálás köszönet ezeknek a személyeknek: erőfeszítéseik nélkül ez a projekt soha nem valósulna meg!).

Feltételezem, hogy az Arduino IDE készen áll a számítógépére, és tudja, hogyan kell betölteni egy vázlatot az Arduino táblára.

Nem vagyok kódoló a való életben, ezért nagyon valószínű, hogy a vázlatot jobban meg lehetne írni. Nyitott vagyok a javaslatokra (mindig tanulok valamit a kódoló kódjából;))

A további megjegyzéseket az alábbi kód tartalmazza. Telepítse a két könyvtárat, nyissa meg a csatolt kódot az IDE -n, csatlakoztassa a táblát, válassza ki a tábla típusát és töltse fel.

6. lépés: Hibaelhárítás

Még akkor is, ha a projekt alacsony szintű, rengeteg dolog hibázhat. Ha problémákat tapasztal a saját MIDI -CV mező létrehozása közben, kövesse az alábbi lépéseket:

1. Győződjön meg arról, hogy az Arduino megfelelően fogadja a MIDI üzeneteket

Ellenőrizze a kimeneti csatornát, amelyre a billentyűzet, a DAW vagy a Sequencer MIDI üzeneteket küld. Az Arduino alapértelmezés szerint az 1. csatornát hallgatja. Töltse fel a (z) "TEST_MIDI_IN.ino" fájlt a bejövő noteON üzenet olvasásához.

2. Ellenőrizze a vezetékeket

… Vagy még jobb: háromszor ellenőrizze őket! Szánjon erre időt.

3. Ellenőrizze a DAC címet és kimenetet

A DAC beállítható úgy, hogy más címre fogadja az adatokat, mint amit a vázlatban beállítottam. Ellenőrizze a címet az "I2C_scanner.ino" futtatásával. Ha "nem található eszköz" hiba történik, ellenőrizze a DAC kábelezését (az SDA és SCL bemenetek különbözőek a különböző Arduino táblákon!). Ha van oszcillokópja (még ezek a 15 eurós digitális oszcilloszkópok is elégségesek … és szórakoztató a játék!), Ellenőrizheti a DAC kimenetét a DAC könyvtár telepítésében található háromszöghullám -generátor példa feltöltésével.

Ne feledje, hogy ha egy optocsatoló csatlakozik az arduino tábla RX bemenetéhez, akkor nem tud új vázlatot feltölteni !! Helyezzen egy kapcsolót (lehet egyszerű jumper is) az RX csap elé.

E tesztvázlatok többsége nem az enyém, vagy legalábbis a meglévő online anyagokon alapul.

Ez a dolog nem hangzik el nekem !?

Ez nem valódi kérdés: a Hz/V vezérléshez kapott egyenlet "ideális". Az ideális viselkedéstől való eltérés emelkedhet az Ön által szolgáltatott +5 V -ról, nem 5.000 V -ról, a DAC -ról és magáról a műszerről. A megoldáshoz a szintetizátor/finomhangolás potenciométerrel kell működni, és a "voilà" egy tökéletesen hangolt MIDI vezérlővel;)

7. lépés: Hasznos linkek

en.wikipedia.org/wiki/CV/gate

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

www.dalok.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

Ajánlott: