我希望能够从 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,我强烈建议不要受到任何类型的声音服务器的污染。