On Mon, 2009-01-26 at 09:43 +0100, Antoine Schmitt wrote:
Le 25 janv. 09 à 23:14, Josh Green a écrit :
Things for the new 2.x branch:
About new development, there is an improvement to fluid that I had
worked on two years ago in a private branch that I think should be
integrated inside the main code base. I don't know if it should be
integrated into 1.x or 2.x, because it changes the API a bit.
The bug is with the sequencer : in short, the sequencer uses the
computer clock to trigger its sequenced events, whereas the audio
buffers are requested and created by the soundcard when it needs them
which may be ahead of realtime, resulting in events not being
triggered at the right moment in the audio stream. The fact is that in
real life, audio cards do request audio buffers ahead of time,
sometimes a lot ahead, in bulk (like 16 buffers at once), thus not
leaving time for the sequencer to trigger its events at the right
moment in the audio stream.
I have fixed this by:
- making the sequencer use the audio stream as a clock
- calling the sequencer from the synth audio callback so that
sequenced events are inserted in the audio buffer right before the
audio is rendered
This implied a small change in the API because now the sequencer
depends on the synth to get its clock (which was not the case before).
How should I proceed to include it in the main code base ?
++ as
What you mention here addresses what I had listed as "Sub audio buffer
MIDI event processing" in that new things for 2.x branch list. I had
not realized that there was any work done on resolving this. Great!
Could you send me an archive of this branch? Also, if you could
describe what part of the API it changes, that would be helpful, but I
could probably gather that from doing a diff on the sources as well.
This sounds like something that could be useful to integrate into 1.x.