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: FSRC resampler (Read 7983 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

FSRC resampler

Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

Quote
FSRC (Overlap-Save) - ~5.6s
FSRC (Polyphase) - ~16.1s
libsamplerate - ~103.9s

Any programmers who might be interested in making a Foobar2000 dsp of it if it's possible? I would like to try it out against SoX. Regards.

FSRC resampler

Reply #1
Note that it's a GPL library which (IIRC) makes distributing a foobar2000 component based on it problematic.

FSRC resampler

Reply #2
That's a shame. Does GPL say that it is only allowed in open source programs or something? Regards.

FSRC resampler

Reply #3
That's a shame. Does GPL say that it is only allowed in open source programs or something? Regards.


It says a lot but that's a reasonable simplified summary.

FSRC resampler

Reply #4
Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

The numbers on the FSRC web-site look good because the author chose to compare it against libsamplerate, one of the slowest SRCs around (and in its slowest mode).  Also, it may not be that significant overall, but he's way-off with his ripple estimation of libsamplerate; it's much smaller than suggested there.

As for its claimed alpha status: when it works, the output looks good, but it does crash out on certain ratios, even some fairly simple ones.

The website mentions a future comparison against SoX, but that was several years ago; maybe he made the comparison then gave up when he saw the results.

FSRC is GPL as it relies on FFTW's (GPL) ability to perform FFTs on arbitrary sized blocks (not just powers of 2, for which there are many non-GPL FFT libs available).

FSRC resampler

Reply #5
Thanks for the great explanations guys. This migh be a side track but SRC is one of
Pulseaudio's resamplers right? Do you guys know if it is possible to use SoX's resample in Pulseaudio?

 

FSRC resampler

Reply #6
Yes, libsamplerate a.k.a. SRC is available for Pulse; easy integration as a lib is one of its big pluses. Though it probably ought to be, AFAIK SoX isn't available for pulse (neither its SRC nor the rest of libSoX has really been pushed much in the general purpose lib direction).

FSRC resampler

Reply #7
It comes with a standalone tool, so I did a quick comparison with some other well-known SRCs (sndfile-resample = 0.1.7-3ubuntu1; others converters compiled from latest source).

Execution time and comparative execution time percentage shown for a couple of common SRC ratios, and a couple of conversion qualities:

High-ish quality:

Code: [Select]
44100 ->  96000 sox rate                   6.21s 100.0%
44100 ->  96000 ssrc                      20.58s 331.4%      
44100 ->  96000 fsrctool -q mq20          27.74s 446.7%
44100 ->  96000 sndfile-resample -c 1     40.17s 646.9%

96000 ->  44100 sox rate                   5.28s 100.0%  
96000 ->  44100 ssrc                      19.98s 378.4%      
96000 ->  44100 fsrctool -q mq20          28.88s 547.0%
96000 ->  44100 sndfile-resample -c 1     34.54s 654.2%




Best-ish quality:
     
Code: [Select]
44100 ->  96000 sox rate -vs               7.01s 100.0%
44100 ->  96000 ssrc_hp                   32.86s 468.8%
44100 ->  96000 fsrctool -q hq24          24.19s 345.1%
44100 ->  96000 sndfile-resample -c 0    369.50s 5271.0%

96000 ->  44100 sox rate -vs               5.91s 100.0%
96000 ->  44100 ssrc_hp                   32.31s 546.7%
96000 ->  44100 fsrctool -q hq24          22.58s 382.1%
96000 ->  44100 sndfile-resample -c 0    359.16s 6077.2%


FSRC resampler

Reply #8
Thank you bandpass for those informative demonstrations. I guess compared to the others, this resamplers is not quite as high quality.

FSRC resampler

Reply #9
Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

Quote
FSRC (Overlap-Save) - ~5.6s
FSRC (Polyphase) - ~16.1s
libsamplerate - ~103.9s

Any programmers who might be interested in making a Foobar2000 dsp of it if it's possible? I would like to try it out against SoX. Regards.



How does it compare if you run the same tests that they run at:

Infinite Wave Test ReSamplers

FSRC resampler

Reply #10
How does it compare if you run the same tests that they run at:

Infinite Wave Test ReSamplers

AFAIK, one of the two tests I ran above (96k -> 44100) is the same as is run at the Infinite Wave site (they test only one ratio, and in only one direction).  I ran each test twice, once on an 8-second sweep (as they do, though I chose a linear sweep; they use a quadratic) to generate the spectrograms, and once on several minutes of audio, for the execution-time measurement.

Where possible, I used the same settings as Infinite Wave for each converter; but I don't know what settings were used there for libfsrc, apparently something with better stop-band rejection than "-q hq24", but I couldn't get anything higher than that (such as "-q push") to work.