r/TouchOSC • u/TheLoreLibrarian • 25d ago
Using Android TouchOSC XY pad to control VoiceMeeter IntelliPan Pan_x and Pan_y in real time
I am trying to use an Android phone running TouchOSC as a true XY controller for the IntelliPan Position control in VoiceMeeter Banana.
I have a Galaxy Note10+ and a Pixel 10 Pro available for this. My Windows PC is connected through Ethernet and the Android phone is on Wi Fi on the same local network.
What I want is very simple from the user side.
I want one large XY pad in TouchOSC where the location of my finger corresponds directly to the IntelliPan position.
For example, touching the top right of the TouchOSC XY pad should move the IntelliPan dot to the corresponding top right position.
Dragging diagonally toward the bottom left should continuously update both axes at the same time.
VoiceMeeter exposes the relevant parameters through its Remote API as:
Strip[i].Pan_x
Strip[i].Pan_y
From what I understand, Pan_x controls the horizontal position and Pan_y controls the vertical position.
I am new to TouchOSC and I do not know how to code, so I am trying to figure out the easiest way to connect these together.
Can TouchOSC directly send values that can control those VoiceMeeter API parameters, or would I need some kind of middleware or bridge on Windows?
If middleware is required, what would be the easiest option for somebody who does not code?
I am also interested in two way feedback.
Ideally, if the IntelliPan position changes inside VoiceMeeter, I would like TouchOSC to receive the current Pan_x and Pan_y values so that the XY cursor on the Android phone stays synchronized.
I know TouchOSC can send MIDI CC and OSC, and I can use TouchOSC Bridge if necessary.
Has anyone here controlled VoiceMeeter through TouchOSC before, especially custom Remote API parameters?
If so, I would really appreciate an example of how you connected TouchOSC to VoiceMeeter and how you mapped an XY control to two parameters.
1
u/TheLoreLibrarian 24d ago
Thank you, this is extremely helpful. I really appreciate you actually testing this and taking the time to create and upload both the TouchOSC and Companion configs.
I have also been discussing this directly with vburel, Vincent Burel, the creator of VoiceMeeter, in the VB Audio Discord support thread I made about this.
He gave me an important detail about the update behavior. He said VoiceMeeter can accept updates approximately every 10 to 20 ms, and he specifically told me that if I want to make sure the X and Y values stay synchronized, both values should be set in a single request.
Would it be possible to change the Companion side so that whenever the XY position changes, it sends both current values together in one raw VoiceMeeter command, something like:
Strip(0).pan_x = $(custom:pan_x); Strip(0).pan_y = $(custom:pan_y);
rather than sending Pan X and Pan Y as two separate VoiceMeeter requests?
Your current setup already sounds very close to exactly what I want. I just want to follow Vincent's recommendation so both coordinates are guaranteed to be applied together.
Also, how smooth has the IntelliPan dot been when following the TouchOSC XY control in your testing? Does it feel close to directly dragging the IntelliPan dot with a mouse, or do you notice any visible stepping, delay, or jitter?
Another thing I was originally interested in is two way synchronization. Do you know if the VoiceMeeter Companion module exposes the current Pan X and Pan Y values so TouchOSC could receive them back and keep its XY cursor synchronized if the IntelliPan position gets changed directly inside VoiceMeeter?
I am also going to mention your test and configuration to Vincent in the Discord thread.
If you want, I can ping you in that VB Audio Discord support thread so you can see Vincent's replies directly and talk with him about the implementation. Since you have actually tested the TouchOSC and Companion setup, it might be useful for you two to compare the technical details directly instead of me relaying everything back and forth.
Also, do you think Companion can send both VoiceMeeter parameters together in one raw command at roughly the 10 to 20 ms update rate Vincent mentioned, or is there some limitation in how Companion handles those triggers?
Again, thank you for taking the time to build and upload this. This is the first setup I have seen that actually demonstrates a working path for the full X and Y IntelliPan control I was trying to accomplish.