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: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000 (Read 3646 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

I would like to request a "shim" of some sort which would make it possible to use 32 bit DSP components with 64 bit foobar2000. There are many abandoned DSP components that users rely on which never had source code available and will likely never be ported to 64 bit. Personally, I use foo_dsp_tube, and it seems the developer for that one is no longer around and their website is gone.

That is why I am asking. I realize that it will lower the precision if you put a 32 bit DSP in the middle of a 64 bit workflow, but to be honest I don't believe I would be capable of telling a difference. I also don't use that DSP in every DSP chain, only certain ones I use for immediate listening (not conversion to other formats), but when I need it I absolutely need it. A DSP shim like this would be more of a future-proofing feature so that if/when support for 32 bit foobar ends someday, users will still be able to use their required DSPs. It would be very much like supporting 32 bit VSTs— users can be warned that accuracy will be reduced, but they can choose to proceed anyway if they need the functionality. Lastly, it must be possible to make such a thing. DSPs in foobar have very specific input and output formats, and they would need to be converted, but such an operation isn't difficult.

Please consider it if you are able to make such a thing, as it would be beneficial not just for me, but any user who relies on older DSP components which will never be ported. Thank you.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #1
Why not just use 32 bit foobar2000?

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #2
It would be very much like supporting 32 bit VSTs— users can be warned that accuracy will be reduced, but they can choose to proceed anyway if they need the functionality.
Why would the "accuracy" be reduced with a 32-bit VST?

Lastly, it must be possible to make such a thing. DSPs in foobar have very specific input and output formats, and they would need to be converted, but such an operation isn't difficult.
That's a pretty big assumption isn't it?

Bogozo provided the best answer, but I also don't know why you couldn't find any kind of DSP effect you might want by using an appropriate VST plugin instead.  There are plenty of totally free ones, and the "tube effect" variety are there too (e.g. https://www.voxengo.com/product/tubeamp/)  If you're concerned about how that would affect portability, many do not require anything besides a single *.dll, which can be placed in and pointed to a subfolder of Foobar.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #3
I wonder how easy the following would be - foo_run or whatever:

For certain file types, open the file in an external player, play it, close that application, and move on.
Particular case of "an external player": 32-bit foobar2000.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #4
Why would the "accuracy" be reduced with a 32-bit VST?
I mean to say precision again. It's because the calculations would be in 32 bit FLOAT instead of 64 bit, but like I also said I doubt I personally would be able to hear a difference.
I also provided an answer for "Why not 32 bit foobar?" in that It would be a future-proofing feature for if and when foobar drops 32 bit support. It might also be useful for anyone who needs 64 bit foobar for whatever reason but still needs a long-abandoned 32 bit DSP sometimes. Finally, isn't it a simple operation to truncate 64 bit into 32 bit? Sure, you lose the least important bits, but again I doubt I personally could hear a difference from that.

I'm curious, are you actively against the idea, or do you just think it isn't necessary? I believe it would be beneficial for anyone who even just wants to move to 64 bit foobar and hang on to an older DSP component, and very important for anyone who needs 64 bit foobar and an old abandoned DSP.

**Edit**
You asked why not use a VST— I'm very attached to the tube DSP component I use. I don't go heavy on it - just enough to get an effect I heard from a real tube amp, and I'm not entirely sure if I would be able to get this exact effect from any VST.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #5
That's a pretty big assumption isn't it?
I don't think so. Pardon my second message, but foobar converts files from 32 bit FLOAT down to 24 or 16 bit in realtime every time you play something. That is what leads me to believe there would be no trouble doing it for a DSP component that works in 32 bit instead of 64 bit.

Why not just use 32 bit foobar2000?
I understand, and I currently do still use 32 bit foobar. But when you say "why not just use 32 bit", what it comes across as is "why not just be stuck on 32 bit foobar forever". That is why I think this kind of feature would be useful to many people.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #6
I'm curious, are you actively against the idea, or do you just think it isn't necessary? I believe it would be beneficial for anyone who even just wants to move to 64 bit foobar and hang on to an older DSP component, and very important for anyone who needs 64 bit foobar and an old abandoned DSP.
No not all, I mean who wouldn't want to have foo_run available in 64-bit.  It's just that some components have a very small user base, and combined with the few with the required programming skills and personal time/interest to do it, you have to inevitably say sayonara to some of the more niche plugins.  BUT, now that we have an excellent 32/64 bit VST host, the sea of effects those open up more than make up for it IMO.
**Edit**
You asked why not use a VST— I'm very attached to the tube DSP component I use. I don't go heavy on it - just enough to get an effect I heard from a real tube amp, and I'm not entirely sure if I would be able to get this exact effect from any VST.
You can't be "entirely sure" unless you TRY some.  Download 3 or 4 free ones, try them, THEN see where you're at.  It does seem to be an effect with a pretty good following on VST:
https://bedroomproducersblog.com/2021/01/20/free-saturation-vst-plugins/
https://blog.landr.com/8-free-vst-plugins-warm-sound/

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #7
I throw my 2 cents in this and say this is an excellent idea.

No not all, I mean who wouldn't want to have foo_run available in 64-bit.  It's just that some components have a very small user base, and combined with the few with the required programming skills and personal time/interest to do it, you have to inevitably say sayonara to some of the more niche plugins.  BUT, now that we have an excellent 32/64 bit VST host, the sea of effects those open up more than make up for it IMO.

I use some DSP components for multiple channel stuff and some of those are not supported anymore or even opensource.  VSTs isn't the answer to every use case from my personal experience either.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #8
You can't be "entirely sure" unless you TRY some.  Download 3 or 4 free ones, try them, THEN see where you're at.  It does seem to be an effect with a pretty good following on VST:
Thank you for the links. I will try them out and let you know if they work for me when I can.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #9
I'd love to see it too. The REAPER DAW can "bridge" 32 bit plugs to 64 bit and vice versa, so hoping it could be done with FB2K components too. I am not a programmer, so have no idea how difficult it would be.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #10
 I been wonderin this for months. and the reason i use 32bit on my main system and 64 on my laptop.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #11
I haven't had time to try out and tweak the VSTs yet because of health stuff. Still plan on it, but I'm just using 32 bit for now because the component is already exactly how I want it.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #12
I don't think so. Pardon my second message, but foobar converts files from 32 bit FLOAT down to 24 or 16 bit in realtime every time you play something. That is what leads me to believe there would be no trouble doing it for a DSP component that works in 32 bit instead of 64 bit.
I don't know if I am misunderstanding something, but converting between the 32-bit float and 64-bit float is a not an issue.
The issue is that foobar2000 isn't a simple piece of software. The shim would need to look like a full featured 32-bit foobar2000 to the components and translate all communication between the player and the host. It doesn't sound sensible to waste development effort into such thing.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #13
Btw, you could try creating an impulse response file with your tube sound. foobar2000 comes with a Convolver DSP which is meant to let you simulate any sound characteristics you want. Be it tube distortion or anything else.
You need a single pulse file with sampling rate you wish to use, run the file through Converter with your tube DSP configuration enabled and use the resulting file as impulse response in Convolver. Or in Stereo Convolver.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #14
Btw, you could try creating an impulse response file with your tube sound. foobar2000 comes with a Convolver DSP which is meant to let you simulate any sound characteristics you want. Be it tube distortion or anything else.
You need a single pulse file with sampling rate you wish to use, run the file through Converter with your tube DSP configuration enabled and use the resulting file as impulse response in Convolver. Or in Stereo Convolver.
Regarding that... foobar2000 doesn't come with the convolver, and the one made by Peter has no 64 bit version. The only convolver I have for 64 bit is the stereo convolver you kindly ported over (which works great for the crossfeed I use, by the way!) When I try to use mono impulses meant for EQ with the stereo convolver, it turns everything to mono. I also don't know how to make impulses based on what a component is doing. However, if I were able to make these impulses and had a convolver, you are right and that would absolutely solve my problem.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #15
foobar2000 comes with a Convolver DSP which is meant to let you simulate any sound characteristics you want. Be it tube distortion or anything else.
Not everything can be done with convolver. It can't be used as dynamic compressor/limiter, for example.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #16
I'm going to take Case's advice and try to make an impulse response for use with a convolver. I've been looking into it, but I can't figure out how to start. I guess I need a starting impulse? I don't know where to find one or how to create one, but I need one for 44,100Hz mono and however high bit depth foobar's convolver plugins will allow. I think can convert it in foobar with the tube sound component from there. Once I have that I shouldn't need any kind of shim, and it will allow me to experiment with VSTs knowing I don't need to find a replacement right away.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #17
I guess I need a starting impulse?
I guess you can start with this (which is an FIR graphic equalizer which I've have been updated to add a functionality to export as impulse response .wav file for use with convolver VSTs and fb2k components like @Case's new convolver component)

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #18
I don't know what I'm looking at when I open that link. Is it something that needs to be compiled? I've never successfully compiled code in my entire life (though I have tried...)

I just need um... I guess a "blank" impulse would be the way I think of it? So I can convert it in foobar with the tube DSP active like Case suggested. I need to find one or make one somehow.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #19
I don't know what I'm looking at when I open that link. Is it something that needs to be compiled? I've never successfully compiled code in my entire life (though I have tried...)
It is the JavaScript code on this CodePen project, so don't worry about the compilation stuff. So what you're should looking for the unit impulse thing is to set all bands to unity gain (which are default anyway) and export it as an audio file

I just need um... I guess a "blank" impulse would be the way I think of it? So I can convert it in foobar with the tube DSP active like Case suggested. I need to find one or make one somehow.
I guess you can start with this by messing with this JS code to make the unit impulse by setting the first element of the array to 1 (equal to 0dBFS) while the rest are zeroes, which do the same as the exporting the impulse response of FIR GEQ with all bands set to unity gain, except without latency

Remember, convolution can only emulate the filters and EQs, which are linear and none of convolvers can emulate nonlinear effects like tube saturation

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #20
Remember, convolution can only emulate the filters and EQs, which are linear and none of convolvers can emulate nonlinear effects like tube saturation
Oh—so that means the presented solution won't work? (I can't use a convolver to emulate the tube sound component?)

I'm sorry, I'm possibly dumb. I don't understand the rest of what you said.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #21
Converting the impulse with the tube sound DSP set for processor didn't do anything to it. It looks like it's just 4 seconds of silence... is that right? I was under the impression it's supposed to be a sine sweep or something like that. It's also 48kHz.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #22
Thanks for your help. I suppose it's moot anyway if you can't copy tube sound using a convolver. I'll have to reevaluate my options. Likely VSTs, but it might take some time to find a way to match the effect I'm currently getting.

Thanks to everyone for your help. Tube sound is literally the only remaining thing in a very long list of things keeping me from moving to 64 bit, which I have been putting in a lot of effort to overcome. Ironically, I decided to start using a component for tube sound because I wasn't completely happy with my tube preamp and I didn't want to be tied to any particular piece of hardware... but VSTs should be more versatile if I can find one that works.
Think millionaire, but with cannons.

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #23
Thanks to everyone for your help. Tube sound is literally the only remaining thing in a very long list of things keeping me from moving to 64 bit, which I have been putting in a lot of effort to overcome. Ironically, I decided to start using a component for tube sound because I wasn't completely happy with my tube preamp and I didn't want to be tied to any particular piece of hardware... but VSTs should be more versatile if I can find one that works.
https://www.voxengo.com/product/tubeamp/

https://blog.landr.com/8-free-vst-plugins-warm-sound/

Re: Feature Request: Shim for 32 bit DSPs in 64 bit foobar2000

Reply #24
Converting the impulse with the tube sound DSP set for processor didn't do anything to it. It looks like it's just 4 seconds of silence... is that right? I was under the impression it's supposed to be a sine sweep or something like that. It's also 48kHz.
It's not pure silence. The output file still has the impulse but it was left untouched. The file should have captured constant coloration created by the tube processor, but the DSP you like doesn't seem to have any.