Spisu treści:

Arduino Multi-track MIDI Loop Station: 6 kroków
Arduino Multi-track MIDI Loop Station: 6 kroków

Wideo: Arduino Multi-track MIDI Loop Station: 6 kroków

Wideo: Arduino Multi-track MIDI Loop Station: 6 kroków
Wideo: DIY Ableton Arduino MIDI Looper 2024, Grudzień
Anonim
Wielościeżkowa stacja pętlowa Arduino MIDI
Wielościeżkowa stacja pętlowa Arduino MIDI
Wielościeżkowa stacja pętlowa Arduino MIDI
Wielościeżkowa stacja pętlowa Arduino MIDI
Wielościeżkowa stacja pętlowa Arduino MIDI
Wielościeżkowa stacja pętlowa Arduino MIDI

Loop Station lub looper to zasadniczo narzędzie do odtwarzania w czasie rzeczywistym twoich instrumentalnych riffów (pętli). Nie ma służyć jako nośnik do nagrywania, ale instrument do kształtowania inspiracji bez rozpraszania uwagi (i ostatecznie do występów na żywo…).

Istnieje wiele pętli do nagrywania dźwięku, zarówno w postaci dedykowanego sprzętu (prawie każdy producent pedałów gitarowych ma swój własny produkt), jak i oprogramowania komputerowego (doskonały Linux Sooper Looper lub Windows Mobius, by wymienić najbardziej znane). Udało mi się znaleźć tylko kilka projektów dotyczących DIY nie-audio, ale looperów MIDI, co oznacza narzędzie do nagrywania zdarzeń MIDI i natychmiastowego odtwarzania ich w pętli; większość z tych projektów (mówię, że wszystkie) jest porzuconych lub utraconych… cóż, oto mamy kompletny projekt dla każdego!

Ta stacja pętli Arduino MIDI po prostu śledzi nadchodzące zdarzenia MIDI i odtwarza je. Musisz tylko nacisnąć pedał nagrywania, stworzyć swój najlepszy riff i zatrzymać nagrywanie, ponownie naciskając pedał. Super łatwe:)

Ten projekt opiera się na łatwym do znalezienia otwartym sprzęcie (Arduino DUE), oprogramowaniu (moje własne oprogramowanie układowe i Arduino IDE) i można go dostosować do własnych preferencji.

Zróbmy to!

PS: tak, jest super tanio!

Krok 1: Ograniczenia

Zanim zaczniesz kupować części sprzętowe do projektu, powiem ci, jakie są jego granice, abyś mógł zdecydować się iść do przodu lub zatrzymać się tutaj.

- ze względu na ograniczenia sprzętowe (w zasadzie pamięć Aduino DUE) domyślna maksymalna długość frazy jaką możesz nagrać jest ograniczona do 46 sekund.

- pętle nie mogą być przechowywane i odtwarzane po wyłączeniu. Możesz jednak wysłać je do komputera i zapisać.

- nie ma kwantyzacji nut.

- Obsługiwany jest zegar MIDI, ale na razie w fazie wstępnej.

- Nagrane komunikaty MIDI to nuty włączone, wyłączone, zmiany sterowania i pitch bend; inne komunikaty MIDI, takie jak after touch, zmiana programu, SysEx itp. są ignorowane.

- maksymalna polifonia jest domyślnie ustawiona na 10 (ponownie, limity pamięci Aduino DUE).

Z drugiej strony obsługiwane są strumienie MIDI z wielu różnych instrumentów, z których każdy transmituje na swoim własnym kanale; oznacza to, że możesz nagrywać wiele instrumentów MIDI jednocześnie, warstwowo lub z własną ścieżką (więcej profesjonalistów w następnym kroku;)).

Jeśli życie z tymi ograniczeniami wydaje się rozsądne (a tak jest dla mnie), to będziesz się z tym bardzo dobrze bawić;)

Krok 2: Jak to działa

Stacja pętli MIDI tutaj jest bardzo prosta w obsłudze. Działa w sposób podobny do tych sprzętowych stacji pętli audio, które każdy producent pedałów gitarowych ma we własnym katalogu.

1) Wybierz ścieżkę, na której chcesz nagrać sekwencję MIDI. Domyślnie wybrany jest utwór „jeden”, ale można go zmienić, naciskając jeden z przycisków utworów (po jednym dla każdego utworu).

2) Po pierwszym naciśnięciu przełącznika/pedału "REC" pętlacz jest włączony. Zaświeci się zielona dioda LED. Poczeka, aż twoja pierwsza nuta zostanie odebrana, zanim zacznie nagrywać właściwą sekwencję/riff.

3) Po zakończeniu sekwencji naciśnij ponownie przełącznik/pedał „REC”, aby zdefiniować rzeczywistą długość riffu. Zielona dioda LED zgaśnie. Pętla natychmiast rozpocznie odtwarzanie sekwencji MIDI. Jeśli osiągniesz maksymalny czas, nagrywanie zatrzyma się automatycznie, a sekwencja zacznie być odtwarzana w pętli.

