bool SynthRoute::pushMIDISysex(const Bit8u *sysexData, unsigned int sysexLen, MasterClockNanos refNanos) { recorder.recordSysex(sysexData, sysexLen, refNanos); AudioStream *stream = audioStream; if (stream == NULL) return false; quint64 timestamp = stream->estimateMIDITimestamp(refNanos); return qSynth.playMIDISysex(sysexData, sysexLen, timestamp); }
bool SynthRoute::pushMIDIShortMessage(Bit32u msg, MasterClockNanos refNanos) { recorder.recordShortMessage(msg, refNanos); AudioStream *stream = audioStream; if (stream == NULL) return false; quint64 timestamp = stream->estimateMIDITimestamp(refNanos); if (msg == 0) { // This is a special event sent by the test driver qint64 delta = qint64(timestamp - debugLastEventTimestamp); MasterClockNanos debugEventNanoOffset = (refNanos == 0) ? 0 : MasterClock::getClockNanos() - refNanos; if ((delta < debugDeltaLowerLimit) || (debugDeltaUpperLimit < delta) || ((15 * MasterClock::NANOS_PER_MILLISECOND) < debugEventNanoOffset)) { qDebug() << "M" << delta << timestamp << 1e-6 * debugEventNanoOffset; } debugLastEventTimestamp = timestamp; return false; } return qSynth.playMIDIShortMessage(msg, timestamp); }