Spisu treści:

Moduł syntezatora Raspberry Pi Stompbox: 6 kroków (ze zdjęciami)
Moduł syntezatora Raspberry Pi Stompbox: 6 kroków (ze zdjęciami)

Wideo: Moduł syntezatora Raspberry Pi Stompbox: 6 kroków (ze zdjęciami)

Wideo: Moduł syntezatora Raspberry Pi Stompbox: 6 kroków (ze zdjęciami)
Wideo: Synthesizer library (organ) on 6 different platforms: Pi Pico XIAO DaisySeed ESP32 ESP8266 Teensy4.1 2024, Lipiec
Anonim
Moduł syntezatora Raspberry Pi Stompbox
Moduł syntezatora Raspberry Pi Stompbox
Moduł syntezatora Raspberry Pi Stompbox
Moduł syntezatora Raspberry Pi Stompbox

Celem tego projektu jest umieszczenie w kostce modułu dźwiękowego opartego na Fluidsynth. Techniczno-brzmiący termin „moduł dźwiękowy” oznacza w tym przypadku urządzenie, które odbiera komunikaty MIDI (tj. wartość nuty, głośność, pitch bend itp.) i syntetyzuje rzeczywiste dźwięki muzyczne. Połącz to z kontrolerem MIDI - który jest ogromny, tani i często bardzo fajny (jak keytar!) - i masz syntezator, który możesz modyfikować i modyfikować bez końca, i zaprojektować w sposób, który pasuje do twojego stylu gry.

Ogólny przegląd tego projektu polega na tym, że bierzemy mały jednopłytkowy komputer linux (w tym przypadku Raspberry Pi 3), podłączamy znakowy wyświetlacz LCD, kilka przycisków i kartę dźwiękową USB (ponieważ wbudowany dźwięk Pi nie jest zbyt dobry) i wepchnij wszystko do kostek stompbox Hammonda 1590bb (takich jak te używane do efektów gitarowych) z kilkoma zewnętrznymi połączeniami dla USB MIDI, zasilania i wyjść audio. Następnie konfigurujemy wewnętrzne oprogramowanie do uruchamiania programu przy starcie, który uruchamia FluidSynth (doskonały, wieloplatformowy, darmowy syntezator oprogramowania), kontroluje LCD i pozwala nam zmieniać poprawki i ustawienia za pomocą przycisków.

Nie będę zagłębiać się w szczegóły tej konfiguracji krok po kroku (jest tam mnóstwo samouczków typu hej-zrobiłem-fajne-malinowe-pi-case), ale zamiast tego spróbuję skupić się na tym, dlaczego stworzyłem różne wybory w konstrukcji i projekcie, jak poszedłem. W ten sposób możesz, miejmy nadzieję, wprowadzać modyfikacje, które pasują do własnych celów, nie utknąwszy przy robieniu rzeczy, które później okazują się nieskuteczne.

AKTUALIZACJA (maj 2020): Chociaż ta instrukcja jest nadal świetnym miejscem do rozpoczęcia takiego projektu, wprowadziłem wiele ulepszeń zarówno po stronie sprzętu, jak i oprogramowania. Najnowszym oprogramowaniem jest FluidPatcher, dostępny na GitHub – sprawdź wiki, aby uzyskać wiele szczegółów na temat konfigurowania Raspberry Pi. Sprawdź moją stronę Geek Funk Labs, aby uzyskać ciągłe wiadomości i aktualizacje dotyczące SquishBox!

Kieszonkowe dzieci