4) Teraz możesz zdecydować o dogrywaniu sekwencji na bieżącej ścieżce lub wybrać nową ścieżkę i nagrywać na niej, naciskając przełącznik/pedał nożny „REC”. W obu przypadkach żółta dioda LED zaświeci się, nawet jeśli nowa ścieżka jest pusta, ponieważ jest to ścieżka „slave” (podrzędna do pierwszej zarejestrowanej ścieżki). Naciśnij ponownie, aby zatrzymać dogrywanie (żółta dioda gaśnie).

Dla tych, którzy czują się komfortowo ze stacjami pętli audio, ta sekwencja MIDI nazywa się „REC/PLAY/OVERDUB” i jest jedyną obsługiwaną.

Jeśli w dowolnym momencie uznasz, że ostatnie dogrywanie nie jest w porządku, możesz je usunąć, naciskając przełącznik „cofnij”/pedał nożny. Możesz wyczyścić cały bieżący utwór, przytrzymując wciśnięty pedał „REC” przez ponad 3 sekundy; możesz zresetować pętlę (reset oprogramowania) naciskając jednocześnie pierwsze trzy przyciski ścieżek lub usuwając wszystkie używane ścieżki.

Możesz wyciszyć/anulować wyciszenie utworu, naciskając przycisk bieżącego utworu.

Możesz wysłać PANIKĘ! wiadomość, naciskając przycisk paniki. Możesz nawet wysłać PANIKĘ! wiadomość, naciskając jednocześnie dwa pierwsze przyciski ścieżek.

Looper ma wbudowany prosty metronom: komunikat nutowy MIDI dla nuty numer „64” jest wysyłany z prędkością 100 BPM na kanale 10 (kanał, którego prawdopodobnie słucha twój automat perkusyjny). Możesz zwiększyć lub zmniejszyć tempo, obracając koder optyczny; naciskając przełącznik enkodera optycznego, możesz włączyć/wyłączyć metronom. Zauważ, że twój automat perkusyjny musi być ustawiony tak, aby odtwarzał dźwięk (werbel, bas lub inny preferowany dźwięk) po odebraniu nuty MIDI „64”, w przeciwnym razie metronom zostanie wyciszony.

Barebone wersję tej pętli MIDI można wymyślić za pomocą jednego przełącznika nożnego do rozpoczynania i zatrzymywania nagrywania. Przytrzymanie przełącznika wciśniętego przez ponad 3 sekundy spowoduje ponowną inicjalizację stacji pętli.

Jeśli chcesz zainwestować dodatkowy czas w rozwój sprzętu, dodanie przełączników i przycisków sprawi, że stacja pętli będzie bardziej elastyczna. Na zdjęciu jest jak skonfigurowałem moje cztery ścieżki (obsługiwanych jest do pięciu) w pełni funkcjonalna stacja pętlowa.

WAŻNA UWAGA: sprzęt na moich zdjęciach jest prototypem. Użyłem więcej gniazd jack niż potrzeba, ale tylko cztery przyciski dla ścieżek. Dzieje się tak, ponieważ kiedy zaczynałem projekt, nie byłem do końca pewien, jakie będą ostateczne wymagania.

Przyciski i przełączniki nożne są elektronicznymi odpowiednikami i można używać jednego zamiast drugiego; na moje potrzeby, ponieważ zawsze jest za mało miejsca na podłodze (cholernie cudowne pedały efektów;)), ograniczyłem pedały do pojedynczej funkcji REC.

Krok 3: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Zestawienie materiałów:

W pełni funkcjonalna 5-ścieżkowa stacja pętli MIDI

1x Arduino POWODU

7x chwilowych przycisków

1x etui z tworzywa sztucznego (użyłem etui o wymiarach 150 x 110 x 70 mm)

2x 5-pinowe żeńskie złącze DIN do montażu panelowego MIDI;

1x gniazdo jack do montażu na panelu 6,3 mm

1x dwustronna płyta perforowana 50x70 mm

5x 3mm LED (zielony)

1x dioda LED 3 mm (żółta)

1x enkoder optyczny

1x transoptor H11L1

1x dioda 1N4148

Rezystory 3x 1000 omów

Rezystory 3x 220 omów

Rezystory 10x 470 omów

Trochę lutownicy, trochę kabli, stacja lutownicza… i wolny czas:)

Czas potrzebny na wykonanie projektu: 6-9 godzin

Dlaczego nie ONZ?

Pierwsze testy (i działający kod startowy) zostały napisane na "zwykłej" płytce arduino UNO. Ta płyta ma limity pamięci RAM, które zmusiły mnie do zredukowania polifonii do "4", maksymalnej długości do mniej niż 4 sekund i rozdzielczości 40 ms przy max. To bez obsługi wielokanałowej. Usuwając również śledzenie prędkości, udało mi się wydłużyć czas nagrywania do 7 sekund.

