Hirdetés

Zenészként, aki hangszer- és zajdobozokat gyűjtött össze, a szerény Arduino a tökéletes eszköz egyéni MIDI vezérlő létrehozásához. Míg a Raspberry Pi megszerezte a koronát A tárgyak internete (IoT) A tárgyak internete: 10 hasznos termék, amelyet 2016-ban ki kell próbálniaA tárgyak internete felgyorsul 2016-ban, de mit jelent ez pontosan? Hogyan élvezheti személyesen a tárgyak internetét? Íme néhány hasznos termék illusztrálására. Olvass tovább projektek, egy egyszerű Arduino Uno (Melyek az Arduino különféle típusai? Arduino vásárlási útmutató: Melyik táblát szerezze be?Olyan sokféle Arduino tábla van odakint, bocsánatot kapnak a zavarodásra. Melyiket vásárolja meg a projektjéhez? Segítsen nekünk ezzel az Arduino vásárlási útmutatóval! Olvass tovább ) több mint elegendő energiája van ehhez a projekthez.

Először használ egy Arduino-t? Ne aggódjon, készen állunk Arduino kezdő útmutató Az Arduino használatának első lépése: Útmutató kezdőknekAz Arduino egy nyílt forráskódú elektronikai prototípus-létrehozási platform, amely rugalmas, könnyen használható hardveren és szoftveren alapul. Művészeknek, tervezőknek, amatőröknek és interaktív tárgyak vagy környezetek létrehozásának érdeklődőinek készült.

instagram viewer
Olvass tovább elolvasni, mielőtt elkezdené a projektet.

Arduino-Midi-Controller-Breadboard

Mi a MIDI?

A MIDI a hangszer digitális interfészét jelenti. Ez felvázolja a zenei eszközök egységes kommunikációs módszerét egymással. Ha elektronikus billentyűzettel rendelkezik, akkor valószínűleg MIDI felülettel rendelkezik. Bár a MIDI megvalósításában van néhány technikai részlet, fontos megjegyezni, hogy a MIDI nem audio! A MIDI adatok egy egyszerű utasításkészlet (egy utasítást “üzenetnek” hívnak), amelyet egy másik eszköz végrehajthat különböző hangok vagy vezérlőparaméterek előállításához.

A MIDI 16 csatornát támogat. Ez azt jelenti, hogy minden kábel 16 különféle eszközt képes támogatni, amelyek egymással függetlenül kommunikálnak. Az eszközöket 5-pólusú DIN-kábel segítségével csatlakoztatják. A DIN a „Német Szabványügyi Intézet” kifejezést jelenti, és egyszerűen egy kábel, amelynek öt csatlakozója van a csatlakozó belsejében. Az USB-t gyakran használják az 5-tűs DIN helyett, vagy USB-MIDI interfész is használható.

MIDI-kábel-Male

A változás vezérlése és a programváltás

A MIDI üzeneteknek két fő típusa van: Vezérlésváltás és Programváltás.

A Control Change (CC) üzenetek tartalmaznak egy vezérlő számát és 0 és 127 közötti értéket. A CC üzeneteket gyakran használják olyan beállítások megváltoztatására, mint a hangerő vagy a hangmagasság. Azoknak a készülékeknek, amelyek elfogadják a MIDI-t, mellékelniük kell egy kézikönyvet, amely ismerteti, hogy mely csatornák és üzenetek vannak alapértelmezés szerint beállítva, és hogyan kell megváltoztatni őket (más néven MIDI leképezés).

A Program Change (PC) üzenetek egyszerűbbek, mint a CC üzenetek. A PC-üzenetek egyetlen számból állnak, és az eszköz előre beállított vagy javításának megváltoztatására szolgálnak. A PC-üzeneteket néha „Patch Change” néven hívják. A CC-üzenetekhez hasonlóan a gyártóknak be kell nyújtaniuk egy dokumentumot, amely felvázolja, hogy az előre beállított értékeket mi változtatja meg egy adott üzenet.

