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: How does the RetroArch resampler compare to SSRC and SoX? (Read 2710 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

How does the RetroArch resampler compare to SSRC and SoX?

Hi,

I see people mentioning SSRC, SRC, SoX, PPHS, but nowhere I read anything about RetroArch, despite it being built-in.
How does it compare to SSRC (which in my understanding is considered the best?) and to SoX (which I understand it's almost as good as SSRC but much faster?)?

Btw, is there anything resembling consensus about when it's appropriate to upsample and when it's useless or even bad?
I use Audeze Maxwell headphones, and all what goes through them gets processed forcibly by their DSP.
I set them at 96000 because I have lot of 96000 flac. But I do have 44100 and 48000 too.
So, I am not sure if in my case it's better to have the Maxwell's headphones or a resampler plugin do the upsampling?
Any feedback about it?

And what about downsampling?
Dolby Headphone only supports up to 48000, so I have to use a resampler with it. Does the quality of the resampler have as much impact in downsampling as in upsampling?

Thanks

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #1
Why all the questions? As far as I know, all those resampler plugins are readily available for download. So...just try them for yourself and choose the one(s) you like best. That's what I did and I found that none of them suited my needs. So, I wrote one that did.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #2
Why all the questions? As far as I know, all those resampler plugins are readily available for download. So...just try them for yourself and choose the one(s) you like best. That's what I did and I found that none of them suited my needs. So, I wrote one that did.
Well I'm not that advanced so I would not be able to test the plugins with some software and see how they changed the music or whatever.
I rely entirely on my ears and this would mean hours or obsessive-compulsive A-B tests with two samplers, then with other two etc.

Why all that when there are people who have already done tests and can simply answer? Isn't this one of the reasons why there are forums?
It's not like I'm asking the moon either.
If people know the answer, sharing it takes less time than asking "why all these questions" :)

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #3
SSRC is not "best". It just has higher passband than SoX normally allows. But it also has longer ringing.
RetroArch is inferior to SoX and SSRS in stopband attenuation and its passband is not reaching 99%, while its ringing is slightly shorter than of SoX. But on highest quality settings you surely will not hear any differences.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #4
Quote
If people know the answer, sharing it takes less time than asking "why all these questions"
I did answer. I tried them all and found none suitable for my needs. I guess you didn't read my entire reply.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #5
SSRC is not "best". It just has higher passband than SoX normally allows. But it also has longer ringing.
RetroArch is inferior to SoX and SSRS in stopband attenuation and its passband is not reaching 99%, while its ringing is slightly shorter than of SoX. But on highest quality settings you surely will not hear any differences.
In a post in Reddit someone said that by downsampling from 96000 to 48000 with RetroArch they couldn't hear any difference, while with SoX the music seemed a bit more "narrow".
That's why I got curious about the RetroArch.
Personally I don't know how to interpret your answer because those terms are a bit too technical for me.
My knowledge is wide but not deep :) = I know about lot of stuff but I'm not an expert in any.

What is this ringing? The way you talk about it, it seems like it's a bad thing, so I'd say that in that regard SoX>RetroArch>SSRC.
While from how you talk of the passband it sounds that more passband is better, and therefore SSRC>SoX, but you don't say how much passband they have, so I don't know if the almost 99% of RetroArch are less than SoX.
And where is stopband attenuation important?
I'd ask you where I can read more about it but I'm pretty sure that you'd give me a link to a very technical explanation which I'd not understand, so if you have 2 min I'd be happy if you can explain it in easy words :)

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #6
I did answer. I tried them all and found none suitable for my needs. I guess you didn't read my entire reply.

Dude, I'm not going to do a dick-measuring contest with you for this triviality, feel free to believe whatever makes you happy, but my ADHD didn't reach the point that I can't read such a short sentence as yours.
I'd say that most likely you were so busy communicating how you disliked all resamplers for YOUR needs, that you didn't pay attention to what I was saying about MY needs.

