Jak zrobić kontroler MIDI z Arduino

  • Owen Little
  • 0
  • 3588
  • 303
Reklama

Jako muzyk, który zgromadził kolekcję instrumentów muzycznych i skrzynek szumowych, skromne Arduino jest idealnym narzędziem do stworzenia niestandardowego kontrolera MIDI. Podczas gdy Raspberry Pi mogła zdobyć koronę dla Internetu przedmiotów (IoT) Internet przedmiotów: 10 przydatnych produktów, które musisz wypróbować w 2016 r. Internet przedmiotów: 10 przydatnych produktów, które musisz wypróbować w 2016 r. Internet przedmiotów rozwija się 2016, ale co to dokładnie znaczy? Jak osobiście korzystasz z Internetu przedmiotów? Oto kilka przydatnych produktów do zilustrowania. projekty, proste Arduino Uno (jakie są różne rodzaje Arduino? Przewodnik po zakupie Arduino: Która deska powinnaś dostać? Przewodnik po zakupie Arduino: Która deska powinnaś dostać? Istnieje tak wiele różnych rodzajów tablic Arduino, wybaczmy, że jesteśmy zdezorientowani. Co powinieneś kupić dla swojego projektu? Pozwól nam pomóc, dzięki temu przewodnikowi zakupów Arduino!) ma więcej niż wystarczającą moc do tego projektu.

Pierwszy raz korzystasz z Arduino? Nie martw się, mamy kompletny przewodnik dla początkujących Arduino Pierwsze kroki z Arduino: Przewodnik dla początkujących Pierwsze kroki z Arduino: Przewodnik dla początkujących Arduino to platforma prototypowania elektroniki typu open source oparta na elastycznym, łatwym w użyciu sprzęcie i oprogramowaniu. Jest przeznaczony dla artystów, projektantów, hobbystów i wszystkich zainteresowanych tworzeniem interaktywnych obiektów lub środowisk. przeczytać przed przystąpieniem do tego projektu.

Co to jest MIDI?

MIDI oznacza interfejs cyfrowy instrumentów muzycznych. Przedstawia standardowy sposób komunikacji między urządzeniami muzycznymi. Jeśli posiadasz klawiaturę elektroniczną, prawdopodobnie masz interfejs MIDI. Chociaż przy implementacji MIDI jest kilka szczegółów technicznych, należy pamiętać, że MIDI to nie audio! Dane MIDI to prosty zestaw instrukcji (jedna instrukcja nazywa się a “wiadomość”), które inne urządzenie może wdrożyć w celu uzyskania różnych dźwięków lub parametrów kontrolnych.

MIDI obsługuje 16 kanałów. Oznacza to, że każdy kabel może obsługiwać 16 różnych urządzeń komunikujących się niezależnie ze sobą. Urządzenia są połączone za pomocą 5-stykowego kabla DIN. DIN oznacza “Niemiecki Instytut Normalizacyjny”, i jest po prostu kablem z pięcioma pinami wewnątrz złącza. USB jest często używane zamiast 5-stykowego DIN lub można użyć interfejsu USB-MIDI.

Zmiana sterowania i zmiana programu

Istnieją dwa główne typy komunikatów MIDI: Zmiana sterowania i Zmiana programu.

Komunikaty zmiany sterowania (CC) zawierają numer kontrolera i wartość od 0 do 127. Komunikaty CC są często używane do zmiany ustawień, takich jak głośność lub wysokość. Urządzenia akceptujące MIDI powinny być wyposażone w instrukcję wyjaśniającą, które kanały i komunikaty są domyślnie konfigurowane oraz jak je zmienić (znane jako mapowanie MIDI).

Komunikaty zmiany programu (PC) są prostsze niż komunikaty CC. Wiadomości z komputera składają się z jednego numeru i służą do zmiany ustawienia wstępnego lub poprawki w urządzeniu. Wiadomości z komputera są czasem nazywane “Zmiana łatki”. Podobnie jak komunikaty CC, producenci powinni dostarczyć dokument opisujący, jakie ustawienia wstępne zmieniają poszczególne komunikaty.

Czego będziesz potrzebować

  • Arduino
  • 5-stykowe gniazdo żeńskie DIN
  • Rezystory 2 x 220 omów
  • Rezystory 2 x 10k omów
  • 2 x chwilowe przełączniki
  • Druty do podwieszania
  • Breadboard
  • Kabel MIDI
  • Urządzenie MIDI lub interfejs USB

Plan kompilacji

Ten projekt będzie dość prosty. Możesz oczywiście dodać więcej przycisków lub sprzętu w zależności od potrzeb. Prawie każde Arduino będzie odpowiednie - w tym przykładzie potrzebne są tylko trzy piny. Projekt składa się z dwóch przycisków do sterowania programem, portu MIDI do wysyłania danych oraz urządzenia do odbierania wiadomości. Obwód ten został zbudowany na płycie głównej Elektronika dla początkujących: 10 umiejętności, które musisz znać Elektronika dla początkujących: 10 umiejętności, które musisz znać Wielu z nas nigdy nawet nie dotknęło lutownicy - ale tworzenie rzeczy może być niezwykle satysfakcjonujące. Oto dziesięć podstawowych umiejętności związanych z elektroniką dla majsterkowiczów, które pomogą Ci zacząć. tutaj jednak możliwe jest przeniesienie go do skrzynki projektowej i lutowanych złączy w celu uzyskania solidnego rozwiązania.

