Success! Also, a cry for help.
I'll post my trials and tribulations here, as well...
Began working on OSCx, istalled liblo0 and liblo0-dev
$make:
htmsocket.c:107: warning: no previous prototype for 'IsAddressMulticast'
cc -g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1 -I../libOSC -I../../pd/src -I../../../pd/src -I../src -I../libOSC -I../../pd/src -I../../../pd/src -I../src -c -o OSC-system-dependent.o OSC-system-dependent.c
OSC-system-dependent.c: In function 'fatal_error':
OSC-system-dependent.c:65: warning: implicit declaration of function 'exit'
OSC-system-dependent.c:65: warning: incompatible implicit declaration of built-in function 'exit'
cc -Wl,-export_dynamic -shared -o sendOSC.pd_linux sendOSC.o htmsocket.o OSC-system-dependent.o -L../../../pd/bin -lpd -lc -lm ../libOSC/libOSC.a
/usr/bin/ld: cannot find -lpd
collect2: ld returned 1 exit status
make[1]: *** [sendOSC.pd_linux] Error 1
make[1]: Leaving directory `/home/nestor/svn/OSCx/src'
make: *** [all] Error 2
So, compiler can't find pd libraries?
OSC in pd ext 0.39.3 OSX ??
/Applications/Pd-extended.app/Contents/Resources/Scripts/../extra/OSC/OSC.pd_darwin: dlopen(/Applications/Pd-extended.app/Contents/Resources/Scripts/../extra/OSC/OSC.pd_darwin, 10): no suitable image found. Did find:
/Applications/Pd-extended.app/Contents/Resources/Scripts/../extra/OSC/OSC.pd_darwin: mach-o, but wrong architecture
OSC: can't load library
this is what i obtain...
Reactivision to reaktor patch
When I started using Reactivision, I really wanted to control Native Instruments Reaktor 5 with OSC but the messages weren't "simple" enough for Reaktor.
So I tweaked the TUIO client patch, for it to route simple OSC messages to reaktor.
I'm new to Pd so it might not be as perfect as you would expect.... but it works !
Instructions :
Open reactivision
Open the pd patch
Make sure you are receiving the TUIO messages ( the bang next to "TUIO client" will blink)
Start Reaktor
Stop the audio engine
System menu > OSC settings > click Activate
Make sure port 10000 is chosen as the local port
Start the audio engine
Go back to the pd patch and change the IP address in the bottom left "connect" box
click connect
go back to Reaktor, System > OSC settings. The OSC monitor should now receive OSC messages.
Reactivision simple fiducial marker patch
@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.
How To Start ...
Thanks for that - I managed to work out these things by random clicking. If I hadn't been so interested in Pd then I wouldn't have persued it because the interface/docs do not give an easy entry to making the first sound (which is easy, actually, but I couldn't have known that).
I think I came across Pd before, couldn't get a sound out of it and gave up. Maybe if the docs were improved then we'd have many, many more users!
Just a thought. Hopefully this forum post might help someone.
My attempt : This Is How To Start (Linux version : v0.1) :
1 At a command prompt type pd
2 From the top menu : File | New - will get a new window, called a patch
3 Put | Object then click anywhere in the new patch window and type osc~ into the box, then click anywhere outside the new osc "object"
3 Put | Object again and this time type dac~ into the box and click outside
4 Put | Number and then click outside
5 Click on the middle of an object to move it around if you like
6 At the bottom of the osc~ object is a short thick line. Move your mouse to this and the curser will change to a circle, then click and drag the resultant line to the short thick line on the top of the dac~ object.
7 Do the same with the Number (bottom short thick line) to the top of the osc~ box (the leftmost one).
8. Edit | Edit mode - select the toggle to be off - or cntrl-e
9 In the parent window (the first one that appeared when pd was run) click the "compute audio" button
10 In the patch window select the Number box and move the mouse upwards - this selects the frequency of the oscillator. You should hear a sinewave with the frequency controlled by the Number box.
Is this right??
Cheers!
Caesura
PD extended errors on osx
Hi
I am having trouble using pdp_v4l, pixelTango and osc patch on PD-extended .38 on mac os x (tiger)
If I try to load a PiDiP patch from the help file I get the following error message:
pdp_v4l /dev/video RGB24
... couldn't create
error: pdp_v4l: can't load abstraction within itself
pdp_v4l
... couldn't create
pdp_help_input.pd 0 0 4 0 (canvas->outlet) connection failed
pdp_help_input.pd 7 0 0 0 (message->canvas) connection failed
pdp_help_input.pd 13 0 0 0 (bng->canvas) connection failed
pdp_help_input.pd 35 0 0 0 (message->canvas) connection failed
If I try to put OSC object i get this error:
... couldn't create
OSC
... couldn't create
OSCroute object version 1.05 by Matt Wright. pd: jdl Win32 raf.
OSCroute Copyright 1999 Regents of the Univ. of California. All Rights Reserved.
OSC
... couldn't create
OSC
... couldn't create
OSC
... couldn't create
dumpOSC 9999
... couldn't create
OSC
... couldn't create
OSC
... couldn't create
OSC
... couldn't create
And PixelTango crashes completely. Has anyone else experience these errors or maybe I have my start up path set up wrong or I need to add some thing?
I deeply appricate your help and advise but I am at a loss!
Thanks again
C++
Hi,
I am trying with OSC. I followd the ling you gave me. From there I followed the pd link to http://barely.a.live.fm/pd/OSC/, that it is not working right now. But I found that in http://barely.a.live.fm/pd/OSC/OLD are some files. From those files I tried OSCx.tgz and OSCx.0.15b1.tgz. I tried to followed the instructions and I had a problem with tne m_imp.h with both packages. I got
In file included from dumpOSC.c:71:
m_imp.h:17: error: syntax error before "t_symbol"
followd by a huge list of errors.
I also tried with the flies from [url=http://cvs.sourceforge.net/viewcvs.py/pure-data/externals/OSCx/#dirlist,
]http://cvs.sourceforge.net/viewcvs.py/pure-data/externals/OSCx/#dirlis t,
I downloaded them manually because I don´t know a more smart way to do that. I followd the instructions in the readme file. When I get to execute the command "make OSC" in the folder OSC I get
/usr/lib/gcc/i386-redhat-linux/3.4.3/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
OSC.o(.text+0x17): In function `OSC_new':
: undefined reference to `pd_new'
followd by many lines.
How did you install the OSC library? Any idea where is my mistake?
tx
Your hardware equipment ?
_one tip i can offer is that if you are serious about interfacing, consider using OSC (open sound control) for communication between your various components. it is more flexible than midi and is becoming more and more portable and adaptable. even if you are using midi connections, it can still be benificial to implement an OSC messaging system: lets say you have a midi keyboard controlling part of your patch. if you convert incoming midi messages to OSC messages, you can also control your patch from any other hardware or software application that supports OSC and is connected to your patch (either physically or virtually by a tcp/udp connection). _
sounds great, I haven´t tried that yet. I am often working with my RS 50 D-Beam a lot (infrared sensor which het its input from let´s say you hand or any object.....kind of a theremin device...) so I am really interested in the kind of patches I can create using this device.
Your hardware equipment ?
as far as hardware for triggering events goes...you can pretty much use what ever you want. any MIDI compatible device would be fine. my suggestion is to use whatever you have or whatever you're comfortable with. Pd is flexible enough to allow you to map pretty much any input to any event or output.
one tip i can offer is that if you are serious about interfacing, consider using OSC (open sound control) for communication between your various components. it is more flexible than midi and is becoming more and more portable and adaptable. even if you are using midi connections, it can still be benificial to implement an OSC messaging system: lets say you have a midi keyboard controlling part of your patch. if you convert incoming midi messages to OSC messages, you can also control your patch from any other hardware or software application that supports OSC and is connected to your patch (either physically or virtually by a tcp/udp connection).
sorry if this is more confusing than helpful; let me know if you have questions. sometimes the pd OSC externs can be hard to track down but if you search this forum i know i have posted a link in the past.