Kyma Forum
  Kyma Support
  OSC out?

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   OSC out?
Phi Curtis
Member
posted 10 July 2010 21:58         Edit/Delete Message   Reply w/Quote
Is there a way with the new OSC capabilities (which I haven't used much yet) to send OSC messages from Kyma? It seems like sending MIDI over OSC for bi-directional controls is the only OSC out described on the OSC Tweaky pages.

I want to use OSC out instead of MIDI out, for better resolution (I currently send MIDI to Max, which then converts it to OSC to send to Processing or OSCulator, which is kind of a pain).

Or it seems that this is something which isn't implemented yet?

thanks,
Phil

IP: Logged

SSC
Administrator
posted 10 July 2010 22:38         Edit/Delete Message   Reply w/Quote
For now, you could use a SoundToGlobalController with a generated value in the form of an OSC message, for example

!osc_1_fader1

would create the OSC message:

/1/fader1

Have Max send that message once. And Max has to tell Bonjour which port is receiving messages on. OR, have Max send Kyma a respondTo message. For example, Max could send the following message once:

/osc/respond_to 8000

to let Kyma know to send OSC responses and update messages to port 8000.

[This message has been edited by SSC (edited 10 July 2010).]

IP: Logged

Phi Curtis
Member
posted 11 July 2010 01:00         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by SSC:
OR, have Max send Kyma a respondTo message. For example, Max could send the following message once:

/osc/respond_to 8000

to let Kyma know to send OSC responses and update messages to port 8000.
]


Thanks, SSC - it seems like this is something that can be done. But I'm not quite getting it.

If I send a message of /osc/respond_to 8000 from Max, Max receives this message back on port 8000:

/osc/response_from 57088

but I don't seem to be receiving anything from the global controller that I set up as !osc_1_fader1.

I think I'm missing something.

