[Top][All Lists]
[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
- [fluid-dev] Re: Fluidsynth voice stealing, Josh Green, 2005/10/13
- [fluid-dev] Re: Fluidsynth voice stealing,
Norbert Schnell <=
- [fluid-dev] Re: Fluidsynth voice stealing, Toby, 2005/10/14
- Re: [fluid-dev] Re: Fluidsynth voice stealing, Norbert Schnell, 2005/10/14
- Re: [fluid-dev] Re: Fluidsynth voice stealing, Josh Green, 2005/10/14
- Re: [fluid-dev] Re: Fluidsynth voice stealing, Josh Green, 2005/10/14