Page 2 of 6

Re: Lemur 5

Posted: 11 Mar 2014 08:40
by nick_liine
oldgearguy wrote: I had a variable operators = {OP7, OP6, OP5, OP4, OP3, OP2, OP1};
Where OP7, OP6, etc are the names of containers.

Then I had code that did things like this:

tmpOp = operators;
setexpression(tmpOp.Focus, 'x', 0);


One can no longer use the dot notation indirectly, by placing a dot after a variable that was set to point to an object. Is 'Focus' the actual name of an object, or is it a variable pointing to an object?

Re: Lemur 5

Posted: 11 Mar 2014 08:55
by oldgearguy
nick_liine wrote:
oldgearguy wrote: I had a variable operators = {OP7, OP6, OP5, OP4, OP3, OP2, OP1};
Where OP7, OP6, etc are the names of containers.

Then I had code that did things like this:

tmpOp = operators;
setexpression(tmpOp.Focus, 'x', 0);


One can no longer use the dot notation indirectly, by placing a dot after a variable that was set to point to an object. Is 'Focus' the actual name of an object, or is it a variable pointing to an object?


in this case, Focus is a custom button that I programmatically turn off. In other cases, I use Monitor objects to create multi-dimensional arrays like this:

Code: Select all

<WINDOW class="Monitor" text="b1" x="20" y="20" width="20" height="20" id="50" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.31, 0.59, 0.59, 0.72, 0.72, 0.59}, {0.45, 0.12, 0.12, 0.97, 0.97, 0.76, 0.76}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b1/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="b2" x="20" y="20" width="20" height="20" id="51" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.18, 0.18, 0.31, 0.31, 0.59, 0.59}, {0.34, 0.34, 0.55, 0.55, 0.12, 0.12, 0.91}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b2/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="b3" x="20" y="20" width="20" height="20" id="52" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.31, 0.59, 0.59, 0.72, 0.72, 0.59}, {0.56, 0.12, 0.12, 0.76, 0.76, 0.55, 0.55}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b3/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>

<VARIABLE name="brkpoints={b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32}" send="1" osc_target="0" osc_trigger="1" osc_message="/graphic/brkpoints" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>

<SCRIPT name="dispBrkpts(algNum)" script="
decl numPts, bpCfg;    

bpCfg = brkpoints[algNum];  // contains the current algorithm line drawing info (stored in a monitor object)
   
// set the number of points, then set the X and Y coordinate info for each of those points   
numPts = bpCfg.value[0];   
setattribute(LineArt, 'nbr', numPts);   
//LineArt is the Breakpoint object that is displaying the connecting lines between the operators
LineArt.x = subarray(bpCfg.value, 1, numPts);   
LineArt.y = subarray(bpCfg.value, 1+numPts, numPts);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/graphic/dispBrkpts" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>

This type of construct is at the heart of my application. It allows me to treat Lemur objects as objects and manipulate them with common code. If the dot notation is no longer supported, is there anything comparable or do I throw away 3+ months of work and start from scratch?

Re: Lemur 5

Posted: 11 Mar 2014 09:32
by nick_liine
oldgearguy wrote:
nick_liine wrote:
oldgearguy wrote: I had a variable operators = {OP7, OP6, OP5, OP4, OP3, OP2, OP1};
Where OP7, OP6, etc are the names of containers.

Then I had code that did things like this:

tmpOp = operators;
setexpression(tmpOp.Focus, 'x', 0);


One can no longer use the dot notation indirectly, by placing a dot after a variable that was set to point to an object. Is 'Focus' the actual name of an object, or is it a variable pointing to an object?


in this case, Focus is a custom button that I programmatically turn off. In other cases, I use Monitor objects to create multi-dimensional arrays like this:

Code: Select all

<WINDOW class="Monitor" text="b1" x="20" y="20" width="20" height="20" id="50" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.31, 0.59, 0.59, 0.72, 0.72, 0.59}, {0.45, 0.12, 0.12, 0.97, 0.97, 0.76, 0.76}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b1/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="b2" x="20" y="20" width="20" height="20" id="51" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.18, 0.18, 0.31, 0.31, 0.59, 0.59}, {0.34, 0.34, 0.55, 0.55, 0.12, 0.12, 0.91}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b2/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>
<WINDOW class="Monitor" text="b3" x="20" y="20" width="20" height="20" id="52" state="241" group="0" font="tahoma,20,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" color="1596013" label="0" precision="3" unit="" value="0">
<VARIABLE name="value={7, {0.31, 0.31, 0.59, 0.59, 0.72, 0.72, 0.59}, {0.56, 0.12, 0.12, 0.76, 0.76, 0.55, 0.55}}" send="0" osc_target="0" osc_trigger="1" osc_message="/graphic/b3/value" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
</WINDOW>

<VARIABLE name="brkpoints={b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32}" send="1" osc_target="0" osc_trigger="1" osc_message="/graphic/brkpoints" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>

