MusE: changing soundfont file paths in project

MusE is a DAW for Linux with both MIDI and Audio editing. https://muse-sequencer.github.io

Moderators: MattKingUSA, khz, spamatica

Post Reply
User avatar
Impostor
Established Member
Posts: 1392
Joined: Wed Aug 17, 2022 1:55 pm
Has thanked: 148 times
Been thanked: 366 times

MusE: changing soundfont file paths in project

Post by Impostor »

I have an old project which uses sf2 soundfonts. This project was created on an old OS installation where I had a different user name.

Now the MESS fluidsynth plugins can't find their soundfonts anymore. Running muse4 in the terminal reveals the messages:

Code: Select all

Warning: Could not open soundfont: /old/path/to/soundfont.sf2

Problem is, these paths are not saved as plain text in the .med file, and the fluidsynth plugin GUIs themselves give no clue as to which soundfonts were used in them.

Symlinking /old/path/to/soundfonts/ to /new/path/to/soundfonts/ works, but it would be nicer and tidier to be able to adjust file paths in the .med file in case my directory structure is revised more extensively in the future. Is it an option to save such paths as plain text in the .med file?

Tim E. Real
Established Member
Posts: 669
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 40 times
Been thanked: 110 times

Re: MusE: changing soundfont file paths in project

Post by Tim E. Real »

Yes we've had a few complaints here recently if I recall.
I took a fresh look at the situation and reviewed how the information is stored today.

Our MESS plugin system is similar to others in that each plugin is a library.
New ones can be created and old ones removed.
And like other systems, each plugin has unique custom configuration information, highly specific to each plugin.
LV2 also has configuration data, and VST has chunk configuration data.

Each system has different ways of communicating such information to a plugin.
MESS uses a MIDI SYSEX event to carry such (actually all) information to and from each MESS plugin.
This is the data that you see in the song file, the hex values under the 'midistate' and 'event' tags.
If you copy the textual data in the midistate event and paste it to an online hex-to-ascii converter,
you'll clearly see any paths embedded in the data.
And yes, there can be several paths observed (fluidsynth with its multiple fonts at once).

One option could be to store the data as XML tags and such, instead of a midi sysex.
But our XML scheme cannot possibly know what every plugin's custom configuration data format is.
The data format is unique to each plugin.
And we wouldn't want to embed recognizing such formats within the MusE application binary itself,
because then it's all "written in stone" and would have to be changed every time a plugin was created or removed,
which is not modular at all.

After all, asking us to 'unpack' the MESS midistate custom configuration data for easier editing would be equivalent to
asking us to 'unpack' LV2 and VST custom configuration data in the song file, which may also contain paths,
which would be virtually impossible.

Whew. Sir Talk-a-Lot.

While I ponder what to do about the song file, let me tell you what I just found in the code:
@spamatica has some commented code right before that printed error message you see
which attempts to put up a dialog box asking for a replacement path if the soundfont is not found.
Seems he was struggling with translations though.He left a comment of his problem.
Maybe we can fix his code... At least it's helpful before we figure out what to do with the song file.

Cheers.
T.

Post Reply