Oto krótka lista (i wyjaśnienie) najważniejszych elementów:

  • Komputer Raspberry Pi 3 - Każdy jednopłytkowy komputer z systemem Linux może działać, ale Pi 3 ma wystarczającą moc obliczeniową, aby uruchomić Fluidsynth bez żadnych opóźnień i wystarczającą ilość pamięci, aby załadować duże czcionki dźwiękowe. Wadą jest to, że ma słaby dźwięk na pokładzie, więc potrzebujesz karty dźwiękowej USB. CHIP to alternatywa, którą badam (mniejsza powierzchnia, lepszy dźwięk, ale mniej pamięci/procesora)
  • Obudowa Hammonda 1590BB - sugeruję zakup takiej, która jest wstępnie malowana proszkowo, jeśli chcesz mieć kolor, chyba że malowanie stompboxów to coś, co lubisz. Przeglądałem wiele forów dyskusyjnych, ale wydaje mi się, że nie mam cierpliwości ani odpowiedniego rodzaju farby, ponieważ po dwóch próbach moje wyniki są całkiem takie sobie.
  • Karta dźwiękowa USB - Odpowiednią kartę można znaleźć dość tanio. Zgodnie z tym cudownym samouczkiem Adafruit (jednym z wielu), powinieneś trzymać się takiego, który używa chipsetu CM109 dla maksymalnej kompatybilności.
  • Znakowy wyświetlacz LCD - jest wiele różnych miejsc, w których można je uzyskać, ale wyprowadzenia wydają się dość standardowe. Upewnij się, że masz podświetlenie, abyś mógł zobaczyć swoje ustawienia podczas grania w zadymionych klubach.
  • Chwilowe przełączniki stompswitche (2) - Trochę trudniejsze do uzyskania, ale otrzymałem chwilowy zamiast przełączać, dzięki czemu mogłem mieć większą wszechstronność. Mogę symulować przełączanie w oprogramowaniu, jeśli chcę tego zachowania, ale w ten sposób mogę również mieć różne funkcje dla krótkiego dotknięcia, długiego naciśnięcia itp.
  • Adafruit Perma-Proto Hat for Pi - Pomogło mi to podłączyć wyświetlacz LCD i inne komponenty do portu ekspandera Pi bez zajmowania dużej ilości miejsca. Gdybym spróbował użyć zwykłej płyty perforowanej, musiałbym wystawać poza boki Pi, abym mógł połączyć się ze wszystkimi niezbędnymi pinami GPIO. Bardzo przydatne okazały się również obustronne poszycie i dopasowane otwory montażowe. W świetle tego była to naprawdę najtańsza opcja.
  • Złącza USB - 1 żeńskie typu B do zasilania i po dwa męskie i żeńskie typu A, za pomocą których można wykonać cienkie, elastyczne przedłużacze do połączeń wewnętrznych.
  • Gniazda audio 1/4" - Użyłem jednego stereo i jednego mono. W ten sposób stereo może być gniazdem słuchawkowym/mono lub po prostu przenosić lewy sygnał, jeśli podłączone jest drugie gniazdo.

Krok 1: Elektronika wewnętrzna

Elektronika wewnętrzna
Elektronika wewnętrzna
Elektronika wewnętrzna
Elektronika wewnętrzna
Elektronika wewnętrzna
Elektronika wewnętrzna

Podłączymy wyświetlacz LCD i powiązane z nim komponenty oraz przyciski do Pi Hat. Dodamy również gniazdo USB-B i USB-A, aby podłączyć odpowiednio zasilanie i urządzenie MIDI. Przenosimy port USB-A, ponieważ musimy użyć jednego z portów USB Pi, aby podłączyć kartę dźwiękową, którą chcemy mieć wewnątrz obudowy, więc nie możemy mieć portów USB równo z bokiem pudełka. Użyłem portu USB-B do zasilania, ponieważ czułem, że może wytrzymać więcej kary niż złącze zasilania micro-USB Pi, a ponadto nie mogłem znaleźć dobrej orientacji, w której złącze mogłoby znajdować się obok krawędzi pudełka.

Będziesz musiał użyć noża, aby wyciąć ślady między otworami, w których wlutujesz szpilki do gniazd USB. Tylko uważaj, aby nie przeciąć żadnych wewnętrznych ścieżek na płytce łączących inne piny - lub jeśli przypadkowo (tak jak ja) połączysz je ponownie za pomocą zworki. Piny Vcc i GND gniazda USB-B przechodzą odpowiednio do 5 V i GND na porcie ekspandera Pi. W ten sposób możesz zasilać swoją kostkę ładowarką do telefonu (zakładając, że ma wystarczający prąd - wydaje mi się, że 700mA działa, ale możesz chcieć więcej, aby mieć pewność, że port USB ma wystarczająco dużo soku do zasilania kontrolera) i kabel USB A-B.

