fixing MidiClock (Zwischenstand)

This commit is contained in:
2025-08-16 14:16:13 +02:00
parent e3fb2074f6
commit 159fa60b08
2 changed files with 180 additions and 149 deletions
+22 -19
View File
@@ -23,14 +23,14 @@ class JK_MidiClock
public:
JK_MidiClock();
void setPositionJumpThreshold(const double ms) {posChangeThreshold = ms / 1000.0;}
double getPositionJumpThreshold() {return posChangeThreshold;}
void setFollowSongPosition(const bool shouldFollow) {followSongPosition = shouldFollow;}
bool getFollowSongPosition() {return followSongPosition;}
void setOffset(const int offset) {ppqOffset = offset;}
int getOffset() {return ppqOffset;}
void setPositionJumpThreshold(const double ms) {m_posChangeThreshold = ms / 1000.0;}
double getPositionJumpThreshold() {return m_posChangeThreshold;}
void setFollowSongPosition(const bool shouldFollow) {m_followSongPosition = shouldFollow;}
bool getFollowSongPosition() {return m_followSongPosition;}
void setOffset(const int offset) {m_ppqOffset = offset;}
int getOffset() {return m_ppqOffset;}
void generateMidiclock(AudioPlayHead::CurrentPositionInfo &lastPosInfo,
void generateMidiclock(const AudioPlayHead::CurrentPositionInfo &lastPosInfo,
MidiBuffer* midiBuffer,
const int bufferSize,
const double sampleRate);
@@ -45,21 +45,24 @@ private:
}
bool wasPlaying;
double syncPpqPosition;
double posChangeThreshold;
double ppqToStartSyncAt;
bool followSongPosition;
uint8 syncFlag;
int ppqOffset;
bool m_wasPlaying;
double m_syncPpqPosition;
double m_posChangeThreshold;
double m_ppqToStartSyncAt;
bool m_followSongPosition;
uint8 m_syncFlag;
int m_ppqOffset;
double m_last_sample_pos_sync;
double m_last_ppq_pos_host;
double m_last_syncPpqPosition;
double m_syncSamplePos;
static const int cycleEnd_ = 1;
static const int startSlave_ = 2;
ScopedPointer <MidiMessage> clockMessage;
ScopedPointer <MidiMessage> continueMessage;
ScopedPointer <MidiMessage> stopMessage;
ScopedPointer <MidiMessage> songPositionMessage;
ScopedPointer <MidiMessage> m_clockMessage;
ScopedPointer <MidiMessage> m_continueMessage;
ScopedPointer <MidiMessage> m_stopMessage;
ScopedPointer <MidiMessage> m_songPositionMessage;
void sendSongPositionPointerMessage(const double ppqPosition, const int posInBuffer, MidiBuffer* buffer);