Stwórz własny kontroler MIDI z Arduino

MIDI

Jeśli jesteś melomanem lub bezpośrednio muzykiem amatorem lub zawodowym, z pewnością zgromadziłeś w swoim domu dużą kolekcję instrumentów muzycznych. Aby wszystkie te mieszanki były idealne, najlepiej jest uzyskać Kontroler MIDI. Niestety tego typu obiekty są zazwyczaj dość drogie, przez co osoba bez zbyt wielu zasobów ma utrudniony dostęp do wszystkiego, co może zaoferować.

Aby lepiej zrozumieć, czym jest kontroler MIDI, powiedz, że pochodzi słowo MIDI Interfejs cyfrowy instrumentów muzycznychczyli rodzaj kontrolera, który sprawia, że ​​elektroniczne urządzenia muzyczne mogą się ze sobą komunikować. Jeśli na przykład masz w domu elektroniczną klawiaturę, jest bardziej niż prawdopodobne, że ma ona interfejs MIDI. Zanim przejdziemy dalej, pomimo faktu, że istnieją pewne szczegóły techniczne, które mogą prowadzić do wniosku, że jest inaczej, musi być bardzo jasne, że MIDI to nie dźwięk.

Stwórz swój własny kontroler MIDI za pomocą tego prostego samouczka

Kiedy już to wyjaśnimy, z pewnością znacznie łatwiej będzie ci zrozumieć, że MIDI jest po prostu prostym zestaw instrukcji obsługujący do 16 niezależnych kanałówco oznacza, że ​​może istnieć do 16 różnych urządzeń komunikujących się ze sobą niezależnie. Urządzenia te muszą być podłączone za pomocą 5-pinowego kabla DIN, który jest w zasadzie kablem z pięcioma pinami wewnątrz złącza. Jako szczegół, dość powszechne jest użycie USB zamiast 5-pinowego DIN, w przypadku korzystania z USB musimy stworzyć interfejs USB-MIDI.

Bez zbędnych ceregieli zostawiam ci link, w którym możesz znaleźć plik Tutorial krok po kroku z wieloma plikami obrazy opisowe gdzie możemy wykonać wszystkie niezbędne czynności, aby stworzyć własny kontroler MIDI.

Podobne artykuł:
Jak zmienić nazwę użytkownika i hasło Pi w naszym Raspberry Pi

Jak stworzyć własny kontroler MIDI za pomocą Arduino

złącze midi

Wiele osób potrzebuje, z różnych powodów, zarówno osobistych, jak i zawodowych, korzystania z w pełni niestandardowy kontroler MIDI Ponieważ być może i jako przykład, w pewnym momencie swojego życia jako artysty, zakup niedrogiego kontrolera MIDI może nie spełnić twoich oczekiwań lub potrzeb, podczas gdy, gdy nadejdzie czas, wybór wersji profesjonalnej może być nadmierny w obu zasobach finansowych. potrzeb, a także dużą liczbę funkcji, które mogą zaoferować.

W związku z tym dzisiaj chcę Wam pokazać wszystko, czego potrzeba, abyście mogli stworzyć własny kontroler MIDI, wskazując zarówno wszystko, co niezbędne do jego budowy, jak i oferując oprogramowanie, które trzeba będzie zainstalować. Mówiąc szczegółowo, w tym projekcie niezbędne jest użycie płyty Arduino, kontrolera, który jest wystarczająco mocny, aby wykonać to zadanie.

Podobne artykuł:
Jak zrobić robota: 3 różne opcje

Co to jest kontroler MIDI?

midi

Zasadniczo kontroler MIDI jest odpowiedzialny, mówiąc ogólnie, za łączenie ze sobą różnych urządzeń muzycznych. Wiele instrumentów zawiera interfejs MIDI, chociaż musi to być bardzo jasne, ponieważ jest wielu użytkowników, którzy są często zdezorientowani, MIDI nie jest plikiem audio, ale bardzo prostym zestawem instrukcji, które instrument może odebrać. Aby uzyskać inną kontrolę lub ustawienia dźwięku.

Wewnątrz MIDI istnieją dwa różne typyZ jednej strony mamy tę zwaną Change Control, która ma numer kontrolera i wartość z przedziału od 0 do 127. Dzięki temu można wydawać komunikaty, w których można zmieniać różne parametry, takie jak głośność czy ton. Różne instrumenty akceptujące MIDI powinny mieć ze sobą instrukcję wyjaśniającą, które kanały i komunikaty są ustawione domyślnie i jak je zmienić.

Na drugim miejscu mamy Program Change, serię komunikatów, które z kolei są znacznie prostsze niż te, które składają się na Kontrolę Zmian. Tego typu komunikaty służą do zmiany ustawienia wstępnego lub poprawki urządzenia. Podobnie jak w przypadku kontroli zmian, producent musi dołączyć do instrumentu instrukcję wskazującą, które ustawienia są zmieniane przez określony komunikat.

Części potrzebne do zbudowania własnego domowego kontrolera MIDI

Schemat złącza Midi

Aby móc zbudować własny kontroler MIDI, będziesz potrzebował serii elementów dodatkowo, jak już wspomnieliśmy, do płytki Arduino. Zanim przejdziesz dalej, po prostu powiedz, że być może w przyszłości, ponieważ chcesz rozszerzyć projekt, będziesz potrzebować więcej rzeczy, chociaż w tej chwili przy kilku egzemplarzach będziesz miał ich pod dostatkiem.

