我有下面的代码,我试图从 python 应用程序在 mac 中播放音符。不幸的是,我注意到,听到声音的唯一方式是当车库带打开时。
有没有一种方法可以在不打开其他应用程序(例如 Garageband)的情况下播放 MIDI 声音? 我知道这在java中是可能的。
import time
import rtmidi as rtmidi
def open_midi():
midiout = rtmidi.MidiOut()
available_ports = midiout.get_ports()
if available_ports:
print("Available ports")
midiout.open_port(0)
else:
print("Openning virtual ports")
midiout.open_virtual_port("My virtual output")
return midiout
def play(note):
with open_midi() as midiout:
while True:
note_on = [0x90, note, 112] # channel 1, middle C, velocity 112
note_off = [0x80, note, 0]
midiout.send_message(note_on)
time.sleep(0.5)
midiout.send_message(note_off)
time.sleep(0.1)
del midiout
play(60)
您应该了解 MIDI 和音频之间的区别。这些东西完全不同。
MIDI 不是用来产生声音的。它只是为音乐设置的另一部分(合成器、DAW、采样器等)提供命令。所以你只需说“好吧,现在我想开始写笔记”。但该音符的启动方式取决于其他通过 MIDI 命令产生声音(音频)的软件。
所以你不能只用 MIDI 来从 MIDI 获取声音。需要使用软件来产生声音。