Built-in soundfont support for MIDI?

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Tue Oct 20, 2009 10:01 am

fred02 wrote:I will try to continue with my cooking analogy. Just because you know and have all the ingredients does not makes you chef. You have to know when and how to mix the ingredients (play notes), and that what these programs do, and each programmer uses a slightly different way, just as each chef do.
On a more technical side, SoundFont 2.* specification is actually quite complex and some parts are not trivial to implement. This is why there not so many programs around.
Well, I figured it'd be possible to use part of FluidSynth's source code for this task, and not writing all code from scratch. Of course it wouldn't be as easy as a soundfont library, but the code's there nonetheless.

fred02
Posts: 551
Joined: Thu Nov 22, 2007 5:54 pm

Re: Built-in soundfont support for MIDI?

Post by fred02 » Tue Oct 20, 2009 10:21 am

Nintendo Maniac 64 wrote: Well, I figured it'd be possible to use part of FluidSynth's source code for this task, and not writing all code from scratch. Of course it wouldn't be as easy as a soundfont library, but the code's there nonetheless.
Indeed, but then you have the main problem: somebody has to do it. And currently developers already have their hands full. But if you want to try nobody will stop you. You may even get some helpful suggestions, if asked politely. :-) And you don't have to wait for ROS sound subsystem to stabilise: write it for windows, and once it is finished it should "just work" in ROS, then you will have gratitude of both windows and ROS community + all music lovers around the world. 8-)

hto
Developer
Posts: 2193
Joined: Sun Oct 01, 2006 3:43 pm

Post by hto » Tue Oct 20, 2009 11:08 am

Recently, there appeared a thread on the Russian forum (google translation), where somebody suggested a procedural synthesizer which is released under Artistic License 2.0.

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Tue Oct 20, 2009 11:52 pm

fred02, I definitely would if I could, but alas not only can I not code, but I do not LIKE to code. >_< Therefore, I figured it'd be better to share my thoughts than to just sit here in dreamland.

fred02
Posts: 551
Joined: Thu Nov 22, 2007 5:54 pm

Re: Built-in soundfont support for MIDI?

Post by fred02 » Wed Oct 21, 2009 12:40 pm

Nintendo Maniac 64 wrote:fred02, I definitely would if I could, but alas not only can I not code, but I do not LIKE to code. >_< Therefore, I figured it'd be better to share my thoughts than to just sit here in dreamland.
You can still help ROS ;) , translations and testing are the first to come in mind.
hto: Interesting stuff, indeed, and since it is formula based it should be compact, unlike the fm-wavetable simulations I saw. It will be nice if somebody could wrap a driver around it.

Pharaoh_Atem
Posts: 129
Joined: Sun Feb 26, 2006 5:33 am

Re: Built-in soundfont support for MIDI?

Post by Pharaoh_Atem » Wed Oct 21, 2009 8:47 pm

fred02 wrote:
Nintendo Maniac 64 wrote:fred02, I definitely would if I could, but alas not only can I not code, but I do not LIKE to code. >_< Therefore, I figured it'd be better to share my thoughts than to just sit here in dreamland.
You can still help ROS ;) , translations and testing are the first to come in mind.
hto: Interesting stuff, indeed, and since it is formula based it should be compact, unlike the fm-wavetable simulations I saw. It will be nice if somebody could wrap a driver around it.
FluidSynth I believe could be compiled as a DLL and then used as the basis of the synth engine. A tiny soundfont bank could be included to have default support for MIDI synth.

Additionally, MIDI is also used in many older games, and this is generally passed through to the OS as a MIDI signal. Some have an internal MIDI processing system, but the ones I have used do not.

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Thu Oct 22, 2009 4:37 am

Pharaoh_Atem wrote:FluidSynth I believe could be compiled as a DLL and then used as the basis of the synth engine. A tiny soundfont bank could be included to have default support for MIDI synth.
THIS. In theory it would be easier to implement AND give better results since it'd be fully compatible with larger high quality soundfonts - that's a win-win in my book.

For small filesize soundfonts, here's a discussion thread about just that (most are in the lower single digit MBs):
http://www.un4seen.com/forum/?topic=8801.0


And I've been dying to say this at some point, I know your username's a Yu-Gi-Oh reference. :P
Last edited by Nintendo Maniac 64 on Thu Oct 22, 2009 5:05 am, edited 1 time in total.