Z UNO możesz wtedy stworzyć "działającą" stację pętli MIDI, ale bardzo ograniczoną.

Krok 4: Oprogramowanie

Oprogramowanie w dużym stopniu opiera się na bibliotece MIDI FortySevenEffects. Ta biblioteka jest świetna i sprawia, że tego rodzaju projekty są wykonalne nawet dla maniaków, którzy nie są programistami, takich jak ja.

Arduino IDE i jego społeczność to kolejna ważna część tego „sukcesu”.

Nie będę wdawał się w szczegóły jak wgrać szkic do swojego arduino DUE. Jeśli jest to twoje pierwsze doświadczenie z arduino IDE, najpierw przeczytaj to.

Napisałem dwie różne wersje kodu, oparte na dwóch zupełnie różnych podejściach.

Zasada działania wersji 1 polega na tym, że podczas nagrywania lub overdubbingu Arduino DUE sprawdza i zapisuje w swojej (ulotnej) pamięci obsługiwane zdarzenia MIDI (note on, note off, control change i pitch bend); Oś czasu jest kwantowana w odstępach co 20 ms, a odebrane wiadomości są odpowiednio zapisywane w tych szczelinach. Podczas odtwarzania zapisane komunikaty MIDI są wysyłane z powrotem do syntezatora z uwzględnieniem kwantyzacji czasu.

Zasadą działania wersji 2 jest natomiast „po prostu” rejestrowanie zdarzenia midi i czasu, w którym zdarzenie musi zostać wyzwolone. Wersja 2 ma inne ograniczenia niż wersja 1 (wymienione w poprzednim kroku). wypróbuj oba i użyj tego, który działa lepiej dla Ciebie.

Istnieje również wstępna obsługa zegara, ale będzie wymagała pewnych poprawek, aby działała tak, jak powinna. Kod zakłada, że nagrywasz pętlę 4/4 - 4 taktów (16 uderzeń).

Możesz dezaktywować zewnętrzny zegar przytrzymując wciśnięty przycisk "panika" podczas włączania chwytacza.

Kody są wgrywane TUTAJ. Wszędzie umieszczane są komentarze, aby można było naginać te oprogramowanie do woli;)

Krok 5: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Obwody MIDI IN i MIDI OUT są przedstawione na załączonych zdjęciach. Zauważ, że używane są TX1 i RX1, a nie TX0 i RX0.

Piny wejściowe Arduino DUE nie obsługują 5 V, ale 3,3 V; dlatego zamiast bardziej popularnego 6N138 zastosowano transoptor H11L1. Mam dowody na to, że użycie 6N138 w połączeniu z dzielnikiem napięcia w celu zmniejszenia napięcia sygnału przechodzącego do TX1, jak w moim pierwszym prototypie, może działać nieprawidłowo w niektórych konfiguracjach.

Diody LED są podłączone do pinów wyjściowych Arduino DUE za pośrednictwem rezystorów 470 Ohm. Możesz użyć rezystorów do 1K omów, aby zmniejszyć prąd płynący do diod LED i zmniejszyć ich jasność.

Przyciski/przełączniki/jack są bezpośrednio podłączone do pinów wejściowych Arduino dzięki wejściowym rezystorom pullup, aktywowanym na szkicu. Nie ma potrzeby stosowania zewnętrznych (pulldown) rezystorów.

Enkoder optyczny jest podłączony do GND i +5V. Przechodzi do pinów wejściowych Arduino, przechodząc przez 2 rezystory 480 omów, po jednym dla każdego optycznego wyjścia danych.

Arduino DUE jest zasilane bezpośrednio z pinu 5V i masy poprzez koncentrator +5V DC.

Wszystkie grunty są ze sobą powiązane.

Dołączona jest tablica z połączeniami z pinów arduino do urządzeń peryferyjnych IN/OUT. Numery pinów Arduino odzwierciedlają te w moim sprzęcie prototypowym i mogą wyglądać (są w jakiś sposób…) losowe. Możesz dowolnie modyfikować położenie pinezki w szkicu;)

Krok 6: Co jeśli mam więcej niż jedno źródło MIDI?

Co jeśli mam więcej niż jedno źródło MIDI?
Co jeśli mam więcej niż jedno źródło MIDI?

Po krótkich poszukiwaniach fuzji MIDI stwierdziłem, że najbardziej praktycznym (i tanim) rozwiązaniem jest przełącznik MIDI.

Przełącznik MIDI to urządzenie pasywne, które włącza źródło MIDI i wyłącza wszystkie inne źródła. Proste.

Sercem przełącznika MIDI jest przełącznik wielopozycyjny (mój jest 6-pozycyjny), 2-biegunowy. Bardzo ważne jest, aby liczba biegunów wynosiła „2”, ponieważ każde gniazdo MIDI musi być całkowicie odcięte, jeśli nie jest wybrane i nie jest w komunikacji z innymi. W załączeniu zdjęcie tego, które zrealizowałem na własny użytek.

Pod TYM LINKIEM schemat.

Zalecana: