SynthMaker

Jumper

Archive · 2008 13 old posts

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

Eska ·

streamin in1;streamin in2;streamin in3;streamin in4; streamin sw;streamout out; int I1=1;int I2=2;int I3=3; float F0=0;float F1=1;float F2=2; int var1=0;int var2=0;int var3=0; //split switch movaps xmm0,sw;cmpps xmm0,F0,0;andps xmm0,I1;movaps var1,xmm0; movaps xmm0,sw;cmpps xmm0,F1,0;andps xmm0,I2;movaps var2,xmm0; movaps xmm0,sw;cmpps xmm0,F2,0;andps xmm0,I3;movaps var3,xmm0; //jump mov eax ,var1[0];and eax,1;jnz end3; mov eax ,var2[0];and eax,2;jnz end2; mov eax ,var3[0];and eax,3;jnz end1;

movaps xmm1, in4; movaps out,xmm1;//Code4 jz end0; end1: movaps xmm1, in3; movaps out,xmm1;//Code3 jnz end0; end2: movaps xmm1, in2; movaps out,xmm1;//Code2 jnz end0; end3: movaps xmm1, in1; movaps out,xmm1;//Code1 end0:

This is an example of executing different codeblocks inside a codeblock ( assembler). In this particular case I made a 4 to 1 switch.

MyCo ·

you should notice, that it only works with mono in/outs, because you ignore the other three SSE channels

Eska ·

Yepp, forgot that. The switch in schould be float as only channel 0 is used, the switched channels are polyphonic.

Eska ·

This is cheaper.

infuzion ·

Eska wrote: This is cheaper.

Very interesting, thank you! BTW, you have a typo: movaps xmm1, in8; movaps out,xmm1;//code8 jz end0; //you have this as "jz end0: end8:

Eska ·

Thats wy the last two inputs sound so similar. 😀 Thx

aliasant ·

I dont get it. To me it looks just like any multiplexor.

Maybe an explanation ? When would I find this handy?

Eska ·

It is a selector replace. But you can make a multiplexor by changing the codes 1 to 9. Or you can shutdown a module by using only one jump.

aliasant ·

Eska wrote: It is a selector replace. But you can make a multiplexor by changing the codes 1 to 9. Or you can shutdown a module by using only one jump.

Sorry. i meant selector =) but I still dont understand why I would need this or why it is better then the toolbox version? It uses 40+ cycles so its not like its fast. Or am I totally wrong? Probably 😉 Thats why Im asking for clarification.

infuzion ·

aliasant wrote: I still don't understand why I would need this or why it is better then the toolbox version?

My guess: you can hop() Eska's Code-switch.

MichaelBenjamin ·

does it shutdown all the code behind the nonselected, like the sm selector?

kirkagur ·

MichaelBenjamin wrote: does it shutdown all the code behind the nonselected, like the sm selector?

no... 🙁

Eska ·

I had issues with stream selectors and multiplexors. A few ms dropout per switch on switching and unproportional increased cpu load when going over 4 voices. Not suitable for realtime loading of presets, also my combi switching time went up to 4,5 sec. Removing all selectors and multiplexors, keeping everything running but jump over not used code fixed this. Nowadays these issues might be fixed but I prefer to stay in control here.

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.