The OSC plugin works great for me when deploying to android arm64, but, when I deploy to armv7, my UE4 app sends malformed OSC packets with strings that are not padded with 0s at the end as required by the OSC 1.0 spec [1]. The 1.0 spec states that an OSC string must have characters “followed by 0-3 additional null characters to make the total number of bits (of the string) a multiple of 32”. Essentially, any string needs a padding of 0s after its characters until the total length in bits is a multiple of 32.
I have deployed an app to both Oculus Quest 1 and 2 with the same behavior described above. To verify the missing padded zeros, I simply send the OSC packets from my UE4 app on the VR headset over the network to my computer where I inspect the packets with Wireshark. The following is a hex dump of the OSC bytes of a packet I received which is malformed:
0000 2f 6d 6d 63 2f 6d 69 64 69 2f 6e 6f 74 65 2f 6f /mmc/mid i/note/o
0010 6e 00 40 40 2c 69 69 66 00 40 40 40 00 00 00 01 n.@@,iif .@@@....
0020 00 00 00 25 3f 80 00 00 ...%?...
You can see that the OSC address string “/mmc/midi/mote/on” ends with a single null terminating 0-byte, and its total size (including null terminating byte) of 144 bits (18 bytes) is not a multiple of 32, thus, it is an invalid OSC string as defined by the OSC 1.0 spec. The correct string should have two more byes of padding 0s for a total of 160 bits (20 bytes).