Open source high-quality pro audio sample rate converter library released from Voxengo

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

David Else wrote:This looks great. Sorry if i missed it, but is there a compiled version with basic manual?
I'm not sure what do you mean? This is a C++ library which you should compile. It's mostly a templated library which does not require a "lib" file. You only need to compile a single "r8bbase.cpp" file.
Image

Post

The link to documentation is available at the project's page https://code.google.com/p/r8brain-free-src/
Image

Post

Aleksey Vaneev wrote:
David Else wrote:This looks great. Sorry if i missed it, but is there a compiled version with basic manual?
I'm not sure what do you mean? This is a C++ library which you should compile. It's mostly a templated library which does not require a "lib" file. You only need to compile a single "r8bbase.cpp" file.
I mean a .exe command line version for non programmers to use, i guess not, no problem. Would be cool to update your free version on the Voxengo site?

Post

Subscribing to this topic, super stuff! :-)

Post

Peter Roos wrote:Subscribing to this topic, super stuff! :-)
Hi Peter, nice to see you here. :D Yeah, r8brain is pretty cool.

Post

I have used the Pro version for my Samplicity IR libraries and also still prefer Pristine Space over newer convo plugins. Aleksey makes superb stuff!

Post

Got it working ;-) - deleted my question

Post

I got the resampling working in my TrueStereoIrBuffer class - COOL! :-)

I process the four buffers (doubles) (currently in the range 2.3 seconds, 48 kHz downto 44.1 kHz) after each other, creating a resampler once, and clearing it between the buffer handling.

Without the GUI running (i.e. on loading and resampling the first default IR set, this takes around 0.8 sec. When switching the IR preset, this takes around 1.25 sec. Tried buffer sizes between 256 and 1024.

Some questions:
Should I initialize 4 resamplers and iterate over them, like in example.cpp? Will this be more efficient?

Should I change default parameters? I find it very difficult to understand how I could tweak the resampling for optimal quality and/or speed.

My IRs are in 32 bit float @ 48 kHz. I expect that downsampling to 44.1 kHz will be used most, followed by upsampling to 96 kHz. I guess 88.2 kHz is not used much.

I will make new libraries like this big set from Teldex Studio Berlin also in 48 kHz.

Thanks in advance for any comments!

Peter

Post

An alternative and dirty trick would be to resample the entire library with R8Brain Pro to 44.1 kHz and include them as well in the locked library file. This would mean I only have to support upsampling by a factor of two ;-)

Post

That "example.cpp" is a good usage example, I think. In your case, using 1 resampler in series or 4 resamplers in parallel won't make much difference, but you can make a multi-threaded code with 4 resamplers running in parallel. In single-threaded mode having 1 resampler with clearing between resampling is more memory-efficient. But when resampling huge on-disk files you have to use several resamplers in parallel, 1 for each channel.

I suggest you to use and study the predefined CDSPResampler24, CDSPResampler16, CDSPResampler16IR classes, they have parameters correctly set. The basic formula for ReqAtten is something close to 6.02*BitDepth+40. The ReqTransBand selection depends on how "greedy" you are for the highest frequencies. It's set to 2% by default, but in practice you can use 4 or 5, that still leaves a lot of frequency content (flat up to 21kHz for 44.1k audio).

0.8 seconds to resample four 2.3-sec IRs from 48k to 44.1k? Seems too much. I would expect something like 50 to 80 milliseconds.
Last edited by Aleksey Vaneev on Sun Sep 29, 2013 5:50 pm, edited 1 time in total.
Image

Post

Thanks very much for your reply, dear Aleksey!

I will dive into this deeper - lots of stuff to learn.

And maybe my timing results suffer from using debug mode.

Have you heard some of my new Berlin Teldex Studio IR's? Made of course again with your great Deconvolver!

https://soundcloud.com/peter-emanuel-ro ... -ir-reverb

https://soundcloud.com/peter-emanuel-ro ... emo-french

https://soundcloud.com/peter-emanuel-ro ... oid-demo-2

https://soundcloud.com/peter-emanuel-ro ... o-irs-demo


Thanks again,

Peter

Post

I don't know much about C++ so this may be an obvious Q. Would it be possible for this library to be compiled as a DLL and used in a Delphi application?


Shannon

Post

Currently no DLL is available. I'll offer a DLL in some future update, but DLL is quite a limiting format for this library, it won't implement all possible options.

It seems that I was able to add DLL support sooner, you may contact me via info@voxengo.com - I can send you a test version of the DLL together with the Delphi interface unit file.
Image

Post

I've added DLL support, can be downloaded at project's home page.
Image

Post

Just :hyper: Thank you, Aleksey! :hail: Hopefully, this will affect a few programs that I use... :D
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post Reply

Return to “DSP and Plugin Development”