For a while now I’ve been wanting to be able to run multiple instances of Foobar2000 on the desktop that powers ICYG. The extra instances could be used for a number of things: a parallel instance of ICYG streaming at a higher bitrate (the version I’d listen to over my home LAN), streaming different stuff like podcasts, or simply doing song/playlist management without interfering with the “production” ICYG player instance.

One of the neat features of FB2K that I’ve leveraged when scripting ICYG is invoking the .exe while it’s already running allows one to send controls to the running player instance. It’s how I change and load playlists on the fly. However, that feature (along with other dependencies, I’m sure), prevents you from launching another FB2K process with the same executable file instance.

This has been a nagging issue, but one that never bugged me enough to research. I’d turned on the per-user profiles toggle in FB2K that tracks preferences for each user, so that when I run it on my server as my normal user account, it doesn’t load up all the DSPs I use to stream ICYG. And for song/playlist management, I just do all of that in a session separate of the session running the production ICYG.

Well, all of that will change now. After a little digging, I found this nugget on HydrogenAudio when doing a search on “multiple instances”. Hmm… install different instances of FB2K in separate directories… What am I missing here? I assumed that FB2K was one of those apps that would let you install only one instance on a particular OS instance. Well, that’s not the case. You can install separate instances of FB2K anywhere you like on the system and run them independently of each other at the same time. They can even map to the same output device. COOL!

If the command-line control functionality continues to work flawlessly with the other instances I plan to install on my server, I’ll be a happy guy.

This will make some work for me, but it’s for the better. I need to document all the current settings I have in place to run ICYG (which are tied to a service account) and then uninstall the current FB2K instance and reinstall fresh in the default location (C:\Program Files\Foobar2000\), selecting not to use per-user profiles. I’ll accept the default associations for the supported music file types, and it’ll only be used for non-streaming (i.e. interactive) activities. Then I’ll install a second instance that’s local to the directory hive I’ve got all my other ICYG stuff in and change my scripts to point to it. However, I’ll make sure not to associate this instance with any file types or make any program groups or icons; I don’t want to accidentally trigger it outside of the ICYG role. Then I’ve got to customize that instance with all the DSPs and settings I documented before. After I’ve done that I can hatch additional FB2K instances in the same manner for each stream I want to serve.

It’s amazing how sometimes the simplest solutions don’t immediately present themselves.

Update: I believe I’ve verified that simply copying a working FB2K installation to a new location successfully creates a separate, working instance with all of its own settings. Also, to turn off per-user FB2K profiles, you can go to Preferences/Core/Startup and uncheck “Enable user profile support”.