code, multitouch, openSoundControl

BBTUIOTest bugfixes25 Aug

The clever NUIGroup member Aureau found a nice juicy bug in BBTUIOTest app. (these sorts of things will happen :-)

Turns out I had read the TUIO spec to say that the message order in the TUIO bundle are generally in the order:

source
set
alive
fseq

however, this is not necessarily the case. (at least not using the reactivision TUIO Simulator java app, which sends source,alive,set,fseq). SO! my bad. Anyhow, it is now fixed for that bug.

I also added the ability to fake mouse events, however, i will say that I have not worked all the kinks out of that transaction, so use at your own risk. (I have done some testing and the worst thing that seems to happen is that the mouse gets stuck 'down', in these instances, just hit command-option-ESC and it will reset the mouse events. You don't need to actually force quit anything, just the act of opening that window will reset the mouse events) Also, the mouse events will be 'faked' on the selected screen, presumably the same screen that you have setup for your projection. (also note: that code is still a bit raw, so there probably aren't as many comments as there needs to be)

Anyhow, here is the code bundle, with binary:

BBTUIOTest-1.app.zip

I guess fairly soon i will have to make this into a real project on google code :-) it seems to be turning into a 'thing'

Cheers!
-b

code, multitouch, openSoundControl

More Bugfixes22 Aug

