fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] Re: Fluidsynth voice stealing


From: Norbert Schnell
Subject: [fluid-dev] Re: Fluidsynth voice stealing
Date: Thu, 13 Oct 2005 15:35:25 +0200

Hi Josh!

On 13 Oct 2005, at 10:58, Josh Green wrote:
I'm CCing the FluidSynth devel list on this..

First of all I discovered that my modifications of the voice stealing algorithm don't work properly... Ooops!

Admittedly I knew very little about the current voice stealing algorithm in FluidSynth until now. I looked over the changes you made and I agree
that something should be done about the voice age.
[...]
I still don't like it even then though, seems too indeterministic as to which voice ends up getting stopped. Perhaps making the weighted values
user configurable would help improve the situation (of course it would
be nice to be able to make the ranges non-linear).  Voice killing
statistics (counters for each criteria) would be nice too.

Our observation is that with a high polyphony, the CPU use of FluidSynth gets up quickly. Using it in the framework of Max/MSP usually means using it with many other processing in the same audio thread. So, we'd like to limit the polyphony and use a well adapted voice stealing.

Yes, "well adapted" to the musical material. I have the strong impression that voice stealing for song MIDI files mixing drums, harmonic and solo instruments could be rather different than for sound textures or Bach fugues or whatever and also depends on the used soundfont...

So, beyond different weights I'd even propose different "modes" (including the classical "kill-the-oldest", which is not bad is many situations).

For now there seems to be this urgent problem in the current voice stealing algorithm: Notes which are just starting don't get the needed priority because they don't sound yet. This is bothering for ongoing chords: The second note of the chord might right away kill the first before being killed by the third and so on. The result is that only one note sounds instead of a chord.

Well, so far the observations. Sorry, for the bogus code. I'll come up with something better soon.

Don't feel overvalued. I'd be with you in this, proposing:
1. introduce different voice stealing modes (I would propose an API and code)
 2. having the current algo as default (and evolving step by step)
 3. adding different algos (I'd provide the "kill-oldest-code")

How this can be organized properly?

Cheers
  Norbert





reply via email to

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