How do I prevent Ardour from "forgetting" my fluidsynth soundfont file?

I have a few dozen sessions, all of which depend on a-Fluidsynth lv2 plugin and all of which reference a soundfont file (sf3) in a specific place. Every once in a while, the sessions “forget” the setting for the location of that soundfont file and I have to go through all 40+ sessions (x multiple tracks) to tell all these Fluidsynth instances where to find that sf3 file.

I think this may happen whenever I switch machines or rebuild/reinstall Ardour.

Shouldn’t the pointer to this file be stored in the Ardour session file? Why is Ardour forgetting and more important, how do I keep the reference to that file through any and all reinstalls/restarts/session shares, etc?

I can only confirm that I have the same problem on 5.12, arch with zen kernel.

1 Like

Have this problem on my most of my projects now, I load the project and fluidsynth has forgotten the location of my soundfonts, I manually reset it for all the tracks, I click save, close Ardour, reload and they are gone again!! very frustrating.
I started putting the SF name in the track name so it’s slightly quicker to reset them again.

Kubuntu 18.04 Ardour 5.12.0

This is with a-fluidsynth as LV2 plugin?
This not normal. Ardour does restore plugin-state and a-fluidsynth re-loads the .sf2 file just fine. So the question is rather why it happens on your system(s).

Can you reproduce this, starting with a new empty session and just a single MIDI track, and a-fluidsynth?

Ardour (actually liblilv) cretes sym-links to the original, external .sf2 file in session-dir/externals/ can you check if that symbolic link is valid? The output of find /path/to/the/ardour-session-dir/ ls may be helpful, as would be th content of sesson-dir/plugins/*/*/*.ttl.

1 Like

That is likely. Files that are used by plugins are not included with the session. They are stored as symbolic links references to the original external file in the externals folder. When switching machines you have to dereference those.

Thanks a lot, that was the problem, I moved all my soundfonts from various folders into a single folder, which obviously broken the symlinks.

Maybe a feature request could be a simple check on project load to make sure the symlnks are not broken and if they are broken just bring up a warning dialog with ‘Continue’ / ‘Remove broken links’.

My workaround for this was to have the soundfont file in a particular location and as long as it was there, any Ubuntu studio version of ardour (ootb) had no problem. It would seamlessly use the SF3 in the location specified by the session, even on a new computer.

However, if you build ardour from scratch, it’ll have problems. Opening a session with ardev fails to locate and use the SF3 file, even on the exact same machine with the exact same session.

fluidsynth: warning: Sound font version is 3.1 which is newer than what this version of FLUID Synth was designed for (v2.0x)
fluidsynth: error: Couldn’t load soundfont file
fluidsynth: error: Failed to load SoundFont “/home/cyrus/Desktop/thingamagig_songs/thingamagig-smashing_pumpkins-today/plugins/496/state6/FluidR3Mono_GM.sf3”
fluidsynth: warning: Sound font version is 3.1 which is newer than what this version of FLUID Synth was designed for (v2.0x)
fluidsynth: error: Couldn’t load soundfont file
fluidsynth: error: Failed to load SoundFont “/home/cyrus/Desktop/thingamagig_songs/thingamagig-smashing_pumpkins-today/plugins/461/state5/FluidR3Mono_GM.sf3”

This is probably due to separate configurations for each of the 2 instances of ardour, although I don’t know enough about the internals to be sure or what, specifically, the configuration problem is.

Edit: It’s as if the ootb Ubuntu studio version knows to follow the symlink but the built version (ardev) does not. It looks for the file within the session directory and doesn’t follow the symlink through to the actual default location.

Oddly enough I am having the same issue with soundfonts regardless of whether I use a-fluidsynth, Calf Fluidsynth or LinuxSampler to load them. Every time I open a session from where I left off, I have to manually reload the soundfonts on each track that uses them. I have all my soundfonts organized in folders/subfolders in my Document folder (e.g. Soundfonts/Keys/Piano, Soundfonts/Keys/Organs etc.). I usually don’t use very many SF tracks, so it’s not extremely time consuming to reload them each time, but of course it would be nice if the settings were retained between sessions.