fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] Re: SF2 loader from libInstPatch


From: Josh Green
Subject: [fluid-dev] Re: SF2 loader from libInstPatch
Date: Wed, 09 May 2007 16:31:42 +0200

On Wed, 2007-05-09 at 15:46 +0200, Miguel Lobo wrote:
> Hi Josh,
> 
> I was planning to replace the SoundFont loader in my code (inherited
> from FluidSynth as you know) with the corresponding code from
> libInstPatch (the code would be C++-ified, of course ;)).
> 
> At the moment I'm planning to begin from IpatchSF2Reader.c and
> IpatchRiffParser.c.  Any advice on additional files I may need to look
> into or anything else that could help me with the porting?
> 
> Thanks,
> Miguel

Hmm, well I must admit my initial reaction was one of being a little
ticked off, when I read this email.  I don't particularly like the
thought of libInstPatch being forked, but of course it is free software.

There are plans for writing a C++ binding and I imagine it wouldn't take
that much to get that off the ground (there is already a Python binding,
which is fairly auto generated).  I would much prefer that you go the
route of using a C++ binding, than to take the bulk of several years of
work that I have done, and start porting it, to a platform I'm not yet
convinced is the right way to do things.  You would thus be contributing
to libInstPatch, rather than vamping off it (in my not so humble
opinion).

If you really must have it your way though, here is some information:

The IpatchSF2Reader/IpatchRiffParser are only for the SoundFont loading,
there is also GigaSampler and DLS loading support, though not complete
(which is the main reason why I thought adding libInstPatch support to
FluidSynth is a good idea).  libInstPatch is also a framework for
loading/manipulating instruments in an object oriented manner, so you'll
likely be porting tons of other stuff too, in fact, likely the bulk of
libInstPatch.  In particular, the FluidSynth support that Swami has
(using libInstPatch) uses the IpatchSF2VoiceCache system to convert
instrument objects into arrays of SoundFont compatible voices.  These
voices are then loaded into FluidSynth.  You'd probably want to look at
the FluidSynth plugin in Swami, to rip that (although its currently GPL,
not LGPL).

I would ask though, for the sake of free software, that you consider a
little more of how to be productive in regards to the community as a
whole.  Although perhaps I myself struggle with cooperative coding (I'm
still the only developer for Swami/libInstPatch, although that is
perhaps more a lack of willing developers than a personal issue), it
would be nicer to try and work symbiotically on things.  I know my
overall moral would suffer if I felt like someone just stole a project
away from me, I hope you can understand where I'm coming from.  I also
understand that it is likely not your intent to do so.  But please,
could we try the C++ binding route?  It would lead to a much more
accessible libInstPatch (C binding, Python binding, C++ binding).  I'm
really not convinced at this point that C++ is the best idea for
libInstPatch, since it is already object oriented and rather accessible.

Best regards,
        Josh Green






reply via email to

[Prev in Thread] Current Thread [Next in Thread]