debug alsa midi latency measurement
authorRobin Gareus <robin@gareus.org>
Mon, 16 Jun 2014 17:44:23 +0000 (19:44 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 16 Jun 2014 17:44:23 +0000 (19:44 +0200)
gtk2_ardour/engine_dialog.cc
libs/ardour/mididm.cc

index f8675a5ad4f13585c7bd7407e21e8b45d1297565..df5a6a95f3c084fde5675eb1e50d40c83ef0d17d 100644 (file)
@@ -1920,6 +1920,12 @@ EngineControl::check_midi_latency_measurement ()
                end_latency_detection ();
                lm_use_button.set_sensitive (true);
                have_lm_results = true;
+               return false;
+       } else if (mididm->processed () > 400) {
+               have_lm_results = false;
+               end_latency_detection ();
+               lm_results.set_markup (string_compose (results_markup, _("Timeout - large MIDI jitter.")));
+               return false;
        }
 
        lm_results.set_markup (string_compose (results_markup, buf));
index 6549544efb7ad5df541ba84ac48949e96ad8ec6d..b6734bb7330c603bfdc077e70eee1d4b3a5a9117 100644 (file)
@@ -66,6 +66,9 @@ int MIDIDM::process (pframes_t nframes, PortEngine &pe, void *midi_in, void *mid
                const int64_t tc = (_monotonic_cnt + timestamp) & MASK;
                const int64_t ti = (buf[2] << 7) | buf[1];
                const int64_t tdiff = (MODX + tc - ti) % MODX;
+#if 1 //DEBUG
+               printf("MIDI DELAY: # %4"PRId64" %4"PRId64" [samples]\n", _cnt_total, tdiff);
+#endif
 
                /* running variance */
                if (_cnt_total == 0) {