Uważam, że długość kabla taśmowego działa naprawdę dobrze do łączenia rzeczy z dużą ilością pinów bez zbytniego spaghetti z drutu. Zrobiłem to, zamiast lutować męskie nagłówki do wyświetlacza LCD, a następnie lutować je do kapelusza, ponieważ czułem, że potrzebuję trochę swobody w ustawianiu wyświetlacza LCD, aby móc go ładnie wyśrodkować. Wyświetlacz LCD powinien być wyposażony w potencjometr, którego używasz do regulacji kontrastu - upewnij się, że umieściłeś go w miejscu, w którym nie będzie on zasłonięty przez wyświetlacz LCD, dzięki czemu możesz zrobić otwór w pudełku, aby go dosięgnąć i wyregulować kontrast raz wszystko jest zmontowane.

Zapoznaj się ze schematem, aby uzyskać szczegółowe informacje na temat tego, co i gdzie łączy się. Zauważ, że przyciski są podłączone do 3,3 V - nie 5 V! Piny GPIO są oceniane tylko na 3,3 V - 5 V spowoduje uszkodzenie procesora. Gniazdo USB-A jest podłączane do innego paska kabla taśmowego, który można następnie przylutować do wtyczki USB, którą podłączysz do jednego z portów USB Pi dla kontrolera MIDI. Odetnij dodatkowy metal z wtyczki, aby mniej wystawał, i użyj gorącego kleju do odciążenia - nie musi być ładna, ponieważ będzie schowana w pudełku.

Krok 2: Okablowanie wyjścia audio

Okablowanie wyjścia audio
Okablowanie wyjścia audio
Okablowanie wyjścia audio
Okablowanie wyjścia audio
Okablowanie wyjścia audio
Okablowanie wyjścia audio

Bez względu na to, jak mała karta dźwiękowa USB znajdziesz, ona lub jej wtyczka prawdopodobnie będą wystawać zbyt daleko od portów USB Pi, aby wszystko zmieściło się w pudełku. Przylutuj więc kolejne krótkie złącze USB z jakiegoś kabla taśmowego, wtyczek USB i gorącego kleju, jak pokazano na powyższym obrazku. Moja karta dźwiękowa wciąż była trochę zbyt masywna, aby zmieścić się w obudowie ze wszystkim innym, więc zdjąłem plastik i owinąłem go taśmą klejącą, aby nie zwierał się z innymi rzeczami.

Aby uzyskać dźwięk z karty dźwiękowej do gniazd 1/4", odetnij koniec kabla słuchawkowego 3,5 mm lub kabla AUX. Upewnij się, że ma 3 złącza - końcówkę, pierścień i tuleję (TRS), a nie 2 lub 4 Tuleja powinna być uziemiona, końcówka to zwykle prawy kanał, a pierścień (środkowy łącznik) zwykle lewy. Wystarczy podłączyć końcówkę i pierścień do dwóch monofonicznych (TS - końcówka, tuleja) jacków 1/4" i gotowe z nim, ale możesz uzyskać większą wszechstronność dzięki odrobinie dodatkowego okablowania. Znajdź gniazdo TS, które ma trzeci chwilowy kontakt, jak pokazano schematycznie na powyższym schemacie. Włożenie wtyczki przerywa ten styk, więc jak można miejmy nadzieję stwierdzić na podstawie diagramu, lewy sygnał trafi do gniazda TS, jeśli wtyczka jest włożona, i do pierścienia gniazda TRS, jeśli nie jest włożona wtyczka. W ten sposób można podłączyć słuchawki do gniazda stereo, pojedynczy kabel mono do gniazda stereo dla połączonego sygnału prawego/lewego (mono) lub kabel do każdego gniazda dla oddzielnych prawych i lewych wyjść (stereo).

Połączyłem styki uziemienia gniazd z przewodem wychodzącym z karty dźwiękowej, dzięki czemu wszystko w pudełku ma tę samą masę i unikam brzęczenia pętli uziemienia. Jednak w zależności od tego, do czego jesteś podłączony, może to mieć odwrotny skutek – więc możesz chcieć dołączyć przełącznik, który pozwoli ci podłączyć lub „podnieść” uziemienie na gniazdach 1/4”.

Krok 3: Przygotowanie obudowy

Przygotowanie obudowy
Przygotowanie obudowy
Przygotowanie obudowy
Przygotowanie obudowy
Przygotowanie obudowy
Przygotowanie obudowy

