[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] We need a new, better sequencer!
From: |
Tom M. |
Subject: |
Re: [fluid-dev] We need a new, better sequencer! |
Date: |
Mon, 20 Apr 2020 18:20:17 +0200 |
FYI: A new implementation is now ready and proposed here:
https://github.com/FluidSynth/fluidsynth/pull/604#issuecomment-616091967
It's the C++ implementation we've talked about earlier, because it received
quite positive feedback from the mailing list compared to the glib approach.
An open concern was the event ordering at the same tick I've proposed. With
this new implementation, events that have the same tick are given the following
order:
- #FLUID_SEQ_SYSTEMRESET events precede any other event type.
- #FLUID_SEQ_UNREGISTERING events succeed #FLUID_SEQ_SYSTEMRESET and precede
other event type.
- #FLUID_SEQ_NOTEON and #FLUID_SEQ_NOTE events succeed any other event type.
- Otherwise the order is undefined.
I do not see how this ordering could break any existing application. Events are
ordered by tick and it stays that way. On the contrary, it ensures that NoteOns
are spawned with the correct configuration that has been set up at a given
tick. Which is important, when you consider MIDI files that have their NoteOn
and programChange scattered over two different tracks
(https://lists.nongnu.org/archive/html/fluid-dev/2017-05/msg00004.html).
In addition, the sequencer now supports tempo changes, because you can change
its scale to any arbitrary value.
And No, this PR will not affect fluidsynth's MIDI player behaviour (for the
moment).
Feedback is welcome.
Tom
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [fluid-dev] We need a new, better sequencer!,
Tom M. <=