[linux-audio-dev] XAP Time/Transport - varispeed/shuttle

Frank van de Pol fvdpol at home.nl
Wed Dec 18 18:59:00 UTC 2002


On Wed, Dec 18, 2002 at 11:35:08PM +0100, David Olofson wrote:
> 
> What is pause, actually? The transport is either stopped or rolling. 
> What makes "paused" different from "stopped"?
> 
> "Freeze" would be one variant, which basically means all plugins that 
> care about transport events stop in their tracks, waiting to continue 
> exactly where they left off. (As opposed to what normal MIDI + synth 
> setups do: Stop the notes, so half the arrangement is gone for two 
> bars when you unpause... *heh*)
> 

I was thinking of Pause like on my tape deck; Of course this could also be
called freeze, or like midi stop/continue

> 
> > state is not needed if a control is available to
> > indicate shuttle speed/direction (eg. a float; 0.0 if in pause; 1.0
> > if normally running; >1.0 for fast forward; negative for reverse
> > scrubbing etc. This makes the plugins aware of varispeed and
> > shuttling from the host.
> 
> That would only move the implementation details of that into all 
> plugins, possibly exposing a number of ways to have varispeed throw 
> some plugins out of sync with musical time. (Others won't care at 
> all, so that's not a problem.)
> 
> What you'd do is implement this as a feature of the "timeline 
> generator", in about the same area where you would implement sync 
> with external devices. Instead of mapping musical, SMPTE etc, time 
> directly via tempo to audio time, scale it through this "SPEED" 
> control on your timeline generator.
> 
> The net result is that if tempo is 120 BPM and SPEED is 2.0, you get 
> fast forward at 240 BPM.
> 
> Of course, you may run backwards and stuff that way as well, but 
> don't expect the synths to play sounds backwards... ;-)

yes, that is the idea. In fact some plugins would indeed play the sound
backward (eg. scrubbing over a sample...), depends on the plugin :-)

this SPEED control allows the plugins to anticipate to the POSITION change
events or discontinious position passed for the block to be processed. Fast
forwarding without SPEED hint would result in fast skipping (like seeking on
a mini disk deck); a slowdown would be euh, also result in repositioning,
but nudging a bit back every block.

Frank


-- 
+---- --- -- -  -   -    - 
| Frank van de Pol                  -o)    A-L-S-A
| FvdPol at home.nl                    /\\  Sounds good!
| http://www.alsa-project.org      _\_v
| Linux - Why use Windows if we have doors available?



More information about the Linux-audio-dev mailing list