Ten krok obejmuje wycinanie otworów w pudełku na ekran, przyciski, złącza itp. oraz epoksydowanie dystansów w obudowie w celu zamontowania kapelusza Pi.

Rozpocznij od umieszczenia wszystkich komponentów w obudowie, aby upewnić się, że wszystko pasuje i jest odpowiednio zorientowane. Następnie dokładnie zmierz i zaznacz, gdzie zamierzasz zrobić dziury. Podczas wycinania okrągłych otworów polecam zacząć od małego wiertła i pracować do rozmiaru, którego potrzebujesz - łatwiej jest wyśrodkować otwór i mniej prawdopodobne jest, że wiertło się zatnie. Otwory prostokątne można wyciąć wiercąc otwór w przeciwległych rogach zamierzonego otworu, a następnie wyrzynarką do pozostałych dwóch rogów. Ta grubość aluminium faktycznie dobrze się tnie z wyrzynarką, o ile idziesz delikatnie. Kwadratowy pilnik jest bardzo pomocny przy wyrównywaniu narożników otworów. Spraw, aby otwory na wtyczki USB były nieco obszerniejsze, jeśli masz grube kable.

Dwustopniowa żywica epoksydowa (taka jak klej Gorilla Glue na zdjęciu) działa dobrze, aby przymocować wsporniki kapelusza do metalowej obudowy. Podrap powierzchnię obudowy i spód wsporników trochę wełną stalową lub śrubokrętem, aby żywica epoksydowa mogła lepiej chwycić. Zalecam przymocowanie wsporników do kapelusza Pi przed ich przyklejeniem, aby wiedzieć, że są ustawione prawidłowo – nie ma tu dużo miejsca na poruszanie się. Użyłem tylko trzech dystansów, ponieważ mój LCD był na drodze czwartego. Wymieszaj dwa składniki żywicy epoksydowej, wklej trochę na wsporniki i zamocuj je na miejscu. Unikaj poruszania się lub zmiany położenia części po więcej niż 10-15 sekundach, ponieważ połączenie będzie kruche. Daj mu 24 godziny na konfigurację, abyś mógł kontynuować pracę. Pełne utwardzenie zajmuje kilka dni, więc nie obciążaj niepotrzebnie więzi.

O ile nie chcesz robić innego hobby z malowania kostek gitarowych, sugeruję pozostawienie gołego aluminium (właściwie nie jest to zły wygląd) lub zakup pomalowanej obudowy. Farba nie chce wiązać się z metalem. Jeśli chcesz to wypróbować, przeszlifuj wszędzie, gdzie chcesz przykleić farbę, najpierw użyj dobrej farby do lakieru do karoserii samochodowej, nałóż kilka warstw żądanego koloru, a następnie pozostaw do wyschnięcia tak długo, jak to możliwe. Poważnie – maniacy na forach dyskusyjnych proponują takie rzeczy, jak pozostawienie go na trzy miesiące na słońcu lub w tosterze nastawionym na tydzień. Po zeszlifowaniu pomarszczonych, łuszczących się pozostałości po pierwszym malowaniu, w mojej drugiej próbie wciąż pojawiają się odpryski i wyżłobienia spowodowane takimi rzeczami, jak długopisy w mojej torbie koncertowej, a wykończenie można wgniecić paznokciem. Zdecydowałem się poddać i poszedłem na styl punkowy, używając markera białego do napisów.

Krok 4: Konfiguracja oprogramowania

Konfiguracja oprogramowania
Konfiguracja oprogramowania
Konfiguracja oprogramowania
Konfiguracja oprogramowania

Zanim wepchniesz wszystko do kostki stompbox i mocno ją przykręcisz, musisz skonfigurować oprogramowanie na Raspberry Pi. Proponuję zacząć od nowej instalacji Raspbian OS, więc pobierz najnowszą kopię ze strony Raspberry Pi Foundation i postępuj zgodnie z instrukcjami, aby zobrazować ją na karcie SD. Chwyć klawiaturę i ekran lub użyj kabla konsoli, aby zalogować się do swojego Pi po raz pierwszy i dostać się do wiersza poleceń. Aby upewnić się, że masz najnowsze aktualizacje oprogramowania i oprogramowania sprzętowego, wprowadź

aktualizacja sudo apt-get && aktualizacja sudo apt-get

