Skip to main content


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.
Recent Posts
General Audio / Re: How to shift entire audiofile by 24kHz
Last post by OLPP -
Do a sample by sample multiplication with cos(2*pi*24000*t). 

The sampling rate must be at least 2x the highest frequency present after the multiplication, so be sure to resample first.  96k is a good choice for normal audio.
It would be good to mention that a high pass filter with a passband of 24kHz and above is necessary after this procedure. Also, this method doesn't work when the bandwidth of the shifted signal and that of the original signal have a common frequency band.

A more general way of doing this would be using the Short Time Fourier Transform with overlapping, moving the audioband frequency coefficients to the desired band, and then IDFT-ing them and adding them back together. Like DVDdoug said, it can be done by writing a program.
General - (fb2k) / Re: Windows foobar2000 on Apple Silicon in Parallels
Last post by frogworth -
OK, that's very interesting.
I am planning on getting a machine with lots of RAM, like 32GB maybe, so it wouldn't be any trouble to assign a decent chunk to Parallels. And drag and drop is OK if I can use Windows Explorer within the VM, which is what I do now - i.e. I do have the entire guest OS running now.

My main concern has been what just *won't* work because of the new processor.
It sounds like I should be pretty safe running foobar2000 with Windows for ARM, and if so that's a relief!
Development - (fb2k) / Re: fb2k API questions
Last post by kode54 -
Probably not, for the same reason it's currently not possible to remove a component at run-time. All callback services must finish executing and be removed from registration. All input services currently decoding files must be removed from registration and cease operation. Basically every service that could be registered must be released by every other still-running service so it isn't referenced again. And things like initquit services must be called to simulate app shutdown for that component, in case the component relies on it for things like saving configuration.

Component configuration variables must also be serialized for saving on shutdown and removal of the component as well.

In the current SDK design, the player literally has no idea what components a particular service belongs to. And it completely randomizes the order of that global service table on every startup, to provoke possible race conditions from components that expect a deterministic load order to work.
General - (fb2k) / Re: Windows foobar2000 on Apple Silicon in Parallels
Last post by kode54 -
Well, I do have a yearly subscription to Parallels Pro, and use it on my M1. I just prefer to use it for the really persnickety apps, or games.

Remember that Parallels will only be getting half of your RAM, at most, and using at least as much as you give it for the entire duration that it is running. Also, drag and drop between host and guest requires a form of path translation to the shared filesystems the guest sees. You also have the overhead of an entire guest operating system running the whole time.

Although, it will perform better at the x87 math type things that many decoder plugins will be using. There is SSE acceleration in some, but not in others. Windows for ARM translates x87 math code to fast scalar ARM floating point code most of the time, so it will perform fast. Rosetta 2 translates it to software floating point, so it can maintain the full 80 bit precision at all times, at the cost of 100x or worse performance overhead, but this doesn't affect most 64 bit apps, usually only 32 bit, which CrossOver is running with a special thunking layer already.
Support - (fb2k) / Re: Synchronizing playlists on two systems
Last post by regor -
First read this and then download the plugin.

Follow those steps to install my scripts. (green button: code\download zip)
you have a full readme in pdf and several txt files explaining all steps required.

So if you have questions after reading them... feel free to ask. In resume you need to download a component (spider monkey panel) which lets you add javascript scripts to foobar (playlist-manger-smp). Then you will have to install those scripts in a new foobar panel (you have to create a new UI panel for that) and done. The readmes tell you where and how to install things, but the general idea is that. Don't get lost on the details.

Also, I have the Playlist Organizer installed, and it has no option for changing the save location of playlist files. How do I save the playlists in the library drive?
Foobar doesn't have a playlist manager saving playlist on a configurable location. That's the point. Foobar is meant to be used with playlists as semi-permanent UI elements, there are multiple "addons" trying to work around that but that's all. They make it easier to work with them but the base doesn't change. You can not use Playlist Organizer to save or load playlist in any way, and the playlist are always loaded on the program (you can see it if you have playlist tabs).

I find that approach totally awful, that's why I have created a full fledged playlist manager (within the constrains imposed by the framework). Others may think otherwise and since the program has not introduce any improvement for playlist organization in years I would say it's a design decision. Playlist are not meant to be synced\exported\imported\managed by design, just an internal file used by the program which you may manually save from time to time as m3u playlists.

What you try to achieve requires out of the box solutions, so it's either using my scripts, using symlinks or a single foobar portable instance installed on the network disk (so it can be run anywhere you have access to that disk).
SimplePortal 1.0.0 RC1 © 2008-2021