summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2020-05-13 18:09:15 +0200
committerGitHub <noreply@github.com>2020-05-13 18:09:15 +0200
commit6034875659498ff5b8aa0f24bec381672f2261b9 (patch)
tree79f2b86196a9fe6fa949a1c24983dfd4f498ea00
parentc6489c7af45582b0ae2b1f35710454bf4635ff42 (diff)
parent8615ea929d174b06fae4d0b153dea349b9ee403d (diff)
Merge pull request #2786 from Holzhaus/ignore-midi-clock
controllers/midi/midicontroller: Ignore MIDI clock messages (0xF8)
-rw-r--r--CHANGELOG1
-rw-r--r--src/controllers/midi/midicontroller.cpp10
2 files changed, 11 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 1d88c1661e..a0cae63da4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -17,6 +17,7 @@
* Add controller mapping for Stanton DJC.4 #2607
* Fix broadcasting via broadcast/recording input lp:1876222 #2743
* Only apply ducking gain in manual ducking mode when talkover is enabed lp:1394968 lp:1737113 lp:1662536 #2759
+* Ignore MIDI Clock Messages (0xF8) because they are not usable in Mixxx and inhibited the screensaver #2786
==== 2.2.3 2019-11-24 ====
diff --git a/src/controllers/midi/midicontroller.cpp b/src/controllers/midi/midicontroller.cpp
index 8ebf383c61..676683b6ed 100644
--- a/src/controllers/midi/midicontroller.cpp
+++ b/src/controllers/midi/midicontroller.cpp
@@ -203,6 +203,16 @@ void MidiController::receive(unsigned char status, unsigned char control,
unsigned char channel = MidiUtils::channelFromStatus(status);
unsigned char opCode = MidiUtils::opCodeFromStatus(status);
+ // Ignore MIDI beat clock messages (0xF8) until we have proper MIDI sync in
+ // Mixxx. These messages are not suitable to use in JS anyway, as they are
+ // sent at 24 ppqn (i.e. one message every 20.83 ms for a 120 BPM track)
+ // and require real-time code. Currently, they are only spam on the
+ // console, inhibit the screen saver unintentionally, could potentially
+ // slow down Mixxx or interfere with the learning wizard.
+ if (status == 0xF8) {
+ return;
+ }
+
controllerDebug(MidiUtils::formatMidiMessage(getName(), status, control, value,
channel, opCode, timestamp));
MidiKey mappingKey(status, control);