Sensible defaults could make Audacity a lot better

This read-only archive contains discussions from the Adding Feature forum.
New feature request may be posted to the Adding Feature forum.
Technical support is available via the Help forum.
cyrano
Posts: 2629
Joined: Fri Apr 17, 2015 11:54 pm
Operating System: macOS 10.13 High Sierra

Re: Sensible defaults could make Audacity a lot better

Post by cyrano » Thu Aug 13, 2015 11:55 am

steve wrote:
cyrano wrote:Every other editor shows a file that's normalized to -1 dB as filling the track windows almost completely.
These don't look like log scale to me:
You're right. It's a bit hard to tell as they all show different files and some don't have a visible scale. But I've done some digging of my own and the audio editors/DAW's I have here are set to logarithmic because I changed it. It's not default. And you can't change display setting fi in Ocen Audio...

I also tested 32 bit wav export from Audacity and that seems to work as expected.

It throws up another mystery: all imports succeeded, but the first playback was heavily distorted. What's strange is that the distortion sounded different in every program (Sound forge, Ocen Audio, Reaper...). Second playback attempt sounded as it should, over built-in audio hardware. Core Audio needed to adjust?

cyrano
Posts: 2629
Joined: Fri Apr 17, 2015 11:54 pm
Operating System: macOS 10.13 High Sierra

Re: Sensible defaults could make Audacity a lot better

Post by cyrano » Thu Aug 13, 2015 11:58 am

steve wrote:cyrano, you clearly prefer the Waveform (dB) view to the linear Waveform view. You know that you can set that as the default view?
"Edit menu > Preferences > Tracks > Desfault view mode"
That's about the first thing I do with a new install of Audicity. Not only for myself, but for every other user I sometimes install software for. I haven't had any complaints...

cyrano
Posts: 2629
Joined: Fri Apr 17, 2015 11:54 pm
Operating System: macOS 10.13 High Sierra

Re: Sensible defaults could make Audacity a lot better

Post by cyrano » Thu Aug 13, 2015 12:16 pm

steve wrote:
cyrano wrote:Yes, I could, but what would be the point?
It would illustrate that the so called "logarithmic" view does not accurately represent the log sample values.
The other thing that cannot be represented with a logarithmic vertical scale is silence.
http://www.rapidtables.com/math/algebra ... m_of_0.htm
We work around this limitation by ignoring values below a specified level, and by plotting the log of the inverse of negative sample values. The linear scale does not require these esoteric tricks because all valid sample values may be accurately plotted,
cyrano wrote: Squaring looses information? That's some strange math, there.
Not strange math, basic physics. By squaring, you loose phase information - the square of a signal is the same as the square of the inverse signal, but clearly a signal and its inverse are very different things (try mixing a signal with its inverse).
OK. I understand. Thx for explaining, Steve.

But does this affect a limited visual representation of the waveform in such a way that it becomes inaccurate enough to mislead the user?

As far as I can tell (have to be careful with these physiscs types :lol: ) phase information isn't visible in the waveform display. Or is it?

In linear view, what is misleading, is the empty space over a waveform, which will lead to some users seeing a lot of headroom that simply isn't there.
cyrano wrote:I'd like to see REAL, accurate values. And 32 bit is only an internal format. It doesn't have anything to do with the quality of the source and its ALWAYS 32 bit, so it offer NO real information.
Try this:

1) Take three audio tracks and normalize to -3 dB
2) Make one of the tracks 16-bit, one of them 24-bit and one of them 32-bit float (track dropdown menu > Set Sample Format)
3) Amplify all three tracks by +20 dB (you will need to enable "Allow clipping" in the Amplify effect)
4) Amplify all three tracks by -20 dB.

You will immediately see that the track format can be extremely important.
I understand that test. I know how much dynamic range is available in 16/24/32 bit.

Suppose a user imports an 8-bit file, mixes it with average 16/44.1 tracks and doesn't immediately see why it sounds not so good as all tracks are shown as being the same 32 bit settings.

