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;
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);
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;