Zespół obwodów

Połączenie MIDI

Połącz swoje gniazdo MIDI w następujący sposób:

  • Pin 5 MIDI do Arduino Transmit (TX) 1 przez rezystor 220 omów
  • Pin 4 MIDI do Arduino + 5 V poprzez rezystor 220 omów
  • Pin 2 MIDI do uziemienia Arduino

Połączenie przycisku

Przyciski działają poprzez zmianę oporu Arduino “widzi”. Pin Arduino przechodzi przez przełącznik prosto do ziemi (NISKA) przez rezystor 10 kΩ (a “rozbierać, opuszczać” rezystor, zapewniający utrzymanie niskiej wartości). Po naciśnięciu przycisku wartość widoczna przez obwód zmienia się na + 5 V bez rezystora (WYSOKI). Arduino może wykryć tę zmianę za pomocą digitalRead (pin) dowództwo. Podłącz przyciski do styków 6 i 7 na cyfrowym wejściu / wyjściu Arduino (I / O). Połącz oba przyciski:

  • Lewa strona przycisku do + 5 V.
  • Prawa strona przycisku do uziemienia Arduino za pomocą rezystora 10 kΩ
  • Prawa strona przycisku do pinu Arduino (6 lub 7)

Testowanie MIDI

Teraz, gdy cały sprzęt jest już gotowy, czas go przetestować. Będziesz potrzebował interfejsu USB-MIDI (wiele interfejsów audio może to zrobić) i kabla MIDI. Port MIDI podłączony do płyty breadboard wysyła dane, więc jest to wyjście. Twój komputer odbiera dane, dlatego jest to dane wejściowe. Ten projekt wykorzystuje doskonałą Arduino MIDI Library v4.2 firmy Forty Seven Effects. Po zainstalowaniu biblioteki możesz dołączyć ją do kodu, przechodząc do Szkic> Uwzględnij bibliotekę> MIDI.

Będziesz także potrzebował programu do monitorowania przychodzących danych MIDI:

  • Monitor MIDI dla OS X
  • MIDI-OX dla Windows
  • KMidimon dla systemu Linux

Podłącz Arduino Pierwsze kroki z zestawem startowym Arduino - Instalowanie sterowników i konfigurowanie płyty głównej i portu Pierwsze kroki z zestawem Arduino Pierwsze kroki - instalowanie sterowników oraz konfigurowanie płyty głównej i portu Więc kupiłeś sobie zestaw startowy Arduino i ewentualnie jakieś inne losowe fajne komponenty - co teraz? Jak właściwie zacząłeś programować to Arduino? Jak to skonfigurować… na komputer i załadować następujący kod testowy (nie zapomnij wybrać właściwej płyty i portu z Narzędzia> Płyta i Narzędzia> Port menu).

#include #include #include #include #include MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // utwórz obiekt MIDI o nazwie midiOut void setup () Serial.begin (31250); // konfiguracja szeregowa dla MIDI void loop () midiOut.sendControlChange (56,127,1); // wyślij MIDI CC - 56 = nuta, 127 = prędkość, 1 = opóźnienie kanału (1000); // poczekaj 1 sekundę midiOut.sendProgramChange (12,1); // wyślij komputer MIDI - 12 = wartość, 1 = opóźnienie kanału (1000); // poczekaj 1 sekundę

Ten kod wyśle ​​wiadomość CC, poczekaj 1 sekundę, wyślij wiadomość PC, a następnie poczekaj 1 sekundę w nieskończoność. Jeśli wszystko działa poprawnie, na monitorze MIDI powinien pojawić się komunikat.

Jeśli nic się nie stanie, nie panikuj! Spróbuj rozwiązać problem:

  • Upewnij się, że wszystkie połączenia są prawidłowe
  • Sprawdź, czy port MIDI jest prawidłowo podłączony - na zewnętrznych krawędziach powinny znajdować się 2 zapasowe piny
  • Sprawdź dwukrotnie, czy obwód jest poprawny
  • Sprawdź, czy obwód jest podłączony do interfejsu USB-MIDI za pomocą kabla MIDI
  • Sprawdź, czy kabel MIDI jest podłączony do wkład na interfejsie USB-MIDI
  • Upewnij się, że Arduino ma moc
  • Zainstaluj odpowiedni sterownik dla interfejsu USB-MIDI

Jeśli jesteś nadal w razie problemów warto sprawdzić płytkę. Tanie tablice mogą czasem być bardzo niespójne i niskiej jakości - przydarzyło mi się to podczas pracy nad tym projektem.

Testowanie przycisku

Czas przetestować, czy przyciski działają poprawnie. Prześlij następujący kod testowy. MIDI nie musi być podłączony, aby przetestować tę część.

