Proposal Change Speed Enhancements

From Audacity Wiki
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This page is a proposal for enhancing the Change Speed effect.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.

  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.

Proposed Feature

Addition of a time spinner or other interface element to set or indicate the final duration of the selected audio after the speed has been changed.

Developer / QA Backing

Use Cases

A common use of the Change Speed effect is to make a section of audio fit within a specific time frame. Currently the user is required to calculate:

  ((BPM to) - (BPM from)) / (BPM from) * 100 = % change

There is a feature request for Change Speed to have length of selection control like Change Tempo, thus providing greater convenience for users.

Discussion relating to this proposed feature on the Audacity Forum

  • Gale 19 Jul 11: There is an issue that Change Tempo won't calculate fractional BPMs so we need to be sure that we do so here and also fix that in Change Tempo.

Core Features

Here is a Change Speed plug-in that has been implemented in Nyquist to demonstrate the proposed features: Right Click to Download (Changespeed.ny)

Limitations of this Nyquist version:

  • The sample rate conversion quality is not quite as good in Nyquist Plugins as the built-in effects in Audacity, (but it's not bad and it's fairly quick).
  • Nyquist plug-ins do not have "time" boxes (spinners) like other effects in Audacity, so time input has to be done by entering three numbers separated by colons. Decimal numbers may be used. For example, to enter a new duration of 1 minute 30 seconds, the time could be entered as 0:1:30 and 30.022 seconds could be entered as 00:00:30.022
  • Nyquist plug-ins are not able to "link" controllers. To work around this limitation it is necessary to select "Change speed by: Length (time) or BPM/RPM or Percent". I presume that a C+ coded version could link the controls so that, for example, changing the "Final Tempo" would automatically adjust the "Final Length" and "Percent Change" controls.
  • There is only basic error checking against invalid user input in this version so some invalid input may cause unexpected results.

Here's a mock-up of a native Audacity version:

Proposed Change Speed interface

The combo boxes should support typing of decimal values.

  • Gale 19Jul11: I would prefer an interface closer to what we have now, including presets. See discussion.
  • Steve 22Jul11: Here's an alternative with combo boxes for presets / text input. I'm not sure exactly what a WxWidgets combo box looks like, but I guess it's something like this.
  • Gale 23Jul11: Thanks. Is the mockup for the "To" box? I'm not sure how understandable e.g. "From" Double speed "To" Half speed would be. In many ways single presets are easier "33 1/3 to 45", "33 1/3 to 78" &c. but those require more presets. But if you used "From" and "To" for presets, should e.g. choosing "double speed" in "From" lock "To" to double speed?
  • Steve 24Jul11: What I had in mind for the "To: Double/Half" speed was that thes options would only be in the "To:" combo box, and that when selected, the "From:" combo box would be greyed out on "N/A". If the speed is to be doubled or halved, then the original speed is irrelevant.
  • Gale 24Jul11: User who thinks they need to select "From" first may take a long time to realise "Double" and Half" are in "To", so also having "Double" and "Half" in "from", switching "to" to the same choice and then greying it might be better.

    What do you think of a "Change Factor" box alongside Percent Change to help people who struggle with percentages? There is plenty of space. Also the current default (no change) isn't useful, so we could possibly have some default change and the corresponding change factor alongside. If we have your simpler combo boxes with fixed presets and these intialised to other than a preset, they could show a value which would demonstrate their use.

  • Steve 24Jul11: I think that having "Double / Half" in the "From" box would be confusing. Would "From Double" imply that the speed will change to half speed or double speed? It may take a few moments for a user to discover the additional presets the first time they use it, but the next time they will know where the option is (and they could always read the manual).

    I agree that a "Change Factor" may be a lot easier to understand for many users than the "Percent change". What do you think about replacing the Percent Change with a Change factor?

  • Gale 27Jul11: My only reservation about "Double / Half" only being in "To" is the lack of discoverability; I think your idea is slightly more intuitive, but slightly unexpected. "From 120 BPM" "to 150 BPM" is uintuitive in its own way given the track may not be at 120 BPM now. Either solution would work, though one advantage of a separate presets box is that it would have single presets like "33 1/3 RPM > 78 RPM", "Double speed", "Half Speed" so avoids this problem.

    If we replace "Percent Change" with "Change Factor" there will always be someone who happens to know they want 25% faster but can't figure the change factor from that. Having linked "Percent Change" and "Change Factor" boxes makes most sense to me at the moment. If we only had "Change Factor" here I think we would have to make that change in Change Tempo and Sliding Time Scale too.

Proposed Change Speed interface with combo boxes