Main Menu

OSC feedback

Started by debbio, January 03, 2021, 05:40:06 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

debbio

Hi David! I'm playing with touchosc and multiplay and I'm wondering if you are considering the possibility to send osc command back to touchosc. In this way it's possible for example to see the number and name of the cue is playing, or the number of the next cue and other information

David

Yes, that's partially done.

You set the IP address and port number for the remote OSC application in Preferences > Control > OSC Master.

MultiPlay will send status changes when GO, Stop All, etc are activated.

The long term idea is to have it send more data so the remote app can show run time, etc.

debbio

Ok perfect!
It would be fantastic if I can see the current cue and next cue information from the android phone directly!

David

I'm working on this feature again.

Currently the control settings (control of MultiPlay from an external app) are in Production Preferences > Network > Control and the remote settings (optional feedback to that external app) are in Preferences > Control.

They are closely related so I'm going to put them on the same setup page. I'm think that maybe it should be in Preferences since it's an overall control function, not really part of the production.

How does that sound?

EdK

That makes sense to me.
Windows 10 Home x64
Dell XPS 7590 Intel i7-9750H
16gb RAM - 1tb SSD
GeForce GTX 1650

debbio


EdK

HI David,

Been experimenting with TouchOSC to receive data from Multiplay.   IMO, TouchOSC isn't documented very well and doesn't really provide practical examples.

I've been experimenting with something simple like sending a text message from Multiplay to TouchOSC so it can be displayed in TouchOSC.

What I did was created a "Label" in TouchOSC to accept the message from Multiplay.  The "Label" function in TouchOSC is a display only function.

In Multiplay, I created a Network Cue to send to TouchOSC.  In the "Data" portion of the "Network Messages" tab I entered "/label xxxxx"   as documented in TouchOSC and nothing happened.  What TouchOSC documentation fails to mention is the format of the "/label" command must be the name of the 'label' that was assigned to it.  In other words,  the label icon/control must be assigned a name.  TouchOSC provides a default name for it which can be found in the "Name" field when creating the icon/control or you can define a specific name.

Therefore, as documented in TouchOSC,  the word 'label' in the "/label"  command is replaced with the 'name' that was assigned to the label in TouchOSC.  For example-  the name I defined for the label is 'MTPTEXT'.  So the OSC command TouchOSC expects to receive is "/MTPTEXT"  followed by whatever text you wanted displayed.

What TouchOSC fails to mention is that the OSC command must also contain the 'page' name assigned in TouchOSC where the 'label' is defined.

I kept my page name simple and called it  "P1".  So the actual format of the OSC command to send to TouchOSC looks like this:

/P1/MTPTEXT xxxxxx    (replace xxxxxx with whatever text you want displayed).

Hopefully this will help other users here in this forum.  I spent a considerable amount of time trying to figure this out because TouchOSC's documentation leaves much to be desired and doesn't really provide any practical examples which would help tremendously in understanding how to interpret their documentation.

Anyway, on to my question-

Is there a way (or could there be a way) to use a variable (for lack of a better term) in Multiplay to dynamically get specific values from the cues?   I'm thinking something like this:

&ScriptRef   -  to get the current 'Script Ref'
&Duration    -  to get the current duration of the cue
&Description - to get the current 'Descripton'
&Advance    -  to get the current value in 'Advance'
&Title          -  to get the 'Title' in Production Properties
etc

so the values of these parameters could be used as an alternative to a hard coded text for the "/label" command?

Examples- 
/P1/MTPTEXT &Description
/P1/MTPTEXT &Duration
/P1/MTPTEXT &ScriptRef
/P1/MTPTEXT &Title
etc.

Attached is a screenshot of a prototype Multiplay Remote control I created.
Windows 10 Home x64
Dell XPS 7590 Intel i7-9750H
16gb RAM - 1tb SSD
GeForce GTX 1650

David

Good work on the OSC remote control.

It should be possible to use placeholders in the OSC commands. I'll have to have a think about how to implement it.

David

Were you going to use the OSC (Network) cue in the Adlib list to send this information?

Otherwise the cue sending the OSC would be the source of the "current" cue info.

EdK


I hadn't considered the Ad-Lib cue list although I think I understand what you're getting at.  By inserting the network command into the ad-lib list and have TouchOSC issue an OSC command to somehow trigger a specific entry in the ad-lib cue list that would send whatever info is desired back to TouchOSC?   Does that make sense?

From the TouchOSC's  perspective, knowing what the current cue is and what the next cue is would be informative.  The question is, what would be the best way to get that info from MTP into TouchOSC.      All I can think of at the moment is possibly having a selectable option in Production Properties or Preferences where the OSC command(s) could be stored along with the argument of whatever info is desired to be sent and MTP would send that info out automatically.

Regardless, the OSC command to populate the 'label' in TouchOSC would need to be stored somewhere in MTP because depending on how TouchOSC's control surface is user defined, the OSC command needs to specify the TouchOSC 'page' of where the 'label' is defined.   If someone were to build a multiple page TouchOSC control surface, they might define multiple 'labels'  on different pages and each  'label'  might need different info from MTP. 

I can see I wasn't thinking far enough ahead.  I got excited that I even got the OSC command for TouchOSC to work considering how lacking it's documentation is with practical examples. 

I'll think about this some more also.

Windows 10 Home x64
Dell XPS 7590 Intel i7-9750H
16gb RAM - 1tb SSD
GeForce GTX 1650

David

Ah, you're wanting MultiPlay to send OSC data as the cue list position changes etc?

I've already put that in code, but the fixed format is probably not very useful / versatile.

Maybe I'll add a section in preferences for each event that could be sent so it can be enabled / customised.

EdK

Basically, yes.       

I re-read this entire thread that Debbio started and was thinking....it would be helpful to know not only what cue is currently active but also what it's  "Advance" cue is and what the cue pointer is currently pointing to.

So I guess, having MTP automatically send the data as the cue pointer changes is great but also have the ability to request information from MTP on request.     If that's possible, the the user could populate TouchOSC with whatever they want.     I could then envision creating a TouchOSC 'page'  which mirrors the currently displayed cue list. 

I guessing when TouchOSC was first developed, their thinking was to provide real time data from whatever App it was connected to back to TouchOSC.    From the samples and video's TouchOSC provides and video's I've found on YouTube,  it looks like it was basically designed to communicate with Apps like Ableton, Reaper, etc.     I'm not familiar with any of those Apps so but I'm guessing they're some sort of DAW Apps and/or virtual mixers.   There's even no mention of something like QLab (which I thought there might be).



Windows 10 Home x64
Dell XPS 7590 Intel i7-9750H
16gb RAM - 1tb SSD
GeForce GTX 1650

EdK

HI David,

We discussed this about a year ago and I was wondering if you implemented any of this into MP yet.
You mentioned you already had some code in MP but you didn't think it was very useful.

No rush.....just curios.

Thanks...Ed
Windows 10 Home x64
Dell XPS 7590 Intel i7-9750H
16gb RAM - 1tb SSD
GeForce GTX 1650

David

I do still have plans for this, but need to clean up more of the old spaghetti code left over from MultiPlay 2 first.

leiavopandop

#14
useful information