diff --git a/src/plug/JK_MidiClock.cpp b/src/plug/JK_MidiClock.cpp index a8fb9d5..34685ee 100644 --- a/src/plug/JK_MidiClock.cpp +++ b/src/plug/JK_MidiClock.cpp @@ -183,12 +183,13 @@ void JK_MidiClock::generateMidiclock(const AudioPlayHead::CurrentPositionInfo &p if (m_sample_remain == 0) { m_sample_remain = clockDistanceInSamples; +#if 0 SynthDebug("posInBuffer : %d", posInBuffer); SynthDebug("clockDistanceInSamples_f (soll) : %f", clockDistanceInSamples_f); SynthDebug("hostPpqPosition : %f", hostPpqPosition); SynthDebug("hostPpqPosition (Q) : %f", getNearestInPPQ(hostPpqPosition, 96)); SynthDebug("hostSamplePos (Q) : %f", getNearestInPPQ(hostPpqPosition, 96) * quant); - +#endif midiBuffer->addEvent(*m_clockMessage, roundToInt(posInBuffer)); } } diff --git a/src/plug/JaySynth.cpp b/src/plug/JaySynth.cpp index 221febf..b41113d 100644 --- a/src/plug/JaySynth.cpp +++ b/src/plug/JaySynth.cpp @@ -1137,8 +1137,10 @@ void JaySynth::handleMidiEvent (const MidiMessage& m) if (m.isSongPositionPointer()) { SynthDebug("SongPositionPointer\n"); - m_clock_cnt_bar = (6 * m.getSongPositionPointerMidiBeat()) % m_numMidiClocksPerBar; - SynthDebug("getSongPositionPointerMidiBeat(): %u -> %u clocks\n", m.getSongPositionPointerMidiBeat(), m_clock_cnt_bar); + double bar_16 = 1 + ((double)m.getSongPositionPointerMidiBeat()/4); + double bar_4 = (bar_16 - (int)bar_16); + m_clock_cnt_bar = (int)(bar_4*4); + SynthDebug("getSongPositionPointerMidiBeat(): %f -> %u clocks", bar_4, m_clock_cnt_bar); } if (m.isQuarterFrame()) { @@ -1171,10 +1173,17 @@ void JaySynth::handleMidiEvent (const MidiMessage& m) info.bpm = (uint32_t)(bpm + 0.5); info.type = 1; + if (m_clock_cnt_bar == 0) { info.type = 2; + SynthDebug("1111111111111111111111111"); } + else + { + SynthDebug("-------------------------"); + } + listeners.call (&JaySynthListener::synthChanged, SYNTH_CHANGED_MIDICLOCK, &info); } }