出自Linux Wiki
提示:此文已超过 12 年(4430 天)未更新,如发现内容过时或有误,欢迎改进:)
通常默认安装的Linux系统不能播放MIDI文件,但现在解决这一问题并不困难。
有必要简单先介绍一下MIDI格式:MIDI文件中保存的并不是原始的声音信号,而是音乐强度、音量、抖音等控制信息和音长等时间信息,或者说MIDI文件就是一个信息极为丰富的“乐谱”。将乐谱变为声音,比将声波还原成声音要困难的多,不同的软件、硬件还原的效果也不尽相同。Windows系统中包括了一个简单的MIDI合成器,所以在Windows中播放MIDI文件较为方便,但效果也不太好。
在Linux中播放MIDI的非专业软件主要有Timidity和FluidSynth,前者的设置相对容易,故本文针对前者做介绍。
提示:
使用FluidSynth播放MIDI的方法可以查看使用FluidSynth在Linux下聆听MIDI音乐。
安装Timidity++
Timidity++是一个将MIDI文件转化为声音波形的软件,转化的结果可以用于播放。它存在于多数发行版的软件仓库中,名称为'timidity或timidity++,安装方法请参见从软件仓库安装软件。
作为一个合成器,Timidity++还需要“声音字体(soundfont)”才能正常工作。
安装声音字体(soundfont)
Fluid提供了可用的声音字体Fluid (R3) General MIDI SoundFont (GM),在Debian/Ubuntu等发行版中,可以直接安装fluid-soundfont-gm软件包,如果使用Archlinux,则从AUR安装fluidr3。
安装好后,还要设置Timidity++使用Fluid,如可以在/etc/timidity++/timidity.cfg中注释掉所有行,并在行尾加入:
soundfont /usr/share/soundfonts/fluidr3/FluidR3GM.SF2
如果Fluid的安装路径不同,请相应修改后面的路径。
如果一切顺利,Timidity++现在就可以播放MIDI文件了:
$ timidity YOUR_MIDI_FILE
配置为ALSA服务
使用Timidity播放MIDI只支持命令行,还不太方便。而配置为ALSA服务后,就可以使用Audacious等软件播放MIDI了。
设置开机时启动timidity++或timidity服务就可以解决这一问题(运行命令timidity -iA可以临时解决这一问题)。
服务运行后,可以使用aconnect命令查看可用的MIDI端口
$ aconnect -o
client 128: 'TiMidity' [type=user]
0 'TiMidity port 0 '
1 'TiMidity port 1 '
2 'TiMidity port 2 '
3 'TiMidity port 3 '
看到以上输出后,就可以在多数播放器中播放MIDI文件了(可能需要做相应的设置,如设置Audacious的AMIDI插件使用128:0端口)
设置其它软件
DOSBox
这一设置方法在DOSBox 0.72中测试通过,请先确认Timidity已经以服务形式运行。
在DOSBox中输入如下命令,得到配置文件:
config -writeconf dosbox.conf
编辑它并对midi段做如下修改:
[midi]
mpu401=intelligent
device=default
config=128:0
在终端中重新启动DOSBox,如果正常的话应该能看到初始化128:0端口的调试信息。
参考资料
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。