speed

The playback rate as a multiplier of real time, within TempoStage.MIN_SPEED to TempoStage.MAX_SPEED. Real: the tempo stage in the pipeline makes the sound take 1/speed as long, at its own pitch unless preservePitch is false, and the clock runs to match.

A change applies to the next buffer the feeder converts, with no seek, no flush and no stop. The audio already in the ring plays out at the rate it was made at, so the new rate is heard after the ring's depth: about 200 ms, longer on Android where the device buffer sets it. The clock follows the rate the listener hears, frame by frame, so video stays in step through the change.

Safe from any thread. Reading it reports the wanted rate.

Throws

outside the supported range: below and above it, splice artifacts dominate the signal and pretending otherwise would be a lie.