osc icon indicating copy to clipboard operation
osc copied to clipboard

OSC output on the Quest

Open Romaxx opened this issue 2 years ago • 11 comments

Describe the bug OSC reset on Quest version don't generate .json file on the Quest (/mnt/sdcard/Android/data/com.vrchat.oculus.quest/files/OSC/usr_xxxx/Avatars/ folder) in contrary to pc version generating json (in C:\Users\xxxx\AppData\LocalLow\VRChat\VRChat\OSC\usr_xxxx\Avatars folder) adb show empty folder, moreover only the "/avatar/change" are sent to localhost:9001:udp, all others parameters dropped, even if valid json is created manually with some parameters.

Romaxx avatar Jul 02 '22 16:07 Romaxx

I have encountered the same problem! Any chance that this can be fixed?

Spacechild1 avatar Aug 16 '22 00:08 Spacechild1

Curiously, @momo-the-monster has mentioned in https://github.com/vrchat-community/osc/issues/45 that OSC output on the Quest should be fixed, but that doesn't seem to be the case...

Spacechild1 avatar Aug 16 '22 00:08 Spacechild1

@Spacechild1 OSC output on quest was broken a month ago. It was fixed last week, and I believe that is included in the current open beta.

Phasedragon avatar Aug 16 '22 00:08 Phasedragon

OSC output is not yet supported on the Quest. We removed a bug where OSC output was mistakenly trying to send and causing an exception.

OSC output will be enabled once we have a way to specify the target IP and Port.

momo-the-monster avatar Aug 16 '22 02:08 momo-the-monster

@momo-the-monster I've build an embedded C program on the quest to listen on UDP port and data are sended by vrchat, but only the /avatar/change event. The easy way to specify target IP and port could be an OSC command.

Romaxx avatar Aug 16 '22 04:08 Romaxx

I've build an embedded C program on the quest to listen on UDP port

@Romaxx Ha, and I've written an Android service that listens on port 9001 and forwards the packets to my PC.

OSC output on quest was broken a month ago. It was fixed last week, and I believe that is included in the current open beta.

@Phasedragon Where can I find this latest open beta and how do I install it on the Quest 2? I can't seem to find any information...

OSC output will be enabled once we have a way to specify the target IP and Port.

@momo-the-monster Power users already know how to forward the packets :-) For me personally it would be great to have OSC output on the Quest2 as soon as possible, but I also understand that it does not have the highest priority...

Spacechild1 avatar Aug 16 '22 10:08 Spacechild1

Romaxx Ha, and I've written an Android service that listens on port 9001 and forwards the packets to my PC.

@Spacechild1 ok and what's the results ? do you receive OSC Data other than /avatar/change event ?

Romaxx avatar Aug 16 '22 11:08 Romaxx

@Romaxx only /avatar/change, like you. That's what I meant with "same problem" :-)

Spacechild1 avatar Aug 16 '22 11:08 Spacechild1

Hi, I haven't gotten any OSC messges from the avatar on the Quest. (tested in my PC and no problem receiving OSC message) I even didn't get /avatar/change (enabeld OSC in the VRChat setting)

Any update on this issue???

westside avatar Nov 14 '22 01:11 westside

bump

mcblockserrilla avatar Sep 06 '23 15:09 mcblockserrilla

OSC output will be enabled once we have a way to specify the target IP and Port. @momo-the-monster

Is there any timeline on when those options are going to be added? I am using a Termux running locally on the quest and being able to send data into VRChat is great but not being able to get any data out of VRChat on device is very frustrating.

If there is no timeline to add this option a work around would be appreciated. I understand the hesitancy of spamming a local port 9001 which might be used by a different app and being unable to turn this off. Here are some suggestions to lessen that risk or ideas usably as a workaround:

  • pick a standard port at the far end of the port range (e.g. 16783 ) unlikely to collide with anything
  • spin up server listening on 9002 just like there is a server on 9000. UDP is a datagram protocol, there is no notion of sessions or server/client. Programs connecting to port 9002 will receive messages meant for an OSC server. This is an "inverted" OSC conncetion and not directly compatible with other OSC software. This will not work with another server directly (as servers don't connect outward). But it is trivial to build an program which connects to VRChat on 9002 and a proper server on 9001 as clients on both ends and forwards the messages between them. This program could also run on machine which has access to port 9002 on the Quest. This way no host port for the server have to be specified to VRChat because the double sided client needs this information not VRChat.
  • read field of the player character just as a note field for host and port info.
  • just point it to localhost:9001 and have the user deal with it. Android devices usually don't run 3 dozens of servers and if so those apps will not work while OSC is turned on.

I am asking VRChat to consider any of these possiblities. As any of these is better than the current implementation.

Related issues: https://github.com/vrchat-community/osc/issues/126 https://github.com/vrchat-community/osc/issues/162

freemin7 avatar Feb 25 '24 20:02 freemin7