Będziemy potrzebować żeńskiego 5-biegunowego kabla DIN, 2 rezystorów 220 omów, 2 przełączników chwilowych, 2 rezystorów 10 kΩ, przewodów połączeniowych, płytki drukowanej, kabla MIDI i urządzenia MIDI lub interfejsu USB. Dzięki tym kawałkom możesz zacząć, podążając za moimi krokami, aby stworzyć własny kontroler MIDI.

Pierwsze kroki

Schemat midi Arduino

Zanim zacznę, zostawiam wam obrazek, na którym widać piny twojego kabla MIDI, w ten sposób możemy poprawnie zidentyfikować piny, a zwłaszcza gdzie je podłączyć. Mówiąc ogólnie, wszystko, co musisz zrobić w tym miejscu, to podłączyć pin 5 kabla do rezystora 220 omów, a stamtąd do Arduino Transmit 1, pin 4 do rezystora 220 omów, a stamtąd do gniazda 5 V Arduino, podczas gdy pin 2 należy podłączyć do uziemienia kontrolera.

Po wykonaniu tego kroku nie masz szczegółowego schematu na zdjęciu, które znajduje się tuż pod tymi liniami, czas połączyć przyciski. Pomysł w tej sekcji polega na tym, aby za pomocą pinu digitalRead (zdolnego do wykrywania zmiany napięcia, które do niego dociera), można było użyć tranzystora, aby osiągnąć to za naciśnięciem jednego przycisku. W tym celu wystarczy użyć przycisku tak, aby jego lewą stronę podłączyliśmy do 5V, prawą do rezystancji 220 omów a stamtąd do masy natomiast z kolei prawą też podłączymy do pinu 6 6. Drugi przycisk zostałby zamontowany w ten sam sposób, chociaż jak widać na schemacie zamiast pinu 7 podłączamy go do XNUMX.

Oprogramowanie do użytku z kontrolerem midi w domu

Gdy skończymy z całym sprzętem, nadszedł czas, aby podłączyć nasz instrument i przetestować. Wcześniej musimy mieć plik Interfejs USB-MIDI i kabel MIDI aby połączyć tablicę, która wysyła dane, z naszym komputerem. Aby to osiągnąć, zdecydowaliśmy się na bibliotekę MIDI v4.2 stworzoną przez chłopaków z Forty Seven Effects, którą musieliśmy zainstalować na naszym Arduino i włączyć do projektu.

W przypadku komputera będziemy potrzebować programu, który jest w stanie nadzorować wszystkie dane MIDI, które docierają do niego z Arduino. Do tego mamy różne możliwości, takie jak Monitor MIDI (OS X), MIDI-OX (Windows) lub Kmidimon (Linux)

Aby wykonać mały test, wystarczy podłączyć Arduino do naszego komputera i wykonać następujący kod:

#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
}

Jeśli wszystko poszło dobrze, możesz przejść do testu przycisku, w przypadku, gdy ten test nie zadziałał musisz upewnić się, że wszystkie połączenia są poprawne, obwód jest dokładnie taki sam jak na poprzednim schemacie, obwód jest podłączony do interfejsu USB-MIDI za pomocą kabla MIDI, przewody portu MIDI są prawidłowo podłączone, przewód MIDI jest podłączony do wejścia interfejsu USB-MIDI, płytka Arduino jest poprawnie podłączona do sieci elektrycznej i ma wystarczającą moc ...

Testowanie, czy przyciski działają poprawnie

Przed dalszym zasilaniem naszego programu nowymi funkcjonalnościami i kodem, w którym możemy się zgubić, warto się na chwilę zatrzymać i sprawdź, czy przyciski działają prawidłowo. Dla nich musimy załadować następujący kod:

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);
}
}

}

Ten kod trzeba tylko skompilować i wykonać, aby przy podłączonym kablu USB program poinformował nas, czy został naciśnięty którykolwiek z przycisków.

Tworzymy nasz domowy kontroler MIDI

Po przeprowadzeniu tych testów nadszedł czas na zbudowanie własnego kontrolera MIDI, wystarczy skompilować następujący kod:

#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);
}
}
}

Jako szczegół, powiedz, że tym razem nie możesz użyć polecenia Serial.println () z wyjściem MIDI, jeśli chcesz wyświetlić jakiś rodzaj wiadomości na komputerze, po prostu zmień:

midiOut.sendControlChange(42,127,1);

przez:

midiOut.sendControlChange(value, channel);

gdzie wartość i kanał muszą mieć żądane wartości, które chcesz wyświetlić.

Przykład operacji:


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

4 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Alfred powiedział

    Arduino daje Ci wiele możliwości samodzielnego podejmowania projektów https://www.juguetronica.com/arduino . Jedną z najlepszych rzeczy jest to, że możesz zacząć bez bycia ekspertem i kontynuować naukę, motywując się w ten sposób do samouka.

  2.   Danel Roman powiedział

    Pozdrowienia.

    Próbuję przeprowadzić ten fantastyczny samouczek… ale # zawiera niekompletne….

    Czy możesz mi powiedzieć, które z nich są potrzebne?

    Dziękuję bardzo.

  3.   Uell powiedział

    Hey.
    Chciałbym wykonać elektroniczny moduł perkusyjny, zastępując przyciski wejściami jack, do których będzie dochodził sygnał piezoelektryczny.
    Czy dałoby się to zrobić?

  4.   Eduardo Valenzuela powiedział

    Proszę, jeśli mógłbyś podać załączniki tego kodu, jestem zainteresowany tym projektem.