> Mix_LoadMUS does take a filename but an application can also call
> Mix_LoadMUS_RW, which takes an SDL_RWops. All the existing backends
> support this.
>

Ah, OK then. I was sort of expecting that (but didn't find it when I
looked), since most SDL things let you take a RWop.

This may be oversimplifying things slightly. fluid_player_load isn't a
> public function and the public player functions that are there all
> revolve around the playlist. Each playlist entry only has one field,
> which is the seemingly flexible "void* data" but this is currently
> always treated as a filename. There is potential for this to work but
> the specifics would need to be discussed first.
>
> On the one hand, I've already done the hard work of using the sequencer
> interface instead but being able to simply pass a file handle to
> FluidSynth would cut the size of my SDL_mixer patch in half. It's
> therefore a solution that's well worth investigating. It would also
> sidestep the tempo issue, which may be harder to fix.
>

OK, well it would be exceedingly good to avoid duplicating all the MIDI
event loading code. I don't think passing a file handle to FluidSynth would
work in this specific case (or in several other general cases), because
while SDL's RWop data structure does internally use a FILE*, that isn't part
of the public interface to RWop. There would be similar problems if
FluidSynth was extended to a C++ or Python wrapper -- how would you wrap
this new proposed function? In C++ it would be expected to take an iostream,
and in Python it would typically be expected to work on any object with a
read() method.

Therefore I think David's suggestion is more extensible -- a function which
takes a void* pointing to an already-loaded MIDI file in memory and loads
it. Then the SDL_mixer backend can read all the bytes from the RWop into
memory before passing it to FluidSynth; the C++ wrapper can load from an
IOStream; the Python wrapper can read() into a memory buffer, etc.
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to