[gmpi] Re: Decision Time: 7.1.1

  • From: Sebastien Metrot <meeloo@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Wed, 11 Jun 2003 08:53:24 +0200

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

Other related posts: