Le 15 mars 09 à 14:43, Pedro Lopez-Cabanillas a écrit :
David Henningsson wrote:
Pedro Lopez-Cabanillas skrev:
David Henningsson wrote:
* file output driver (fluid_aufile.c) uses another timer
instance. This
should be fixed as well, to solve ticket #15.
Agreed.
Please take into account that the file output can be used also
without
rendering a MIDI file, when FluidSynth is used as a real time MIDI
synthesizer. In this case, the clock timer needs to be preserved,
unless
you find a better solution.
We also have the case where the user wants to play a MIDI file, play
along himself, and put the result into a file. So we can only enable
fast rendering if we have both -i, and -n, and file output, and the
player does not use system clock timers. Did I forget something?
There is also the MIDI sequencer case (fluid_seq.c) where you can
find another
timer instance. This would be used by an application scheduling
(queueing)
timestamped MIDI events, for instance a drum machine, or a MIDI
arpeggiator,
or something like that.
My two cents on the sequencer timer... The sequencer timer has the
same problem that the midi timer had, as we discussed last january :
it is not synchronized to the audio time. This led to audio glitches
when the audio time was much different from the real time (which it is
especially true with DirectX drivers which can request up to 16
buffers at a time, so audio time can by much ahead of real time). I
have implemented a fix for this, where the sequencer timer uses the
audio ticks. I had the intention to commit a branch with this fix, but
time flies and I did not do it.
Now with the new slave timer attached on the audio stream that will be
introduced, I think that it is a much better solution also for the
sequencer. Much cleaner than the fix that I had introduced. The
sequencer timer should just be redirected to this slave timer. This
introduces a change in the API though, since this timer must be
provided to the sequencer.
I did not follow all the discussions about what will be introduced
when (1.0.9 or 2.0), but I think that whenever the slave timer is
introduced, the sequencer should be ported to it.
++ as
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev