fluid-dev
[Top][All Lists]
Advanced

[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





reply via email to

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