I did not ask "what's the best resampler".
I did not ask "are these two resamplers good?".
I asked how does RetroArch compare to SSRC specifically. You did NOT answer that. Unless you think that "they both suck" counts as an answer. And even then you could have at least explained why they both suck, but you didn't do that either.
I also asked if it's more likely better that I leave 44100 and 48000 files as they are and my headphone's DSP takes care of the upsampling (usually Audeze is a guarantee of quality) or that I use a resampler in Foobar. And you didn't answer that.
And lastly I mentioned that in order to use Dolby Headphone I need to downsample to 48000, and I asked if the difference in performance between the several resamplers is as significant with downsampling as it is with upsampling. And guess what, you didn't answer that either.
Which is fine, you don't have to.
Indeed, you don't have to answer at all. Specially if you're not willing to actually share something helpful.
Just saying...

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #7
Ringing can be scientifically measured and displayed, is it always detectable by humans? Nope.
Please remove my account from this forum.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #8
I was trying to be helpful. Since you are ignorant of all technical aspects, my explaining why SSRC and RetroArch suck won't mean anything to you. The only thing that should matter to you is which one meets your needs and sounds the best. That's why I suggested you download all of them and try them. individually, in your system, using your music and your ears to determine which gives you the greatest amount of pleasure. Forget A/B comparisons: They are not useful.

Start with RetroArch and use it, as you normally would, for a week. Then write down what you like or dislike about its use and sound quality.  Next, use SSRC for a week and write down you impressions. Ditto with the others, except save SOX for the last round.

After all the listening, review your notes to determine the winner. If there is no clear winner, it means it doesn't matter what you use. So, if you want to use what was highly recommended 20 years ago, use SSRC.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #9
The SSRC stopband is almost brickwall and it does not have much bigger ringing than SoX.
Now how it compares on performance and delay/latency is another problem.

https://src.infinitewave.ca/?Top=SoX144_HQ&Bot=SSRC_HP&Spec=0155
Please remove my account from this forum.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #10
The SSRC stopband is almost brickwall and it does not have much bigger ringing than SoX.
Now how it compares on performance and delay/latency is another problem.

https://src.infinitewave.ca/?Top=SoX144_HQ&Bot=SSRC_HP&Spec=0155
It is hard to evaluate ringing by those pictures from src.infinitewave.ca

Upsampling 44.1 kHz impulse to 48 KHz. Pictures are clickable. Pay attention to time scale.

dBpoweramp/SSRC in foobar2000


SoX (foobar2000 component) (99%, No aliasing, Linear phase, Best):


Original SSRC (Wow, what a riiiiiiiiiiiiiiiiingiiiiiiiiiiiiiiiiiiiiiiing!)

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #11
But, but that such high frequency content is hardly easily to spot, unless one play extreme music with lots of loud transients maybe?
Please remove my account from this forum.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #12
It's funny how still nobody mentions RetroArch.
I start thinking that it's like Voldermort and it can't be named.
Or maybe it just sucks and nobody uses it and that's why nobody talks of it?
Yet, it's there, Peter or someone else chose it as built-in resampler together with dBpoweramp/SSRC, instead of the SoX.
That's why I am so curious.

To answer to @Tam Lin, all good, I simply have a different idea than you about what I need and how I'd like to be helped.
I don't know if there's a right or wrong there, so I will just stick with what feels "right to me", which is asking a few questions instead of just jumping into blind tests without knowing what I'm looking for.
I do understand the concept of "if you can't perceive a difference it doesn't matter which one you'll use", but somehow, when I am rebuilding my music library to hi-res FLAC, and I spend money for good headphones, and I invest so much time getting familiar with Foobar and several audio-science concepts, it feels right that I try to understand if there are differences between this and that resampler which although not easily audible would still affect the overall experience in some way.
Besides, it's also a matter of "education".
What I mean is that the ability to perceive subtle differences in sound is in part innate talent, in part training.
And depending on the personality, someone might find it easier to learn by knowing some concepts and, like I said before, knowing what one is looking for.
Different approaches. I read your suggestion and I know before even trying (from past experiences, not from prejudice) that it won't work for me. I get used quickly to a sound. So, if I'd test something for one week, I would stop perceiving its qualities real fast.
Where I perceive more is from differences.
That's why I actually am a fan of A-B tests. And I ask "what is the difference between A and B" instead of asking what is the best.
Another factor to consider is that I lack the needed knowledge to know what kind of source I should use to properly run certain tests.
For instance, the instructions to calibrate my currently favorite spatial virtualization (JB_Isone_Pro_Surround) are so specific that I would have needed a few reincarnation cycles to come up with that on my own.
So, I ask...
Let's just agree to disagree and I thank you for wanting to help :)

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #13

