summaryrefslogtreecommitdiff
path: root/muse2/muse/midiseq.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/midiseq.h')
-rw-r--r--muse2/muse/midiseq.h19
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();