Pharaoh_Atem
Posts: 129
Joined: Sun Feb 26, 2006 5:33 am

Re: Built-in soundfont support for MIDI?

Post by Pharaoh_Atem » Thu Oct 22, 2009 5:02 am

Nintendo Maniac 64 wrote:
Pharaoh_Atem wrote:FluidSynth I believe could be compiled as a DLL and then used as the basis of the synth engine. A tiny soundfont bank could be included to have default support for MIDI synth.
THIS. In theory it would be easier to implement AND give better results since it'd be fully compatible with larger high quality soundfonts - that's a win-win in my book.

For small basic soundfonts, here's a discussion thread with various small soundfonts (lower single digit MBs):
http://www.un4seen.com/forum/?topic=8801.0


And I've been dying to say this at some point, I know your username's a Yu-Gi-Oh reference. :P
Yep, FluidSynth can actually be compiled as a DLL for use as a MIDI engine. Mario Paint Composer by UnFun Games uses it, along with a very light soundfont. So, during the implementation of the audio engine in ReactOS, FluidSynth could be used to help make the MIDI engine in ReactOS. Users would be able to switch soundfonts and such through the control panel in the MIDI options in the Sound panel.

Meheheh... So.. someone noticed where my username came from... Without the avatar...

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Sat Oct 24, 2009 5:46 am

You're right, I just discovered that the MIDI plugin for foobar2000 uses FluidSynth as one of two MIDI backends, which also means it can use SoundFonts.



On a somewhat related yet off-topic subject...

LAWL, you have got to see this. While it doesn't support soundfonts, it's a MIDI driver for the Yamaha S-YXG50 for XP, but is COMPLETELY IN SOFTWARE. This basically gives you an emulated soundcard with decent MIDI that supports XG too, and it's free from Microsoft nonetheless XD.

I have got to try to see if this works in ReactOS for lulz :P

Driver download:
http://download.windowsupdate.com/msdow ... 403848.cab

