OSC'elot an OSC mapping module

Another option is to map the Host ports, you can right click on it and set Note Gate, that way you can connect directly from Iverson.

1 Like

Excellent, I didn’t think of that.

I’ve updated OSC’elot for V2.0 and added some new features too.

Get it here:

4 Likes

V2 is now available in the Library

4 Likes

I should add that due to the new features added and refactoring, it is not compatible with OSC’elot V1.

So glad I discovered this, and that it’s ported to VCV 2!

I’ve been trying to get it working with TouchOSC. I can set it up to send messages to the module just fine, but having a problem with receiving. Unfortunately it seems like the format TouchOSC expects for the messages (when receiving values) doesn’t match what this module is sending and I haven’t found a way to make touchosc work with that format.

TouchOSC wants the address to be unique per control, so having the module send /button for example for all buttons doesn’t really work with that. I can’t find a way to make touchosc only consider the control a match if the address and Id value match. So what’s happening now is, when I get a message back from the module after pressing a single button, it is toggling all buttons.

It would be preferable for TouchOSC if you put the ID as part of the address, so rather than sending and receiving /button (Id, Value), it would be /button/id (value). Otherwise I won’t really think I can make it work with both sending / receiving. EDIT: and to clarify I am saying it would be preferable if this is the format the module used BOTH for sending and receiving messages.

Anyone else got it working with TouchOSC? I wanted to use touchosc rather than open stage control because I want to use my android tablet to control things and I didn’t see a way to do that with open stage control.

Hey @chairbender this should still work with TouchOSC, since this is not an OSC’elot thing, but what the OSC standard dictates, Address followed by any number of arguments.

Unfortunately TouchOSC doesn’t start on my PC for whatever reason and I can’t test with it. You could try using OpenStageControl instead.

That being said OSC’elot only looks for address ending with /button, so you could also use /id/button and it should work, though it still needs an ID for mapping to params:

Check this link for OpenStageControl examples:

Also see @Jens.Peter.Nielsen post above:

Also you can use OpenStageControl on pretty much any browser, (I use it on my Pixel phones) though you need the server running somewhere other than the tablet.

Using /(id)/button would solve my problem only if the module also sent back /(id)/button as the address (I. E. If the mapping included the full address in the response). But I thought it always sends back /button regardless of the full address that was sent during mapping. Does it not? Can’t experiment atm.

And I understand the OSC standard, I’m more talking about what’s preferable as far as what is in the address vs argument part. IMHO (and clearly also what the TouchOSC devs thought) the address should specify the specific control being “addressed”, i.e. it should be a unique identifier for a control, independent of the arguments, rather than having Id as an argument. But ofc it is just a matter of convention, unfortunately it seems touchosc wants things to use their convention.

Cool about open stage control, I will have to check that out. It would work for me if it supports multi-touch when used in that way.

Check out the posts earlier in this thread, like I said there should be a way to get it to work with TouchOSC or any OSC software as long as it follows the OSC protocol

unnamed

Here’s an image from that post above that should help

Once you create a basic TouchOSC template, please share here to help other TouchOSC users

LOL yep, sorry I didn’t test it out before responding - I finally had time to actually test and it appears the fix you suggested of using /(id)/button indeed solves this problem, I have 2-way communication with TouchOSC working! Before my test I did not realize that OSC’elot stores and returns the full address of the mapped message, I thought it always only responded with the last part just from what I read in the docs and saw in my initial tests (/button).

I will be happy to share a template once I have it working with a few controls, probably will be able to share something later today. Though I might be tempted to switch to Open Stage Control because it’s open source :laughing:

1 Like

Ok, here’s a very minimal TouchOSC template that should be working. It has buttons, faders, and radials (faders and radials both mapped to /fader OSC messages). It works in both directions (send and receive).

I couldn’t get encoders to work in a way that was even remotely useful as TouchOSC doesn’t allow me to send a “delta” - it only sends an absolute value based on the degree of rotation about the axis, or else you can have it send +1 for clockwise, -1 for counter clockwise, which KINDA works, but then it doesn’t update in response to messages from OSCelot.

Not to get into a whole rant, but I’m rather fed up with TouchOSC at this point and planning to use Open Stage Control instead now that I know more about it. The TouchOSC desktop app you can use to build the UIs is rather clunky, clumsy, limited, and not to mention buggy (at least on windows 10). One million clicks to do anything. The actual capabilities of it seem surprisingly limited as well, even when I was looking through what’s possible with the scripting API it seemed rather limited. I would not recommend it to anyone.

I only started out with it because I was searching Google Play store for OSC apps and found it, and when I looked up Open Stage Control it took me awhile to understand that it could be used via browser and wasn’t just a desktop app. Even just watching a short video of someone building a UI via Open Stage Control showed me how much better it was (at least for my needs).

2 Likes

@TheModularMind I’ve been mapping a bunch of modules to my custom OpenStageControl interface, but I seem to have run into some sort of mapping limit, where I can’t map anything else. What’s the intended approach when I need more mappings than the limit? Just create another OSC’ELOT instance (which means I also need to add another OpenStageControl send target port)?

Maximum per instance is 320 params, did you really go over that? If so that is impressive, if not maybe a bug? I can put out a new build with a higher number, or you can use a second Osc’elot

I really did map that much! It’s a rather large performance oriented kit I’m trying to drive with OSC for some parts of it. A significantly higher limit would be nice so I can avoid the overhead of a second instance (even if it’s a menu option to raise the limit).

Ok, that’s good to hear.

The slider at the bottom is for banks, and each bank can hold up to 320 params. Can you use that or do you need more than 320 per bank

My understanding is, if I used multiple banks, then I would only be able to have one “active” at a time, for example having one bank per “tab” of my OSC UI and sending bank change when switching tabs. So I would not be able to have for e.g. two instances of my OSC UI open to different “tabs” at once, which is something I would like to be able to do (for e.g. having one tablet for left hand, one for right hand). And I’m not sure how to trigger a bank change via OSC. It could be a hassle having to manage having my mappings spread across different banks and having to add bank switching logic to my OSC UI.

Unless I have missed something about how I could make that setup work, I don’t think that would suffice. For this case, I would just want to be able to have the ability to map as many controls as I want and use them all without having to do some sort of mode change.

Yeah I need to add bank switching logic thru OSC, if you have two devices you could use two banks or OSCelots I imagine. Anyway I can easily increase the number, will do in the next build

1 Like

Thank you and you can find the latest build here that has the param limit doubled to 640:

1 Like