> >TiMidity++ также можно прикрутить к ALSA и использовать вместо > >синтезатора звуковой карты. > > > спасиба буду разбиратся а timidity я давно пользуюсь если надо > mid в pcm конвертить. Просто ведь всетаки сбливе у него апаратное > миди поетому для плея охото юзать его. И интегрировать это в
Лично мне синтез через Timidity нравится больше. Про это у меня тоже есть рассказка, см. ниже. Никто не мешает использовать оба способа одновременно и включать их по вкусу в разных приложениях. > систему чтоб всякие muse работали и еще не охота чета алсовские > дрова юзать, чета мне в свое время не понравилось отсутствие > регулировки тембра в них так я на них и забил, хотя сейчас это > вроде как уже есть. Это давно есть. Программный синтезатор для проигрывания MIDI-музыки TiMidity++ http://www.goice.co.jp/member/mo/timidity/ Для работы требуются ``патчи'' (.pat) с сэмплами для Gravis Ultrasound, либо ``звуковые шрифты'' для карт Creative (в формате .sf2 или .sbk). В Debian пакет с патчами называется timidity-patches. Другой набор GUS-патчей (Eawpatches) можно найти здесь: http://www.goice.co.jp/member/mo/timidity/ Звуковые шрифты загружаются так (следующую строку надо добавить в конфигурационный файл): ------------------------Cut here-------------------------------------- soundfont <файл_шрифта> [order=0|1] ------------------------Cut here-------------------------------------- Если параметр `order' установлен в 0, то поиск требуемого сэмпла вначале происходит в файле звукового шрифта, и если он не найден, то в патчах GUS, а если в 1, то наоборот. Можно указывать конфигурационный параметры в командной строке: timidity -x "soundfont <файл_шрифта>" <файл.mid> TiMidity++ может выступать в качестве клиента для секвенсера ALSA (при установленных драйверах ALSA, само собой). Для этого надо запускать так: timidity -iA -B2,8 В файле /proc/asound/seq/clients появится информация о клиенте TiMidity. ---------------------Start of /proc/asound/seq/clients--------------------------- Client info cur clients : 5 peak clients : 5 max clients : 192 Client 0 : "System" [Kernel] Port 0 : "Timer" (system:Rwe:Rwe-) Port 1 : "Announce" (system:R-e:R-e-) Connecting To: 63:0 Client 63 : "OSS sequencer" [Kernel] Port 0 : "Receiver" (system:-we:-we-) Connected From: 0:1 Output pool : Pool size : 1024 Available cells : 1024 Cells in use : 0 Peak cells in use : 352 Alloc success : 11538 Alloc failures : 0 Alloc no-pool : 0 Client 64 : "External MIDI 0" [Kernel] Port 0 : "MIDI 0-0" (device:RWe:RWeX) Client 65 : "Emu10k1 WaveTable" [Kernel] Port 0 : "Emu10k1 Port 0" (device:-We:-We-) Port 1 : "Emu10k1 Port 1" (device:-We:-We-) Port 2 : "Emu10k1 Port 2" (device:-We:-We-) Port 3 : "Emu10k1 Port 3" (device:-We:-We-) Client 128 : "Client-128" [User] Port 0 : "TiMidity port 0" (device:-We:-We-) Port 1 : "TiMidity port 1" (device:-We:-We-) Input pool : Pool size : 200 Available cells : 200 Cells in use : 0 Peak cells in use : 94 Alloc success : 591 Alloc failures : 0 Alloc no-pool : 0 ---------------------End of /proc/asound/seq/clients---------------------------- Теперь можно слушать MIDI, например так: pmidi -p128:0 <файл.mid> Возможно также пользоваться программами, работающими с секвенсером OSS. В файле /proc/asound/seq/oss можно узнать номер, назнвченный устройству TiMidity: -----------------------Start of /proc/asound/seq/oss---------------------------- OSS sequencer emulation version 0.1.8 ALSA client number 63 ALSA receiver port 0 Number of applications: 0 Number of synth devices: 1 synth 0: [Emu10k1] type 0x1 : subtype 0x20 : voices 64 capabilities : ioctl enabled / load_patch enabled Number of MIDI devices: 7 midi 0: [MIDI 0-0] ALSA port 64:0 capability read/write / opened none midi 1: [Emu10k1 Port 0] ALSA port 65:0 capability write / opened none midi 2: [Emu10k1 Port 1] ALSA port 65:1 capability write / opened none midi 3: [Emu10k1 Port 2] ALSA port 65:2 capability write / opened none midi 4: [Emu10k1 Port 3] ALSA port 65:3 capability write / opened none midi 5: [TiMidity port 0] ALSA port 128:0 capability write / opened none midi 6: [TiMidity port 1] ALSA port 128:1 capability write / opened none ------------------------End of /proc/asound/seq/oss----------------------------- Команда playmidi -e -D5 <файл.mid> будет работать через TiMidity. Музыкальный сервер для DOOM в этом случае запускается так: musserv.bin -m -u 5 Эту команду можно поместить в скрипт `musserv' и указать на него в параметре `musserver' конфигурационного файла (в случае lxdoom). Именно так и сделано по умолчанию. В Debian можно запускать TiMidity++ в этом режиме с помощью такого скрипта: -----------------------Start of /etc/init.d/timidity---------------------------- #! /bin/sh # # timidity Script for TiMidity ALSA sequencer client starting # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/timidity NAME=timidity DESC="TiMidity ALSA sequencer client" ARGS="-iA -B2,8" test -f $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --make-pidfile --pidfile /var/run/$NAME.pid \ --background --exec $DAEMON -- $ARGS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON echo "$NAME." ;; restart|force-reload) sh $0 stop sh $0 start ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 ------------------------End of /etc/init.d/timidity----------------------------- При этом следует запускать TiMidity от имени суперпользователя, для того, чтобы программа могла установить себе наивысший приоритет. Иначе возможны перерывы в проигрывании, например, при обращении к содержимому /proc. -- Andrey V. Kiselev Scientific Research Center for Ecological Safety Russian Academy of Sciences Office phone: +7 812 2307834 ICQ UIN 26871517