audacity / audacity

Audio Editor
https://wiki.audacityteam.org/wiki/For_Developers
Other
12.5k stars 2.27k forks source link

Remove unnecessary "Channels" and "Sample Rate" settings for external program export #5513

Open GermanKiwi opened 12 months ago

GermanKiwi commented 12 months ago

Your idea

With Audacity 3.3.0 and older, selecting "Export Audio" then "external program" would open a dialog with this at the bottom:

image

Here, the only thing the user can enter is the command itself, which is good, because nothing else is relevant.

However, with Audacity 3.4.0, the Export Audio dialog for "external program" looks like this:

image

Here it shows "Channels" and "Sample Rate", which leads the user to wrongly believe that these settings have an effect on the output, when in reality they have no effect at all. The only thing that matters here is the parameters entered into the command.

Problem to be solved

Please hide or disable the "Channels" and "Sample Rate" settings when "external program" is selected, to avoid confusion and unexpected results for the user. Thanks!

Prior art

No response

Additional context

No response

vsverchinsky commented 12 months ago

Here, the only thing the user can enter is the command itself, which is good

Not exactly, if you go to your preferences and choose "Import/Export" page you'll see there a "Use Advanced Mixing Options" option. And if you enable it after pressing the "Save" button you'll see a standard mixing dialog. In pre-3.4 exporter implicitly uses project's sample rate for exporting. For command line exporter these options mean that Audacity will send data to the encoder process that is internally resampled and mixed as user specified in this dialog

GermanKiwi commented 12 months ago

I'm not sure I follow.

With 3.3.0, if I enable "Use Advanced Mixing Options" on the Import/Export page, and then I select Export Audio > (external program) > Save, then I see this dialog:

image

I don't, however, see options for setting the Channel or Sample Rate, as I do with 3.4.0.

In any case: I understand what you're saying, that with 3.4.0 "Audacity will send data to the encoder process that is internally resampled and mixed as user specified in this dialog".

However, I find this approach more confusing and less helpful than with the pre-3.4 method.

Firstly because it adds confusion to what is entered into the command line. For example, if I want LAME to encode with mono, and I put -mm into the command line accordingly, but the Channels setting there is set to Stereo, then as a user I'm not sure which will take priority. Likewise if I specify a certain sample rate on the command line but have a different sample rate selected in the dropdown above.

So from a UI/UX perspective, it's not clear if the Channel and Sample Rate settings are being "added to" the command line, or - as you wrote - are just being used to resample the data before sending it to LAME.

I've seen other encoding apps that have a GUI for selecting the LAME options you want, or alternatively a command line field for entering your own command, which disables the other options, but never allowing both at the same time. I feel like this is more the norm for encoding via command line - that the UI then disables all other options, so you know that only the command line parameters are being used, and the data being sent to the encoder is using whatever channels and sample rate is being used in the project itself.

Secondly, if the Channel and Sample Rate settings are there and configurable, but I actually don't want to change those before sending the data to the encoder process - rather, I want the data to use whatever channels and sample rate is being used by the project itself - it means that for each project I export, I have to go back and check what the sample rate of the project was, and make sure the same sample rate is selected in the Export Audio dialog, so that I'm not changing the sample rate and channels via the dialog. This adds an extra step and an extra thing I have to pay attention to and remember each time, which I find annoying.

Is there any chance to reconsider this change, and revert back to the previous behaviour whereby Audacity "implicitly uses the project's channels and sample rate for exporting"?

Or maybe add a new preference that lets the user disable this new behaviour? :)

GermanKiwi commented 12 months ago

PS: I feel the same way about exporting to "WAV (Microsoft)" - I also much prefer the pre-3.4 method where there is no setting for Sample Rate in the dialog, and instead it just uses whatever the sample rate of the project is. Therefore I don't have to pay attention to having the correct sample rate selected in the Export Audio dialog to make sure it matches.

One possible solution to this: add a checkbox to the Export Audio dialog that says "Don't change project configuration", and when it's checked, then the Channels and Sample Rate options are disabled and it uses whatever the project itself is using. That would solve this for me!

LWinterberg commented 12 months ago

I would agree that not showing these options in the command line option makes sense, I'll also say that fixing the command line options has very little priority at the moment.

Re: Pre-3.4 method, the "sample rate of the project" combines about 5 different settings which shouldn't be combined. Importing an 8kHz track would also set the mic to 8kHz, setting the mic to 96k would cause exports to be 96k as well and things like that. In the immediate future, we want to default to the highest sample rate you have in your tracks (https://github.com/audacity/audacity/issues/5032).

GermanKiwi commented 12 months ago

How would that work with the idea of remembering the last-used settings in the Export dialog? As petersampsonaudacity wrote in https://github.com/audacity/audacity/issues/5032 - "that conflicts with "last-used" which a lot of folk seem to want" - and I'm one of the folks who prefers it to remember the last-used settings! :)

LWinterberg commented 12 months ago

at the moment, it wouldn't. Down the road I'd like to have export presets instead, but there's a lot of things to do.

petersampsonaudacity commented 12 months ago

I feel the same way about exporting to "WAV (Microsoft)" - I also much prefer the pre-3.4 method where there is no setting for Sample Rate in the dialog, and instead it just uses whatever the sample rate of the project is. Therefore I don't have to pay attention to having the correct sample rate selected in the Export Audio dialog to make sure it matches.

@GermanKiwi

You may prefer this - but many many users got caught out by this and found themselves exporting audio data at a wrong unwanted sample rate - and in an invisible/opaque manner (sometimes they only found out much later when their project had long been deleted and thus impossible to correct the error).

It was for this reason that this change was made.

Peter