Tartalomjegyzék:
- 1. lépés: !! Figyelmeztetés - Jogi nyilatkozat
- 2. lépés: A hardver tervezése
- 3. lépés: Alkatrészek listája
- 4. lépés: Kapcsolatok/vázlatok
- 5. lépés: A szoftver
- 6. lépés: Hibaelhárítás
- 7. lépés: Hasznos linkek
Videó: Egy másik MIDI -CV doboz: 7 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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
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
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:
Egy másik, többnyire 3D nyomtatott forgókapcsoló: 7 lépés (képekkel)
Egy másik, többnyire 3D -s nyomtatású forgó kapcsoló: Régebben létrehoztam egy Többnyire 3D nyomtatott forgókapcsolót, kifejezetten a Minivac 601 Replica projektemhez. Az új Think-a-Tron 2020 projektem során újabb forgókapcsolóra van szükségem. SP5T panelre szerelhető kapcsolót keresek. Egy additi
YADPF (MÉG egy másik digitális képkeret): 7 lépés (képekkel)
YADPF (MÉG egy másik digitális képkeret): Tudom, hogy ez nem újdonság, tudom, láttam itt néhány ilyen projektet, de mindig is szerettem volna saját digitális képkeretet építeni. Minden képkeret, amit láttam, szép, de valami mást kerestem, igazán szép fotót keresek
PIWOOLET (Pi.WOOd.tabLET): Csak egy másik PI tábla: 10 lépés (képekkel)
PIWOOLET (Pi.WOOd.tabLET): Csak egy másik PI tábla: Intro - miért jöttem rá? A válasz olyan egyszerű: csak szórakozásból :-) Néhány fő célom a HDMI -porthoz való hozzáférés fenntartása; hozzáférés fenntartása az audio kimenethez; fenntartja a hozzáférést a GPIO -hoz; fenntartja a hozzáférést legalább egy USB -porthoz. A BOM Rasp
Egy másik Pi a falon: 16 lépés (képekkel)
Egy másik Pi a falon: Ez az oktatható oktatóanyag megmutatja, hogyan lehet NAS-t (hálózathoz csatolt tárhelyet) építeni egy Raspberry Pi (RasPi) és két HDD használatával. Ennek az oktatóanyagnak részletes utasításokat kell adnia a RasPi, két HDD és a teljes tápegység felszerelésére
64 Pixel RGB LED kijelző - Egy másik Arduino klón: 12 lépés (képekkel)
64 Pixel RGB LED kijelző - Egy másik Arduino klón: Ez a kijelző egy 8x8 RGB LED mátrixon alapul. Tesztelési célokra egy szabványos Arduino kártyához (Diecimila) csatlakoztatták 4 műszakregiszter segítségével. Miután működésbe hoztam, foltos NYÁK -on permetizáltam. A műszakregiszterek 8 bitesek és