Pliki SoundFont to wirtualne instrumenty obsługiwane przeważnie przy pomocy komunikatów MIDI. Pozwalają one na odtworzenie skomponowanej melodii z wykorzystaniem wybranego brzmienia. Format SF2 jest multiplatformowy, wspierany zarówno przez oprogramowanie, jak i sprzęt.
Instrukcja prezentuje podstawy tworzenia plików SoundFont w edytorze Smurf, a także przykładowy sposób wykorzystania SoundFontów w pracy z dźwiękiem w Linuksie.
W trakcie pracy lub zabawy z dźwiękiem nieuchronnie gromadzi się coraz większą liczbę plików SoundFont (*.sf2) - wirtualnych instrumentów obsługiwanych przeważnie przy pomocy komunikatów MIDI. Dzięki plikom SF2 możliwe jest odtworzenie skomponowanej melodii z wykorzystaniem wybranego brzmienia. Niekiedy imituje ono wiernie istniejące instrumenty, ale równie często stanowi nową barwę, opracowaną przez twórcę pliku. SoundFonty są szczególnie przydatne podczas pracy z sekwencerami MIDI i z programami typu tracker.
Rozpoczynając pracę z Linuksem nie musimy rezygnować z posiadanej kolekcji SoundFontów. Wręcz przeciwnie, będziemy mogli je edytować i wykorzystywać jako wirtualne instrumenty grające taką melodię, jaką im przekażemy. Dzięki programom Smurf, MusE i Qsynth pliki SF2 staną się równie potężnym narzędziem, jak w przypadku innych systemów operacyjnych.
Na samym początku zajrzyjmy do wnętrza SoundFontów i spróbujmy zmodyfikować ich zawartość. Posłuży nam do tego program Smurf - edytor plików SF2. Wchodzi on w skład niektórych dystrybucji, dostępne są ponadto pakiety binarne. Smurf nie był w ostatnim czasie aktualizowany, stąd też łatwo zdobędziemy jego najnowszą wersję. Warto również przyjrzeć się następcy Smurfa - aplikacji Swami (swami.sourceforge.net).
Smurf jest edytorem plików SF2 wzorowanym na programie Vienna SF Studio. Podobieństwo obu aplikacji sprawia, że użytkownicy systemu Windows mający doświadczenie w budowaniu SoundFontów bez problemu odnajdą się w Smurfie. Jedynie niektóre funkcje zrealizowane są w odmienny sposób. W artykule tym opiszę zatem tylko podstawy tworzenia plików SF2 oraz te elementy programu Smurf, które odbiegają od standardu wyznaczonego przez Vienna SF Studio. Użytkownicy zainteresowani szczegółami powinni zapoznać się z podręcznikiem The Art of SoundFont: A Step-by-Step Guide.
Po uruchomieniu programu Smurf stajemy przed wyborem - możemy otworzyć istniejący plik SF2 (polecenie File→Open) lub utworzyć nowy (File→New). Jeżeli zdecydujemy się na zbudowanie naszego własnego SoundFonta, to powinniśmy wykonać następujące czynności:
Nasz nowy SoundFont jest już gotowy. Pozostaje nam tylko zapisanie zmian. Z menu File wybierzmy Save i podajmy nazwę pliku SF2.
Nasze pierwsze SoundFonty nie będą zapewne brzmieć rewelacyjnie. Nie zrażajmy się tym. Dzięki programowi Smurf możliwe jest stworzenie plików SF2 doskonałej jakości - konieczne jest jednak przynajmniej minimalne doświadczenie.
Jeśli nie zamierzamy tworzyć własnych SoundFontów, ale jedynie korzystać z sampli zawartych w plikach SF2, to również pomoże nam Smurf. Po otwarciu SoundFonta rozwińmy podkatalog Samples i prawym klawiszem myszy kliknijmy wybraną próbkę. Z podręcznego menu należy wybrać Export i podać nazwę pliku WAVE, AU lub AIFF.
Kolejnym etapem pracy powinno być wykorzystanie plików SF2 w tworzonych nagraniach. Najlepiej wykorzystać w tym celu syntezator Fluidsynth. Jest to program działający z linii poleceń, zatem korzystnie będzie zainstalować również graficzną nakładkę opartą na bibliotekach Qt - Qsynth.
Ze zdobyciem syntezatora Fluidsynth nie powinniśmy mieć żadnych problemów. To popularna aplikacja, standardowo wchodząca w skład multimedialnych dystrybucji. Dostępne są również pakiety binarne.
W przypadku programu Qsynth nie unikniemy zapewne samodzielnej kompilacji źródeł, chociaż w Internecie można znaleźć również pakiety RPM z aplikacją. Ręczna kompilacja nie jest trudna, sprowadza się do wykonania
./configure
make
make install
i z reguły nie powoduje żadnych problemów. Wymagana jest obecność bibliotek Qt i syntezatora Fluidsynth.
Oprócz syntezatora wykorzystującego SoundFonty (Fluidsynth) potrzebny będzie jeszcze program wysyłający komunikaty MIDI sterujące plikami SF2. Dzięki niemu tandem Fluidsynth + Qsynth zagra dokładnie taką melodię, jaką zechcemy. W opisywanym przeze mnie przykładzie wykorzystam sekwencer MusE, ale możliwe jest użycie innych aplikacji.
Dźwięk generowany przez syntezator Fluidsynth popłynie do karty dźwiękowej i głośników komputera. Jeśli zechcemy zapisać go do pliku WAVE, to najrozsądniejszym wyjściem będzie skorzystanie z serwera dźwięku JACK, który przekaże dane audio do aplikacji rejestrującej (na przykład do programu Ardour). JACK przyda się również z innego powodu - dzięki niemu możliwe jest znaczące obniżenie opóźnień. Da to w efekcie szybszą reakcję poszczególnych programów i lepszą jakość dźwięku. Ma to ogromne znacznie, zwłaszcza podczas występów na żywo.
Krokiem poprzedzającym korzystanie z plików SoundFont powinno być uruchomienie serwera dźwięku JACK. Jeśli wystarcza nam system ALSA, to możemy pominąć ten etap.
Teraz należy uruchomić programy MusE i Qsynth (w dowolnej kolejności). W sekwencerze MIDI nagrajmy prostą melodię - na początku niech nie będzie ona polifoniczna. Teraz skonfigurujemy opcję wysyłania komunikatów MIDI z programu MusE. Z menu Config wybierzmy Midi Ports / Soft Synth. Do portu pierwszego (przy górnej krawędzi nowo otwartego okna) przypiszmy Synth input port (numer). Jeżeli teraz klikniemy przycisk odtwarzania znajdujący się w głównym oknie MusE, to dioda komunikatów MIDI widoczna w lewym dolnym narożu okienka Qsynth zacznie migotać. Nie usłyszymy jednak żadnego dźwięku - nie wybraliśmy bowiem jeszcze pliku SoundFont, który ma odegrać sekwencję MIDI.
Kliknijmy przycisk Setup... w oknie Qsynth. Można tutaj zmodyfikować parametry podsystemu dźwięku i MIDI. Domyślne ustawienia są z reguły poprawne, zwłaszcza jeśli program pobiera je z serwera JACK. Najważniejsza dla nas okaże się zakładka Soundfonts. Po kliknięciu klawisza Open... będziemy mogli wybrać plik SF2, który będzie wykorzystany w celu odtworzenia sekwencji MIDI.
Jeśli wybraliśmy już potrzebny SoundFont, to kliknijmy OK, a następnie Yes - Qsynth zrestartuje syntezator Fluidsynth i rozpocznie korzystanie z wybranego pliku SF2. Pozostało nam jeszcze ponowne zaglądnięcie do okienka Midi Ports / Soft Synth sekwencera MusE. Po raz drugi wybierzmy Synth input port (numer) - nie zważajmy na to, że Qsynth jest już poprawnie przypisany do odpowiedniego portu. Taką procedurę powinniśmy powtarzać po każdej zmianie wykorzystywanego pliku SoundFont.
Teraz wszystko powinno już działać poprawnie. W razie problemów warto sprawdzić ustawienia serwera JACK - najlepiej w programie Qjackctl. Upewnijmy się, że na karcie Audio wyjście qsynth przypisane jest do karty dźwiękowej (alsa_pcm). Z kolei na zakładce MIDI wyjście sekwencera MusE powinno być połączone z syntezatorem Fluidsynth.
Niektóre pliki SF2 mogą być niepoprawnie odtwarzane przez Fluidsynth. Problemy pojawiają się w przypadku polifonicznych ścieżek MIDI. Przyczyny mogą być bardzo różne - zła konfiguracja serwera JACK, przeciążenie procesora, czy błędy w plikach SF2. Na szczęście tego typu kłopoty są dosyć rzadkie - podczas przygotowywania tego tekstu nie napotkałem ich ani razu.
Na pewno niejednokrotnie będziemy chcieli skorzystać z kilku plików SoundFont jednocześnie lub naprzemiennie. W takiej sytuacji kliknijmy prawym klawiszem myszy w dolnej części okna Qsynth. Z menu podręcznego wybierzmy New.... Pojawi się jeszcze jedno okno Setup.... Możemy tutaj wybrać kolejne pliki SF2. Po zatwierdzeniu zmian zajrzyjmy do sekwencera MusE (polecenie Config→Midi Ports / Soft Synth). Znajdziemy tam jeszcze jedno urządzenie odbierające komunikaty MIDI (Synth input port (qsynth2)). Po jego wybraniu sekwencja odtworzona zostanie przy pomocy drugiego z wybranych SoundFontów.
Pozostaje jeszcze tylko skorzystać z efektów, które dostępne są z poziomu programu Qsynth. Pogłos i chorus pozwoli nam na wzbogacenie brzmienia plików SoundFont. Jeżeli eksperymenty okażą się niebezpieczne dla głośników i uszu, to wystarczy kliknąć Reset i Panic.
Opisana przeze mnie metoda korzystania z plików SF2 w systemie Linux jest tylko jednym z wielu możliwych sposobów. Warto poszukać programów, które z powodzeniem zastąpią wykorzystane przeze mnie aplikacje. Wygenerowane brzmienia można ponadto dowolnie modyfikować w innych programach obsługujących serwer JACK. Ze swojej strony proponuję wykorzystanie wtyczek LADSPA. Życzę też wszystkim Czytelnikom dobrej zabawy i efektywnej pracy z SoundFontami w Linuksie.
• Programy
• Artykuły
• Blog
• Forum
• Linki
• Kontakt