[Top][All Lists]

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

[fluid-dev] Re: Fast file renderer

From: josh
Subject: [fluid-dev] Re: Fast file renderer
Date: Mon, 05 Oct 2009 20:35:18 -0700
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

Quoting David Henningsson <address@hidden>:
address@hidden skrev:
Hello David,

I was looking at that bug that I mentioned before, where FluidSynth gets
stuck in fluid_player_join() when doing fast file render and the
renderer fails to be created (because of invalid format settings for
example).  I notice that in fluid_player_join() it waits for
player->status to not be FLUID_PLAYER_PLAYING, in the case of using the
sample timer.  This will never happen though, since the player is not in
a separate thread and therefore is not advancing.  Shouldn't
fluid_player_join just do nothing in the case of using the sample_timer?

Good question; in the sample timer case it is the audio thread that
processes midi and so it should advance as long as the audio thread is

In the case of fast rendering, where we do not have an audio thread, I
would say that we should not call fluid_player_join at all.

Suggest that we make (adriver != NULL) or at least (!fast_render) a
condition for calling fluid_player_join in fluidsynth.c.

Sounds good. If you see an elegant way to do this, or even un-elegant, do implement it ;)

- Added new functions fluid_settings_foreach_alpha,
fluid_settings_foreach_option_alpha and fluid_settings_option_count.

Does it make any sense to keep the non-alphabetical versions?

I had thought the same thing. There is additional overhead and memory allocation that occurs with the alphabetical versions, which is why I opted to keep them. Another reason is that if we were to not have separate functions and just make the current ones alphabetically sorted, then users of those functions might come to expect them to be alphabetical, and be surprised when a user uses an older version of FluidSynth. I don't think it would take much to convince me to just modify the original ones though, especially since those functions likely wont get used in performance critical code.

Do let me know if you think things should be done differently.

Count on it :-)

// David

Great!  Glad to have you around :)


reply via email to

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