如何访问和更改 Pygame.midi?
Posted
技术标签:
【中文标题】如何访问和更改 Pygame.midi?【英文标题】:How to access and change Pygame.midi? 【发布时间】:2021-04-06 19:39:17 【问题描述】:我正在使用 Pygame.midi,您可以从 127 种乐器中进行选择。
我想知道如何将 MIDI 乐器更改/添加到此列表中。
是否有任何地方的 pygame.midi 乐器列表,如果没有,pygame 使用哪些库来实际执行 midi?
我看到了一个叫做 PortMidi 的东西,我想知道这是否是 Pygame 使用的。
我只想知道如何访问 pygame.midi 并添加乐器。
【问题讨论】:
【参考方案1】:Pygame 不提供工具。它只是将 MIDI 命令发送到系统的内置合成器,通常是声卡的一部分。 MIDI 一次允许 127 种乐器。有一个名为“通用 MIDI”的标准试图定义 127 种乐器的基线,这可能就是您的系统正在使用的。
您使用“sysex”(系统专有)消息来告诉合成器更改乐器到通道的分配。 pygame 通过write_sys_ex
命令支持该功能,但您必须了解合成器的内部结构才能知道要发送哪些命令。
【讨论】:
有趣,这是否意味着不同机器上的仪器可能不一样?您如何建议我在使用 pygame.midi 的同时使用自定义乐器? 这确实意味着,是的。大多数原始设备都是从通用 MIDI 集开始的,所以你会得到大致的结果,但质量差异很大。如果有人将合成器作为他们的默认 MIDI 设备插入,这种情况可能会发生,那么所有的赌注都没有了。 您只能在合成器提供的乐器中进行选择。您不能在 MIDI 中加载自己的样本。以上是关于如何访问和更改 Pygame.midi?的主要内容,如果未能解决你的问题,请参考以下文章
使用 pygame.midi 播放 midi 音符时出现分段错误