<SCRIPT name="dispBrkpts(algNum)" script="
decl numPts, bpCfg;    

bpCfg = brkpoints[algNum];  // contains the current algorithm line drawing info (stored in a monitor object)
   
// set the number of points, then set the X and Y coordinate info for each of those points   
numPts = bpCfg.value[0];   
setattribute(LineArt, 'nbr', numPts);   
//LineArt is the Breakpoint object that is displaying the connecting lines between the operators
LineArt.x = subarray(bpCfg.value, 1, numPts);   
LineArt.y = subarray(bpCfg.value, 1+numPts, numPts);
" trigger_script="" trigger_type="4" trigger="1" osc_message="/graphic/dispBrkpts" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>

This type of construct is at the heart of my application. It allows me to treat Lemur objects as objects and manipulate them with common code. If the dot notation is no longer supported, is there anything comparable or do I throw away 3+ months of work and start from scratch?
dot notation is still supported, the only case it is not supported is when the part AFTER the dot is a variable referring to an object. in that case you should use setexpression()

Re: Lemur 5

Posted: 11 Mar 2014 09:34
by nick_liine
If you can post a small JZML with an isolated example of your broken code, that would help.

Re: Lemur 5

Posted: 11 Mar 2014 09:56
by oldgearguy
nick_liine wrote:If you can post a small JZML with an isolated example of your broken code, that would help.

I will post it tonight when I get home. About 30% of the time I end up using Wordpad/Notepad to edit the .jzml directly to make changes, but in this case I do not think I can successfully cut down the application without seeing it in the editor.

The script in the code snippet above does not violate your rule and yet I think it was still flagged with a yellow triangle (but I can't be 100% sure now).

In fact, the original problem I posted was using setexpression and that was definitely marked as incorrect in version 5.0:

decl i=0, tmpOp, operators = {OP7, OP6, OP5, OP4, OP3, OP2, OP1}; //Where OP7, OP6, etc are the names of containers.

tmpOp = operators;
setexpression(tmpOp.Focus, 'x', 0); // Focus is a custom button living inside all my OPx containers

Re: Lemur 5

Posted: 11 Mar 2014 10:17
by nick_liine
oldgearguy wrote:
nick_liine wrote:If you can post a small JZML with an isolated example of your broken code, that would help.

I will post it tonight when I get home. About 30% of the time I end up using Wordpad/Notepad to edit the .jzml directly to make changes, but in this case I do not think I can successfully cut down the application without seeing it in the editor.

The script in the code snippet above does not violate your rule and yet I think it was still flagged with a yellow triangle (but I can't be 100% sure now).

In fact, the original problem I posted was using setexpression and that was definitely marked as incorrect in version 5.0:

decl i=0, tmpOp, operators = {OP7, OP6, OP5, OP4, OP3, OP2, OP1}; //Where OP7, OP6, etc are the names of containers.

tmpOp = operators;
setexpression(tmpOp.Focus, 'x', 0); // Focus is a custom button living inside all my OPx containers


Please send an isolated example JZML example (i.e. extracted from the larger template) that demonstrates the issue, you can send it directly to support@liine.net

Re: Lemur 5

Posted: 11 Mar 2014 10:38
by oldgearguy
nick_liine wrote: Please send an isolated example JZML example (i.e. extracted from the larger template) that demonstrates the issue, you can send it directly to support@liine.net

I'll do that. Is there anywhere I can re-download the 4.1.1 Windows editor? I upgraded my machine to 5.0 and I wanted to make sure the example I send is working in 4.1.1

Re: Lemur 5

Posted: 11 Mar 2014 11:10
by electrofux
This is all cool. Very excitig.

There is one thing though. My 98% template is now 100%+ and giving me errors because of missing stuff. Will take some time to fix it. I hope the size hit is not too big on 5.0. I was already fighting with every bit.

Re: Lemur 5

Posted: 11 Mar 2014 11:21
by Softcore
The new string functions, even though they mean total re-work of older templates, may perhaps ease off some stuff - not sure though!

Too early and I havent yet had a chance to check out all the new scripting stuff, plus I now have to study about html5 canvas.

BTW...minor bug in windows editor: when enabling aliasing, it crashes - perhaps if those radial objects have antaliasing enabled, thats what causes the windows editor to crash when uploaded from the iPad?

Re: Lemur 5

Posted: 11 Mar 2014 11:30
by nick_liine
oldgearguy wrote:
nick_liine wrote: Please send an isolated example JZML example (i.e. extracted from the larger template) that demonstrates the issue, you can send it directly to support@liine.net

I'll do that. Is there anywhere I can re-download the 4.1.1 Windows editor? I upgraded my machine to 5.0 and I wanted to make sure the example I send is working in 4.1.1
http://files.liine.nl/n/Lemur-Installer-4.1.1.exe