问题描述
我可以在 macOS 上播放和收听 MIDI 文件:
timidity song.mid
所以我想我的 MIDI 驱动程序正在工作。
但是,我在玩 mido
时听不到任何声音。这是我的代码:
import mido
def play(path: str):
file = mido.MidiFile(path)
with mido.open_output() as port:
for message in file.play():
port.send(message)
def list_devices():
print(mido.get_output_names())
# ['IAC Driver Bus 1','IAC Driver Bus 1'] if on macOS.
# ['Microsoft GS Wavetable Synth 0'] if on Windows.
if __name__ == '__main__':
play('song.mid')
# list_devices()
在 macOS 上,它似乎正在运行,只是听不见。没有错误信息。
在 Windows 上,相同的代码运行完美,我可以听到音乐。
我想知道为什么 mido
不能在 macOS 上播放。有没有人知道如何让它在 macOS 上运行?
解决方法
与Microsoft GS Wavetable Synth 不同,IAC Driver Bus 不是合成器。 这是一个总线,必须连接一些软件合成器。