[I don't think Max uses Bonjour, unfortunately]


IP: Logged

SSC
Administrator
posted 11 July 2010 10:51         Edit/Delete Message   Reply w/Quote
Max has to send the message:

/1/fader1

(the actual OSC that corresponds to Kyma's !osc_1_fader1)

to Kyma at least once before Max can start receiving it back from Kyma.

IP: Logged

SSC
Administrator
posted 11 July 2010 10:55         Edit/Delete Message   Reply w/Quote
quote:
If I send a message of /osc/respond_to 8000 from Max, Max receives this message back on port 8000:

/osc/response_from 57088


That means Max is receiving on its port 8000. And the Pacarana is telling you that it received a message from Max on port 57088. So Max is receiving on 8000 and sending on 57088.

You don't have to do anything differently based on this; it is just the way that Max and Kyma are establishing how they are going to talk to one another.

IP: Logged

Phi Curtis
Member
posted 11 July 2010 11:50         Edit/Delete Message   Reply w/Quote
Hi,

I should have said that I was sending the /1/fader1 message, and running the global controller called !osc_1_fader1.

Is there any particular sequence of events that has to happen? Right now, for example, I'm running the Kyma global controller sound when I send the x /osc/respond_to 8000 message from Max, followed by the /1/fader1 message. I'm looking at messages received by Max by simply connecting a print object (prints messages to the Max window) to Max's udpreceive object, which is watching port 8000.

Max responds /osc/response_from 58308 (or whatever port) after receiving the respond_to message but nothing after the /1/fader1 message (again, !osc_1_fader is sending values the whole time).

IP: Logged

bar|none
Member
posted 11 July 2010 12:06         Edit/Delete Message   Reply w/Quote
I had the exact same problem trying to make this work with MAX and was never able to resolve it.

My guess is that MAX sends from a pool of ports or creates a new port each time, so the port that you send the respond_to from is not the same port as the next message you send. KYMA creates a table and hashes the communication channel by the port that sent it the respond_to message.

Unfortunately this is not possible to change. I think this should be fixed on the KYMA end though since MAX is an extremely important client environment.

Maybe it would be possible to register a global respond to port # as a catch all.

respond_to_global 8000

This means that if there is not a respond_to port registered for the sending port then it will default to sending back on 8000.

If someone has gotten feedback to MAX, I'd be interested to hear it.



IP: Logged

Phi Curtis
Member
posted 11 July 2010 13:17         Edit/Delete Message   Reply w/Quote
Thanks! Then I'm not on the wrong track, just using the wrong program...

My end goal is to send messages to Processing anyway, and get rid of Max as middleman (I was using it to convert Kyma midiouts to OSC to send to Processing). I'll move on to testing with Processing.

IP: Logged

Phi Curtis
Member
posted 11 July 2010 18:20         Edit/Delete Message   Reply w/Quote
No luck with Processing either...

Would appreciate hearing from anyone who's gotten it working with the oscP5 library for Processing...

PC

IP: Logged

SSC
Administrator
posted 11 July 2010 19:54         Edit/Delete Message   Reply w/Quote
We tested it here doing the following:

* Created and played a SoundToGlobalController with GeneratedEvent of !osc_test and Value of !x.

* Ran from Terminal CNMAT's dumposc utility to monitor OSC messages: dumposc 9000

* Ran from another Terminal window CNMAT's sendosc utility to send OSC messages (replace the 2 with the serial number of your Pacarana): sendosc -h beslime-2.local 8000

* In the sendosc window, entered: /osc/respond_to 9000

* In the dumposc window, saw: /osc/response_from 54485

* In the sendosc window, entered: /test 0.1

* In Kyma, saw the !osc_test fader move.

* In Kyma, dragged the !x fader and saw messages indicating new value of !osc_test, for example: /test 0.180000


The OSC utilities are available at: http://archive.cnmat.berkeley.edu/OpenSoundControl/dumpOSC.html

IP: Logged

SSC
Administrator
posted 11 July 2010 21:49         Edit/Delete Message   Reply w/Quote
For some examples of using OSC to communicate bidirectionally between Max and Kyma, please also take a look at Andy Capon's Max patches. He uses an external called oscbonjour from IRCAM ( http://recherche.ircam.fr/equipes/temps-reel/movement/muller/index.php?entry=entry060616-173626 ):
http://www.symbolicsound.com/Learn/AndyCaponMaxExternalOSC

[This message has been edited by SSC (edited 11 July 2010).]

IP: Logged

Phi Curtis
Member
posted 11 July 2010 23:40         Edit/Delete Message   Reply w/Quote
A lot of the links at the CNMAT site seem to be broken, including the links on that page (http://archive.cnmat.berkeley.edu/OpenSoundControl/dumpOSC.html) that are supposed to go to the source code and compiled binaries of dumpOSC.

Does anyone have a working link?

IP: Logged

SSC
Administrator
posted 12 July 2010 13:57         Edit/Delete Message   Reply w/Quote
You can get the sources and binaries from http://archive.cnmat.berkeley.edu/OpenSoundControl/

Look in the OSC Resources section for the links.

IP: Logged

ChristianSchloesser
Member
posted 12 July 2010 18:43         Edit/Delete Message   Reply w/Quote
Today i tested kyma with Quartz Composer and the qcOSC plugin (better then the native OSC support of QC)
I had to send the message /osc/response_to "my Portnumber" first ! and then it started working bidirectional ... control the VCS with QC and get feedback via OSC from Kyma to control a
QC - function...

no luck in processing here too ...

all the best
chris

[This message has been edited by ChristianSchloesser (edited 12 July 2010).]

IP: Logged

Phi Curtis
Member
posted 12 July 2010 19:22         Edit/Delete Message   Reply w/Quote
Okay, I finally figured out how to get the Max patch to work. I didn't understand that when sending the /1/fader1 message from Max to the Paca, I should follow it with a float value. After that it worked fine, and Processing received the values after that as well.

I can maybe upload some screen shots later that will make it clear.

Thanks for your help.

best,
Phil

[This message has been edited by Phi Curtis (edited 12 July 2010).]

IP: Logged

SSC
Administrator
posted 13 July 2010 16:09         Edit/Delete Message   Reply w/Quote
Thanks, Phil, that would be helpful! I tried to distill a summary of bi-directional OSC on the tweaky. If you click the Max example, there's an additional page with details where your screen shots would be very appreciated by everyone using Max and OSC!

Thanks!

IP: Logged

ChristianSchloesser
Member
posted 13 July 2010 21:43         Edit/Delete Message   Reply w/Quote
quote:
... and Processing received the values after that as well....

may you post your processing sketch?

all the best
chris


[This message has been edited by ChristianSchloesser (edited 13 July 2010).]

IP: Logged

Phi Curtis
Member
posted 14 July 2010 02:23         Edit/Delete Message   Reply w/Quote

OSCFromKymaTest2.zip

 
Okay, I attached the max patch (as text) and as a screenshot. For some reason the screenshot became part of the page instead of being linked - feel free to change, of course:
http://www.symbolicsound.com/cgi-bin/bin/view/Learn/OSCKymaMax

The Processing patch I'm uploading here, but it's still in progress. Here are the caveats:

1.You have to hard-code your Pacarana's IP address (no bonjour possible with Processing, I think).

2. You have to use the Max patch I created to "jump-start" the connection - it doesn't seem to make the connection on it's own - still trying to figure this out.

3. After you've jump-started the connection with the Max patch, you have to close the Max patch. Then you should see the fader values printing in the area at the bottom of the sketch.

I'll post the Processing patch when I figure it out. If anyone else figures it out, let me know!

Phil

IP: Logged

Phi Curtis
Member
posted 14 July 2010 23:19         Edit/Delete Message   Reply w/Quote
BTW, is there a way to get a new IP address for the Pacarana without shutting it down and restarting it? Once I've used the Max patch to establish an OSC link with the Pacarana, I can't get it to reset so that I can test my Processing patch (actually a good thing, it seems like a pretty reliable OSC connection). But it slows the testing process down.

I tried sending my messages from Processing to Max instead of Kyma to see what was going on, but it seems like it is sending the same messages that Max sends to Kyma, so I don't know what the problem is. But Kyma doesn't seem to receive messages sent by Processing at all.

IP: Logged

Phi Curtis
Member
posted 17 July 2010 18:52         Edit/Delete Message   Reply w/Quote
Okay, I figured out how to get communication going between Processing and the Pacarana, without using either Max or OSCulator:
http://www.symbolicsound.com/cgi-bin/bin/view/Learn/OSCKymaProcessing

I've linked it from the same Tweaky page that the Max example is linked from.

Let me know if anything isn't clear.

PC

[This message has been edited by Phi Curtis (edited 17 July 2010).]

IP: Logged

SSC
Administrator
posted 17 July 2010 19:32         Edit/Delete Message   Reply w/Quote

IP: Logged

Phi Curtis
Member
posted 20 December 2010 22:35         Edit/Delete Message   Reply w/Quote
I've added a couple of files to the Tweaky that demonstrate OSC communication with Quartz Composer:
http://www.symbolicsound.com/cgi-bin/bin/view/Learn/OSC2Way

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c