const int buttonOne = 6; // przypisz pin przycisku do zmiennej const int buttonTwo = 7; // przypisz pin przycisku do zmiennej void setup () Serial.begin (9600); // setup serial dla text pinMode (buttonOne, INPUT); // przycisk konfiguracji jako wejście pinMode (buttonTwo, INPUT); // przycisk konfiguracji jako wejście void loop () if (digitalRead (buttonOne) == HIGH) // sprawdź opóźnienie stanu przycisku (10); // oprogramowanie się odrzuci, jeśli (digitalRead (buttonOne) == HIGH) // sprawdź ponownie stan przycisku Serial.println („Button One Works!”); // opóźnienie wyniku dziennika (250);  if (digitalRead (buttonTwo) == HIGH) // sprawdź opóźnienie stanu przycisku (10); // oprogramowanie wycofuje odbicie, jeśli (digitalRead (buttonTwo) == HIGH) // sprawdź ponownie stan przycisku Serial.println („Button Two Works!”); // opóźnienie wyniku dziennika (250);  

Uruchom ten kod (ale nie odłączaj kabla USB) i otwórz Monitor szeregowy (W prawym górnym rogu> Monitor szeregowy). Po naciśnięciu przycisku powinieneś zobaczyć “Przycisk pierwszy działa!” lub “Przycisk drugi działa!” w zależności od naciśniętego przycisku.

Od tego przykładu jest jedna ważna uwaga - oprogramowanie się odrzuciło. Jest to proste 10 milisekundowe opóźnienie między sprawdzeniem przycisku a ponownym sprawdzeniem przycisku. Zwiększa to dokładność naciśnięcia przycisku i pomaga zapobiegać hałasowi wyzwalającemu Arduino. Nie musisz tego robić, chociaż jest to zalecane.

Tworzenie kontrolera

Teraz, gdy wszystko jest okablowane i działa, nadszedł czas, aby zmontować pełny kontroler.

Ten przykład wyśle ​​inną wiadomość CC dla każdego naciśniętego przycisku. Używam tego do kontrolowania Ableton Live 9.6 na OS X. Kod jest podobny do obu powyższych próbek testowych.

#include #include #include #include #include const int buttonOne = 6; // przypisz pin przycisku do zmiennej const int buttonTwo = 7; // przypisz pin przycisku do zmiennej MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // utwórz obiekt MIDI o nazwie midiOut void setup () pinMode (buttonOne, INPUT); // przycisk konfiguracji jako wejście pinMode (buttonTwo, INPUT); // przycisk konfiguracji jako dane wejściowe Serial.begin (31250); // konfiguracja wyjścia MIDI void loop () if (digitalRead (buttonOne) == HIGH) // sprawdź opóźnienie stanu przycisku (10); // oprogramowanie wycofuje odbicie, jeśli (digitalRead (buttonOne) == HIGH) // sprawdź ponownie stan przycisku midiOut.sendControlChange (56,127,1); // wyślij MIDI CC - 56 = nuta, 127 = prędkość, 1 = opóźnienie kanału (250);  if (digitalRead (buttonTwo) == HIGH) // sprawdź opóźnienie stanu przycisku (10); // oprogramowanie wycofuje odbicie, jeśli (digitalRead (buttonTwo) == HIGH) // sprawdź ponownie stan przycisku midiOut.sendControlChange (42, 127,1); // wyślij MIDI CC - 42 = nuta, 127 = prędkość, 1 = opóźnienie kanału (250);  

Uwaga - nie będziesz mógł używać Serial.println () z wyjściem MIDI.
Jeśli chcesz wysłać wiadomość PC zamiast CC, po prostu zamień:

midiOut.sendControlChange (42, 127,1);

Z:

midiOut.sendProgramChange (wartość, kanał); 

W akcji

Poniżej znajduje się demonstracja kontrolera dla Ableton Live (Najlepsze oprogramowanie DJ na każdy budżet Najlepsze oprogramowanie DJ na każdy budżet Najlepsze oprogramowanie DJ na każdy budżet Dobre oprogramowanie do miksowania może mieć wpływ na wydajność. Niezależnie od tego, czy używasz komputera Mac , Windows lub Linux, każdy poziom umiejętności i budżetu jest pokrywany, jeśli chcesz zacząć grać). Prawy górny róg pokazuje mierniki audio, a górny środkowy pokazuje przychodzące wiadomości midi (przez monitor MIDI w OS X).

Czy masz już kontroler MIDI?

Istnieje wiele praktycznych zastosowań niestandardowego kontrolera MIDI. Możesz zbudować rozległą jednostkę sterowaną nożnie lub elegancki kontroler studyjny. A jeśli jesteś zainteresowany zakupem, oto najlepsze kontrolery USB MIDI 9 najlepszych kontrolerów USB MIDI dla muzyków 9 najlepszych kontrolerów USB MIDI dla muzyków Poszukujesz kontrolera USB MIDI? Oto najlepsze kontrolery MIDI, które możesz teraz kupić, niezależnie od budżetu. możesz kupić.

Zdjęcie: Keith Gentry przez Shutterstock.com




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.