diff options
Diffstat (limited to 'muse2/muse/midiseq.h')
-rw-r--r-- | muse2/muse/midiseq.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/muse2/muse/midiseq.h b/muse2/muse/midiseq.h index b5ed1099..08adcdce 100644 --- a/muse2/muse/midiseq.h +++ b/muse2/muse/midiseq.h @@ -28,6 +28,7 @@ #include "mpevent.h" #include "driver/alsatimer.h" #include "driver/rtctimer.h" +#include "sync.h" namespace MusECore { @@ -55,9 +56,17 @@ class MidiSeq : public Thread { double songtick1, songtick2; int recTick1, recTick2; int lastTempo; - double timediff[24]; + double timediff[16][48]; int storedtimediffs; - + int _avgClkDiffCounter[16]; + double _lastRealTempo; + bool _averagerFull[16]; + int _clockAveragerPoles; + int* _clockAveragerStages; + bool _preDetect; + double _tempoQuantizeAmount; + MidiSyncInfo::SyncRecFilterPresetType _syncRecFilterPreset; + void alignAllTicks(int frameOverride = 0); /* Testing */ @@ -87,13 +96,17 @@ class MidiSeq : public Thread { bool externalPlayState() const { return playStateExt; } void setExternalPlayState(bool v) { playStateExt = v; } - void realtimeSystemInput(int, int); + void realtimeSystemInput(int port, int type, double time = 0.0); void mtcInputQuarter(int, unsigned char); void setSongPosition(int, int); void mmcInput(int, const unsigned char*, int); void mtcInputFull(int, const unsigned char*, int); void nonRealtimeSystemSysex(int, const unsigned char*, int); void checkAndReportTimingResolution(); + MidiSyncInfo::SyncRecFilterPresetType syncRecFilterPreset() const { return _syncRecFilterPreset; } + void setSyncRecFilterPreset(MidiSyncInfo::SyncRecFilterPresetType type); + double recTempoValQuant() const { return _tempoQuantizeAmount; } + void setRecTempoValQuant(double q) { _tempoQuantizeAmount = q; } void msgMsg(int id); void msgSeek(); |