Min playback speed is +/- (100/16)%
This is for at least two reasons: transport will effectively move with 32 samples * 6.25% = 2 samples per cycle and the resampler cannot up/downsample a factor of > 16 with reasonable quality.
This commit is contained in:
parent
b454ff0e90
commit
572a69758a
@ -321,6 +321,15 @@ Session::default_play_speed ()
|
||||
void
|
||||
Session::set_default_play_speed (double spd)
|
||||
{
|
||||
/* see also Port::set_speed_ratio and
|
||||
* VMResampler::set_rratio() for min/max range.
|
||||
* speed must be > +/- 100 / 16 %
|
||||
*/
|
||||
if (spd > 0.0) {
|
||||
spd = std::min<double> (Config->get_max_transport_speed(), std::max (0.0625, spd));
|
||||
} else if (spd < 0.0) {
|
||||
spd = std::max<double> (- Config->get_max_transport_speed(), std::min (-0.0625, spd));
|
||||
}
|
||||
_transport_fsm->set_default_speed(spd);
|
||||
TFSM_SPEED(spd);
|
||||
TransportStateChange (); /* EMIT SIGNAL */
|
||||
|
Loading…
Reference in New Issue
Block a user