Just to be sure, here are some simple steps to confirm why it is better to resolve PR #24 in good time. These steps are just a quick hack to avoid defining new classes.
when NilClass; obj = Object.new; obj.define_singleton_method(:val) { nil } ; obj.define_singleton_method(:tag) { "N" } ; @args << obj
Step 2: add the following line to OSCPacket#initialize in lib/osc-ruby/osc_packet.rb (and probably add a comma to the previous line)
"N" => lambda{nil}
For now, this change will enable the server side (OSC receiver side) to handle OSC Type Tag "N". However, it should behave as if there is an extra nil at the beginning of the received OSC message.
The extra nil seems to be caused by an extra nil being passed to Message.new (Message#initialize).
Although they're proprietary software, the VRChat client and the Resonite client do use "T" and "F".
From the VRChat client, "T" and "F" are sent to /avatar/parameters/Grounded at the moment the avatar leaves the ground (e.g., when jumping) and at the moment it lands.
We can try these out using just the VRChat client; no need to create anything in Unity or elsewhere.
Resonite offers a great deal of flexibility, but it's a bit complicated. Here's a video explaining how to receive OSC in Resonite: https://www.youtube.com/watch?v=gvbZV_x9cak
Activity
aberant commentedon Jul 30, 2025
I'll be able to look at this next week
cleemy-desu-wayo commentedon Aug 9, 2025
I have no reason to rush. I thank your interest in this proposal
cleemy-desu-wayo commentedon Aug 10, 2025
Regarding PR #24, I think that if we don't solve this argument issue first, Type Tag "N" may not work properly
cleemy-desu-wayo commentedon Aug 11, 2025
Just to be sure, here are some simple steps to confirm why it is better to resolve PR #24 in good time. These steps are just a quick hack to avoid defining new classes.
Step 1: add the following line to
Message#initializein lib/osc-ruby/message.rbStep 2: add the following line to
OSCPacket#initializein lib/osc-ruby/osc_packet.rb (and probably add a comma to the previous line)For now, this change will enable the server side (OSC receiver side) to handle OSC Type Tag "N". However, it should behave as if there is an extra nil at the beginning of the received OSC message.
The extra nil seems to be caused by an extra nil being passed to
Message.new(Message#initialize).aberant commentedon Aug 31, 2025
do you know of any free software or library that supports the "T", "F", "N" OSC tags? I'd like to test this against a working system
cleemy-desu-wayo commentedon Sep 11, 2025
if you're okay with Python, there's python-osc:
https://github.com/attwad/python-osc
I wrote some simple samples for testing "T", "F", and "N" with python-osc:
https://gist.github.com/cleemy-desu-wayo/590a22d5fb4e3f813b06dcc2fef9ae77
Although they're proprietary software, the VRChat client and the Resonite client do use "T" and "F".
From the VRChat client, "T" and "F" are sent to
/avatar/parameters/Groundedat the moment the avatar leaves the ground (e.g., when jumping) and at the moment it lands.For the VRChat client receiving data, the 2nd arg of
/chatbox/inputis either "T" or "F".https://docs.vrchat.com/docs/osc-as-input-controller
We can try these out using just the VRChat client; no need to create anything in Unity or elsewhere.
Resonite offers a great deal of flexibility, but it's a bit complicated. Here's a video explaining how to receive OSC in Resonite:
https://www.youtube.com/watch?v=gvbZV_x9cak