Amire szüksége lesz

  • Arduino
  • 5-pólusú DIN aljzat
  • 2 x 220 ohm ellenállások
  • 2 x 10 k ohm ellenállások
  • 2 x pillanatnyi kapcsoló
  • Összekötő vezetékek
  • breadboard
  • MIDI kábel
  • MIDI eszköz vagy USB interfész

Építési terv

Ez a projekt meglehetősen egyszerű lesz. Természetesen további gombokat vagy hardvert is hozzáadhat az igényeinek. Szinte minden Arduino alkalmas lesz - ehhez a példához csak három csap van szükség. Ez a projekt két gombból áll a program vezérléséhez, egy MIDI-portból az adatok küldéséhez és egy eszközből az üzenetek fogadásához. Ezt az áramkört egy a breadboard Kezdő elektronika: 10 tudás, amit tudnod kellSokan közülünk soha nem is érkeztek meg a forrasztópáka ellen, de a dolgok készítése hihetetlenül kifizetődő lehet. Íme a tíz legalapvetőbb barkácsolás-elektronikai készség, amely segít az indulásban. Olvass tovább itt azonban átvihető egy projekt dobozba és a forrasztott csatlakozókba egy robusztus megoldás érdekében.

Áramköri szerelvény

Arduino-Midi-Controller-Circuit

MIDI kapcsolat

MIDI-pinout

A következőképpen csatlakoztassa a MIDI aljzatot:

  • Az MIDI 5. érintkezője az Arduino Transmit (TX) 1-re egy 220 ohmos ellenálláson keresztül
  • A MIDI 4. érintkezője az Arduino + 5 V-ra egy 220 ohmos ellenálláson keresztül
  • MIDI 2. tű az Arduino földéhez

Gombkapcsolat

A gombok az Arduino által látott ellenállás megváltoztatásával működnek. Az Arduino csap egyenesen a földre megy a kapcsolón (ALACSONY) 10 k ohmos ellenálláson keresztül (egy „lehúzható” ellenállással, biztosítva, hogy az érték alacsony maradjon). A gomb megnyomásakor az áramkör által látott érték ellenállás nélkül + 5v-ra változik (MAGAS). Az Arduino észlelheti ezt a változást a digitalRead (pin) parancs. Csatlakoztassa a gombokat az Arduino digitális bemenet / kimenet (I / O) 6. és 7. érintkezőjéhez. Csatlakoztassa mindkét gombot:

  • A gomb bal oldala + 5 V-ra
  • A gomb jobb oldala az Arduino Groundhoz egy 10k ohmos ellenálláson keresztül
  • A gomb jobb oldala az Arduino tűhöz (6 vagy 7)

MIDI tesztelés

Most, hogy az összes hardver elkészült, ideje kipróbálni. Szüksége lesz USB-MIDI interfészre (ezt számos audio interfész képes megtenni) és MIDI kábelre. A kenyérpultra csatlakoztatott MIDI-port adatot küld, tehát ez a kimenet. A számítógépe fogadja az adatokat, ezért ez a bemenet. Ez a projekt a kiváló Arduino-t használja MIDI könyvtár v4.2 negyvenhét effektus. Miután telepítette a Könyvtárat, felveheti azt a kódjába, ha meglátogatja Vázlat> Könyvtár beillesztése> MIDI.

Szüksége van egy programra a bejövő MIDI adatok figyelésére:

  • MIDI Monitor OS X esetén
  • MIDI-OX Windows rendszerre
  • KMidimon Linux alatt

Csatlakoztassa az Arduino-t Az Arduino kezdőkészlet első lépései - Illesztőprogramok telepítése és az alaplap és a port beállításaTehát vásároltad magadnak egy Arduino kezdőkészletet és esetleg más véletlenszerű alkatrészeket - most mi van? Hogyan kezdje el valójában ezt az Arduino-dolog programozását? Hogyan állítja be ... Olvass tovább a számítógépére, és töltse fel a következő tesztkódot (ne felejtse el kiválasztani a megfelelő panelt és portot a Eszközök> Fórum és Eszközök> Port menük).