I'm always trying to look at it from the user's perspective. Even if the internal engine of Audicity could work in 16 bit, what would be the use?

And even here and now, you are using dB and not an amplification of ten times :mrgreen:

steve
Site Admin
Posts: 81609
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Sensible defaults could make Audacity a lot better

Post by steve » Thu Aug 13, 2015 12:21 pm

I always change the Solo button behaviour to "Simple", disable the automatic Metadata pop-up, and increase the preview length.
cyrano wrote:Core Audio needed to adjust?
Sorry, I can't help with that (I don't see that issue on Linux). Perhaps worth raising that as a new topic on the Mac OS X board.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81609
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Sensible defaults could make Audacity a lot better

Post by steve » Thu Aug 13, 2015 12:46 pm

cyrano wrote: And even here and now, you are using dB and not an amplification of ten times :mrgreen:
That's what being a professional sound engineer does for you ;)
Interestingly, linear units are used a great deal in digital signal processing. When I first started using Audacity I was also very critical of the +/- 1.0 default scale. However, I have softened my opinion over the years. I agree that novice users will benefit from "education", but we need to balance that against "raising the bar" for entry level.

Going a bit deeper, "dB" does not provide "absolute measurement" - "dB is not a unit" - "dB" only gives a "ratio" that describes the relationship of one thing relative to another. On the other hand, the linear scale does provide "absolute measurement". A signal that has a maximum of +1.0 and a minimum of -1.0 is full scale - this is not an arbitrary assignment, it is the actual numeric values of the samples. For 16 bit integer, sample values are determined by dividing the binary value of the sample by 2^16. which normalizes the value to a range of +/- 1.0. Similarly for 24-bit integer, sample values are determined by dividing the binary value by 2^24. Thus, regardless of the number of bits, all integer formats have the same range - that is, full scale for 8-bit produces the same analog amplitude as full scale for any other integer format. For floating point formats (usually 32-bit float or 64-bit float), no normalization is used, so a sample value of 1.000000000000 has a linear amplitude of 1.000000000. If you want to experiment with this, you can capture individual sample values using the Nyquist command SND-FETCH

Legacy syntax (mono track):

Code: Select all

(snd-fetch s)
New (version 4) syntax (mono track):

Code: Select all

(snd-fetch *track*)
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81609
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Sensible defaults could make Audacity a lot better

Post by steve » Thu Aug 13, 2015 12:49 pm

cyrano wrote:Suppose a user imports an 8-bit file, mixes it with average 16/44.1 tracks and doesn't immediately see why it sounds not so good as all tracks are shown as being the same 32 bit settings.
If the file could be played (previewed) within the file browser prior to import, then they would hear the quality of the original file. That would be my preferred solution (and it 'may' become possible when the upgrade to Wx3 is complete).
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81609
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Sensible defaults could make Audacity a lot better

Post by steve » Thu Aug 13, 2015 12:57 pm

cyrano wrote:phase information isn't visible in the waveform display. Or is it?
Yes it is, but as you say, need to be a bit careful with terminology here.
Deciding on what 0 degrees phase is, is somewhat arbitrary. For example, for a sawtooth wave, do we call the positive going zero crossing "0 degrees" or do we call the low point "0 degrees"? You will find both used, depending on context. Nevertheless, we can absolutely see the phase angle between two or more signals. For example, if you duplicate a track and invert one of them, the phase difference between the two tracks is 180 degrees (Pi radians), and that is clearly visible when you zoom in close.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

cyrano
Posts: 2629
Joined: Fri Apr 17, 2015 11:54 pm
Operating System: macOS 10.13 High Sierra

Re: Sensible defaults could make Audacity a lot better

Post by cyrano » Thu Aug 13, 2015 1:02 pm

steve wrote:
cyrano wrote:Core Audio needed to adjust?
Sorry, I can't help with that (I don't see that issue on Linux). Perhaps worth raising that as a new topic on the Mac OS X board.
Not worth the trouble. It's probably only on my system. And I don't know anyone else playing around with 32 bit samples :o

