我使用JUCE框架在C++中制作了一个小工具。
它发出MIDI,但我遇到了问题。
我想发送和弦信息到我的DAW,方法是先在留言中发送一个音符,然后再留言。 noteOn代码如下所示:

        void MainContentComponent::handleNoteOn (MidiKeyboardState*, int
        midiChannel, int midiNoteNumber, float velocity)
        {
            timestamp = (Time::getMillisecondCounterHiRes() * 0.001);
            MidiMessage m (MidiMessage::noteOn  (midiChannel, midiNoteNumber , velocity));
            MidiMessage m2 (MidiMessage::noteOn  (midiChannel, midiNoteNumber + 3, velocity));
            MidiMessage m3 (MidiMessage::noteOn (midiChannel, midiNoteNumber + 7, velocity));
            m.setTimeStamp (timestamp);
            m2.setTimeStamp (timestamp);
            m3.setTimeStamp (timestamp);
            sendToOutputs (m);
            sendToOutputs (m2);
            sendToOutputs (m3);

            handleNoteOff(midiChannel, midiNoteNumber, velocity)
        }

问题在于,在“on note”消息之后紧随其后的是“note off”消息。我想在音符开启和音符关闭消息之间延迟。
关于如何做到这一点的任何想法?我当时在考虑延迟选项,但据我所知,它们将冻结整个程序。 JUCE内置有什么可以帮助我的吗?我无法在线找到它。

最佳答案

JUCE的Tutorial: The MidiMessage class显示了如何延迟发送消息:

08-27 14:43