Mixing channels with SIMD is really easy, interleaved or not. However
filters and delay lines are a pain to optimize when not interleaved (and
they are the basic building blocks for 95% of the effects if i'm not
mistaken). However there is a number of effect that would still be
unoptimizable even with interleaved data: chorus, basic reverbs, etc
just because they are not symetrical on every audio channel (you do not
use the same delay time for each channel in the sample and so cannot
treat them at the same time).
Unfortunately filtering is a very basic operation that most synth do at
least once per voice, imagine what you get when using 64 or 128 voices
at the same time :).
That said, I'm OK with interleaved data at the input/output of the plugin.
Sebastien
Jeff McClintock wrote:
One final point. Our mix engine is able to render fades one sample at a
time. .... If we go to uninterleaved, and want to
leverage SIMD in our mix engine, we can no longer render sample by sample
(we need to go to a 4-sample control rate). Can't do that.
I havn't done it, but I believe you CAN do this with SIMD on a mono stream. You just have to think a little differently.
I'm thinking one sse register holds 4 audio samples, a 2nd SSE register holds a 4 sample section of a ramp..[0.0, 0.1, 0.2, 0.3]
you multiply the two to apply the ramp to the signal,
then 'increment' the ramp..by adding a constant to all 4 values...so now it's... [0.4, 0.5, 0.6, 0.7]
then repeat the process......
I can't prove it, but i suspect many interleaved operations can be re-coded to work on mono streams, and still take advantage of SIMD.
Having said that, I'm not against supporting interleaved, provided it's optional. That way we are all happy?.
Best Regards, Jeff
---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.
Archive: //www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe