有没有一种方法可以在不打开其他应用程序(例如garageband)的情况下播放midi声音?

问题描述 投票:0回答:1

我有下面的代码,我试图从 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)
python macos midi
1个回答
0
投票

您应该了解 MIDI 和音频之间的区别。这些东西完全不同。

MIDI 不是用来产生声音的。它只是为音乐设置的另一部分(合成器、DAW、采样器等)提供命令。所以你只需说“好吧,现在我想开始写笔记”。但该音符的启动方式取决于其他通过 MIDI 命令产生声音(音频)的软件。

所以你不能只用 MIDI 来从 MIDI 获取声音。需要使用软件来产生声音。

© www.soinside.com 2019 - 2024. All rights reserved.