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

Reply via email to