Improving the "Change Pitch..." module

Hello. It would be great to have the “Change Pitch…” module improved. The current module distorts audio when changing the pitch. For reference, Adobe Audition CC has a very good pitch changing module. In Audition, when changing a pitch of a track, there is no audible difference in quality between the original input file and the converted output file.

For reference, here’s a video where Audacity is compared to Audition when doing a pitch conversion: [external link rejected]

If you would like to experiment with what I’m talking about, I suggest to get a free trial of Adobe Audition by going here [external link rejected]. When doing a pitch shift in Audition, go to Effects → Time and Pitch → Stretch and Pitch (process)… Then for “Algorithm” make sure to select “iZotope Radius” and for “Precision” select “High”. I noticed that it’s the “iZotope Radius” algorithm that makes the difference in quality. If “Audition” algorithm is selected instead, then the quality is not that good at all. So I’m guessing the key here is to rewrite Audacity’s pitch shifting algorithm based on (or similar to) the iZotope Radius algorithm in Audition.

Your program has become quite popular recently with conversion from the 440 hz tuning to the 432 hz tuning; so if the quality of your “Change Pitch…” module improves, I’m sure that it will become even more popular.

Thank you very much!

Audacity now has another “time stretch” effect that can produce better quality pitch shifting. See “Sliding Time Scale/Pitch Shift” http://manual.audacityteam.org/o/man/sliding_time_scale_pitch_shift.html

The “Change Pitch” effect is a much simpler effect, much faster, but lower sound quality algorithm.
The “Sliding Time Scale/Pitch Shift” is a more complex effect, slower, but higher sound quality algorithm.

“iZotope Radius” is an extremely slow but high quality commercial (not free, closed source) algorithm. If you want to use this you will need to buy commercial software.

Steve, thank you very much for the quick reply and for the tip about this new feature! I tested it out and it does indeed work better and has better quality than the “Change Pitch…” module. Also, judging by the time it takes to convert, it’s also evident that it’s a better quality module.

Yes, I’m aware that “iZotope Radius” is a high quality commercial module that is not free. I have Adobe Audition, so this is what I’ve been using. My intention with this request was to request an improvement of the current “Pitch Shift…” module that mirrors the complexity of “iZotope Radius”. I do see that since it’s closed source, you won’t be able to see the algorithms involved in the processing, but if anyone else would know how to help with this, it would be great. Anyway, the “Sliding Time Scale/Pitch Shift” module is better than the “Pitch Shift…” module for sure. So, thank you for the tip!

One other question, I noticed that the only way that I was able to change the pitch using this new module was to type in the same data in the “Initial Pitch Shift” fields and in the “Final Pitch Shift” fields. Is that correct? When I would just type in the data in the “Final Pitch Shift” field, I didn’t notice any change in the pitch of the track.

Thank you!

I’m not sure that it is a matter of “better quality” regarding the code, though the sound quality is almost always better with the Sliding Time Scale/Pitch Shift effect.
The two effects use different algorithms.

“Change Pitch” uses a relatively old method for stretching the audio called “synchronized overlap-add” method (SOLA).
http://en.wikipedia.org/wiki/Audio_time-scale/pitch_modification#SOLA
This is implemented by the open source library “SoundTouch” http://www.surina.net/soundtouch/
This effect could be tweaked to provide better sound quality, but at the expense of making the interface more complicated. As we now have the Sliding Time Scale/Pitch Shift effect the general opinion seems to be to keep this effect simple for the benefit of users that may find the other effect too complex.

“Sliding Time Scale/Pitch Shift” uses a more recent and more complex method called “Subband Sinusoidal Modeling Synthesis” (SBSMS)
http://sbsms.sourceforge.net/ (this is also an open source library).

As the name suggests, this effect is able to change the amount of pitch shift along the duration of the selection. To get a feel for this, try setting the Initial pitch shift to +12 and the final pitch shift to -12.

