Spisu treści:
- Krok 1: Zależności
- Krok 2: Skonfiguruj wartości wejściowe Midi
- Krok 3: Dodaj dodatkowe foldery z próbkami
- Krok 4: Dodaj i skonfiguruj dodatkowe próbki w nowych folderach
- Krok 5: Odniesienie do klawiatury numerycznej
Wideo: Automat perkusyjny Raspberry Pi: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Przykładowy sekwencer, za pośrednictwem Raspberry Pi + Pythona.
Sekwencer ma 4 polifonię i umożliwia użytkownikowi przechowywanie i podsłuchiwanie 6 różnych sekwencji, które mogą zmieniać w czasie rzeczywistym, oraz obsługuje możliwość zmiany między różnymi samplami.
Skrypt napisałem w sposób, który jest całkowicie obsługiwany z naprawdę każdym kontrolerem MIDI i dźwiękami. Używam 18 różnych banków dźwięków, po 16 próbek każdy, jednak dodawanie lub odejmowanie banków i próbek jest łatwe i nie wymaga wielu modyfikacji. Jeśli masz jakieś problemy, napisz do mnie e-mail: [email protected]
Znajdź kod na GitHub pod adresem:
Daj mi znać, jeśli go używasz, a zwłaszcza jeśli zrobisz z nim film!
Krok 1: Zależności
Ten program wymaga następujących (nie wbudowanych) modułów Pythona:
mido
pygame
numpy
Jednak Mido rzuca pewne komplikacje, ponieważ samo Mido wymaga kilku zależności. Aby upewnić się, że wszystkie zostaną zainstalowane, po prostu wpisz następujące polecenia w terminalu swojego Raspberry Pi (pomijając „$”) i wszystko będzie dobrze. Pozostałe moduły można zainstalować normalnie.
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get zainstaluj libasound-dev lub libasound2-dev
$ sudo apt-get zainstaluj libjack0
$ sudo apt-get zainstaluj libjack-dev
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev
$ sudo pip zainstaluj python-rtmidi
$ sudo pip zainstaluj mido
Krok 2: Skonfiguruj wartości wejściowe Midi
W głównym skrypcie Pythona istnieje tablica o nazwie noteList, która składa się z 16 liczb całkowitych (wiersz 165). Są to wartości nut MIDI, które nasz kontroler wysyła do Pi w celu wyzwalania dźwięków. Każdy kontroler midi jest jednak inny, więc jeśli nie masz również Akai LPD8, najprawdopodobniej będziesz musiał zmienić te wartości, aby pasowały do twojego urządzenia.
Repozytorium Github zawiera również inny skrypt o nazwie "midihelp.py", który został stworzony specjalnie do tego celu! Wszystko, co robi, to drukowanie na konsoli wartości wejściowych z pierwszego kontrolera MIDI rozpoznanego przez komputer. Wszystko, co musisz zrobić, to zastąpić te wartości w tablicy, jeśli różnią się od wartości zawartych w noteList.
Kolejność nut koreluje również z tym, który efekt dźwiękowy jest odtwarzany w folderze, więc miej to również na uwadze.
Krok 3: Dodaj dodatkowe foldery z próbkami
Przykładowe zestawy w skrypcie są przechowywane w folderach w tym samym katalogu, dokładnie tak, jak zestaw 808 znajduje się w pliku GitHub. W ten sposób mogę przechowywać różne zestawy próbek w folderach, które można łatwo uporządkować i zastąpić.
Jedyną rzeczą, którą można zmienić w samym skrypcie, jest zmienna foldNum, która po prostu informuje skrypt, ile jest folderów z próbkami. Obecnie skrypt ma wartość foldNum ustawioną na jeden, ponieważ w tym samym katalogu (zestaw 808) znajduje się tylko jeden podfolder (zestaw 808). Maksymalna liczba folderów, które skrypt może w tej chwili obsłużyć, to 18, czyli tyle, ile używam, jednak jest to dość trywialne zmień to, daj mi znać, jeśli potrzebujesz pomocy.
Nazwy folderów tak naprawdę nie mają znaczenia (o ile są różne), ponieważ Skrypt po prostu odczytuje ilość folderów w tym samym katalogu i pobiera w ten sposób ścieżki. Ważne są jednak same nazwy plików, o czym w następnym kroku.
Krok 4: Dodaj i skonfiguruj dodatkowe próbki w nowych folderach
Dźwięki są ładowane do samplera poprzez foldery w tym samym katalogu zawierające pliki.wav o nazwach ponumerowanych od 0 do 15. Zobacz dołączony folder 808 na przykład. KAŻDY podfolder z próbkami powinien wyglądać identycznie.
Indeks wejść MIDI w tablicy noteList odpowiada dokładnie nazwie pliku.wav.
Na przykład:
- kiedy uruchomisz nutę MIDI zapisaną w noteList[0], odtworzy się plik wav 0.wav.
- kiedy uruchomisz nutę MIDI zapisaną w noteList[8], odtworzy się plik wav 8.wav.
Zrobiłem to po części po to, aby każdy pojedynczy kontroler MIDI mógł być łatwo skonfigurowany do pracy ze skryptem, a także abym mógł łatwo rozszerzyć lub ograniczyć liczbę sampli i wejść, a także zorganizować pliki i skrypt tak, aby Na przykład dźwięki byłyby zawsze zapisywane jako 0.wav i były wyzwalane przez pierwszą nutę MIDI.
Wybrałem 16 wartości nieco arbitralnie, aby odpowiadały 16 wejściom na moim kontrolerze, więc jeśli wolisz stworzyć sekwencer z tylko 1 próbką lub z większą liczbą, wystarczy, że ponumerujesz odpowiednio pliki audio i odejmij lub dodaj liczby przechowywane w tablicy noteList, aby dopasować.
Jeśli dołączony zestaw 808 działa poprawnie, ale masz problemy z własnymi próbkami, rozwiązaniem najprawdopodobniej będzie zmiana częstotliwości próbkowania plików, aby dopasować częstotliwość próbkowania PyGame 22, 050 kHz i głębię bitową wynoszącą 16. Możesz to zrobić w Audacity lub dowolne inne oprogramowanie do edycji dźwięku. Stamtąd powinny działać idealnie!
Krok 5: Odniesienie do klawiatury numerycznej
Ok, w sekwencerze dzieje się wiele rzeczy, więcej niż początkowo miałem na myśli, więc wcisnąłem trochę w klawiaturę numeryczną, aby dopasować się do zwiększonej funkcjonalności. Mając to na uwadze, gwiazdka * i okres. oba działają jako klawisze funkcyjne.
REFERENCJA
GŁÓWNE FUNKCJE
[8] - Włącz i wyłącz metronom
[9] - Włącz i wyłącz tryb nagrywania
[Enter] - Sekwencja odtwarzania/pauzy
[0] - Usuń bieżącą notatkę w sekwencji
[Num Lock i *] – wyłącz
[MIDI Note and.] - Nie kwantyzuj do parzystych liczb
FUNKCJE TEMPO
[+] - Przyspieszenie kursu BPM
[-] - Kurs spowolnienia BPM
[+ i *] - Szybkie przyspieszenie BPM
[- i *] - Szybko zwolnij BPM
[+ i.] - Precyzyjne przyspieszenie BPM
[- i.] - Precyzyjne spowolnienie BPM
FUNKCJE SEKWENCJI
[1-6] Sekwencja przywołania 1-6
[1-6 i.] Sekwencja przechowywania 1-6
[0 i.] Wyczyść bieżącą sekwencję
ZMIANA FOLDERÓW PRZYKŁADOWYCH
[1-9 i *] - Zmień na pakiet próbek w folderach 1-9
[1-9 i * i.] - Zmień na pakiet próbek w folderach 10-18
WSKAZÓWKI DOTYCZĄCE SEKWENCJI:
-Wyczyść bieżącą sekwencję [0 i.] i zapisz ją w dowolnych sekwencjach, które chcesz usunąć z pamięci.
-Przywołaj sekwencję i zapisz ją pod innym numerem, aby ją skopiować.
Zalecana:
Domowy elektroniczny zestaw perkusyjny z Arduino Mega2560: 10 kroków (ze zdjęciami)
Domowy zestaw perkusji elektronicznej z Arduino Mega2560: To jest mój projekt Arduino. Jak zbudować zestaw e-perkusji z Arduino? Witaj drogi Czytelniku! - Po co robić taki projekt? Przede wszystkim dlatego, że jeśli lubisz tego typu rzeczy, proces pracy sprawi ci ogromną przyjemność. Po drugie, ponieważ jest to naprawdę tanie co
Bębny elektryczne / automat perkusyjny Makey Makey: 8 kroków
Makey Makey Electric Drums / Drum Machine: Ten samouczek dotyczący budowania zestawu elektrycznych bębnów jest wstępem do konkursu Makey Makey.Materiał będzie się różnić w zależności od dostępności i osobistych wyborów. z pianką/inne do tex
Prosty robot perkusyjny Arduino: 5 kroków
Prosty robot bębnowy Arduino: Przyznaję. Zrobiłem ten projekt z czystej nudy po kilkudniowym utknięciu w środku podczas serii małych, ale problematycznych śnieżyc. Patrząc na moje arduino, kilka serwomechanizmów i trochę taśmy, podstawowy pomysł na gównianego robota perkusyjnego zaczął
DIY bębny elektroniczne (wymagany moduł perkusyjny): 4 kroki
Elektroniczne bębny DIY (wymagany moduł perkusyjny): Tak więc w zeszłym roku musiałem zachować spokój dla moich współlokatorów, a jako perkusista wymagałem trochę powściągliwości. Surfowałem po Internecie i znalazłem kilka świetnych stron internetowych po przeczytaniu o zestawie perkusyjnym DIY na Hack-a-day i co wiesz, mon
Przenośny/getto Cyfrowy/elektroniczny zestaw perkusyjny Ukośnik/ukośnik: 7 kroków
Portable/ghetto Konfiguracja cyfrowej/elektronicznej perkusji Slash/slash: AKTUALIZACJA! Niedawno przerobiłem ten projekt w DUŻO bardziej profesjonalny sposób. https://www.instructables.com/id/less_ghettodiycrappy_electronic_drumset/check it out!video na ostatniej stronie … ok, więc geekboxjockey już zrobił świetną instrukcję dla