Quote
It's funny how still nobody mentions RetroArch.
That's funny because I mentioned RetroArch in my last post. RetroArch is popular in the gaming world because it has low latency but it uses 4x the CPU cycles as SOX and has a limited sample rate range and resolution.

The current trend is for CPUs with multiple cores. The trouble is, unless the programs you use are designed for multi-threading, the extra cores can't be used. None of the plugins you mentioned support multi-threading.


Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #14
RetroArch has very high quality and it was bundled to replace old fast PPHS resampler that couldn't be updated to 64-bits.

Out of the three mentioned resamplers SSRC is the slowest, has highest signal-to-noise ratio and its passband transition bandwidth is  the highest. It is closest to the mathematically ideal transition, but as has been said, that causes ringing which is undesired and can cause issues.

SoX is the fastest at a given quality setting. But if lower quality is allowed, RetroArch is fastest out of the three.

The SoX component has configurable passband allowing it to get close to SSRC in steepness, or be much gentler. It also allows adjusting the phase or leaving aliasing in. Though when high fidelity is the target, those options should not be touched.

RetroArch has quite gentle rolloff so there shouldn't be any ringing with it.

In a quick speed comparison I just ran RetroArch at normal setting was about 25% faster than SoX at normal. SoX at normal was about 390% faster than SSRC.

Tam Lin seems to believe he can hear differences with resamplers. I would like to see him ABX even RetroArch at normal quality setting, which provides SNR of 70 dB. That means errors it produces are 70 dB quieter than the signal. They are inaudible to human, even much worse errors would be. We just want super high quality because we can get it.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #15

Quote
Tam Lin seems to believe he can hear differences with resamplers.
I never said I can hear differences. I said the RetroArch plugin was not suitable for my needs. It is CPU Intensive, is not multi-threaded, sample rate is limited to 7-digits, and can't do double precision.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #16
P.S. Although double precision I/O is not likely with a foobar plugin because the samples are 32-bit float, it is a feature I require when considering a resampler code base for future development.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #17
It's funny how still nobody mentions RetroArch.

You mean how I reimplemented the libretro API in my own core loader out of pure spite because I hated RA's design philosophy, bloat, and overall project management?

A tangent, but yeah.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #18

Quote
It's funny how still nobody mentions RetroArch.
That's funny because I mentioned RetroArch in my last post. RetroArch is popular in the gaming world because it has low latency but it uses 4x the CPU cycles as SOX and has a limited sample rate range and resolution.

The current trend is for CPUs with multiple cores. The trouble is, unless the programs you use are designed for multi-threading, the extra cores can't be used. None of the plugins you mentioned support multi-threading.



ardftsrc resampler supports multi-threading (each channel is processed in separate thread) and 16bit fixed and 32bit and 64bit single/double floating point processing.
Please remove my account from this forum.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #19
In a quick speed comparison I just ran RetroArch at normal setting was about 25% faster than SoX at normal. SoX at normal was about 390% faster than SSRC.

I always use the RA in maximum quality. Is there any reason why one should not do that?

Btw, this might be an absurd question for you knowledgeable people, but why is speed so important?
Of course I understand that if a resampler is so slow that it can't keep up with the music, well, that's bad.
But I doubt that any resampler would be that slow. At least not these widely used ones.
So, if they all keep up with the music, for what is relevant that one is faster than the other?


Now, tbc I only need a resampler when I listen to 192000, to downsample from 192000 to 96000.
I specify this in case the difference between resamplers isn't as relevant for downsampling as it is for upsampling, or in case there are resamplers which are particularly good in downsampling.

Atm, unless someone brings something else, my choices seem to be:
- RetroArch. Plus points: it's built-in, easy to use, and according to Case it's similarly good and fast as SoX. Minus points: none that I'm aware of.
- SoX. Plus points: more configurable. Minus points: more things I'll need to ask to learn how to configure it, and what Case said made me maybe wrongly think that those customizations come at a price.
- ardftsrc resampler: Case posted some tests in the 25 pages thread that show no advantage over SoX and eventually a slight disadvantage. The concept is interesting and I also wonder why there's so much software still that doesn't take advantage of multithreading.

I personally feel like sticking with RetroArch.
But I'd like to know what's the right format to configure the sample rates that I don't want to be resampled. Just a space between each two? Or a comma, or a semicolon?

And I'd love to know more of what @mudlord meant
You mean how I reimplemented the libretro API in my own core loader out of pure spite because I hated RA's design philosophy, bloat, and overall project management?



Thanks again :)

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #20
I always use the RA in maximum quality. Is there any reason why one should not do that?

Btw, this might be an absurd question for you knowledgeable people, but why is speed so important?
When you use a resampler for example in ReplayGain scanner, the faster the resampler the faster the scan finishes.

When you use a resampler during realtime playback, the faster the resampler is (as long as its speed isn't achieved by tricks like using multiple threads), the more efficient it is and the less CPU power it needs. That means more processing power is left for other tasks you do with the computer. Or if you do nothing, the less electricity it consumes.

Atm, unless someone brings something else, my choices seem to be:
- RetroArch. Plus points: it's built-in, easy to use, and according to Case it's similarly good and fast as SoX. Minus points: none that I'm aware of.
- SoX. Plus points: more configurable. Minus points: more things I'll need to ask to learn how to configure it, and what Case said made me maybe wrongly think that those customizations come at a price.
- ardftsrc resampler: Case posted some tests in the 25 pages thread that show no advantage over SoX and eventually a slight disadvantage. The concept is interesting and I also wonder why there's so much software still that doesn't take advantage of multithreading.
RetroArch is good, but my recommendation at the moment would still be the separate SoX component. Its quality is higher and it is faster in all operations. And it is specially optimized for certain ratios where it goes even faster. The extra options I mentioned are wanted by some, just don't touch them and you can't ruin the results.
Note that simply using SoX alone would not be this great, lvqcl made a very good job creating the component using appropriate asm optimizations.

The ardftsrc resampler can potentially be great. I'd like to experiment with it in foobar2000 component too, but as it relies heavily on all the ffmpeg internals it will take some work to dig out into a separate component without dependencies. And its license forces one to release sources since it gets modified - I don't like that at all.

Multithreading is generally unwanted in a foobar2000 component, unless the operation is so demanding that it absolutely needs multithreading. When you do tasks that need speed, like run Converter or ReplayGain scan, the processing is spread on all cores by the task. If the components that are in use had their own multithreading, it would only make things slower.


But I'd like to know what's the right format to configure the sample rates that I don't want to be resampled. Just a space between each two? Or a comma, or a semicolon?
It should support both , and ; as a separator. Unless Peter fixed a silly oversight you shouldn't use spaces. Note that ranges are supported too, separate the two values by -.

And I'd love to know more of what @mudlord meant
It was not related to foobar2000. He's an emulator coder and was talking about his emulator projects.

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #21
The ardftsrc resampler can potentially be great. I'd like to experiment with it in foobar2000 component too, but as it relies heavily on all the ffmpeg internals it will take some work to dig out into a separate component without dependencies. And its license forces one to release sources since it gets modified - I don't like that at all.

I bet you can code it under 1hour by using FFTW3 instead of libavutil/tx from scratch.

Its pretty trivial, just do tapering with zero padding on both start and end of buffer so that audio is stored in middle.

Its just idea taken from https://www.pure.ed.ac.uk/ws/portalfiles/portal/304403303/2022_Giant_FFT_JAES_Valimaki.pdf and upgraded to online stream-able processing.
To get superb quality you need to increase size of processing buffers, that why there is quality option.
Please remove my account from this forum.

 

Re: How does the RetroArch resampler compare to SSRC and SoX?

Reply #22

Multithreading is generally unwanted in a foobar2000 component, unless the operation is so demanding that it absolutely needs multithreading. When you do tasks that need speed, like run Converter or ReplayGain scan, the processing is spread on all cores by the task. If the components that are in use had their own multithreading, it would only make things slower.
I'm using a libsoxr-based, foobar resampler plugin that uses two threads on an i9 CPU to resample from 44.1K up to 45158.4K (highest quality) and then resamples down to 176.4K using 8.5% CPU overall. On the same i9, using one thread, RetroArch resamples up to 3072K (highest quality) and then resamples down to 176.4K using 6.2% CPU overall. At higher sample rates RA stutters.

If you think my test is unfair comparing unequal sample rates, libsoxr does 2822.4K (highest quality) using 0.3% while RA uses 4.7% for the same rate and quality. Oh, one other thing, RA uses single precision (24-bit resolution) whereas soxr uses double precision (53-bit resolution). Each time you double the sample rate you must increase the sample width one bit.