Support Touchosc In Duplex?

This idea spawned from the generic OSC thread, where I posted a video of an iPod communicating with PD mapped to Renoise.

Firstly, I don’t own an iPad/iPod and have never used TouchOSC so I can’t confirm this, but from the website:

To me this means that TouchOSC, although supports any interface, comes with 5 predefined ones. In fact, I looked at a bunch of TouchOSC videos and it turns out most people are just using the same interfaces, and not doing anything innovative like building new interfaces; rather they map the provided defaults.

If people are just using TouchOSC as is, then it’s just another piece of “hardware”, and could easily be mapped to Duplex within those parameters.

Has this been considered?

Would be nice.

I felt like a dick saying your friend was cheating, but in reality the fact is most people are, by using OSCulator (it’s an OSC to midi translator)

this is the enhanced touchOSC version for iPad:

That’s the type of thing that could make me by a 600 dollar dumb terminal, for just messing around at home.
But really I’m shooting for the -200 android multi-touch ipad knock off, running the enhanced version, if Hexler does it.
Or make something myself at some point.

I don’t even use OSC for anything, I have no reason to use anything outside of renoise anymore, but I figured I wanted to try to just figure this all out. A very long harsh cold road indeed.

I’ve been racking my brain trying to figure out LUA, Renoise’s API and remembering OSC for the past 3 weeks and I finally got renoise to send to 1 fader in touchOSC. Can’t get more than one, as I don’t know how to mess with “value” in the slider table?
Just being able to do that was a major \o/!!!

Did figure out how to start another OSC Server in Renoise, but I can’t tell what’s really going on in it, or figure out how to find out what’s going on in it to be of much use yet.

I don’t know the guy, to call him my friend is a bit off, I just did a Google search and stumbled into that video.

If you want to do something productive,

*) post screenshots of the 5 default Touch OSC interfaces.
*) Make Duplex XML files that copy those interfaces, if there are “incompatible parts”, omit them for now.

Wait, that wasn’t you with the camera?
I was just checking out your NAMM interview, earlier today, or yesterday, and I guess I naturally assumed it was you.

Looking at Duplex now, after you mention it, it doesn’t look as daunting just looking at the controllers folder.
I could do that.

Are you saying to just make the XML files or also the lua interface file?

I know I could do the XML, if the lua interface file works the way I think it does, I might also be able to do that.

There is 4 possibly 5 objects I don’t know how to work with.
keys, XY, multi-slider, push button, and pages.

The pages and keys might be available I guess. The pages switch between the different layouts in touchOSC.
The keys are just notes, but neither of these I know how to work with.

The multisliders might work with a nested array of minisliders, but I wouldn’t have any idea how to do that.
Maybe someone knows how to make that into a UIComponent?

There is also a toggle button matrix, that’s I tried implementing based on the exampleGuitool.
but I’m really not sure how it works in Duplex, or if it will work in the tool I was building.

this is the overview of the layouts, some of the address patterns are wrong, but the overview is right.

This is what I have so far for page 1 of Simple Layout:

Controlmap for TouchOSC Simple Layout
Select page #1? on TouchOSC Layout Simple for this configuration


kinda looks like the xml tag is mangling the XMl above but

I’m not sure if it’s the correct way of doing this. I guess the entire layout really needs to be in each XML, a total of 5 or there will be 20 files for each page.

The pages in a row along the top, then a column to hold the top horizontal fader with a row inside it for the 4 sliders, and another row under this for the toggle buttons.

after this, for page 2 which is a 4X4 matrix of push buttons and 4 toggles underneath I’m thinking I can put everything in rows. Maybe add this to the above before ? and use a touchOSC-Simple.lua to sort through all of this? Is that how this works?

it worked this time, that’s odd, maybe they fixed it?

edit: forgot to copy something I edited.

When people say “help build this house” not everyone is the electrician. Don’t sweat the small stuff.

I don’t own an iPod or whatever. I looked at the PDF and this is what I think I currently understand:

The five interfaces are:

  • Simple
  • Mix 2
  • Mix 16
  • Beatmachine
  • Keys

