On Wednesday 10 February 2010, at 22.45.40, Emanuel Rumpf <xbran(a)web.de>
wrote:
2010/2/8 Paul Davis
<paul(a)linuxaudiosystems.com>om>:
not all PCs can do it. but its simply not true
that "PCs can't do it".
Accepted.
When running any 32 polyphonic hw synth,
it is able to do those 32 voices anytime.
When running out of the voices, something will
happen (e.g. voice killing/stealing). But it won't start any noise.
Something to concider
Would a check for guaranteed voices be possible for a soft-synth ?
Any polyphonic synth will have to check for voices as part of the "allocate
voice" action for any noise started, so the question seems somewhat odd to me.
Are you thinking of voice stealing logic?
I would think most softsynths have this. The alternative would be to
dynamically allocate voices as needed, and I think some actually do this - but
this will be troublesome in a realtime implementation, unless you're on a full
realtime OS using physical RAM only. You may pre-allocate and lock a "huge"
block of memory for the synth, but then you still have a limited voice count
of sorts...
That would require an extensive deterministic
behavior, I think.
Instead of noise generation, maybe some sort of interpolation/silence
for sample values could be used, when running out of processing power.
There are various solutions, such as stealing the "least audible" note, or
just grabbing the oldest playing note. Figuring out which note is *actually*
the least audible is a lot trickier than it might seem at first, so any real
implementation would be an approximation at best.
Anyway, I don't think there's much of a difference between "hardware"
and
software synths in this regard. (They all do an equally bad job of it! ;-)
After all, most "hardware" synths are actually one or more DSPs and
(sometimes) MCUs running some sort of software, and even "real" hardware
synths will have an MCU or logic circuitry to implement this.
--
//David Olofson - Developer, Artist, Open Source Advocate
.--- Games, examples, libraries, scripting, sound, music, graphics ---.
|
http://olofson.net http://kobodeluxe.com http://audiality.org |
|
http://eel.olofson.net http://zeespace.net http://reologica.se |
'---------------------------------------------------------------------'