Hogyan készítsünk MIDI vezérlőt Arduino segítségével

Hogyan készítsünk MIDI vezérlőt Arduino segítségével

Zenészként, aki hangszerek és zajszekrények gyűjteményét gyűjtötte össze, a szerény Arduino tökéletes eszköz az egyéni MIDI vezérlő létrehozásához. Bár a Raspberry Pi vehette át a tárgyak internete (IoT) projektek koronáját, egy egyszerű Arduino Uno (melyek az Arduino különböző típusai?) Több mint elegendő erővel rendelkezik ehhez a projekthez.





Először használ Arduino -t? Ne aggódjon, van egy komplettünk Arduino kezdő útmutató olvassa el, mielőtt belekezdene ebbe a projektbe.





Mi az a MIDI?

A MIDI a Musical Instrument Digital Interface rövidítése. Ez felvázolja a zenei eszközök szabványos kommunikációs módját. Ha rendelkezik elektronikus billentyűzettel, valószínűleg MIDI interfésszel rendelkezik. Bár a MIDI megvalósításának néhány technikai részlete van, fontos megjegyezni, hogy a MIDI nem hang! A MIDI adatok egy egyszerű utasításkészlet (az egyik utasítást üzenetnek nevezik), amelyet egy másik eszköz végrehajthat különböző hangok vagy vezérlő paraméterek létrehozásához.





A MIDI 16 csatornát támogat. Ez azt jelenti, hogy minden kábel 16 különböző, egymástól függetlenül kommunikáló eszközt képes támogatni. Az eszközök csatlakoztatása 5 tűs DIN kábellel történik. A DIN a „Németországi Szabványügyi Intézet” rövidítése, és egyszerűen egy kábel, amelynek öt érintkezője van a csatlakozón belül. Az 5-tűs DIN helyett gyakran USB-t használnak, vagy USB-MIDI interfész is használható.

MIDI-kábel-dugó



Vezérlőváltás és programváltás

A MIDI -üzeneteknek két fő típusa létezik: a Control Change és a Program Change.

A Control Change (CC) üzenetek egy vezérlő számot és egy 0 és 127 közötti értéket tartalmaznak. A CC üzeneteket gyakran használják a beállítások, például a hangerő vagy a hangmagasság módosítására. A MIDI -t elfogadó eszközökhöz kézikönyvet kell mellékelni, amely elmagyarázza, hogy milyen csatornák és üzenetek vannak alapértelmezés szerint beállítva, és hogyan kell azokat megváltoztatni (MIDI -leképezés néven).





A programváltási (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 beállításainak vagy javításainak megváltoztatására szolgálnak. A PC -üzeneteket néha „Patch Change” -nek nevezik. A CC üzenetekhez hasonlóan a gyártóknak olyan dokumentumot kell benyújtaniuk, amely ismerteti, hogy az adott üzenet milyen előre beállított beállításokat változtat meg.

Amire szüksége lesz

  • Arduino
  • 5 tűs DIN aljzat
  • 2 x 220 ohmos ellenállás
  • 2 x 10 k ohmos ellenállás
  • 2 x pillanatnyi kapcsoló
  • Csatlakoztatható vezetékek
  • Kenyeretábla
  • MIDI kábel
  • MIDI eszköz vagy USB interfész
Víz és fa 5 db DIN 5 tűs NYÁK -rögzítő aljzat PC billentyűzethez Vásároljon most az AMAZON -on

Építési terv

Ez a projekt nagyon egyszerű lesz. Természetesen további gombokat vagy hardvereket is hozzáadhat az igényeinek. Szinte minden Arduino alkalmas lesz - ehhez a példához csak három csap szükséges. Ez a projekt két gombból áll a program vezérlésére, egy MIDI portból az adatok küldésére és egy eszközből az üzenetek fogadására. Ez az áramkör itt egy kenyértáblára épült, de lehetséges a projektdobozba és a forrasztott csatlakozókba történő átvitel a robusztus megoldás érdekében.





Áramköri szerelvény

Arduino-Midi-Controller-áramkör

MIDI kapcsolat

MIDI-Pinout

Csatlakoztassa a MIDI aljzatot az alábbiak szerint:

  • MIDI 5. tű az Arduino Transmit (TX) 1 -hez 220 ohmos ellenálláson keresztül
  • MIDI 4. tű Arduino +5V -ra 220 ohmos ellenálláson keresztül
  • MIDI 2. tű az Arduino földeléséhez

Gombkapcsolat

A gombok az Arduino által látott ellenállás megváltoztatásával működnek. Az Arduino csap a kapcsolón keresztül egyenesen a földre megy ( ALACSONY ) 10 k ohmos ellenálláson keresztül („lefelé húzódó” ellenállás, amely biztosítja, 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 képes észlelni 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 +5V -ra
  • A gomb jobb oldala az Arduino Ground -hoz 10 k ohmos ellenálláson keresztül
  • A gomb jobb oldala az Arduino csaphoz (6 vagy 7)

MIDI tesztelés

Most, hogy az összes hardver elkészült, ideje tesztelni. Szüksége lesz egy USB-MIDI interfészre (sok audio interfész képes erre) és egy MIDI kábelre. A kenyértáblára csatlakoztatott MIDI port adatokat küld, tehát ez a kimenet. A számítógép fogadja az adatokat, ezért ez a bemenet. Ez a projekt a kiváló Arduino -t használja MIDI Library v4.2 by Negyvenhét hatás. Miután telepítette a Könyvtárat, felveheti azt a kódjába a címen Vázlat> Könyvtár bevonása> MIDI .

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

Csatlakoztassa az Arduino -t a számítógépéhez, és töltse fel a következő tesztkódot (ne felejtse el kiválasztani a megfelelő kártyát é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); // create a MIDI object called midiOut
void setup() {
Serial.begin(31250); // setup serial for MIDI
}
void loop() {
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(1000); // wait 1 second
midiOut.sendProgramChange(12,1); // send a MIDI PC -- 12 = value, 1 = channel
delay(1000); // wait 1 second
}

Ez a kód CC üzenetet küld, várjon 1 másodpercet, küldjön PC üzenetet, majd várjon 1 másodpercet a végtelenségig. Ha minden megfelelően működik, megjelenik egy üzenet a MIDI monitoron.

Ha nem történik semmi, ne essen pánikba! Próbálkozzon a hibaelhárítással:

  • Győződjön meg arról, hogy minden csatlakozás megfelelő
  • Ellenőrizze, hogy a MIDI -port megfelelően van -e bekötve - 2 tartalékcsapnak kell lennie a külső széleken
  • Ellenőrizze kétszer az áramkör helyességét
  • 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 bemenet az USB-MIDI interfészen
  • Győződjön meg arról, hogy az Arduino rendelkezik erővel
  • Telepítse a megfelelő illesztőprogramot az USB-MIDI interfészhez

Ha te még mindig Ha problémái vannak, érdemes ellenőrizni a panelt. Az olcsó táblák néha nagyon inkonzisztensek és rossz minőségűek lehetnek-ez történt velem, amikor ezen a projekten dolgoztam.

Gomb tesztelés

Most itt az ideje, hogy tesztelje a gombok megfelelő működését. Töltse fel az alábbi tesztkódot. Ennek az alkatrésznek a teszteléséhez a MIDI -t nem kell csatlakoztatni.

const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
void setup() {
Serial.begin(9600); // setup serial for text
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
}
void loop() {

if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
Serial.println('Button One Works!'); // log result
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
Serial.println('Button Two Works!'); // log result
delay(250);
}
}

}

Futtassa ezt a kódot (de tartsa csatlakoztatva az USB -kábelt), és nyissa meg a soros monitort ( Jobbra fent> Soros monitor ). Amikor megnyom egy gombot, megjelenik a 'Button One Works!' vagy 'A gomb két működik!' attól függően, hogy melyik gombot nyomta meg.

Egy fontos megjegyzést kell levonni ebből a példából-a szoftver visszapattanása. Ez egy egyszerű 10 milliszekundumos (ms) késés a gomb ellenőrzése és a gomb ismételt ellenőrzése között. Ez növeli a gombnyomás pontosságát, és segít megelőzni az Arduino beindításá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 más CC üzenetet küld minden egyes megnyomott gombhoz. Ezt az Ableton Live 9.6 vezérlésére használom OS X rendszeren. A kód hasonló a fenti két tesztmintához.

#include
#include
#include
#include
#include
const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
Serial.begin(31250); // setup MIDI output
}
void loop() {
if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
midiOut.sendControlChange(42,127,1); // send a MIDI CC -- 42 = note, 127 = velocity, 1 = channel
delay(250);
}
}
}

Megjegyzés - nem fogja tudni használni Serial.println () MIDI kimenettel.

Ha PC üzenetet szeretne küldeni CC helyett, egyszerűen cserélje ki:

midiOut.sendControlChange(42,127,1);

Val vel:

midiOut.sendProgramChange(value, channel);

Akcióban

Az alábbiakban bemutatjuk a vezérlőt Ableton Live ( A legjobb DJ szoftver minden költségvetéshez ). A jobb felső sarokban a hangmérők, a középső középsőben pedig a bejövő midi üzenetek láthatók (via MIDI monitor OS X rendszeren).

hogyan lehet gifet készíteni a hátteréről

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

Az egyedi MIDI vezérlőnek sok gyakorlati felhasználása van. Építhet egy hatalmas lábvezérelt egységet vagy egy elegáns stúdióvezérlőt. Ha pedig vásárolni szeretne, itt vannak a legjobb USB MIDI vezérlők, amelyeket megvásárolhat.

Kép jóváírása: Keith Gentry a Shutterstock.com -on keresztül

Reméljük tetszeni fognak az általunk ajánlott és megbeszélt elemek! A MUO társult és szponzorált partnerkapcsolatokkal rendelkezik, így egyes vásárlásaiból származó bevétel egy részét kapjuk. Ez nem befolyásolja az Ön által fizetett árat, és segít nekünk a legjobb termékajánlásokat nyújtani.

Részvény Részvény Csipog Email Érdemes Windows 11 -re frissíteni?

A Windows újra lett tervezve. De ez elég ahhoz, hogy meggyőzze Önt, hogy váltson a Windows 10 -ről a Windows 11 -re?

Olvassa tovább
Kapcsolódó témák
  • DIY
  • DJ szoftver
  • Arduino
  • Elektronika
  • DÉLI
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy