Avos Text recognition SpiralSynthModular GPhoto Verispeed Schemix JMK This

Verispeed Automation

This page is for a feature I would like to see in at least one Free Linux audio editor: Verispeed Automation. Several audio editors allow you to alter the playback speed of a single track by a constant factor, but there are none I'm aware of that allow the factor to vary with time.

A couple of years ago, my first attempt of this feature was accepted into MixMagic's CVS. Unfortunately MixMagic development died soon after. More recently (about a year ago) I got my second attempt into Audacity. The feature works reasonably well, but is not useful to me for a couple of reasons:

  • The audio is not redrawn according to the varispeed.
  • The varispeed is only per-project, not per-track

The reasons for these failings are, I believe, my fault. I tried to implement the feature while I had an incomplete understanding of the Audacity code, and an incomplete formulation of how the feature's GUI should work. The GUI concepts here are very non-trivial, as the envelope that the user is tweaking could have self-referential properties (it operates not only on the audio waveform it is attached to, but it also operates on itself!). Even when I had good ideas of what the Right Thing was, explaining them to other developers was very hard.

I am hoping to solve this issue by developing a simple GUI prototype of varispeed automation. The prototype will do the simplest thing possible: It will draw a sine wave and an automation envelope. The envelope will control the "playback speed" of the sine wave (although there will be no actual playback - this is a GUI prototype only). The sine wave will be of finite length so if you make it faster, it will get shorter, and if you make it slower it will get longer.

Once I have a prototype that works for me, I hope to be able to get the feature into at least one Free Linux audio editor. I am particularly interested in Ardour, but it would be great if the idea was picked up by more than one application.