Installation instructions (don't know if you can follow these exactly for ReactOS):
http://www.vgmusic.com/phpBB3/viewtopic ... 19#p109619

forart
Posts: 1050
Joined: Mon Nov 29, 2004 1:36 pm
Location: Italy
Contact:

Re: Built-in soundfont support for MIDI?

Post by forart » Sat Oct 24, 2009 9:04 am

Nintendo Maniac 64 wrote:On a somewhat related yet off-topic subject...

it's a MIDI driver for the Yamaha S-YXG50 for XP, but is COMPLETELY IN SOFTWARE. This basically gives you an emulated soundcard with decent MIDI that supports XG too, and it's free from Microsoft nonetheless XD.
TiMidity++/TiMidity++ Windows Synthesizer/libTiMidity instead. :ugeek:
»Forward Agency NPO
In progress we (always) trust.

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Sat Oct 24, 2009 11:04 am

^^That would've been nice to know earlier... though having soundfont support built-in to ReactOS would still work better not to mention give more exposure to the fact that MIDI can actually sound good.

EDIT: ...uh, I haven't a clue how to get soundfonts working on that. We REALLY could use built-in soundfont support then. :P Also FluidSynth is supposedly better at soundfonts and supports higher quality audio output. (the max for TiMiDy++ is 24bit and 48KHz while FluidSynth can do 32bit and 96KHz).

Pharaoh_Atem
Posts: 129
Joined: Sun Feb 26, 2006 5:33 am

Re: Built-in soundfont support for MIDI?

Post by Pharaoh_Atem » Sat Oct 24, 2009 7:56 pm

Nintendo Maniac 64 wrote:^^That would've been nice to know earlier... though having soundfont support built-in to ReactOS would still work better not to mention give more exposure to the fact that MIDI can actually sound good.

EDIT: ...uh, I haven't a clue how to get soundfonts working on that. We REALLY could use built-in soundfont support then. :P Also FluidSynth is supposedly better at soundfonts and supports higher quality audio output. (the max for TiMiDy++ is 24bit and 48KHz while FluidSynth can do 32bit and 96KHz).
FluidSynth is much better at using soundfonts over Timidity. Timidity's soundfont engine sometimes scrambles the order of instruments, so strange things come out of the speakers when it is being played. Plus, Timidity hasn't been updated in five years, so it's definitely not 64-bit ready on the Windows platform.

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Sun Oct 25, 2009 1:02 am

Well, now that we know this would be possible through FluidSynth, not to mention it'd be useful for making MIDI work at all in conjunction with a small soundfont, maybe it'd be about time to make a topic in the Feedback & Suggestions forum in the form of a more organized post?



EDIT: Oh wait, we should find and choose a specific small soundfont first that'll be good for all-around use. I personally like the following two:

AweROMGM is 1MB and about the same quality as the "Microsoft GS Wavetable SW Synth" in Windows. Unfortunately this one looks to be ripped from a commercial soundcard, that's no good!

CT4MGM is 4MB with a bit to somewhat better sound quality than the "Microsoft GS Wavetable SW Synth". This one MAY be legal to include since according to the webpage most soundcards come with it, implying that it's somewhat of a standard. Will need to research it more...


EDIT 2: Just thought of another issue we'll have to figure out somehow - MIDI playback quality. Sure you could just set it to 44.1KHz 16bit since nearly ANYTHING within the last 15-20 years can play that, but what about taking advantage of FluidSynth's 96KHz and 24/32bit support? The only two ways I can think is for there to either be an option for playback quality, or for there to be something in the OS that states what the highest-compatible samplerate and bitdepth are (I'd imagine there's something in the soundcard drivers that already deal with this).

Pharaoh_Atem
Posts: 129
Joined: Sun Feb 26, 2006 5:33 am

Re: Built-in soundfont support for MIDI?

Post by Pharaoh_Atem » Sun Oct 25, 2009 2:59 am

Nintendo Maniac 64 wrote:Well, now that we know this would be possible through FluidSynth, not to mention it'd be useful for making MIDI work at all in conjunction with a small soundfont, maybe it'd be about time to make a topic in the Feedback & Suggestions forum in the form of a more organized post?



EDIT: Oh wait, we should find and choose a specific small soundfont first that'll be good for all-around use. I personally like the following two:

AweROMGM is 1MB and about the same quality as the "Microsoft GS Wavetable SW Synth" in Windows. Unfortunately this one looks to be ripped from a commercial soundcard, that's no good!

CT4MGM is 4MB with a bit to somewhat better sound quality than the "Microsoft GS Wavetable SW Synth". This one MAY be legal to include since according to the webpage most soundcards come with it, implying that it's somewhat of a standard. Will need to research it more...


EDIT 2: Just thought of another issue we'll have to figure out somehow - MIDI playback quality. Sure you could just set it to 44.1KHz 16bit since nearly ANYTHING within the last 15-20 years can play that, but what about taking advantage of FluidSynth's 96KHz and 24/32bit support? The only two ways I can think is for there to either be an option for playback quality, or for there to be something in the OS that states what the highest-compatible samplerate and bitdepth are (I'd imagine there's something in the soundcard drivers already that deal with this).
I believe usually the sound card drivers take care of this aspect because they have to when working with the built in MIDI engine in Windows.

A site call freepats.org has FOSS soundfonts. Remember that soundfonts can be downsized from their humongous size by pulling out unneeded instruments.

Anyway, here it is a repository of soundfonts (not much though)

Additionally, this site offers a prebuilt version of Timidity on Windows (very old, but it DOES work). The important thing there is not the application though. It's the GM 6MB soundfont that was made by him and released as part of the Timidity package, giving it acceptable conditions for use in ReactOS, even if it is used outside of Timidity, since Timidity is a GPL package.

The soundfont is called TimGM6mb.sf2

The soundfont is of decent quality, so I think it would work.

Nintendo Maniac 64
Posts: 234
Joined: Sun Sep 17, 2006 3:08 am
Location: Northeast Ohio, USA

Re: Built-in soundfont support for MIDI?

Post by Nintendo Maniac 64 » Sun Oct 25, 2009 3:09 am

Just tried it out on several "more advanced" MIDIs that some not-so-perfect soundfonts incorrectly play back and it worked great! That definitely fits the bill.

EDIT: I've made the topic here:
http://www.reactos.org/forum/viewtopic.php?f=14&t=7608

Post Reply

Who is online

Users browsing this forum: Google [Bot], Istella [Bot], Yandex [Bot] and 4 guests