我使用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显示了如何延迟发送消息: