I’m using Audacity 2.0.5 (on Ubuntu 14.04 on a Mac) to generate test files for debugging some issues in audio hardware of mine, and I ran into something that doesn’t make a lot of sense to me. Basically, the problem is this:
Create 16kHz project
Create new mono track
Select “Generate → Silence” and make, say, 10s of silence
Export either as S16_LE wav or as S16_LE raw PCM
Load in hex editor
Expected: all samples will be 0x00
Observed: samples actually look more like: 00 00 00 00 00 00 FF FF 02 00 FE FF 02 00 FE FF 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 FE FF 03 00 FD FF 03 00 FD FF 03 00 FE FF 01
The end result is that, when played through my audio eqipment, the silence is not truly silent but has a faint hiss. A file consisting of nothing but 00 over and over again creates true silence.
I don’t really understand why this is happening and how to mitigate it. If Audacity can’t export silence, I don’t know how I can trust any of the other test loads I’m generating (synthesized tones, etc).
I’m guessing that’s dither. Audacity is not a WAV editor. It’s an audio production editor. It runs internally at 32-bit floating depth and converts to your desired format at the export step. In order to keep the bit level conversion errors from adding up or aligning and becoming audible, Audacity adds a tiny dither signal.
It sounds fine but it drives scientists crazy.
You can turn it off in Audacity > Preferences > Conversion, but if you generate actual test signals instead of silence, they may have significant bit depth errors.
Thanks for the quick reply. While I was waiting for the topic to be approved, I found the dither setting and turned it off; this did have the effect I was looking for.
I’m basically having to become a bit of an audio engineer on the hoof, so I ended up reaching for Audacity because it’s a really well-known name. Is there a better software package for Linux for generating clean test signals in raw PCM or WAV format?
In which regard should it be better than Audacity?
Audacity is a really good choice, especially if you familiarize yourself a bit with the powerful Nyquist language.
You can even save your files from the Nyquist prompt–without dithering-- or just display the sample values or whatever you want.
I’ll go with “no”. Audacity is just about perfect for generating test tones.
The question of whether or not to use dither depends on what you are trying to measure. This is not “an Audacity issue”, this is a fact of digital audio. PCM audio has a finite resolution (about -90 dB for 16 bit PCM) and below that there is only quantization noise which may appear as harmonic distortion. Correctly dithered audio can extend the dynamic range by around 20 dB, allowing signals below the digital noise floor to be accurately reproduced and measured. When measuring low level harmonic distortion using a 16 bit PCM source signal, it is essential that the test signal is correctly dithered, otherwise your measurements are polluted by quantisation noise. Dither noise is predictable and can therefore be taken into account when analyzing the test results.
If you really want a “silent test signal”, the best way is to short to ground the input of the equipment under test.