decoration Tag "midi" decoration

decoration
decoration
16.06 2007
16:47

Obsługa MIDI w Linuksie

Przygotowanie jądra


Przed przystąpieniem do kompilacji oprogramowania należy wcześniej przygotować odpowiednio jądro systemu. Należy tutaj zadbać by dźwięk w systemie działał w oparciu o sterowniki ALSA (nie testowałem tego rozwiązania na OSS, ale też powinno działać). Do poprawnego działania wymagane jest urządzenie /dev/snd/seq. Jeżeli znajduje się takie w naszym systemie, to prawdopodobnie można ominąć ten krok.


W przypadku, gdy nie posiadamy urządzenia snd/seq wpisujemy w katalogu ze źródłami jądra (np: /usr/src/linux) polecenie

 

make  menuconfig


a następnie przechodzimy do 'Device Drivers -> Sound -> Advanced Linux Sound Architecture' i zaznaczamy jako moduł, albo całkiem wkompilowywujemy 'Sequencer support'.

 


Następnie kompilujemy jądro i kopiujemy je do miejsca docelowego:

 

make && make  modules_install
cp  arch/i386/boot/bzimage /boot/vmlinuz[/c]


jeżeli wybraliśmy opcję jako moduł, każemy go załadować:

 

modprobe  snd-seq


oraz dopisujemy do pliku z automatycznie ładowanymi modułami (np. /etc/sysconfig/modules) linijkę:

 

snd-seq


co spowoduje załadowanie modułu przy każdym uruchomieniu systemu.

 

 

Kompilacja Timidity


Program Timidity można pobrać z oficjalnej strony: http://timidity.sourceforge.net/ (ok. 1,4MB). Rozpakowujemy archiwum, a następnie przechodzimy do kompilacji. Do konfiguracji użyłem parametrów:

 

./configure --prefix=/usr --enable-audio=alsa 
--enable-dynamic --enable-server --enable-alsaseq
make
make  install


Parametry konfiguracji można oczyłiście dobrać sobie ręcznie uprzednio zapoznając się z dołączoną dokumentacją, ważna jest natomiast opcja --enable-server, która pozwoli uruchomić Timidity jako serwer dźwięku MIDI.

 

Konfiguracja Timidity


Jeżeli kompilacja przebiegła pomyślnie, należy wybrać odpowiedni schemat dźwiękowy dla programu. Ja zdecydowałem się na shompatches. Pobrać można go z http://www.i.h.kyoto-u.ac.jp/~shom/timidity/shominst/shominst-0409.zip (ok. 10MB). Po pobraniu pliku przechodzimy do katalogu /usr/share/timidity. Jeżeli nie istnieje należy go utworzyć. Następnie rozpakowujemy tutaj pobrane wcześniej archiwum. Aby sprawdzić, czy pliki rozpakowały się poprawnie wydajemy polecenie:

 

ls /usr/share/timidity


i powinniśmy otrzymać podobną listę plików:

 

default.cfg     gsdrum.cfg     mt32.cfg     sfx.cfg     timidity.cfg
gsdrum25.cfg     inst     power.cfg     shominst-0409.zip


Następnie otwieramy plik /usr/share/timidity/timidity.cfg i poprawiamy w nim odpowiednio ścieżki:

 

dir /usr/share/timidity/inst/GUS
dir /usr/share/timidity/inst
dir /usr/share/timidity/inst/test


Aby przetestować, czy wszystko działa poprawnie uruchamiamy serwer:

 

timidity -iA


oraz ewentualnie wybrany plik midi:

 

timidity m4129.mid

 

 

Skrypt startowy


Aby nie trzebabyło uruchamiać za każdym razem serwera ręcznie warto utworzyć skrypt startowy, który załaduje go automatycznie przy starcie systemu. Nie mogę tutaj podać konkretnej treści pliku, bo różne dystrybucje używają różnych lokalizacji tych plików oraz różnych sposobów uruchamiania. Najczęściej pliki startowe znajdują się w katalogu /etc/init.d/ lub /etc/rc.d/init.d/. Polecam skopiować pod inną nazwą działający skrypt, a następnie zmodyfikować go podając jako parametr uruchomienia komendę:

 

/usr/bin/timidity -iA > /dev/null &


oraz jako polecenie na przerwanie skryptu:

 

killall  timidity


Następnie utworzyć dowiązania symboliczne do odpowiednich poziomów uruchamiania (rc5.d, rc6.d). Aby przetestować, czy skrypt działa poprawnie, polecam ponownie uruchomić komputer. Jeżeli nie udało się uruchomić serwera przy starcie należy sprawdzić, czy prawidłowo został dopisany wiersz z modułem snd-seq, bo często to jest źródłem problemu dla startu serwera.


Poniżej jeszcze zdjęcie pokazujące, że serwer Timidity poprawnie jest rozpoznawany przez Wine:

 

 



Copyleft (C) tom000.info 2004-2010. Some rights reserved.