TinySoundFont

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

TinySoundFont

Postby NightFright » Thu Mar 19, 2020 3:07 am

I saw that EDuke32 and Rednukem have recently added SF2 playback via TinySoundFont and I wondered how much sense it would make to also have it in GZDoom.

TinySoundFont on GitHub

It seems quite simple and easy to implement and may be a possible replacement for Fluidsynth. I am not sure about the pros and cons, but I guess it depends on how costly it is regarding needed CPU power (even though that shouldn't be a factor any more these days) and to what extent it can be configured. Looking at the license, it should be possible to integrate.
Last edited by NightFright on Thu Mar 19, 2020 3:22 am, edited 2 times in total.
User avatar
NightFright
Spotlight Team
 
Joined: 02 May 2008
Location: Germany

Re: TinySoundFont

Postby Graf Zahl » Thu Mar 19, 2020 3:14 am

I already have a player for it, but I cannot see any pressing advantage over FluidSynth here, the difference in sound output between these two is minimal, unless TSF shows problems with certain sound fonts.

The player still needs a bit of cleanup work so it's not in the repo yet.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: TinySoundFont

Postby NightFright » Sat Mar 28, 2020 3:49 pm

TSF has recently seen some improvements due to the input from the EDuke32 implementation. This improved playback quality. It can be questioned how much this can be noticed ingame with other sounds playing at the same time, though.

Admittedly, it makes little sense to have more than one sf2 synth implemented (technically Timidity can do it, too, but it's rather meant for GUS patches). It's either one or the other, and if TSF doesn't have lowered system requirements or better sound than Fluidsynth, I can understand if a GZDoom implementation is rejected. However, if Raze inherits from EDuke32, maybe it's an option there.
User avatar
NightFright
Spotlight Team
 
Joined: 02 May 2008
Location: Germany

Re: TinySoundFont

Postby Graf Zahl » Sat Mar 28, 2020 4:04 pm

We'll have to see. FluidSynth has some other features, like experimental DLS support, but on the downside it's a huge DLL that's not easy to compile for Windows which makes it an overall unappealing choice.If TSF manages to match FluidSynth's quality without noticable compromises in quality I'd consider switching to it solely for matters of convenience.

Regarding Timidity++, yes it can read SF2 but it a) has issues with some SF2s and b) sounds totally different.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: TinySoundFont

Postby NightFright » Sat Mar 28, 2020 4:57 pm

That's actually why I made the suggestion in the first place since apparently they managed to get TSF into EDuke32 without the need of an external DLL. TerminX wrote that it's closely tied to the Apogee sound system they are using, so I dunno if the same could be done in GZD. If it's somehow easier to handle or integrate, it'd be something. They are still not done with TSF feature requests as far as I can tell, so let's see how things will develop.
User avatar
NightFright
Spotlight Team
 
Joined: 02 May 2008
Location: Germany

Re: TinySoundFont

Postby Graf Zahl » Sun Mar 29, 2020 1:14 am

TSF is a single header library that's trivial to include in ZMusic. I already have a player but the TSF version I used when testing was simply not worth it, but if it really gets better I'd be happy to toss FluidSynth out. I don't think the DLS support is worth more than 2 MB of download size in addition to increased difficulty to compile due to the added dependencies that make it even harder to compile. Blzut has made a build script for FluidSynth but this thing requires software that only works on Windows 10 and huge amount of resources. It's really ridiculous because of the different build systems used by the dependencies.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: TinySoundFont

Postby _mental_ » Sun Mar 29, 2020 1:46 am

You can download artifacts from the corresponding GitHub actions page. This build is the latest one at the moment.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: TinySoundFont

Postby NightFright » Sun Mar 29, 2020 6:13 am

TSF still has some problems, e.g. with custom modulators, which is why certain soundfonts like the one based on the Turtle Beach Montego II Aureal softsynth soundbank (au30gm) don't sound right. Author says he won't fix this, so it might never be feature complete, sadly.

However, I can't tell how many soundfonts out there use these modulators, so maybe it's a rather minor thing that only affects a few soundfonts out there.
User avatar
NightFright
Spotlight Team
 
Joined: 02 May 2008
Location: Germany

Re: TinySoundFont

Postby Graf Zahl » Sun Mar 29, 2020 7:52 am

In that case I'd rather skip it as it doesn't add anything of value, aside from easier maintenance.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany


Return to Feature Suggestions

Who is online

Users browsing this forum: No registered users and 0 guests