Készítse el saját MIDI vezérlőjét az Arduino segítségével

MIDI

Ha Ön zenekedvelő, vagy közvetlenül amatőr vagy hivatásos zenész, akkor bizonyára otthonában nagy mennyiségű hangszergyűjtemény gyűlt össze. Mindezek tökéletes keveréke érdekében a legjobb, ha a MIDI vezérlő. Sajnos az ilyen típusú tárgyak általában meglehetősen drágák, ezért a túl sok erőforrással nem rendelkező személyek számára nehéz hozzáférni mindenhez, amit kínálhatnak.

Sokkal jobban megérteni, hogy mi a MIDI vezérlő, mondja el, hogy a MIDI szó származik Hangszer digitális interfész, vagyis egyfajta vezérlő, amely az elektronikus zenei eszközöket képes kommunikálni egymással. Ha például van otthon elektronikus billentyűzete, akkor több mint valószínű, hogy rendelkezik MIDI felülettel. Mielőtt folytatná a továbblépést, annak ellenére, hogy vannak bizonyos technikai részletek, amelyek arra késztethetik az ellenkezőjét, nagyon tisztában kell lennie A MIDI nem audio.

Készítse el saját MIDI vezérlőjét ezzel az egyszerű bemutatóval

Ha tisztában vagyunk ezzel, akkor biztosan sokkal könnyebben meg fogja érteni, hogy a MIDI csak egy egyszerű legfeljebb 16 független csatorna támogatására képes utasításkészlet, ami azt jelenti, hogy akár 16 különböző eszköz is kommunikálhat egymással egymástól függetlenül. Ezeket az eszközöket egy 5 tűs DIN kábelen keresztül kell csatlakoztatni, amely alapvetően egy öt érintkezős kábel a csatlakozó belsejében. Részletként meglehetősen gyakori, hogy az 5 tűs DIN helyett USB-t használunk, USB használata esetén létre kell hoznunk egy USB-MIDI interfészt.

Minden további nélkül hagyom a linket, ahol megtalálhatja a oktatói lépésről lépésre sok leíró képek ahol minden szükséges műveletet elvégezhetünk saját MIDI vezérlőnk létrehozásához.

Kapcsolódó cikk:
Hogyan lehet megváltoztatni a Pi felhasználónév és jelszó a Raspberry Pi-n

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

midi csatlakozó

Sokan azok, akiknek különféle személyes és szakmai okokból is szükségük van a teljesen egyedi MIDI vezérlő Mert talán, és példaként említhetem, hogy művészként az életed egy bizonyos pontján az olcsó MIDI vezérlő megvásárlása nem felel meg az elvárásoknak vagy az igényeknek, míg ha eljön az ideje, a professzionális verzió választása mindkét pénzügyi erőforrásban túlzott lehet. igény, valamint az általuk kínált számos szolgáltatás.

Ennek köszönhetően ma mindent meg akarok mutatni Önnek, amire szüksége van, hogy elkészíthesse saját MIDI vezérlőjét, megjelölve mindazt, ami a felépítéséhez szükséges, és felajánlva a telepítendő szoftvert. Részletesen: ehhez a projekthez elengedhetetlen az Arduino kártya használata, egy olyan vezérlő, amely elég erős ahhoz, hogy ezt a feladatot elvégezhesse.

Hogyan készítsünk robotot
Kapcsolódó cikk:
Hogyan készítsünk robotot: 3 különböző lehetőség

Mi az a MIDI vezérlő?

midi

Alapvetően egy MIDI-vezérlő felel tág értelemben a különböző zenei eszközök összekapcsolásáért. Sok olyan eszköz van, amely MIDI interfészt tartalmaz, bár ennek nagyon egyértelműnek kell lennie, mivel sok felhasználó gyakran zavaros, a MIDI nem egy hangfájl, hanem egy nagyon egyszerű utasításkészlet, amelyet egy eszköz fogadhat. vagy hangbeállítások.

Bent a MIDI-ben kétféle típus létezikEgyrészt megvan a Change Control nevű, ahol a vezérlő száma és értéke 0 és 127 között van. Ennek köszönhetően olyan üzeneteket lehet kiadni, ahol különböző paraméterek, például hangerő vagy hang megváltoztatható. Különböző eszközöknek, amelyek elfogadják a MIDI-t, magával kell hoznia egy kézikönyvet, amely elmagyarázza, hogy mely csatornák és üzenetek vannak alapértelmezés szerint beállítva, és hogyan kell megváltoztatni azokat.

A második helyen a Programváltás áll, egy sor üzenet, amely viszont sokkal egyszerűbb, mint azok, amelyek a Változásvezérlőt alkotják. Az ilyen típusú üzenetek egy eszköz előre beállított állapotának vagy javításának megváltoztatására szolgálnak. A Változásvezérléshez hasonlóan a gyártónak a műszerével együtt tartalmaznia kell egy kézikönyvet, amely jelzi, hogy mely előre beállított értékeket változtatja meg egy adott üzenet.

A saját házi MIDI vezérlő felépítéséhez szükséges alkatrészek

Midi csatlakozó vázlata

Ahhoz, hogy saját MIDI vezérlőjét fel tudja építeni, egy darab darabra lesz szüksége, amint azt már említettük, egy Arduino táblán. Mielőtt folytatnád, mondd csak el, hogy a jövőben talán azért, mert bővíteni akarod a projektet, több dologra van szükséged, bár ebben az időben néhány darabbal rengeteg lesz.