sudo rpi-aktualizacja

Następnie chcesz się upewnić, że możesz używać Wi-Fi do ssh do Pi i wprowadzać modyfikacje, gdy jest zapięty w obudowie. Najpierw włącz serwer ssh, wpisując

sudo raspi-config

i przechodząc do "Opcji interfejsu" i włączając serwer ssh. Teraz dodaj sieć bezprzewodową do pi, edytując plik wpa_supplicant.conf:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

i dodając na końcu następujące wiersze:

sieć={

ssid="twoja-sieć" psk="twoje-hasło" }

Zastąp swoją sieć i swoje hasło powyżej wartościami dla dowolnej sieci, z którą chcesz domyślnie łączyć się z Pi – najprawdopodobniej router Wi-Fi w domu lub hotspot w telefonie lub laptopie działającym w trybie punktu dostępu. Inną alternatywą dla połączenia z Pi jest skonfigurowanie go jako punktu dostępu Wi-Fi, dzięki czemu możesz po prostu połączyć się z nim bez względu na to, gdzie jesteś. Interfejs, który napisałem poniżej, pozwala również na sparowanie innego urządzenia bluetooth z Pi, po czym można się z nim połączyć za pomocą portu szeregowego przez Bluetooth.

Aby zainstalować FluidSynth, wpisz

sudo apt-get install fluidsynth

Pliki dołączone do tego kroku zapewniają interfejs między kontrolkami stompbox a FluidSynth i powinny zostać skopiowane do katalogu /home/pi. Oto krótkie wyjaśnienie, co robi każdy plik:

  • squishbox.py - Skrypt Pythona, który uruchamia się i komunikuje z instancją FluidSynth, odczytuje dane wejściowe z przycisków stompbox i zapisuje informacje na wyświetlaczu LCD
  • config_squishbox.yaml - Plik konfiguracyjny w (głównie) czytelnym dla człowieka formacie YAML, który przechowuje ustawienia i informacje o poprawkach dla programu squishbox
  • fluidsynth.py - opakowanie Pythona, które zapewnia powiązania z funkcjami C w bibliotece FluidSynth, z wieloma dodatkowymi powiązaniami dodanymi przeze mnie, aby uzyskać dostęp do większej liczby funkcji FluidSynth
  • ModWaves.sf2 - Bardzo mały soundfont, który dostarczyłem, aby zademonstrować użycie i moc modulatorów w formacie Soundfont

Posiadanie skryptu Pythona konfigurującego proces FluidSynth i obsługującego wszystkie przyciski / LCD działa całkiem dobrze - komunikaty MIDI trafiają bezpośrednio do FluidSynth, a skrypt wchodzi z nim w interakcję tylko wtedy, gdy jest to konieczne.

Skrypt Pythona wymaga kilku bibliotek Pythona, które nie są domyślnie instalowane. Możesz je zainstalować bezpośrednio z Indeksu pakietów Pythona za pomocą poręcznego narzędzia pip:

sudo pip zainstaluj RPLCD pyyaml

Na koniec chcesz, aby Pi uruchamiał skrypt Pythona podczas rozruchu. Aby tak się stało, edytuj plik rc.local:

sudo vi /etc/rc.local

Wstaw następujący wiersz tuż przed ostatnim wierszem „exit 0” w pliku:

python /home/pi/squishbox.py &

Krok 5: Montaż końcowy

Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy

Przed włożeniem wszystkich elementów do pudełka, bardzo dobrym pomysłem jest podłączenie wszystkiego i upewnienie się, że oprogramowanie działa, jak pokazano na powyższych obrazkach. Obrazy 3-6 pokazują wszystkie poszczególne części i stopniowo, jak pasują do mojego pudełka. Wyświetlacz LCD jest właściwie utrzymywany na miejscu przez dociskane do niego przewody, ale możesz użyć gorącego kleju lub dodać więcej śrub mocujących, jeśli ci się to nie podoba. Pomarańczowa taśma klejąca na pokrywie pudełka ma zapobiegać zwarciom Pi z metalem.

