In the following code (juce_mac_CoreMidi.cpp):
MidiPortAndCallback::handlePackets (const MIDIPacketList* const pktlist)
{
const double time = Time::getMillisecondCounterHiRes() * 0.001;
const ScopedLock sl (callbackLock);
if (activeCallbacks.contains (this) && active)
{
const MIDIPacket* packet = &pktlist->packet[0];
for (unsigned int i = 0; i < pktlist->numPackets; ++i)
{
concatenator.pushMidiData (packet->data, (int) packet->length, time,
input, callback);
packet = MIDIPacketNext (packet);
}
}
}
a single timestamp is taken using Time::getMillisecondCounterHiRes and used for all MIDIPackets in the list. Why not using the timeStamp field that actually exists in the CoreMIDI MIDIPacket definition ? (see CoreMIDI framework MIDIService.h header)