Szükségünk lesz egy 5 pólusú női DIN-kábelre, 2 220 ohmos ellenállásra, 2 pillanatkapcsolóra, 2 10 k ohmos ellenállásra, csatlakozóvezetékekre, áramköri kártyára, MIDI kábelre és MIDI eszközre vagy USB interfészre. Csak ezekkel a darabokkal kezdheti meg a lépéseimet követve, hogy elkészítse saját MIDI vezérlőjét.

Első lépések

Arduino midi sematikus

Mielőtt elkezdeném, hagyok neked egy képet, ahol láthatod a MIDI kábeled csapjait, ily módon helyesen azonosíthatjuk a csatlakozókat és főleg hol csatlakoztassam mindegyiket. Általánosságban elmondható, hogy ezen a ponton mindössze annyit kell tennie, hogy a kábel 5. érintkezőjét egy 220 ohmos ellenállásra, majd onnan az Arduino Transmit 1-re, a 4. tűt egy 220 ohmos ellenállásra és onnan az Arduino 5 V-os aljzatára kell csatlakoztatnia, míg a A 2-et a vezérlő földelő csatlakozásához kell csatlakoztatni.

Miután ez a lépés megtörtént, nincs egy részletes ábra a fényképen, amely közvetlenül e sorok alatt található, itt az ideje, hogy összekapcsolja a gombokat. Ennek a szakasznak az az elképzelése, hogy a digitalRead csap segítségével (amely képes érzékelni, amikor az eléri a feszültséget változik) egy tranzisztort használhat az eléréshez, egy gombnyomással. Ehhez csak egy gombot kell használnunk, így annak bal oldalát 5 V-ra, a jobb oldalát 220 ohmos ellenállásra és onnan a földre csatlakoztatjuk, miközben a jobb oldalt a 6-os csaphoz is csatlakoztatjuk. A második gombot ugyanúgy telepítenék, bár, amint az az ábrán látható, a 6-os tű helyett a 7-hez csatlakoztatjuk.

Szoftver otthoni midi vezérlőhöz

Miután befejeztük az összes hardvert, itt az ideje csatlakoztatni a műszerünket és tesztelni. Előtte rendelkeznünk kell a USB-MIDI interfész és MIDI kábel hogy összekapcsoljuk az adatküldő táblát a számítógépünkkel. Ennek elérése érdekében a Negyvenhét Effektus srácai által létrehozott MIDI v4.2 könyvtárat választottuk, amelyet feltétlenül telepítenünk kell Arduino-ra és be kell vonni a projektbe.

A számítógép esetében szükségünk lesz egy programra, amely képes felügyelni az Arduino-ból érkező összes MIDI-adatot. Ehhez különféle lehetőségeink vannak, például MIDI Monitor (OS X), MIDI-OX (Windows) vagy Kmidimon (Linux)

Egy kis teszt elvégzéséhez csak csatlakoztatnunk kell az Arduino-t a számítógépünkhöz, és végre kell hajtanunk a következő kódot:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

Ha minden jól sikerült, akkor menjen a gomb tesztre, ha ez a teszt nem működött az Ön számára, meg kell győződnie arról, hogy az összes csatlakozás megfelelő, az áramkör pontosan megegyezik az előző ábrával, az áramkör egy MIDI kábellel csatlakozik egy USB-MIDI interfészhez, a MIDI port kábelei megfelelően vannak csatlakoztatva, a MIDI kábel az USB-MIDI interfész bemenetéhez csatlakozik, az Arduino kártya megfelelően van csatlakoztatva az elektromos hálózathoz és elegendő energiával rendelkezik ...

A gombok megfelelő működésének ellenőrzése

Mielőtt folytatnánk programunk új funkciókkal és kódokkal való ellátását, amelyekbe eltévedhetünk, érdemes megállni egy pillanatra és tesztelje, hogy a gombok megfelelően működnek-e. Számukra be kell töltenünk a következő kódot:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

Ezt a kódot csak össze kell állítani és végre kell hajtani, hogy a csatlakoztatott USB-kábellel a program közölje velünk, ha valamelyik gombot megnyomták.

Készítjük a házi MIDI vezérlőnket

Miután elvégeztük ezeket a teszteket, itt az ideje összeállítani a saját MIDI vezérlőnket, csak a következő kódot kell lefordítania:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

Részletként mondd meg, hogy ezúttal nem használhatod a Serial.println () parancsot MIDI-kimenettel, ha valamilyen típusú üzenetet akarsz megjeleníteni a számítógépen, csak módosítsd:

midiOut.sendControlChange(42,127,1);

by:

midiOut.sendControlChange(value, channel);

ahol az értéknek és a csatornának rendelkeznie kell a megjeleníteni kívánt értékekkel.

Műveleti példa:


4 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Alfred dijo

    Az Arduino számos lehetőséget kínál önálló projektek végrehajtására https://www.juguetronica.com/arduino . Az egyik legjobb dolog az, hogy szakértő nélkül kezdheti el, és folytathatja a tanulást, ezzel motiválva önmagát arra, hogy autodidakta legyen.

  2.   Danel Roman dijo

    Üdvözlet.

    Megpróbálom végrehajtani ezt a fantasztikus oktatóanyagot ... de a #includes nem teljes ...

    Meg tudnád mondani, melyikre van szükség?

    Köszönöm szépen.

  3.   uell dijo

    Hello.
    Elektronikus dobmodult szeretnék készíteni úgy, hogy a gombokat kicsatlakoztatom az aljzat bemenetekhez, amelyekhez piezoelektromos jel érkezik.
    Meg lehetne csinálni?

  4.   Eduardo Valenzuela dijo

    Kérem, ha megadná ennek a kódnak a mellékleteit, érdekelne ez a projekt.