Given that we have the technology for higher quality pitch stretching (SBSMS, but only use it in the relatively complex “Sliding Time Scale / Pitch Shift” effect, I think this topic could be seen as a request for an option to use the SBSMS in the simpler “Change Pitch” effect.

I’m not sure that I would support adding another control to the “Change Pitch” effect as it is already quite complex for a main stream effect and more controls look more complicated. I would support the option if it could be accommodated somewhere else where it is not going to be off-putting to novice users.
(“Edit > Preferences > Effect Options” ? )

I am not sure a checkbox at the bottom [ ] Use SBSMS (higher quality, slower) and the same in Change Tempo would be confusing?

Even though the preference could apply to two effects, wouldn’t it be overkill?


Gale

I wouldn’t find it confusing, but it is still one extra control which could be perceived as being more complicated, fuelling the “it’s too hard” trolls that flame from time to time.

For a novice user it would be less confusing if they never saw the option.

Imo, a well designed “preferences” should be able to handle hundreds of user option with ease.
We already have control of almost every conceivable keyboard shortcut. Providing a few options for each built-in effect should not be too overwhelming.

Another effect that I think would benefit from a “not in the effect interface” option is the “Bass and Treble” effect. We purposely designed this to be very simple, but we have had a few requests for greater control - in particular, the ability to set the frequency and slope of the shelf filters. In my opinion that would go against the designed simplicity, but I can see how it would be very useful for people that could cope with a little more complication.

IMO, we could not contemplate putting options for most effects into the Preferences until we have “Simple” and “Advanced” Preferences.

Even then I would rather have some kind of “advanced” slideout for effects that had the extra options, rather than viewing the options out of context in the Preferences.

Perhaps enabling that slideout could be the Preference.


Gale

So that puts adding optional frequency controls for Bass and Treble on the shelf for the foreseeable future. I would be extremely surprised to see an “advanced slideout for effects that had the extra options” within the next 10 years.

On the other hand, duplicate options in the Preferences dialogue could be replaced with new options now.

As far as I’m aware, this is the first time that an “advanced slideout for effects that had the extra options” has been asked for. I don’t think it is yet on the FR wiki. I don’t think it is reasonable to put other feature requests on hold indefinitely until we have the “slide out” feature.

Not having a choice of colour for “track name in track” is due to ideological dogma, not for technical reasons.
We are constantly being asked for features that would need to be optional. Currently they cannot be implemented because “thou shall not add more preferences”.

You could treat it as a normal full featured effect rather than just a mimic of a tone control. I don’t recall users of BassBoost being confused by the frequency control.

The slideout or slidedown is not “advanced”, only the controls on it. No need for 10 years. Wouldn’t it just be added to ShuttleGUI? A slidedown on one effect could be added in a few minutes.

I think the objection that effects options in Preferences are out of context so hard to understand is quite a strong objection. If I see a Preference for “Bass and Treble: Frequency and Mid”, does that explain what those controls do as efficiently as seeing them in the effect does?

You should have argued against the duplicate options at the time.

We could make the single colour work much better than it does now, although it is probably simpler just to have a choice of colour. But I support a colour choice so you’re arguing on the wrong list/with the wrong person.

And I think the on/off control and colour choice for the waveform track name should be in the menus not the preferences in any case.

Again, you are (largely) arguing with the wrong person, but we do not IMO want dozens of new preferences without being able to hide them in an “Advanced” Preferences view.

Take a look at the VLC preferences to see what I mean.


Gale

In that case I’m not sure what you mean by “a slidedown”. Is there anything like it currently in Audacity?

I’ve been trying to make an “interactive GUI” where controls can appear or disappear at the selection of an “Advanced / Simple” radio button control, but the only way I can find of doing it is to bypass much of ShuttleGUI as has been done in Martyn’s disappearing controls in “Classic Filter”. That is not an approach that can be easily extended to other effects. It looks like it would require considerable development of ShuttleGUI (beyond my ability and a high risk of breaking a lot of things).


What I envisaged for Bass and Treble was for an option to “enable advanced controls Yes | No”. The actual controls would be in the Bass and Treble GUI.


I wasn’t involved with Audacity when the device toolbar was introduced.


Yes, I use VLC. It’s quite a good solution.

A simpler solution (easier to program) would be to have a divider at the bottom of the current list of “preference pages” (left hand side of the preferences interface) and have advanced options below the divider, preferably hidden until “Advanced Options” is selected:

| Devices
| Playback
| Recording
| …
| Keyboard
| Mouse
|________________
|Advanced Options |

Have a search on -devel, or ask Leland. When we were redesigning Metadata Editor sometime early in 1.3, there was a drop-down panel added to it. I can remember seeing it.

Who knows what they do? If you never go into Prefs, how do you know Bass and Treble has this feature?

My recollection is that when in 1.3.13 we renamed Control Toolbar to Transport Toolbar and added input subdevices/recording channels to Device Toolbar, we discussed the duplication of items in Preferences and decided to let that continue.

Does this add the extra items into the pane for each preference section, or is this an extra self-contained pane? An extra self-contained pane is not a bad idea if there are only a few advanced options, but I think you want lots of advanced options, right?

While we’re at this, are you in favour of Ed’s Prefs box to reset, load and save audacity.cfg? I’m in favour if the reset works like the VST effects rescan, not forcing immediate exit.


Gale

This thread has gone rather far afield, going from the specific to the general and adding some branches. I think the most important take-away is that the GUI for effects need some re-thought. In the past there has been some support for a context specific Help button; this thread asks for a method of providing users with a choice of an advanced or basic GUI; there is also some desire by users to control the default values (“always use user-specified default values” versus “use the previous values” versus “always use the program default values”).

I see it like this at the moment:

  • Method of providing users with a choice of an advanced or basic GUI for effects (2 votes)
  • Should be a preference not selectable in the effect (1 votes)
    • Use SBMS in Change Pitch/Change Tempo (2 votes)

Gale

I think Leland has gone off radar, but thanks for the tip, I’ll have a look in some old 1.3 versions.


Not a problem. It’s supposed to be an “advanced” feature and I’d expect “advanced users” to be familiar with preferences.

I’m strongly in favour of a “reset button” of some sort. Even more so if we have “advanced” preferences. I’m not familiar with the details of the proposal that you are referring to.

My initial thought was that selecting “Advanced Options” would expand the list downward with as many additional items and additional panes as required to accommodate the additional options. One of the new panes would be for built-in effects - primarily for enabling “advanced controls”, though some effects may benefit from other options.

There could be additional panes for other advanced options.

I don’t think that there should be a global “enable advanced controls” as a user may only want the “advanced” features for one effect and prefer to use the “simple” interface for all other effects. “Preferences” should be about enabling the user to customise the program to suit their needs.

If you have not found it yet, there was an expand/collapse button in Metadata Editor in 1.3.2 and 1.3.3 release.

Then we worked more on this and there was a “tabbed” version that was never released:
http://audacity.238276.n2.nabble.com/Metadata-editor-missing-import-of-FLAC-and-OGG-data-and-1-4-0-td254719.html .

The binary for that is no longer available. Perhaps there is source code available in another thread, or perhaps it was offlist. I suggest you poke around further on Nabble. Suffice to say, expand/collapse and tabs clearly can be done.

I disagree a Frequency control is “advanced”. I wouldn’t call the users who have asked for this control “advanced” (no disrespect meant to them, but I doubt they are expecting the new control to be hidden in Preferences).

Try: http://www.hometownband.org/members/efm5/Audacity_AudioPlus2.zip .

If the choice was to go in Preferences, I agree it may make sense for the choice to be per effect, but I think for discoverability and ease of toggling that the control to enable advanced features for an effect should be in the effect.


Gale

Terrific, thanks. Just what I was looking for.

Unfortunately it’s not quite as simple as just adding a frequency control.

In order for both the bass slider and treble slider to work correctly, there would need to be a separate frequency control for each. That in itself may still be OK for most novices, but I get the impression that the users that have requested this want to produce a substantial boost or cut. To achieve that with the half gain frequency further from the mid-frequencies would require the filter slope to be a lot steeper than now. Ideally the effect should have three controls for bass and three for treble (boost/cut, frequency, slope). I expect that would be too complex for some of our users, especially as this is supposed to be a “simple” effect.

Anyway, this is going a long way off topic. I’ll start a new thread.

Please do.

As a starter for that, can the slope be self-adjustable for the frequency value chosen, so removing the need for a separate slope control (which latter I agree is going to be “hard” for some users)?


Gale

I tried the Adobe Audition free trial and did a 5-semitone downward pitch adjustment using the iZotope Radius algorithm as suggested by oursolaris above. The Audacity algorithm was actually far superior to it, at least for the male vocal/orchestral music that I tried. Perhaps the 30 day Audition trial doesn’t really use the iZotope Radius algorithm when you select it, but, if so, the option should be grayed out.

-jasperdog