启用软件 MIDI 输出以与 pygame 一起使用

启用软件 MIDI 输出以与 pygame 一起使用

我希望能够从 pygame.midi 模块播放 MIDI 音符,类似于 Windows。我相信这意味着设置某种软件/虚拟 MIDI 输出设备。 Fluidsynth 似乎能够满足我的需要,但我不确定如何配置它。我正在使用 KDE Neon。

编辑:这是我通常如何使用 Pygame 设置 MIDI。

from pygame import midi
midi.init()
t=midi.Output(midi.get_default_output_id())

答案1

您首先应该确保内核已正确配置。 (提供了必要的驱动程序),并且为您的用户进行了适当的配置。
在任何终端下,fire amidi-l,都应该列出几个设备。就像我的一样:

acoswt@Tux ~ $ amidi -l
Dir Device    Name
IO  hw:1,0    Virtual Raw MIDI (16 subdevices)
IO  hw:1,1    Virtual Raw MIDI (16 subdevices)
IO  hw:1,2    Virtual Raw MIDI (16 subdevices)
IO  hw:1,3    Virtual Raw MIDI (16 subdevices)
IO  hw:2,0    M Audio Audiophile 24/96 MIDI

那么,你是对的,你需要一些软件合成器,比如流体合成器。所以只需安装它(与任何 sf2 兼容的 soundfount 一起安装,最好至少是一些通用的 midi 兼容字体)。
我建议你也安装q合成器(一个可以简化您在 FluidSynth 上的体验的 GUI)

然后启动fluidsynth之后,然后你的pygame,你必须使用连接将一些 pygame midi 输出端口(通过 获取端口号aplaymidi -l)连接到一些 Fluidsynth midi 输入端口。 (通过arecordmidi-l获取端口号)

当然,由于您将直接使用 alsa,我强烈建议不要受到任何类型的声音服务器的污染。

相关内容