Home

Awesome

osc-msg

Build Status NPM Version License

OSC message decoder/encoder with fault tolerant

Features

Installation

npm:

npm install osc-msg

API

Examples

decode

const dgram = require("dgram");
const oscmsg = require("osc-msg");

const socket = dgram.createSocket("udp4");

socket.on("message", (buffer) => {
  const bundle = oscmsg.decode(buffer, { strict: true, strip: true, bundle: true });

  if (bundle.error) {
    return;
  }

  bundle.elements.forEach((message) => {
    console.log(JSON.stringify(message));    
  });
});

socket.bind(RECV_PORT);

encode

const dgram = require("dgram");
const oscmsg = require("osc-msg");

const message = {
  address: "/foo",
  args: [
    { type: "integer", value: 0 },
    { type: "float", value: 1.5 }
  ]
};
const buffer = oscmsg.encode(message);
const socket = dgram.createSocket("udp4");

socket.send(buffer, 0, buffer.length, SEND_PORT, "127.0.0.1");

Javascript representations of the OSC types

compatible interfaces with osc-min

{
  "address": string,
  "args": [ arg1, arg2, ...argN ],
  "oscType": "message"
}

Where args is an array of OSC Arguments. oscType is optional. args can be a single element.

{ "type": string, "value": any }

Where the type is one of the following:

{
  "timetag": number,
  "elements": [ element1, element2, ...elementN ],
  "oscType": "bundle"
}

Where the timetag is a javascript-native numeric value of the timetag, and elements is an array of either an OSC Bundle or an OSC Message The oscType field is optional, but is always returned by api functions.

See also

License

MIT