Być może będziesz musiał poeksperymentować i zmienić konfigurację, aby dopasować elementy. Przytulny jest dobry - im mniej części kręci się w pudełku, tym lepiej. Ciepło nie wydaje się być problemem i nie miałem żadnych problemów z blokowaniem sygnału Wi-Fi przez obudowę. Na spodzie pudełka nie pokazano samoprzylepnych gumowych nóżek (można je znaleźć w sklepie z narzędziami), aby zapobiec przesuwaniu się podczas sesji stomp.

Uważaj na nieprzewidziane uderzenia/zgniecenia/zgięcia, gdy rzeczy są skręcone. Należy sprawdzić, czy po włożeniu kabli jest wystarczająco dużo miejsca na gniazda jack 1/4 - końcówki wystają nieco dalej niż styki gniazda. Ponadto w mojej konstrukcji zamontowałem Pi nieco za blisko krawędzi pudełka i wargi na pokrywie docisnął koniec karty SD i zatrzasnął ją - musiałem spiłować nacięcie w wardze, żeby tak się nie stało.

Krok 6: Użycie

Image
Image
Stosowanie
Stosowanie
Stosowanie
Stosowanie

Moduł dźwiękowy, który opisałem w tych krokach i uruchamianie dostarczonego powyżej oprogramowania, jest całkiem użyteczny i rozszerzalny po wyjęciu z pudełka, ale możliwych jest wiele modyfikacji/wariacji. Pokrótce opiszę tutaj interfejs - planuję go stale aktualizować w repozytorium github, gdzie mam nadzieję, że będę również miał zaktualizowaną wiki. Na koniec omówię, jak można modyfikować ustawienia, dodawać nowe dźwięki i wprowadzać własne modyfikacje.

Aby rozpocząć, podłącz kontroler USB MIDI do gniazda USB-A w pudełku, zasilacz 5 V do gniazda USB-B i podłącz słuchawki lub wzmacniacz. Po chwili na wyświetlaczu LCD pojawi się komunikat „squishbox v xx.x”. Gdy pojawi się numer i nazwa patcha, powinieneś być w stanie grać nuty. Krótkie naciśnięcia dowolnego przycisku zmieniają łatkę, przytrzymanie dowolnego przycisku przez kilka sekund powoduje przejście do menu ustawień, a przytrzymanie dowolnego przycisku przez około pięć sekund daje możliwość ponownego uruchomienia programu, ponownego uruchomienia Pi lub wyłączenia Pi (Uwaga: Pi nie odcina zasilania swoich pinów GPIO, gdy się zatrzymuje, więc wyświetlacz LCD nigdy się nie wyłączy. Po prostu odczekaj około 30 sekund przed odłączeniem go).

Opcje menu ustawień to:

  • Aktualizuj łatkę - zapisuje wszelkie zmiany, które wprowadziłeś w bieżącej łatce do pliku
  • Save New Patch - zapisuje aktualny patch i wszelkie zmiany jako nowy patch
  • Wybierz Bank - plik konfiguracyjny może zawierać wiele zestawów łatek, co pozwala przełączać się między nimi
  • Set Gain - ustaw ogólną głośność wyjścia (opcja 'gain' Fluidsynth), zbyt wysoka daje zniekształcone wyjście
  • Chorus/Reverb - zmodyfikuj ustawienia pogłosu i chóru bieżącego zestawu
  • MIDI Connect - spróbuj podłączyć nowe urządzenie MIDI, jeśli zmienisz je podczas działania programu
  • Bluetooth Pair - ustaw Pi w trybie wykrywania, aby móc sparować z nim inne urządzenie Bluetooth
  • Status Wifi - zgłoś aktualny adres IP Pi, abyś mógł się do niego ssh

Plik config_squishbox.yaml zawiera informacje opisujące każdą łatkę, a także takie rzeczy, jak routing MIDI, parametry efektów itp. Jest napisany w formacie YAML, który jest wielojęzycznym sposobem przedstawiania danych, które komputery mogą analizować, ale także -czytelny. Może stać się dość złożony, ale tutaj używam go tylko jako sposobu na przedstawienie struktury zagnieżdżonych słowników Pythona (tablice asocjacyjne/hasze w innych językach) i sekwencji (listy/tablice). Umieściłem wiele komentarzy w przykładowym pliku konfiguracyjnym i próbowałem go uporządkować, aby można było stopniowo widzieć, co robi każda funkcja. Zajrzyj i poeksperymentuj, jeśli jesteś ciekawy, i nie wahaj się zadawać pytań w komentarzach. Możesz wiele zrobić, aby zmienić dźwięki i funkcjonalność modułu, edytując ten plik. Możesz zdalnie zalogować się i edytować lub przesłać zmodyfikowany plik konfiguracyjny do Pi, a następnie ponownie uruchomić za pomocą interfejsu lub wpisując

