SynthMaker

assembly: single instruction poly?

Archive · 2005 11 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

infuzion ·

I'm not so sure if the formula below is the most efficent for poly/mono4: streamin in; streamout out;

movaps xmm0,in; sqrtps xmm1,xmm0; movaps out,xmm1;

http://www.qfile.de/dl/181997/StreamPol ... n.osm.html

Can anyone plz comment? cheers

Shifrin ·

For Poly/Mono4 I'm sure this is the quickest way - would love to know if there is a faster way 😉

Shif.

infuzion ·

Thanks I wasn't sure if there had to be 4 seperate instructions like you had in the Pow Poly module.

Shifrin ·

The SSE instructions can operate on four floats at a time, and sqrtps is an SSE instruction - so it only appears once in the code 🙂

The 'Poly Pow(x,n)' module has to use FPU instructions, these only operate on one float at a time, so the code calculating pow(x,n) appears four times!

Shif.

infuzion ·

cheers now I feel so much wiser 🙂

caleb ·

Just out of curiosity - should I be worried at this point that I don't understand anything that is being said here?

I just want to see if there is "must know" information about how SynthMaker handles things like this that I really need to understand before digging too deeply.

Alot of the recent announcements and discussions about streams etc. has left me feeling quite lost.

Caleb

stefan ·

I don't think you have to understand how to deal with numbers when using SSE registers etc to be a SM user. It's enough to know that when using streams, the same components can be used as mono, mono4 or poly components.

Usually, a mono4 component that is mainly relying upon SSE will use about as much cpu as a mono component. Which is good to know, because you can often use one filter module instead of four etc when you're doing. Oh, I don't know, having filters in your stereo delay or building an EQ or whatever 🙂

I don't think you should worry TOO much about how one actually deals with these things on an "assembler language level", we can't expect everyone to be as geeky as us 🙂

caleb ·

stefancrs wrote: I don't think you should worry TOO much about how one actually deals with these things on an "assembler language level", we can't expect everyone to be as geeky as us 🙂

Yes - but if I would like to get geeky at some stage - will there be plenty of fellow geeks to help me out? 😉

Caleb

stefan ·

Ofcourse 🙂

Shifrin ·

stefancrs wrote: Ofcourse 🙂

Indeed!

Shif.

infuzion ·

stefancrs wrote: Usually, a mono4 component that is mainly relying upon SSE will use about as much cpu as a mono component. Which is good to know, because you can often use one filter module instead of four etc when you're doing.

Conversely, you do have to worry if there are 4 FPU instructions being used in parrell, like in the case of the Stream/Poly Power modules. In this case, a Mono Power moudle is supplied. But don't worry that much untill final stages or you notice CPU is too high.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.