From the original SynthMaker forum (2004–2014), with its members’ names and dates.
NothanUmber ·
some things in the code component don't work as expected with more complex expressions.
Load for example this file:
http://home.in.tum.de/~strixner/CodeModuleBug.osm
and try to add something to the second line
(e.g. change it to: *(1+(in/in)+(in/in)*(in/in)*1.0) + 17;)
nothing happens (or the input number is directly copied to the output one if you change the input. I had both cases but couldn't reproduce the latter one).
Now delete the entire second line and add a semicolon to the upper one:
out =( 2 + (in - in) / 1 * 1 * 1 * 1);
add something to it
(e.g. out =( 2 + (in - in) / 1 * 1 * 1 * 1)+27;)
now everything is calculated as expected.
Another case that could be related to that is the following one:
Load
and go inside the Spiral Oscillator. Now rename the variable "float caPlusCmv;" to "float caPlusCmvDiv2Pi;".
Now comment out the following three lines:
Now after I play some notes all I can do is to kill the SynthMaker process and restart it (although the program should do nearly the same as before just with one division less).
The list could be continued (I had problems with the taylor expansion of 5^x if the order was greater 3 etc.), essentially it mostly goes amok if I do some more complex calculations.
Perhaps it has to do with some precision issues but I can't imagine that that's all... (another possibility would be that it has to do with my computer, then the problem shouldn't be reproducable by other people.).
NothanUmber
malc ·
Hi NothanUmber,
There is a known issue in the code component relating to the use of complex expressions. I remember it came up in a conversation I had with Jorge the other day. Unfortunately I can't remember what it is.
Jorge isn't around at the moment. I'll try and grab him tomorrow and we can shed some more light on this issue.
Obviously it isn't working but I don't think it's a major issue to sort it out.
Malc.
rl ·
Jorges explanation in this thread could be helpful: Early adopter blues (bugs in code component)
NothanUmber ·
Thanks rl for the hint, sorry haven't seen your thread.
That explains the errors of the CodeModulBug.osm and my Taylor-Series problem.
But the strange behaviour of the SpiralSynthesis4.osm example seems to have another reason - no xmm999 register used there, from my rather limited assembler point of view everything looks alright on first sight (don't understand what these "mulps xmm0,F65536P00000; etc. " lines are doing after the "movaps caPlusCmvDiv2Pi,xmm1;" though...
NothanUmber
jorge ·
NothanUmber, I think I have the SpiralSynthesis bugs fixed. There were actually two bugs, the one you mentioned and also the cos1 function was only calculating one of the 4 channels causing your schematic to work only for the first note played. You'll most probably have the fix tomorrow with the next incremental release.
mulps xmm0,F65536P00000; just means to load the float constant 65536.00000 into the SSE register xmm0. Constants are stored in memory and they have a unique name that identifies them so that they only need to be created once even if you use the same constant in many places. The name of the constant is generated automatically replacing the "." with "P" and with "F" meaning float.
unkargherth ·
jorge wrote: mulps xmm0,F65536P00000; just means to load the float constant 65536.00000 into the SSE register xmm0.
I always tought that for loading a constant i shoudl use movaps and mulps for multiplication
It's a typo or i'm wrong?
jorge ·
unkargherth wrote:
jorge wrote: mulps xmm0,F65536P00000; just means to load the float constant 65536.00000 into the SSE register xmm0.
I always tought that for loading a constant i shoudl use movaps and mulps for multiplication
It's a typo or i'm wrong?
Sorry, you're right, my mistake, but you know what I mean, I was refering to the second part of the line and typed load instead of mult. The code I described would have been: movaps xmm0,F65536P0000;.
unkargherth ·
jorge wrote: ... the cos1 function was only calculating one of the 4 channels