From 706d6e8ff06b32f2b7cefcb09fd81051c3f80735 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 29 Jan 2010 16:07:40 +0000 Subject: [PATCH] MIDClock_Slave: Introduce a 3% deadzone around speed 1.0 to lock in the speed git-svn-id: svn://localhost/ardour2/branches/3.0@6593 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/midi_clock_slave.cc | 4 ++++ libs/ardour/test/midi_clock_slave_test.cpp | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libs/ardour/midi_clock_slave.cc b/libs/ardour/midi_clock_slave.cc index 4c73c45f49..16f4544062 100644 --- a/libs/ardour/midi_clock_slave.cc +++ b/libs/ardour/midi_clock_slave.cc @@ -346,6 +346,10 @@ MIDIClock_Slave::speed_and_position (double& speed, nframes64_t& pos) // calculate speed speed = ((t1 - t0) * session->frame_rate()) / one_ppqn_in_frames; + + // provide a 3% deadzone to lock the speed + if (fabs(speed - 1.0) <= 0.03) + speed = 1.0; // calculate position if (engine_now > last_timestamp) { diff --git a/libs/ardour/test/midi_clock_slave_test.cpp b/libs/ardour/test/midi_clock_slave_test.cpp index 1fc0ef7dc1..a555558c3d 100644 --- a/libs/ardour/test/midi_clock_slave_test.cpp +++ b/libs/ardour/test/midi_clock_slave_test.cpp @@ -15,9 +15,10 @@ MIDIClock_SlaveTest::testStepResponse () MIDI::Parser* parser = 0; TestSlaveSessionProxy *sess = (TestSlaveSessionProxy *) session; - nframes64_t period_size = 1024; + nframes64_t period_size = 4096; sess->set_period_size (period_size); - + + bandwidth = 1.0 / 60.0; nframes64_t start_time = 1000000; start (*parser, start_time);