camSchnappr 2.0 Beta

Hey Jacques,

cool - I’ll add those back in.
Did you already try the last version I uploaded around noon?

Best
Markus

Ok, new version uploaded that includes numbers on the output.

Best
Markus

Hello,
Now it seems to work (I just try on my laptop during breakfast, without projecting it)
I will try it carefuly tomorow with OSC.
Thanks for the work.
Jacques

Dear Markus,
First try with the new build:

  • now it works, no more zero on opening, all vertices selected works and calibration works, bravo for that but many problems with OSC, working with iPhone version:
  • select point works normally in negative : 6,5,4,3,2,1,0
  • but randomly in positive : 0,3,6,2,5,1,4
  • “position coarse” is not updated when changing point so when I touch it the point is going out of scale, making it not usable
  • “position fine” move the point but in totally different place, without relation to the coarse position, not usable.

My conclusion about remote OSC (I have used it extensively with Isadora to make projection mapping) 2D cursors are not very practical nor precise. It would be better to have only buttons reproducing keyboard arrows and alt/keyboard arrows, so you dont need to send back information and you can be more precise. The only useful osc return would be the number of the point.

Thanks for the work, it will be soon perfect for my use.
Jacques

Hello Markus,
I worked on it…
I add that in the oscin1_callbacks:

elif address == ‘/left’:
parent.camSchnappr.MoveActiveByValue(u=-1, v=0)
elif address == ‘/right’:
parent.camSchnappr.MoveActiveByValue(u=1, v=0)
elif address == ‘/top’:
parent.camSchnappr.MoveActiveByValue(u=0, v=1)
elif address == ‘/bottom’:
parent.camSchnappr.MoveActiveByValue(u=0, v=-1)
elif address == ‘/altLeft’:
parent.camSchnappr.MoveActiveByValue(u=-10, v=0)
elif address == ‘/altRight’:
parent.camSchnappr.MoveActiveByValue(u=10, v=0)
elif address == ‘/altTop’:
parent.camSchnappr.MoveActiveByValue(u=0, v=10)
elif address == ‘/altBottom’:
parent.camSchnappr.MoveActiveByValue(u=0, v=-10)

I added in touchOSC the 8 buttons with /left, /altLeft etc. and it works now how I want with buttons pushing by 1 or 10 pixels increment.

Hey,

i just posted an updated camSchnappr to include your changes Jacques and a fix to the previous point selection.

The TouchOSC files have been updated on the wiki as well.

Best
Markus

Dear Markus,
Thank you for your change it works now with buttons. I have still some problems/questions:
– now “select point” works weirdly in both direction, not in numerical order.
forward : 0, 3, 6, 2, 5, 1, 4
reverse : 0, 2, 4, 6, 1, 3, 5
– in first page of iPhone touchOSC, coarse is working but fine position give very weird and unusable variations. As is it this page is not usable.
But it begin to be a very great tool.
Cheers, Jacques

Hey Jacques,

I wonder if the culprit of all this is the TouchOSC option to send Touch Message (/z) I have this enabled and am actually using it in the osc callbacks.
Is it enabled for you?

Best
Markus

Dear Markus,
I tried with /z activated and its better but not perfect (perfection is always hard to reach…)
– now position fine 2D cursor is working as expected
– when I press the right “select point” button, number are going 6, 5, 4, 3, 2, 1, 0 at reverse of the waited behavior
– when I press the left button, there is still a weird order 0, 4, 1, 5, 2, 6, 3
Thank you for your commitment.
All the best, Jacques

And its the same weird order with Tab key

Another question:
In the precedent camSchnappr, it was possible to use matrix and exports DAT to configure another camera or, most useful for me, a light to simulate a video projector. I think I found the matrix (/intrisincs) but not the parameter with the camera position, rotate etc. Do you think its possible to retrieve it?

Hey Jacques,

ha - yeah - fixed one side and broke the other. Tab and TouchOSC point selection is now fixed - main issue was due to /z coming in from TouchOSC and the command running twice…

I’ve added 2 more things:

  • Use the Mouse Wheel and Shift+Mouse Wheel on the output window to move selected points vertically and horizontally.
  • You can retrieve scale, rotation and translation from camSchnappr by calling the extension Method Decompose(), this will return a tuple of tuples.
camSchn = op('/camSchnappr')
s, r, t = camSchn.Decompose()

The position of the camera is in the extrinsics Table DAT represented as a Transform Matrix. The intrinsics is essentially the projection Matrix of the camera.

Thank you Jacques for your continued testing! A new version 2.0.6 has been uploaded to the orinial post.

Best
Markus

Dear Markus,
Thanks for all! Tab are working, I am far away from home so no OSC at the moment but I found camera position and matrix. Everything perfect, alles in ordnung.
Jacques

Another update:

I realized that the project component was not properly updating when using a new SOP.
Also the camera of the main window resets to a position that should make better sense for all kinds of scaled sops.

Best
Markus

Hey - this is awesome!

Getting a weirdness with the Cameras parameter. When I specify one, it’s fine. When I specify multiples with a space in between, I get path not found. Obviously various stuff breaks from there.

Did the way to specify multiple items change? Wildcard doesn’t work.

Bruce

Ping - @Markus, any clue why I can’t specify multiple CamSchnapprs in the cameras list? Am I doing it wrong?

Bruce

Hey Bruce,

please have a try with attached camSchnappr. As Custom Parameters of the OBJ type didn’t evaluate for multiple specified camSchnapprs, the script failed.
The attached should fix this. This will be added in the next release.

Best
Markus
camSchnappr.tox (37.5 KB)

Seems to be working, thanks!

Spoke too soon!

The blend works, but the OSC with multiples is not functioning. Is it a similar bug?

Or - how should I be using OSC? Enable all of the schnapps? Just one?

Bruce

Not solved yet, but for communal knowledge:

Make 1-n camera comps to represent projectors. Make one CamSchnappr. In the Autoblend tab, tell it the projector comps (like this: proj1 proj2 proj3).

Set up as many schnappr settings as possible - they will be copied to your projectors.

Connect via TouchOSC or similar. Go through ‘next’ for each projector. They will become clones. You can go into each and alter parameters as needed. You can also access the mask output.

The currently selected projector is visible in the first tab, ‘project’ parameter. Make sure you pick the right projector before making adjustments.