Hi Rui,
I desided to put a progress bar in the status bar that shows
information about the current number of active voices in all sampler
channels. To show that in a progress bar I needed two values: the
current number of all active voices and the maximum allowed number of
active voices on the sampler.
In fact the total number of active voices in all channels can be
calculated at the front-end side but we (me and Christian) decided
that it would be better to have additional commands for that (GET
TOTAL_VOICE_COUNT, SUBSCRIBE/UNSUBSCRIBE TOTAL_VOICE_COUNT).
A little problem arised with GET TOTAL_VOICE_COUNT_MAX. I didn't
notice that the maximum number of active voices can be changed at
runtime:
(from Christian)
> but you have to note that the maximum
> voice barrier (given by CONFIG_MAX_VOICES)
> is on a per engine instance basis ATM.
> That means, if you are for example using two instances
> of an audio driver, you will have two instances of a sampler
> engine and thus "max voices" would be 2*CONFIG_MAX_VOICES.
The problem in this case is that if we have more engine instances and
one of the them reach the maximum number of voices, this overload will
not be indicated properly in the progress bar, especially if the other
haven't got active voices.
Also I think that our main aim must be the simplicity in such cases. But al=
so:
(from Christian)
> Hmmm... there might be a scenario where defining
> the voice limit on engine instance basis might be desirable:
> SMP systems. As each engine instance would
> run in its own thread, each could run on an own processor, so ...
Opinions?
|