Here are a handful more bugfixes that I committed a few minutes ago:

  • thanks to the keen eyes of Georg of the Touche tracker fame who spotted these bugs: The TUIO auxiliary parameters were all messed up. (like velo, accel, etc) now they are fixed.
  • fixed an anooying little display issue where the blob view would sometimes cut off one of the blobs.
  • fixed a problem where the projection mesh rotation handles were in the wrong place on large resolution screens.
  • made the drop dead detection shutoff time 4 seconds instead of 1. (i still need to make some of these magic numbers into configuration options)

    That is it for now :-) let me know if there are more issues.

    Cheers!
    -b

  • code, multitouch, openSoundControl

    Minor BBOSC framework update22 Aug

    I forgot to mention yesterday that I committed a minor update to the BBOSC framework. It was a single method call to allow convenient access to the attached objects of a packet.

    This came about because i never really 'finished' the dispatch side of things. Now (with the one added method call) you can in fact add your own dispatch code pretty easily. I had thought to bolt on a nice registered callback kinda thing that decompressed the messages and bundles and sends them to callback registered by address, but i haven't done that yet. It still works fine without that nice feature, it jsut means a tad bit more work if you want to do any complicated message dispatching.

    In any case, if you are a big BBOSC user, you should probably get the updated code and recompile. (I know that the TUIOTestapp i wrote yesterday requires it :-)

    That is all for now!
    Cheers!
    -b

    BBTouch, code, multitouch, openSoundControl

    Multi-boxing BBTouch21 Aug

    I have given a great deal of thought to the idea of adding a nice distributed object system to BBTouch. that way you could have cocoa-based clients easily hook into the blob events to do their own thing. I have used DO in a bunch of my other projects and it works well and is simple to use.

    However, I also spent a bunch of time getting TUIO to work with BBTouch. And there are already a whole bunch of applications that can utilize BBTouch as a tracker because of the TUIO stuff. So it occurred to me that since BBOSC is basically done (it could use a nice dispatch system, which i will add someday, not to mention lots of error checking and lots of general spiffying up, but i digress) it makes far more sense just to build any new BBTouch client apps using TUIO as the base protocol. I dont think the performance gains I would get by going with DO would be all that staggering (if there we any at all). Also, if i write my cocoa client apps to be all tuio-friendly then people can use them with whatever tracker they want to (like a PC-based tracker or a yet to be designed all-hardware tracker.. whatever.)

    And, the most important thing, as i mentioned earlier: it is already done.

    So, I have hacked up a quick TUIO cocoa client app that plays nice with BBTouch (and theoretically should play nice with any TUIO tracker).

    isn't it cute?

    Clever viewers will recognize many of the elements (since i basically just dragged them all from BBTouch into a new project and bolted on a TUIO dispatcher).

    Anyhow it is super-duper simple. Anyone who wants to write a client app in cocoa for BBTouch (or for any tuio tracker) can use it as a starting point. It runs on nicely on really old hardware too. (at least it runs perfectly nicely on my 866MHz g4 laptop, which was collecting dust on my shelf, now it is my projection server :-)

    I should admit that the real reason i did this was because due to the craptacular firewaire destruction fest of two weeks ago, my second best machine is now without firewire support. (it was the main machine I was using to test all this stuff on). That left my main macBookPro as the only machine that could run everything. This is fine except that I really really have my workspace all dialed in. Big cinema display, keyboard at the right height yadda yadda.. hooking the MBP up to the table meant unhooking it from the big monitor :-( and that was a pain. So I wrote this remote TUIO app mostly so I could still use the MBP as the 'camera' machine, and still have the benefits of the big monitor for developing and whatnot, and my really old machine gets to be the 'projector' machine, and my not that old but not that new machine gets to go back to being my entertainment center. everyone wins.

    In any case, if anyone wants it: here is the TUIO Test app.

    BBTUIOTest.zip

    As I mentioned before, if you want to write your own Multi-Touch client in Cocoa, this is a good seed to start off with. It is the absolute bare bones TUIO + View implementation (with a tiny bit of gratuitous core animation). Have fun!

    Cheers!
    -b

    BBTouch, code, multitouch

    Some bugs that I done fixed20 Aug

    So, I probably committed all that code just a wee bit early. Here are a few silly things that i missed, but are now fixed:

  • dark blobs: now they work again.
  • added some minimal UNDO functionality, mostly centered around the meshes. now you can undo any flips, expands, and new mesh commands. More UNDO for other things (like dragging vertices and such) coming later.
  • changed the TUIO coordinates to normalize against the screen rectangle instead of the mesh bounding rectangle (seems like a more standard way to do it)
  • removed a slew of spurious debugging logs.

    So! r120 is what you are looking for now. that is the most bestest.

    I tried to upload the binary to the google code site, but for some reason it is barfing on my password and login (not to mention it never asked me for a secondary login/password when i uploaded files before) so i think something is busted there.. anyway, until i get that figured out here is the r120 binary:

    BBTouch.r120.app.zip

    EDIT: Pawel fixed it, so now you can get the binary from the binaries link on the sidebar.

  • About

    meMy full name is Ben Britten Smith.

    I go by Ben Britten because Ben Smith is a bit too common and using my full name is a mouthful.

    I live in Melbourne, Australia and service clients all over the globe.

    Contact

    Have some questions?

    Feel free to contact me directly at support@benbritten.com with any questions you might have about any of the applications I support.

    Thanks!

    PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIGFib3V0LXdpZGdldDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2JlbG93X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL2JlbmJyaXR0ZW4uY29tL3dwLWNvbnRlbnQvdGhlbWVzL3ZpYnJhbnRjbXMvaW1hZ2VzL2FkNDY4LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2JlbG93X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gYmVuYnJpdHRlbi5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19ibG9ja19pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly9iZW5icml0dGVuLmNvbS93cC1jb250ZW50L3RoZW1lcy92aWJyYW50Y21zL2ltYWdlcy9hZDMzNi5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19ibG9ja191cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19ibG9nPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2djYXQ8L3N0cm9uZz4gLSAvY2F0ZWdvcnkvYmxvZy88L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWVudTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGFjdDwvc3Ryb25nPiAtIGNvbnRhY3Q8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSBodHRwOi8vYmVuYnJpdHRlbi5jb20vZmF2aWNvbi5pY288L2xpPjxsaT48c3Ryb25nPndvb19mZWF0cGFnZXM8L3N0cm9uZz4gLSA1NDk8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19sYXlvdXQ8L3N0cm9uZz4gLSBkZWZhdWx0LnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL3ZpYnJhbnRjbXMvPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSAyLDgyLDU0OSw1NTMsNTY3LDUzMiw1MzQsNTM3LDgzMjwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYWQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfbXB1PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zdGVwczwvc3Ryb25nPiAtIDEuLCAyLiwgMy48L2xpPjxsaT48c3Ryb25nPndvb190YWJiZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIFZpYnJhbnRDTVM8L2xpPjwvdWw+