linux midi端口,播放MIDI

出自Linux Wiki

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

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

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

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

b4be691399d570b9b40b09f30a06c3d2.gif提示:

使用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端口的调试信息。

参考资料

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

反馈与讨论

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值