播放MIDI

此页由Linux Wiki用户Chenxing于2009年3月14日 (星期六) 05:59的最后更改。

出自Linux Wiki

提示:此文已超过 6 年(2280 天)未更新,如发现内容过时或有误,欢迎改进:)

通常默认安装的Linux系统不能播放MIDI文件,但现在解决这一问题并不困难。

有必要简单先介绍一下MIDI格式:MIDI文件中保存的并不是原始的声音信号,而是音乐强度、音量、抖音等控制信息和音长等时间信息,或者说MIDI文件就是一个信息极为丰富的“乐谱”。将乐谱变为声音,比将声波还原成声音要困难的多,不同的软件、硬件还原的效果也不尽相同。Windows系统中包括了一个简单的MIDI合成器,所以在Windows中播放MIDI文件较为方便,但效果也不太好。[1]

在Linux中播放MIDI的非专业软件主要有TimidityFluidSynth,前者的设置相对容易,故本文针对前者做介绍。[2]

Hint.gif
提示:
使用FluidSynth播放MIDI的方法可以查看使用FluidSynth在Linux下聆听MIDI音乐

目录

安装Timidity++

Timidity++是一个将MIDI文件转化为声音波形的软件,转化的结果可以用于播放。它存在于多数发行版的软件仓库中,名称为'timiditytimidity++,安装方法请参见从软件仓库安装软件

作为一个合成器,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已经以服务形式运行。[2]

DOSBox中输入如下命令,得到配置文件:

config -writeconf dosbox.conf

编辑它并对midi段做如下修改:

[midi]
mpu401=intelligent
device=default
config=128:0

在终端中重新启动DOSBox,如果正常的话应该能看到初始化128:0端口的调试信息。

参考资料

  1. 维基百科上对MIDI的介绍
  2. 2.0 2.1 Arch Wiki上对Timidity设置的介绍

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换