It's just that my inquiring mind immediately popped up the question "Why would the distortion sound different on different tools?"

steve
Site Admin
Posts: 81609
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Sensible defaults could make Audacity a lot better

Post by steve » Thu Aug 13, 2015 1:30 pm

cyrano wrote:But does this affect a limited visual representation of the waveform in such a way that it becomes inaccurate enough to mislead the user?
Yes it can.
Here we have the same audio (a voice recording) in both tracks. I have zoomed in vertically too look at the noise between words (zoom level the same for both tracks).

The upper track is in Waveform (dB) view, and it "looks" like absolute silence between words, I know that it is not absolute silence because I can hear a faint hiss.
The lower track is in (linear) Waveform view. When zoomed in vertically I can see that there is a little low level noise, which corresponds with what I can hear.
tracks011.png
tracks011.png (16.67 KiB) Viewed 884 times
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

cyrano
Posts: 2629
Joined: Fri Apr 17, 2015 11:54 pm
Operating System: macOS 10.13 High Sierra

Re: Sensible defaults could make Audacity a lot better

Post by cyrano » Thu Aug 13, 2015 5:24 pm

steve wrote:Interestingly, linear units are used a great deal in digital signal processing. When I first started using Audacity I was also very critical of the +/- 1.0 default scale. However, I have softened my opinion over the years. I agree that novice users will benefit from "education", but we need to balance that against "raising the bar" for entry level.
I know, Steve. dB is relative, linear should be absolute. Only, most of the time, my equipment isn't that well calibrated that I can compare measurements with others :lol:
Going a bit deeper, "dB" does not provide "absolute measurement" - "dB is not a unit" - "dB" only gives a "ratio" that describes the relationship of one thing relative to another. On the other hand, the linear scale does provide "absolute measurement". A signal that has a maximum of +1.0 and a minimum of -1.0 is full scale - this is not an arbitrary assignment, it is the actual numeric values of the samples. For 16 bit integer, sample values are determined by dividing the binary value of the sample by 2^16. which normalizes the value to a range of +/- 1.0. Similarly for 24-bit integer, sample values are determined by dividing the binary value by 2^24. Thus, regardless of the number of bits, all integer formats have the same range - that is, full scale for 8-bit produces the same analog amplitude as full scale for any other integer format. For floating point formats (usually 32-bit float or 64-bit float), no normalization is used, so a sample value of 1.000000000000 has a linear amplitude of 1.000000000. If you want to experiment with this, you can capture individual sample values using the Nyquist command SND-FETCH

Legacy syntax (mono track):

Code: Select all

(snd-fetch s)
New (version 4) syntax (mono track):

Code: Select all

(snd-fetch *track*)
Again, thanks for all the effort.

I'm trying to concentrate on the project at hand: deploying a recording tool to about 20 users. To start with. A bit different from my own use for Audacity, which is mainly editing, shortening and occasionally, recording. Whenever I have to record "professionally", I use Boom Recorder. Because it has a number of things Audacity doesn't have. Like take administration. Or a running record buffer for these times I'm just a second slow. And time code. But BR doesn't do editing, it doesn't even do playback of it's own recordings once the file is closed. That's a big advantage, but makes it useless for this project.

As I'm easily distracted and Win 10 and Reaper 5 were released, I'm juggling a couple of other things too. So it's not a good time to start playing with nyquist code. :lol:

And for that project, I think most of these inexperienced users will do better with a realistic view. Even in general, I still think it's better to do away with the scientific observations. Both methods are a good as their references. And I'll admit dB has a reference problem. But so does linear. Let's take the following example:

You have an amp with 10 times gain. You know that, because you've measured the voltage on the in- and output. However, if you don't know the impedance, you don't know the amplification. Because there is also current amplification. Once you set that in dB's, the problem is gone. At least if you know the different dB's...

Even if inexperienced users are new to dB's, I can assure you explaining impedance to them is much, much harder. And you have to start somewhere to get anywhere.

Locked