Send Controller Snapshot?

Discuss Lemur and share techniques.
Trailerman
Newbie
Posts:18
Joined:08 Dec 2011 12:30
Send Controller Snapshot?

Post by Trailerman » 15 Dec 2011 11:15

Hi

Loving the Lemur iPad app - what a great piece of design.

I wondered if I could ask something. Is there any way to send a snapshot of all the controller positions on a given page, using one button? ie. - say you're controlling multiple parameters on a synth or mix, you tweak the filter settings, pan, resonance etc. using Lemur until you have the exact settings you want. Is there some way to then transmit those final settings using a single button or command?

Thanks in advance for any tips or suggestions.

Jules

Trailerman
Newbie
Posts:18
Joined:08 Dec 2011 12:30

Re: Send Controller Snapshot?

Post by Trailerman » 16 Dec 2011 10:12

.... I'm guessing that means it can't be done or is difficult.

Seems surprising given how powerful this software is. Doesn anyone know which part of the manual I should perhaps be looking at to try and find this kind of functionality?

Thanks again.

Jules

kraftf
Regular
Posts:124
Joined:14 Dec 2011 06:36

Re: Send Controller Snapshot?

Post by kraftf » 16 Dec 2011 20:36

Trailerman wrote:.... I'm guessing that means it can't be done or is difficult.

Seems surprising given how powerful this software is. Doesn anyone know which part of the manual I should perhaps be looking at to try and find this kind of functionality?

Thanks again.

Jules
I am quite new to the Lemur as you are.
I think everything is possible with it but few things are easy to implement, at at first till we get the grip.
Here is what you are looking for:

http://www.jazzmutant.com/workshop_tuto ... id=storing

Trailerman
Newbie
Posts:18
Joined:08 Dec 2011 12:30

Re: Send Controller Snapshot?

Post by Trailerman » 21 Dec 2011 12:11

Thanks so much Kraftf - that looks like exactly what I need.

I'm not much of a programmer, but I'll see if I can get my head around the scripting language and have a go at putting something together which will do the trick. It looks like I only need part of that procedure (I only need to 'transmit' the data, not save and restore presets) so hopefully it'll be a little more straight forward than implementing the whole tutorial.

Thanks again for your help.

Jules
http://www.trailermen.com

mbncp
Regular
Posts:87
Joined:08 Dec 2011 07:25

Re: Send Controller Snapshot?

Post by mbncp » 21 Dec 2011 22:11

I think that you can do that by using getfirst(obj) then creating a loop and use getnext(obj).
Didn't try it but it should be something like that:

decl obj = getfirst(myinterface);
while(obj != 0)
{
setexpression(obj, 'x', getexpression(obj, 'x'));
obj = getnext(obj);
}

It seems that setting x to it's value will automatically trigger a midi out message and seems to work with vectors as well (multi sliders, pads, ...).

Trailerman
Newbie
Posts:18
Joined:08 Dec 2011 12:30

Re: Send Controller Snapshot?

Post by Trailerman » 22 Dec 2011 11:12

Thanks mbncp - that's extremely helpful.

I'm going to give that a go today. Will that script just get data from the objects on the current page?

Thanks again

Jules

mbncp
Regular
Posts:87
Joined:08 Dec 2011 07:25

Re: Send Controller Snapshot?

Post by mbncp » 22 Dec 2011 12:08

hmmm... it's a bit weird here, as I can't call
getfirst(myinterface);
neither can I call
getfirst(Project);
findobject 'Project' or 'myinterface' doesn't work either.

But ...

decl obj;
obj = findobject('MultiSlider'); // multislider is an object on my second interface(page), but can be any object, anywhere (..?)
obj = getparent(obj); // this is funny as it seems to return the project , not the the page/interface
//obj = getparent(obj); // removed that as the project has no parent
Monitor.value = obj; // shows the project obj as pointer

obj = getfirst(obj);

while(obj != 0)
{
setexpression(obj, 'x', getexpression(obj, 'x'));
obj = getnext(obj);
Monitor2.value = Monitor2.value +1; // used to see how many obj it finds and it seems to return all object in the project
}

This will actually go thru all object in all pages.

IMO there is some bug here as obj in getfirst(obj) can be a template (project), interface(page) or a container object, if I read the doc correctly.

Trailerman
Newbie
Posts:18
Joined:08 Dec 2011 12:30

Re: Send Controller Snapshot?

Post by Trailerman » 22 Dec 2011 13:26

I'm glad you're figuring this stuff out, because I wouldn't know where to start - thank you so much!!

It sounmds like there are some quirks in the language which might put this beyond my capabilities. Once it's working, presumably the complete script can be assigned to any kind of button on the page. I just need to figure out how to limit it to the sliders on only the page in question.

Thanks again. As soon as I get the iPad back from my son, I'll give this a proper look.

Jules

EDIT: Looks like there are a few issues being reported elsewhere, especially under General Discussion. Hopefully the dev's are aware of the problems and will get things fixed ASAP.

mbncp
Regular
Posts:87
Joined:08 Dec 2011 07:25

Re: Send Controller Snapshot?

Post by mbncp » 22 Dec 2011 15:36

Don't know why but I had in mind that you needed this for 200 controls, but if you just have a limited amount of controls this is easier to deal with:


Create a custom button control and add it this script, On Expression x then select the arrow up symbol (trigger when going from 0 to else).


decl obj, n, c, a;

a = {'mymultiline1', 'mymultiline2', 'myfader1' }; // add as many controls you have/need, watch the spelling
c = sizeof(a);

for (n = 0; n < c; n++)
{
obj = a[n];
setexpression(obj, 'x', getexpression(obj, 'x')); // force control to re-send midi out
}

You can then just make copies for each page, but make sure to set the correct names.

kraftf
Regular
Posts:124
Joined:14 Dec 2011 06:36

Re: Send Controller Snapshot?

Post by kraftf » 23 Dec 2011 04:02

mbncp wrote:Don't know why but I had in mind that you needed this for 200 controls, but if you just have a limited amount of controls this is easier to deal with:
Why do you say this?Is there a limitation with the amount of controls that can be handled in a snapshot variable. Is 256 the maximum size of an array that can be handled or something else?

Post Reply