#include 
#include 
#include 
#include 
#include  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // hozzon létre egy MIDI objektumot, melynek neve midiOut void setup () {Serial.begin (31250); // telepítő sorozat a MIDI-hez. } void loop () {midiOut.sendControlChange (56,127,1); // küldjön MIDI CC-t - 56 = jegyzet, 127 = sebesség, 1 = csatorna késleltetés (1000); // várjon 1 másodperc midiOut.sendProgramChange (12,1); // küldjön MIDI PC-t - 12 = érték, 1 = csatorna késleltetés (1000); // várjon 1 másodpercet. }

Ez a kód CC üzenetet fog küldeni, várjon 1 másodpercet, küldjön egy PC üzenetet, majd 1 másodpercig határozatlan ideig várjon. Ha minden jól működik, akkor egy üzenetnek kell megjelennie a MIDI monitoron.

Ha semmi sem történik, ne ess pánikba! Próbálja ki a hibaelhárítást:

  • Ellenőrizze, hogy az összes csatlakozás megfelelő-e
  • Ellenőrizze, hogy a MIDI port megfelelően van-e huzalozva - a külső széleken 2 pótalp-érintkezőnek kell lennie
  • Ellenőrizze újra az áramkört
  • Ellenőrizze, hogy az áramkör MIDI-kábellel csatlakozik-e az USB-MIDI interfészhez
  • Ellenőrizze, hogy a MIDI-kábel csatlakoztatva van-e a bemenet az USB-MIDI interfészen
  • Győződjön meg arról, hogy az Arduino hatalommal rendelkezik
  • Telepítse a megfelelő illesztőprogramot az USB-MIDI interfészhez

Ha te még mindig problémák esetén érdemes megnézni a kenyérvágódeszkát. Az olcsó táblák néha nagyon következetlenek és alacsony színvonalúak lehetnek - ez történt velem, miközben dolgoztam ezen a projekten.

Gomb tesztelése

Itt az ideje, hogy tesztelje a gombok megfelelő működését. Töltse fel a következő tesztkódot. A MIDI-t nem kell csatlakoztatni ennek a résznek a teszteléséhez.

const int buttonOne = 6; // Gombcsap hozzárendelése a változóhoz. const int buttonTwo = 7; // Gombcsap hozzárendelése a változó érvénytelen beállításhoz () {Serial.begin (9600); // a pinMode szövegbeállítási sorozata (buttonOne, INPUT); // Beállítás gomb mint bemeneti pinMode (buttonTwo, INPUT); // Beállítás gomb bemenetként. } void loop () {if (digitalRead (buttonOne) == HIGH) {// ellenőrizze a gomb állapot késleltetését (10); // a szoftver visszafordul, ha (digitalRead (buttonOne) == HIGH) {// ismét ellenőrizze a gomb állapotát Serial.println ("Egy gomb működik!"); // naplózás eredmény késése (250); }} if (digitalRead (buttonTwo) == HIGH) {// ellenőrizze a gomb állapot késleltetését (10); // a szoftver visszafordul, ha (digitalRead (buttonTwo) == HIGH) {// ismét ellenőrizze a gomb állapotát Serial.println ("Button Two Works!"); // naplózás eredmény késése (250); } } }

Futtassa ezt a kódot (de az USB-kábelt tartsa csatlakoztatva) és nyissa meg a soros monitort (Jobb felső sarokban> Soros monitor). Egy gomb megnyomásakor a „Button One működik!” Feliratot kell látnia. vagy „Két gomb működik!” attól függően, hogy milyen gombot nyomja meg.

