|
发表于 2005-2-26 22:40:27
|
显示全部楼层
timidity也可当软波表
1. 装好alsa驱动
2. 安装 timidity
CFLAGS='-O3 -Wall -funroll-all-loops -march=i686 -pipe -ffast-math -fomit-frame-pointer' ./configure --enable-ncurses --enable-slang --enable-motif --enable-tcltk --enable-emacs --enable-vt100 --enable-xaw --enable-xskin --enable-gtk --enable-network --enable-spectrogram --enable-wrd --enable-alsaseq --enable-audio=oss,alsa,esd --enable-server
make
make install
3. 增加 timidity 的实时响应
chown root /usr/local/bin/timidity
chmod 4755 /usr/local/bin/timidity
4. 编辑 timidity 配置文件
# vi /usr/local/share/timidity/timidity.cfg
soundfont /home/programs/timidity/MagicSFver2.sf2
5. 用 timidity 当软波表
// 启动 timidity server
$ timidity -iA -B4,8 -Os &
Requested buffer size 4096, fragment size 1024
ALSA pcm 'default' set buffer size 4096, period size 1024 bytes
TiMidity starting in ALSA server mode
set SCHED_FIFO
Opening sequencer port: 128:0 128:1
// 查询可用 midi 端口
$ aconnect -lo
client 64: 'ESS ES1938 (Solo-1) MIDI' [type=kernel]
0 'ESS ES1938 (Solo-1) MIDI' (我的第一块声卡)
client 65: 'OPL3 FM synth' [type=kernel]
0 'OPL3 FM Port '
client 72: 'ES1371' [type=kernel]
0 'ES1371 ' (我的第二块声卡, 以下的是虚拟端口)
client 80: 'Virtual Raw MIDI 2-0' [type=kernel] (/dev/snd/midiC2D0)
0 'VirMIDI 2-0 '
client 81: 'Virtual Raw MIDI 2-1' [type=kernel] (/dev/snd/midiC2D1)
0 'VirMIDI 2-1 '
client 82: 'Virtual Raw MIDI 2-2' [type=kernel] (/dev/snd/midiC2D2)
0 'VirMIDI 2-2 '
client 83: 'Virtual Raw MIDI 2-3' [type=kernel] (/dev/snd/midiC2D3)
0 'VirMIDI 2-3 '
client 128: 'Client-128' [type=user]
0 'TiMidity port 0 ' (timidity alsa server)
1 'TiMidity port 1 '
// 虚拟 midi 端口(client 83)重定向到 timidity server
$ aconnect 83:0 128:1
Requested buffer size 4096, fragment size 1024
ALSA pcm 'default' set buffer size 4096, period size 1024 bytes
// 查看连接
$ aconnect -lo
client 64: 'ESS ES1938 (Solo-1) MIDI' [type=kernel]
0 'ESS ES1938 (Solo-1) MIDI'
client 65: 'OPL3 FM synth' [type=kernel]
0 'OPL3 FM Port '
client 72: 'ES1371' [type=kernel]
0 'ES1371 '
client 80: 'Virtual Raw MIDI 2-0' [type=kernel]
0 'VirMIDI 2-0 '
client 81: 'Virtual Raw MIDI 2-1' [type=kernel]
0 'VirMIDI 2-1 '
client 82: 'Virtual Raw MIDI 2-2' [type=kernel]
0 'VirMIDI 2-2 '
client 83: 'Virtual Raw MIDI 2-3' [type=kernel]
0 'VirMIDI 2-3 '
Connecting To: 128:1 (连接成功)
client 128: 'Client-128' [type=user]
0 'TiMidity port 0 '
1 'TiMidity port 1 '
Connected From: 83:0
这时得到一个 midi 设备 /dev/snd/midiC2D3
// 断开连接
aconnect -x |
|