Regarding GSoC 2016 Project Idea (JavaScript SoundFont 2 Parser and Synthesizer Engine)

Colin Clark colinbdclark at
Sun Mar 6 17:21:20 UTC 2016

Hi Saksham,

Thanks for introducing yourself, and welcome to the Fluid community. I'm glad to hear that you're interested in the SoundFont Google Summer of Code project.

In terms of your questions, I think the key issue isn't so much that MIDI.js doesn't exploit SoundFont's richness, it's that they don't actually really support SoundFonts at all. MIDI.js implements an "extractor" written in Ruby ( <>) that extracts WAV files for each MIDI note number by "playing" the SoundFont with a fixed 0.5-second duration. This has two fundamental drawbacks:

1. Because it packages a sound file for each note, it leaves a significantly greater amount of network and storage than a SoundFont (which was the whole point of SoundFonts in the first place)
2. It limits sounds to no more than 0.5 seconds in duration, which is fine for percussive sounds or short attack instruments such as a pianos or guitars, but it means that you can't usefully play back longer-sustaining sounds such as violins.

What we need is a genuine SoundFont parser and playback engine, which is capable of understanding the SF2 format and playing back its contents in an efficient and flexible way. Ultimately, we want to be able to use this engine in order to add SoundFont support to our various accessible sonification projects, providing an easy way to play back realistic instruments sounds.

Does this answer your question?


> On Mar 3, 2016, at 2:39 PM, Saksham Saxena <saksham.saxena.1994 at> wrote:
> ​Hi
> I'm Saksham Saxena, an undergraduate at Delhi Technological University, India. I found The Fluid Project quite interesting and unique, and especially the idea in question, JS based SF2 parser and synthesizer​, immensely aroused my curiosity, because of my passion for JavaScript based applications, and my love for composing music. 
> About the idea, I understand that MIDI.js et al don't always exploit SF2 richness, and how our un-opinionated sf2-parser will save the day with Flocking as synthesizer. However, I'd like to know more about the idea, and the previous experiences/issues with MIDI.js and/or any other library which allegedly isn't doing justice with .sf2 files. 
> Correct me if I understood anything wrong. Hoping for an enriching discussion! 
> -- 
> Regards
> Saksham Saxena
> Member, IEEE Delhi Section Student Network
> Member, IEEE DTU Student Branch
> Student, Delhi Technological University
> LinkedIn <> | GitHub <>_______________________________________________________
> fluid-talk mailing list - fluid-talk at
> To unsubscribe, change settings or access archives,
> see

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the fluid-talk mailing list