scripting strings
-
- Newbie
- Posts: 5
- Joined: 20 Jun 2014 09:07
- Location: poland
scripting strings
hi there,
lets say i want to display a battery percentage as Pad's label so that it will show
for example :"Battery : 55 %"
My problem is that i don't know how to script a string so that only one object will be needed to do so ( in this case :Pads object)
I'm new to this and as far as i understand it the script should be something like:
set attribute(Pads, 'labels',{ 'Battery :' , floor(battery*100) , '%'});
but i'm obviously doing smith wrong. any help appreciated
lets say i want to display a battery percentage as Pad's label so that it will show
for example :"Battery : 55 %"
My problem is that i don't know how to script a string so that only one object will be needed to do so ( in this case :Pads object)
I'm new to this and as far as i understand it the script should be something like:
set attribute(Pads, 'labels',{ 'Battery :' , floor(battery*100) , '%'});
but i'm obviously doing smith wrong. any help appreciated
Re: scripting strings
- Attachments
-
- Pad-battery-display.jzml
- (2.66 KiB) Downloaded 64 times
-
- Newbie
- Posts: 5
- Joined: 20 Jun 2014 09:07
- Location: poland
-
- Regular
- Posts: 315
- Joined: 02 Nov 2013 11:19
Re: scripting strings
Also note that unless floor(battery*100) is doing something different than I think, I only see updates every 5% (i.e. - 100, 95, 90, 85, etc). I have never seen 92 or 78 or 63. So if you don't see it constantly updating, that probably working as expected.
-
- Newbie
- Posts: 5
- Joined: 20 Jun 2014 09:07
- Location: poland
Re: scripting strings
i noticed. i haven't seen 73 or 58 as well, but that's fine(don't need so much precision with battery display). anyway thanks!
....
another problem is that i want to see CPU percentage from Reaktor on OSC expression. i can get it right on Monitor because it has 'precision' chechbox, but on pads it displays the whole OSC message like 1,2346456 or so . i only want first three digit to be displayed on second pad and a BPM value o third Pad.
set attribute (Pads, 'labels', {battery, CPU, BPM};
still didn't figure out how to do this
cheers
....
another problem is that i want to see CPU percentage from Reaktor on OSC expression. i can get it right on Monitor because it has 'precision' chechbox, but on pads it displays the whole OSC message like 1,2346456 or so . i only want first three digit to be displayed on second pad and a BPM value o third Pad.
set attribute (Pads, 'labels', {battery, CPU, BPM};
still didn't figure out how to do this
cheers
-
- Regular
- Posts: 315
- Joined: 02 Nov 2013 11:19
Re: scripting strings
Identity-Problem wrote:i noticed. i haven't seen 73 or 58 as well, but that's fine(don't need so much precision with battery display). anyway thanks!
....
another problem is that i want to see CPU percentage from Reaktor on OSC expression. i can get it right on Monitor because it has 'precision' chechbox, but on pads it displays the whole OSC message like 1,2346456 or so . i only want first three digit to be displayed on second pad and a BPM value o third Pad.
set attribute (Pads, 'labels', {battery, CPU, BPM};
still didn't figure out how to do this
cheers
Can't do it. Even displaying the Monitor.value in another with shows the entire fraction.
The quick, big hammer, not elegant answer is to create Monitors on top of the pads and display to the Monitors instead of the pad labels.
Re: scripting strings
In monitor objects you can set the precision option go get as many digits as you desire....using pads labels though, thats not possible
Re: scripting strings
Hi
Should be able to just do a little maths to get what you want
Multiply and truncate to get the number of digits need and divide back again
ie floor(1.2346456*1000)/1000 = 1.234
Cheers
PS I guess you could also use round to be a bit more accurate . . .
Should be able to just do a little maths to get what you want
Multiply and truncate to get the number of digits need and divide back again
ie floor(1.2346456*1000)/1000 = 1.234
Cheers
PS I guess you could also use round to be a bit more accurate . . .
iMac 2.8G i7 12G 10.6.8/10.7.2, Legacy Dexter/Lemur, Liine Lemur/iPad2, KMI SoftStep, 12Step & QuNeo , B-Controls, Mackie C4 etc
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]
Re: scripting strings
That was my initial reply macciza but I edited because I believe you will still get
1.23400000 at the label
haven't checked though, so Im not sure!
1.23400000 at the label
haven't checked though, so Im not sure!
-
- Regular
- Posts: 315
- Joined: 02 Nov 2013 11:19
Re: scripting strings
I thought so too. I have a couple alternate methods (to contradict my original post - sometimes I just need more time to mull it over)Softcore wrote:That was my initial reply macciza but I edited because I believe you will still get
1.23400000 at the label
haven't checked though, so Im not sure!
NOTE, CAVEAT, WARNING, DISCLAIMER - I don't have a Lemur environment to test this - I keyed it in believing it will work, but you should test it in isolation before sending out production code with it embedded....
Assuming you want to just display the info and not do further math on it, you can try this:
create a manual script --
convert(n, p)
{
decl multiplier, num, frac, answer;
multiplier = pow(10, p);
num = floor (n);
frac = floor((n - num) * multiplier);
answer = num+'.'+frac;
return(answer);
}
then in your code you can do something like: setattribute(myPad, 'label', convert(num, 3));
If you always want to just show 3 positions, you can dispense with the second parameter and hardcode 1000 in the script, but I thought I might as well make it generic.