Within those interfaces, I don’t see how Renoise can handle X/Y (Mix 2, page 3, for example), but the rest seem do-able.

Each interface has it’s own OSC nodes, for example, to communicate with Mix 2 fadders on my iPod, I send OSC to /4/fader1 and /4/fader2. This is not what Renoise is receiving, rather the adresses I can send to TouchOSC.

In Duplex, instead of separating the interfaces into pages, just put them all together. The pages thing is just formatting for iPod. If I just put All 4 “pages” to the simple interface in a single “big Duplex interface” that’s fine, no?

The previous statement means, I can make Simple “pages 1, 2, 3” as a single interface in Duplex, and neglect the 4th page for now. Messages from page 4 will simply be ignored.

When Duplex talks to TouchOSC it will send info. Just because the interface isn’t on visible the iPod “page”, doesn’t mean it won’t receive the info in the background. If i send to /4/fader1 and it’s not on the screen, so what? It will probably be updated in the background and the next time I switch to it on the iPod it will be in the correct position.

The first step is design one of the 5 interfaces, all pages concatenated, into a single XML. Not just a single page. The values and whatever, don’t worry about for now. To be honest, I don’t think they are right how they are now, but I am no Duplex expert.

If someone can build a complete interface, then from there, it’s step 2.

Sorry, I felt bad about my previous statement. Edited it down to the essentials.

I guess I missed that.

Thanks for this, I’m going to work on this heavily today.
Having all the interface elements on one page does make sense, certainly easier, that’s what I had begun doing in my tool, only started making them essentially rows.
So I will start setting this up in Duplex with the pages like columns then.
Should look more pleasant with the Duplex UIComponents.

Hell yes for Duplex support for TouchOSC. FYI, lots of people do make their own layouts with the TouchOSC editor. So it might even make more sense to make a Renoise-specific layout(s) and duplexify them. Kinda like how the LiveControl controller for Live uses it’s own TouchOSC layout. I would love to see a TouchOSC version of the Launchpad duplex template just like how that works with the pattern matrix.

Now I remember a couple weeks ago when Danoise was telling me not to mess with Duplex. :D
Looks like Duplex isn’t OSC ready quite yet.
A TODO in Device.lua line 314.

I guess it needs some method in OscDevice.lua
to create a device_port_in for Device.lua to handle,
which essentially requires an osc server and a port in and out with I guess a UIComponent for creating user entry fields for: address, incoming and outgoing.


Huh, no OSC support in show_settings_dialog() eh?

To be honest I haven’t played with the Duplex code yet.

I’ll let someone else chime in before a suggestion that lead to some work done leads to a dead end.

whatever I described before, makes browser break.

FYI: Monome and TouchOSC are supported in the next version

Exactly, you nailed it. Most interfaces are built around the concept of one control, one value. So is the Duplex message system, based around the idea that a message contain a single value. But this is challenged by the OSC protocol, since that allows for multiple values at a time. Hence the problem with the XY control.

I’m not really certain how this should be done, or if it can be done in a clean way. Consider the following:

“/1/xy 0.15121234 0.937645” <- message from TouchOSC, with x and y values as separate arguments

This could be interpreted by Duplex by adding something like this to a control-map:

“/1/xy (%f) %f” <- extract the first (x) value
“/1/xy %f (%f)” <- extract the second (y) value

Coolio ;)

Have you used the TouchOsc default templates, like conner suggested, or created new ones just for Duplex?

next version 2.6 b(4) or next version 2.(6)?

there is also accelerometer /3/xyz x value, y value & z value

I thought to solve the xy/ problem with the vertical and horizontal slider… but we also need a diagonal slider for the z-axis :(

For that just use 3 sliders in whatever orientation with labels. :)
I was meaning messages that send more than 2 values.

I tested this with TouchOSC for Android. The default layouts looks just like the screenshots above in this thread, and like the layout used by Duplex, but only the controls on the first screen works. Isn’t the remainder mapped to anything yet or is this a problem with the Android version?

Hope it is ok to revive this old thread. Maybe a new thread in the newbie forum would have been better?