Egy fontos megjegyzés, amelyet el kell távolítani ettől a példától - a szoftver lepattan. Ez egy egyszerű 10 milliszekundum (ms) késés a gomb ellenőrzése és a gomb újbóli ellenőrzése között. Ez növeli a gombnyomás pontosságát és segít megakadályozni az Arduino zajt kiváltó eseményét. Ezt nem kell megtennie, bár ajánlott.

A vezérlő létrehozása

Most, hogy minden vezetékes és működik, ideje összeszerelni a teljes vezérlőt.

Ez a példa minden egyes megnyomott gombra külön CC üzenetet küld. Ezt az Ableton Live 9.6 vezérlésére használom OS X-en. A kód hasonló mind a fenti tesztelési mintákhoz.

#include 
#include 
#include 
#include 
#include const int buttonOne = 6; // Gombcsap hozzárendelése a változóhoz. const int buttonTwo = 7; // Gombcsap hozzárendelése a MIDI_CREATE_INSTANCE változóhoz (HardwareSerial, Serial, midiOut); // hozzon létre egy MIDI objektumot, melynek neve midiOut void setup () {pinMode (buttonOne, INPUT); // Beállítás gomb mint bemeneti pinMode (buttonTwo, INPUT); // Beállítás gomb a Serial.begin bemenetként (31250); // MIDI kimenet beállítása. } void loop () {if (digitalRead (buttonOne) == HIGH) {// ellenőrizze a gomb állapot késleltetését (10); // a szoftver visszafordulása, ha (digitalRead (buttonOne) == HIGH) {// ismét ellenőrizze a gomb állapotát midiOut.sendControlChange (56,127,1); // küldjön MIDI CC-t - 56 = jegyzet, 127 = sebesség, 1 = csatorna késleltetés (250); }} if (digitalRead (buttonTwo) == HIGH) {// ellenőrizze a gomb állapot késleltetését (10); // a szoftver visszafordul, ha (digitalRead (buttonTwo) == HIGH) {// ismét ellenőrizze a gomb állapotát midiOut.sendControlChange (42,127,1); // küldjön MIDI CC-t - 42 = jegyzet, 127 = sebesség, 1 = csatorna késleltetés (250); } } }

Megjegyzés - nem fogja tudni használni Serial.println () MIDI kimenettel.
Ha PC-üzenetet akarsz küldeni CC helyett, egyszerűen cserélje ki:

midiOut.sendControlChange (42,127,1);

Val vel:

midiOut.sendProgramChange (érték, csatorna); 

Működésben

Az alábbiakban bemutatjuk a vezérlőt Ableton Live (A legjobb DJ szoftver minden költségvetéshez A legjobb DJ szoftver minden költségvetéshezA jó keverőszoftver megváltoztathatja teljesítményét. Függetlenül attól, hogy Mac, Windows vagy Linux rendszert használ, minden jártasságot és költségvetést figyelembe kell venni, ha DJ-t szeretne indítani. Olvass tovább ). A jobb felső sarokban az audiomérők, a felső középső pedig a bejövő midi üzenetek (a MIDI Monitor az OS X-en).

Készítettél egy MIDI vezérlőt?

Az egyedi MIDI vezérlőknek nagyon sok gyakorlati felhasználása van. Építhet egy hatalmas lábvezérelt egységet vagy egy elegáns stúdióvezérlőt. És ha érdekli vásárolni, akkor itt vannak a legjobb USB MIDI vezérlők A 9 legjobb USB MIDI vezérlő zenészek számáraUSB MIDI vezérlőt keres? Itt vannak a legjobb MIDI vezérlők, amelyeket most megvásárolhat, költségvetéstől függetlenül. Olvass tovább megveheted.

Kép jóváírás: Keith Gentry a Shutterstock.com webhelyen keresztül

Joe számítógépes ismeretek diplomáját szerezte az Egyesült Királyság Lincolni Egyetemen. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran találkozhat fényképezéssel vagy videó készítésével.