如何让 rosegarden 在播放 midi 时播放声音?我需要运行 Jack 吗?
答案1
您不需要运行 Jack 就可以使用 Rosegarden 播放 MIDI。
我现在正在运行通过 Rosegarden 和 QSynth 播放 MIDI 文件。
从 Ubuntu 17.10 开始,这个过程大致相同就像这里,但请按照下列步骤操作:
- 安装 QSynth
apt-get install fluidsynth
- 安装声音字体库
apt-get install fluid-soundfont-gs
Enable MIDI Input
通过选中以下复选框配置 QSynth:Setup > MIDI
- 配置 QSynth 使用
alsa
音频驱动程序Setup > Audio
- 配置 QSynth 以使用
Setup > Soundfonts
; 指向/usr/share/sounds/sf2/FluidR3_GM.sf2
或您的声音字体位置下的音效字体 - 当 QSynth 提示您时允许它重新启动
- 安装Rosegarden
apt-get install rosegarden
- 打开 Qsynth,启动 Rosegarden
- 告诉 Rosegarden 通过 QSynth 播放
Studio > Manage MIDI Devices
并将其设置General MIDI Device
为 QSynth 作为其 MIDI 输入选项广播的任何内容,即129:0 Synth input port
或类似内容。
答案2
这文档说:
Rosegarden 包含合成器插件,支持 MIDI 音轨的采样精确合成。
[…]
除了插件之外,Rosegarden 还可以使用 ALSA 音序器 MIDI 协议与任意数量的 Linux 独立软件合成器进行通信。
合成器插件通常非常专业;如果您想播放一些随机的 MIDI 文件,您可能需要一个通用的软件合成器,如 Fluidsynth 或 Timidity。
答案3
我调整了 Rosegarden+Qsynth 答案,使其无需打开两个不同的窗口即可工作,如下所示:
- 安装
fluidsynth
和rosegarden
以及相应的声音字体apt
- 将以下函数添加到
~/.bashrc
or~/.bash_aliases
:
midy() {
if [ -n "$1" ]; then
rosegarden "$1" &
else
rosegarden &
fi
fluidsynth -a alsa -m alsa_seq -o midi.autoconnect=True <PATH_TO_YOUR_SF2_FILE>
}
- 打开一个新终端:输入
midy
并加载 MIDI 文件,或者midy <PATH_TO_MIDI_FILE>
,然后点击播放:rosegarden
应该打开,并fluidsynth
在后台播放该文件,而无需 Qsynth 窗口!
笔记:
要测试它
fluidsynth
是否正常工作,您可以单独尝试相应的命令(在 之后fi
),方法是在末尾添加 MIDI 文件的路径。它应该会播放该文件。就我而言,
.sf2
文件安装在/usr/share/sounds/sf2
您可以通过检查找到更多
man fluidsynth
选项fluidsynth -o help
希望这能有所帮助!谢谢
Andres