|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Andrey Kiselev 2:5020/400 21 Mar 2002 17:35:26 To : Zahar Kiselev Subject : Re: программный синтезатор и midi-редактор? -------------------------------------------------------------------------------- .RFC-Message-ID: <31lc7a.mpb.ln@127.0.0.1> .RFC-References: <2006943867@127.0.0.1> <1016662664@p1.f382.n5030.z2.ftn> From: Andrey Kiselev <dron@at1895.spb.edu> Zahar Kiselev <Zahar.Kiselev@p1.f382.n5030.z2.fidonet.org> wrote: ZK> Я так понимаю, что ALSA - это драйверы поддержки звуковой карты, а ZK> секвенсером обычно называют программу, управляющую миди-устройствами(Cubase ZK> в виндах например или тот же Rosegarden можно так назвать). При чем здесь ZK> ALSA ? Что - эти драйверы могут перенаправить то, что выводится в /dev/midi ZK> на вход программы(timidity)? Просто процитирую свою памятку. ALSA надо взять 0.5.x обязательно и timidity тоже возьми последний. Далее просто процитирую свою памятку. 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. ZK> В дебиане 2.2, где я с этим экспериментировал, версия 0.4.1i - ей и ZK> пользуюсь. А timidity(2.9.1, тоже из комплекта) вообще не понимает -iA - нет ZK> у него Обнови и то и другое. ZK> А в каком дистрибутиве Линукса все это происходило? Debian. -- Andrey V. Kiselev --- ifmail v.2.15dev5 * Origin: Scientific Research Center for Ecological Safety Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1722368744a4.html, оценка из 5, голосов 10
|