Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: SoX DSP discussion (Read 7348 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

SoX DSP discussion

I'd like to see a similar wrapper for DSP processing (piped input/output). Especially this would be useful for external resamplers in conversion profiles...
possible?

SoX DSP discussion

Reply #1
If you are referring to SoX, there is already a SoX based resampler....

SoX DSP discussion

Reply #2
If you are referring to SoX, there is already a SoX based resampler....


yes I'm referencing to SoX but I think the foobar's SoX resampler lacks dithering method. Or am I wrong?

SoX DSP discussion

Reply #3
foobar2000 DSPs operate on 32bit floating-point data; doing any dithering in DSPs is outright harmful.
Dithering should happen at the end of the pipeline which is exactly what foobar2000's dithering feature does.
Microsoft Windows: We can't script here, this is bat country.

SoX DSP discussion

Reply #4
So the foobar's SoX resampler with foobar's internal dithering is supposed to produce same or better final output than using SoX externally?

SoX DSP discussion

Reply #5
If you care so much about output quality, why don't you get a 24-bit soundcard and never need dithering again? If you need dithering in first place, I presume you don't have one yet. I see you're talking about conversion, OK.

Using foobar2000's internal dithering at least ensures you get your output dithered to the correct bit depth. Whether there are any advantages to using external dithering, you're free to find out for yourself; at least it's completely pointless (and harmful) if you're converting to a lossy format or lossless higher than 16-bit.
Microsoft Windows: We can't script here, this is bat country.

SoX DSP discussion

Reply #6
Okay, I'd have 2 more questions:
If I convert the source to lossy format, does bit depth matter? (If so, is it better to convert from 24bit or 16bit source? and moreover is dithering in effect when no bit depth conversion is made?)
And finally, what are optimum values for Passband, aliasing allowed/disallowed and phase response when downsampling to 96kHz and leaving the original bit depth?

SoX DSP discussion

Reply #7
Dithering is controlled by the option it has in the Converter, source vs target bitdepth does not matter there. You can't control source bit depth as that is a feature of your source files. You can tell the component what bit depth encoders accept. If you use the built-in profiles they are already set to correct and optimal values. All lossy codecs I know of support at least 24 bit input files so dithering with them is not required. The quantization error noise is way under the noise floor of any equipment or human hearing. If you convert to 16 bit lossless files from higher bit depth source files, from lossy files or perform DSP operations, dithering is beneficial in theory. Though I don't think there have been any ABX cases where this has been audible with normal music. Only with very quiet samples. I'd skip the dithering as I can't hear improvement with it and it ruins digital silence.
SoX resampler component has optimal settings selected by default. Just select target samplerate and Best quality from the dropdown.

SoX DSP discussion

Reply #8
SoX resampler component has optimal settings selected by default. Just select target samplerate and Best quality from the dropdown.


Thank you so much.

SoX DSP discussion

Reply #9
SoX resampler component has optimal settings selected by default. Just select target samplerate and Best quality from the dropdown.


Please explain. This states that default setting (HQ Passband 95%) is optimum, by other opinions it's 99% (the maximum value).
Which is right? I assume I don't want aliasing.