linux上的播放器好像都不能直接播放midi格式的音乐,需要一些简单的配置。 这里使用的是archlinux系统,别的应该差不多。

参考ArchWiki

安装播放器

这里使用timidity++,能直接在命令行里使用的播放器,简单好用就行。

1
sudo pacman -S timidity++

配置声音组

把自己加到一个声音组里。(直译,不懂具体什么意思……)

1
gpasswd -a <user> audio

安装声音字体

midi本身只记录声音的基本信息,就像乐谱。SoundFonts好像和音源类似,提供具体的声音。

1
sudo pacman -S freepats-general-midi

当然不止这一种,别的详见ArchWiki。

还需要修改配置文件。在/etc/timidity++/timidity.cfg的末尾添加soundfont /usr/share/soundfonts/freepats-general-midi.sf2

启用服务

文档说执行

1
timidity -iA

然而我这样并不成功。不过可以自己添加一个服务。
新建/etc/systemd/user/timidity.service并写入:

1
2
3
4
5
6
7
8
9
[Unit]
Description=TiMidity++ Daemon
After=sound.target

[Service]
ExecStart=/usr/bin/timidity -iA -Os

[Install]
WantedBy=default.target

然后启动服务。

1
systemctl --user enable timidity.service

使用

好了,现在应该就可以了。如果不行的话试着重启一下终端。

1
timidity example.midi