@obiwannabe said:
So the data is a set of distances between objects
on a plane (and their orientation?)
Yep. so you can chain a generator and an effect to the output, just by putting them on the plane.like this:
osc ------------ delay -------------- out (center of plane, represented by 0,0)
each module is represented by a marker on the table, and each one has 1 control (rotation: like a knob) + volume (determined by distance)
I've got this much done:
osc -------- out
with the rotation of the osc determining frequency, and the distance from the center determining volume. The subsystem for dynamically connecting things is in place (just send a float to fid-in like 5-in to connect to something other then 16: mainout)
@obiwannabe said:
With more than one occurance of the same symbol possible (or must they be unique?)
In the Tuio system, you can use fid (the number of the actual marker) or the individual id (sid or session_id) of the marker on the table. For performance, I didn't want to dynamically load/unload modules (it made it choppy) so I just went by fid, but you could use the sid, if you wanted to. I have no problem mapping hundreds of them at start time (in the main_snd and main_gfx parts) so going by fid works really well for me, and allows you to just map all the numbers that you have fiducials printed out for. Later, I could even read these mappings from a [textfile] but right now, I just want to get the logic worked out.
@obiwannabe said:
So you have the vetices of a fully connected graph of points
plus a rotation for each point as control data. Additionally each object
has a shape and the distance is between edges not center points
so an objects rotation affects its distance to all other objects
(or use perfect circles). Am I getting this?
Yep, I'm going by center point of the marker, so it's a circle. I'm using the coordinates to determine gain, so the further from center, the quieter. What I want is the same thing, but between individual markers. Right now, all the marker snd units have 1 ain and 1 aout, and if they are not effects, the 2 are just connected (I think it'd be cool to setup osc and phasor units that are normal, or ringmods depending on if they have audio input, but I need to work out distance logic, first.)
This might make a whole lot more sense if you download the thing, then download TuioCLient here and the reactable simulator here
Put TuioClient in your pd path (they have versions for mac, linux, and windows in the same file, I am using linux and mac)
Run the simulator (java -jar TuioSimulator.jar)
open my patches, and press the "0" connected to to start the graphics (in a window) I do it this way, so I can script it going into fullscreen (have a look at my shell script.) You can also leave it off, and just hear the sound stuff (without any graphic output) by not pushing the 0.
Move 16 (volume knob) onto the table area on the simulator and turn it. It will change the brightness of the center dot (to show gain) If you remove it from the table area, the gain will freeze at that level.
0, 4, 8, 12 are [phasors]'s
36,37,38,39 are [osc]'s
Put some of these on the table to hear them. you can get cool beating effects by moving a phasor close to the center, turning it so it slows to a click-beat, then putting some [osc]'s around on the table.
This is an example of what I've got so far. The reason all this is necessary, is that the reactable people haven't released any of the code they use to make graphics or sound, just interpret the actual camera data. I want to make a free, easy to use version, that does pretty much the same stuff, but on low-end hardware, all in pd, so non-opengl/dsp programmers can play with it.
I attached a screenshot of the gem window in Linux.
http://www.pdpatchrepo.info/hurleur/dktable.png