diff --git a/packages/osc/src/message.ts b/packages/osc/src/message.ts index 5ffe030..97acc78 100644 --- a/packages/osc/src/message.ts +++ b/packages/osc/src/message.ts @@ -76,6 +76,17 @@ export function messageFromBuffer(bytes: Uint8Array): [OSCMessage | undefined, U const [address, bytesAfterAddress] = oscTypeConverterMap.s.fromBuffer(bytes); if (typeof address === 'string') { + if(bytesAfterAddress.length === 0){ + // NOTE(jwetzell): OSC 1.0 spec says that messages without a type string should be allowed + return [ + { + address, + args: [] + }, + bytesAfterAddress + ] + } + let [typeString, bytesAfterType] = oscTypeConverterMap.s.fromBuffer(bytesAfterAddress); if (typeof typeString === 'string') { if (!typeString.startsWith(',')) { diff --git a/packages/osc/tests/message-decode.test.js b/packages/osc/tests/message-decode.test.js index e4c2e06..4b798f2 100644 --- a/packages/osc/tests/message-decode.test.js +++ b/packages/osc/tests/message-decode.test.js @@ -81,6 +81,7 @@ const goodTests = [ ], }, }, + expected: { { description: 'osc 1.0 spec example 1', bytes: new Uint8Array([