sudo python /home/pi/squishbox.py &

w wierszu poleceń. Skrypt jest napisany, aby zabić inne uruchomione instancje samego siebie podczas uruchamiania, więc nie będzie żadnych konfliktów. Skrypt wypisze kilka ostrzeżeń w wierszu poleceń, gdy zostanie uruchomiony, gdy szuka urządzeń MIDI, aby się połączyć i szuka w różnych lokalizacjach czcionek dźwiękowych. Nie jest zepsuty, to tylko leniwe programowanie z mojej strony - mógłbym je złapać, ale twierdzę, że są diagnostyczne.

Po zainstalowaniu FluidSynth otrzymujesz również całkiem niezły darmowy soundfont FluidR3_GM.sf2. GM oznacza ogólne MIDI, co oznacza, że zawiera „wszystkie” instrumenty przypisane do powszechnie uzgodnionych presetów i numerów banków, dzięki czemu odtwarzacze MIDI odtwarzające pliki przy użyciu tej czcionki dźwiękowej będą w stanie znaleźć mniej więcej właściwy dźwięk dla fortepianu, trąbki, dudy itp. Jeśli chcesz więcej/innych dźwięków, możesz znaleźć wiele darmowych soundfontów w Internecie. Co najważniejsze, specyfikacja soundfontów jest powszechnie dostępna, w rzeczywistości jest dość potężna i istnieje wspaniały edytor open-source dla soundfontów o nazwie Polyphone. Dzięki temu możesz tworzyć własne soundfonty z surowych plików WAV, a także dodawać modulatory do swoich czcionek. Modulatory pozwalają na sterowanie wieloma elementami syntezy (np. obwiednią ADSR, obwiednią modulacji, LFO itp.) w czasie rzeczywistym. Plik ModWaves.sf2, który dołączyłem powyżej, stanowi przykład użycia modulatorów, aby umożliwić mapowanie rezonansu filtra i częstotliwości odcięcia na komunikat MIDI zmiany sterowania (który można wysłać za pomocą przycisku/suwaka na kontrolerze). Tutaj jest tak duży potencjał - idź się pobawić!

Mam nadzieję, że ten samouczek zaowocuje wieloma pomysłami i da innym dobre ramy do budowania własnych, unikalnych kreacji syntezatorowych, a także będzie wspierał stałą dostępność i rozwój dobrych soundfontów, specyfikację soundfontów i świetne darmowe oprogramowanie, takie jak FluidSynth i Polyphone. Konfiguracja, którą tutaj przedstawiłem, nie jest ani najlepszym, ani jedynym sposobem na połączenie czegoś takiego. Po stronie sprzętowej możliwymi modyfikacjami może być większe pudełko z większą liczbą przycisków, starsze (5-pinowe) wejście/wyjście MIDI i/lub wejścia audio. Skrypt Pythona można zmodyfikować (przepraszam za moje rzadkie komentowanie), aby zapewnić inne zachowania, które mogą ci lepiej odpowiadać - myślę o dodaniu trybu "efektów" do każdej łatki, w której będzie działał jak prawdziwy stompbox z przełączaniem ustawień na i wyłącz. Można również dodać dodatkowe oprogramowanie, aby zapewnić cyfrowe efekty dźwiękowe. Myślę też, że lepiej byłoby, gdyby Pi działało w trybie Wi-Fi AP, jak opisano powyżej, a następnie mogłoby nawet zapewnić przyjazny interfejs internetowy do edycji pliku konfiguracyjnego. Zachęcamy do publikowania własnych pomysłów/pytań/dyskusji w kanale komentarzy.

Chcę dać ogromne, mega rekwizyty twórcom FluidSynth i Polyphone za dostarczenie darmowego oprogramowania typu open source, którego wszyscy możemy używać do tworzenia wspaniałej muzyki. Uwielbiam to używać, a Ty to umożliwiłeś!

Zalecana: