summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/ardour/session.h5
-rw-r--r--libs/ardour/session_process.cc8
-rw-r--r--libs/ardour/session_state.cc1
3 files changed, 4 insertions, 10 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 759901680c..40cf8578cc 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1256,14 +1256,13 @@ private:
bool _silent;
samplecnt_t _remaining_latency_preroll;
- // varispeed playback
+ // varispeed playback -- TODO: move out of session to backend.
double _engine_speed;
- double _transport_speed;
+ double _transport_speed; // only: -1, 0, +1
double _default_transport_speed;
double _last_transport_speed;
double _signalled_varispeed;
double _target_transport_speed;
- CubicInterpolation interpolation;
bool auto_play_legal;
samplepos_t _last_slave_transport_sample;
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 9b26f9190c..eeb8cb871e 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -871,12 +871,8 @@ Session::process_without_events (pframes_t nframes)
return;
}
- if (_transport_speed == 1.0) {
- samples_moved = (samplecnt_t) nframes;
- } else {
- interpolation.set_speed (_transport_speed);
- samples_moved = interpolation.distance (nframes);
- }
+ assert (_transport_speed == 1.f || _transport_speed == -1.f);
+ samples_moved = (samplecnt_t) nframes * _transport_speed;
if (!_exporting && !timecode_transmission_suspended()) {
send_midi_time_code_for_cycle (_transport_sample, _transport_sample + samples_moved, nframes);
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index c278454843..b27a292642 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -182,7 +182,6 @@ Session::pre_engine_init (string fullpath)
g_atomic_int_set (&_capture_load, 100);
set_next_event ();
_all_route_group->set_active (true, this);
- interpolation.add_channel ();
if (config.get_use_video_sync()) {
waiting_for_sync_offset = true;