如何让 rosegarden 在播放 midi 时播放声音?

如何让 rosegarden 在播放 midi 时播放声音?

如何让 rosegarden 在播放 midi 时播放声音?我需要运行 Jack 吗?

答案1

您不需要运行 Jack 就可以使用 Rosegarden 播放 MIDI。

我现在正在运行通过 Rosegarden 和 QSynth 播放 MIDI 文件。

从 Ubuntu 17.10 开始,这个过程大致相同就像这里,但请按照下列步骤操作:

  • 安装 QSynthapt-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 提示您时允许它重新启动
  • 安装Rosegardenapt-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 答案,使其无需打开两个不同的窗口即可工作,如下所示:

  1. 安装fluidsynthrosegarden以及相应的声音字体apt
  2. 将以下函数添加到~/.bashrcor ~/.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>
}
  1. 打开一个新终端:输入midy并加载 MIDI 文件,或者midy <PATH_TO_MIDI_FILE>,然后点击播放:rosegarden应该打开,并fluidsynth在后台播放该文件,而无需 Qsynth 窗口!

笔记:

  • 要测试它fluidsynth是否正常工作,您可以单独尝试相应的命令(在 之后fi),方法是在末尾添加 MIDI 文件的路径。它应该会播放该文件。

  • 就我而言,.sf2文件安装在/usr/share/sounds/sf2

  • 您可以通过检查找到更多man fluidsynth选项fluidsynth -o help

希望这能有所帮助!谢谢
Andres

相关内容