Soundfont picker

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49066
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Soundfont picker

Post by Graf Zahl »

Chris wrote:It should be possible to have Timidity++ read the MIDI file through an stdin pipe, so it doesn't have to be physically written to disk.
As if that were the big issue...
I'm curious if it's possible to have the pipe handle MIDI commands generated over time, or if it's required to read it in completely before starting (i.e. if you could start by just writing a header for a single-track smf to the pipe, then write MIDI commands to it over time indefinitely).
I already checked that. Timidity++ not just reads the file but also does some processing on the event data before it gets played. So preconversion is the only solution.

The default configuration may be off-limits, but it's entirely possible to specify a different configuration with the -c switch. That's actually what my PR does, add a cvar specifying the cfg file and passing it via the -c switch (although the string parser GZDoom uses on Linux is currently not good so it doesn't split the options properly; however it could probably do away with the parser and simply construct the individual argument strings directly).
Yes, it can read additional config files - but AFAIK they are not used from a blank state but on top of the internal one. Like I said: Utterly insane.
I do agree that having a clean library API like FluidSynth is nicer from a developer point of view, but from the user/modder's point of view they should be able to work similarly. One needs a DLL and the other needs an executable, but the engine can handle all the gritty details for you.
It can hide the gritty details, sure, but it cannot eliminate them. The main problem with Timidity is that they way it works is rather shitty and prone to problems.
What I'd really like to do one day is integrate the player into ZDoom but for that to work the first thing to do is to make it reinitializable. It's really a huge mess of old C code, littered with global variables that keep their content until it exits, and to top it off, overstuffed with #defines for endless conditions. I once got it to compile on Visual Studio but the output was broken because apparently some subtle thing got broken while I was trying to remove one of the GCC-isms in the code.
ZzZombo
Posts: 315
Joined: Mon Jul 16, 2012 2:02 am

Re: Soundfont picker

Post by ZzZombo »

Graf Zahl wrote:That's not possible. Keep in mind that Fluidsynth is an external library that has no access to Doom's resource files.
Can't you unpack the lump somewhere in a temporary place, so it could be fed to the program?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49066
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Soundfont picker

Post by Graf Zahl »

This will be available once the Timidity++ branch is merged.
User avatar
Zenon
Posts: 531
Joined: Thu Apr 20, 2006 6:05 pm
Graphics Processor: nVidia with Vulkan support
Location: New Zealand

Re: Soundfont picker

Post by Zenon »

Awesome, thanks.
Post Reply

Return to “Closed Feature Suggestions [GZDoom]”