Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

osc-min

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

osc-min - npm Package Compare versions

Comparing version 0.2.0 to 1.0.0

doc_html/docket.css

16

examples/osc-float-to-int.js

@@ -1,2 +0,2 @@

// Generated by CoffeeScript 1.8.0
// Generated by CoffeeScript 1.10.0
var float_to_int, inport, osc, outport, sock, udp;

@@ -21,6 +21,6 @@

float_to_int = function(message) {
var arg, _i, _len, _ref;
_ref = message.args;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
arg = _ref[_i];
var arg, i, len, ref;
ref = message.args;
for (i = 0, len = ref.length; i < len; i++) {
arg = ref[i];
if (arg.type === "float") {

@@ -34,3 +34,3 @@ arg.type = "integer";

sock = udp.createSocket("udp4", function(msg, rinfo) {
var edited, error;
var edited, error, error1;
try {

@@ -41,4 +41,4 @@ edited = osc.applyMessageTransform(msg, function(message) {

return sock.send(edited, 0, edited.length, outport, "localhost");
} catch (_error) {
error = _error;
} catch (error1) {
error = error1;
return console.log("error redirecting: " + error);

@@ -45,0 +45,0 @@ }

@@ -1,2 +0,2 @@

// Generated by CoffeeScript 1.8.0
// Generated by CoffeeScript 1.10.0
var inport, osc, outport, sock, udp;

@@ -28,3 +28,3 @@

sock = udp.createSocket("udp4", function(msg, rinfo) {
var error, redirected;
var error, error1, redirected;
try {

@@ -35,4 +35,4 @@ redirected = osc.applyAddressTransform(msg, function(address) {

return sock.send(redirected, 0, redirected.length, outport, "localhost");
} catch (_error) {
error = _error;
} catch (error1) {
error = error1;
return console.log("error redirecting: " + error);

@@ -39,0 +39,0 @@ }

@@ -1,3 +0,3 @@

// Generated by CoffeeScript 1.8.0
var dgram, osc, outport, sendHeartbeat, udp;
// Generated by CoffeeScript 1.10.0
var dgram, now, osc, outport, sendHeartbeat, udp;

@@ -16,6 +16,10 @@ osc = require('osc-min');

now = function() {
return (new Date()).getTime() / 1000;
};
sendHeartbeat = function() {
var buf;
buf = osc.toBuffer({
timetag: 12345,
timetag: now() + 0.05,
elements: [

@@ -29,3 +33,3 @@ {

}, {
timetag: 34567,
timetag: now() + 1,
elements: [

@@ -32,0 +36,0 @@ {

@@ -1,2 +0,2 @@

// Generated by CoffeeScript 1.8.0
// Generated by CoffeeScript 1.10.0
var dgram, osc, outport, sendHeartbeat, udp;

@@ -3,0 +3,0 @@

@@ -1,2 +0,2 @@

// Generated by CoffeeScript 1.8.0
// Generated by CoffeeScript 1.10.0
var inport, osc, sock, udp;

@@ -20,7 +20,7 @@

sock = udp.createSocket("udp4", function(msg, rinfo) {
var error;
var error, error1;
try {
return console.log(osc.fromBuffer(msg));
} catch (_error) {
error = _error;
} catch (error1) {
error = error1;
return console.log("invalid OSC packet");

@@ -27,0 +27,0 @@ }

(function() {
//~readme.out~
//[![build status](https://secure.travis-ci.org/russellmcc/node-osc-min.png)](http://travis-ci.org/russellmcc/node-osc-min)
//[![build status](https://secure.travis-ci.org/russellmcc/node-osc-min.png)](http://travis-ci.org/russellmcc/node-osc-min) [![Coverage Status](https://coveralls.io/repos/russellmcc/node-osc-min/badge.png?branch=master)](https://coveralls.io/r/russellmcc/node-osc-min?branch=master) [![dependencies](https://david-dm.org/russellmcc/node-osc-min.png)](https://david-dm.org/russellmcc/node-osc-min)
//# osc-min

@@ -31,2 +31,5 @@ //

//~representation~
//----
//## License
// Licensed under the terms found in COPYING (zlib license)

@@ -80,3 +83,3 @@ //~representation~

//
// + An _OSC Bundle_ is represented as a javascript object with the following layout
// + An _OSC Bundle_ is represented as a javascript object with the following fields:
//

@@ -89,8 +92,20 @@ // {

//
// 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.
// `oscType` "bundle"
//
// `timetag` is one of:
// - `null` - meaning now, the current time.
// By the time the bundle is received it will too late and depending
// on the receiver may be discarded or you may be scolded for being late.
// - `number` - relative seconds from now with millisecond accuracy.
// - `Date` - a JavaScript Date object in your local time zone.
// OSC timetags use UTC timezone, so do not try to adjust for timezones,
// this is not needed.
// - `Array` - `[numberOfSecondsSince1900, fractionalSeconds]`
// Both values are `number`s. This gives full timing accuracy of 1/(2^32) seconds.
//
// `elements` is an `Array` of either _OSC Message_ or _OSC Bundle_
//
//
// [spec]: http://opensoundcontrol.org/spec-1_0
var utils, coffee;

@@ -122,5 +137,7 @@ utils = require("./osc-utilities");

//
// See "JavaScript representations of the OSC types" below.
//
//----
//### .toBuffer(address, args[], [strict])
// alternative syntax for above. Assumes this is an _OSC Message_ as defined below,
// alternative syntax for above. Assumes this is an _OSC Message_ as defined below,
// and `args` is an array of _OSC Arguments_ or single _OSC Argument_

@@ -173,2 +190,21 @@ exports.toBuffer = function(object, strict, opt) {

//~api~
//----
//### .timetagToDate(ntpTimeTag)
// Convert a timetag array to a JavaScript Date object in your local timezone.
//
// Received OSC bundles converted with `fromBuffer` will have a timetag array:
// [secondsSince1970, fractionalSeconds]
// This utility is useful for logging. Accuracy is reduced to milliseconds.
exports.timetagToDate = utils.timetagToDate;
//~api~
//----
//### .dateToTimetag(date)
// Convert a JavaScript Date to a NTP timetag array [secondsSince1970, fractionalSeconds].
//
// `toBuffer` already accepts Dates for timetags so you might not need this function. If you need to schedule bundles with finer than millisecond accuracy then you could use this to help assemble the NTP array.
exports.dateToTimetag = utils.dateToTimetag;
}).call(this);

@@ -23,2 +23,10 @@ ~installation~

npm run-script coverage
```
### For the browser
If you want to use this library in a browser, you can build a browserified file (`build/osc-min.js`) with
```
npm install --dev
npm run-script browserify
```

@@ -1,5 +0,5 @@

// Generated by CoffeeScript 1.8.0
// Generated by CoffeeScript 1.10.0
(function() {
var IsArray, StrictError, binpack, getArrayArg, isOscBundleBuffer, mapBundleList, oscTypeCodes, padding, toOscTypeAndArgs,
__hasProp = {}.hasOwnProperty;
var IsArray, StrictError, TWO_POW_32, UNIX_EPOCH, binpack, getArrayArg, isOscBundleBuffer, makeTimetag, mapBundleList, oscTypeCodes, padding, toOscTypeAndArgs,
hasProp = {}.hasOwnProperty;

@@ -9,8 +9,8 @@ binpack = require("binpack");

exports.concat = function(buffers) {
var buffer, copyTo, destBuffer, sumLength, _i, _j, _k, _len, _len1, _len2;
var buffer, copyTo, destBuffer, j, k, l, len, len1, len2, sumLength;
if (!IsArray(buffers)) {
throw new Error("concat must take an array of buffers");
}
for (_i = 0, _len = buffers.length; _i < _len; _i++) {
buffer = buffers[_i];
for (j = 0, len = buffers.length; j < len; j++) {
buffer = buffers[j];
if (!Buffer.isBuffer(buffer)) {

@@ -21,4 +21,4 @@ throw new Error("concat must take an array of buffers");

sumLength = 0;
for (_j = 0, _len1 = buffers.length; _j < _len1; _j++) {
buffer = buffers[_j];
for (k = 0, len1 = buffers.length; k < len1; k++) {
buffer = buffers[k];
sumLength += buffer.length;

@@ -28,4 +28,4 @@ }

copyTo = 0;
for (_k = 0, _len2 = buffers.length; _k < _len2; _k++) {
buffer = buffers[_k];
for (l = 0, len2 = buffers.length; l < len2; l++) {
buffer = buffers[l];
buffer.copy(destBuffer, copyTo);

@@ -38,3 +38,3 @@ copyTo += buffer.length;

exports.toOscString = function(str, strict) {
var i, nullIndex, _i, _ref;
var i, j, nullIndex, ref;
if (!(typeof str === "string")) {

@@ -50,3 +50,3 @@ throw new Error("can't pack a non-string into an osc-string");

}
for (i = _i = 0, _ref = padding(str); 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
for (i = j = 0, ref = padding(str); 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
str += "\u0000";

@@ -58,3 +58,3 @@ }

exports.splitOscString = function(buffer, strict) {
var i, nullIndex, rawStr, rest, splitPoint, str, _i, _ref;
var i, j, nullIndex, rawStr, ref, ref1, rest, splitPoint, str;
if (!Buffer.isBuffer(buffer)) {

@@ -80,3 +80,3 @@ throw StrictError("Can't split something that isn't a buffer");

if (strict) {
for (i = _i = _ref = Buffer.byteLength(str); _ref <= splitPoint ? _i < splitPoint : _i > splitPoint; i = _ref <= splitPoint ? ++_i : --_i) {
for (i = j = ref = Buffer.byteLength(str), ref1 = splitPoint; ref <= ref1 ? j < ref1 : j > ref1; i = ref <= ref1 ? ++j : --j) {
if (buffer[i] !== 0) {

@@ -112,2 +112,87 @@ throw StrictError("Not enough or incorrect padding for osc-string");

exports.splitTimetag = function(buffer) {
var a, b, bytes, c, d, fractional, rest, seconds, type;
type = "Int32";
bytes = (binpack["pack" + type](0)).length;
if (buffer.length < (bytes * 2)) {
throw new Error("buffer is not big enough to contain a timetag");
}
a = 0;
b = bytes;
seconds = binpack["unpack" + type](buffer.slice(a, b), "big");
c = bytes;
d = bytes + bytes;
fractional = binpack["unpack" + type](buffer.slice(c, d), "big");
rest = buffer.slice(d, buffer.length);
return {
timetag: [seconds, fractional],
rest: rest
};
};
UNIX_EPOCH = 2208988800;
TWO_POW_32 = 4294967296;
exports.dateToTimetag = function(date) {
return exports.timestampToTimetag(date.getTime() / 1000);
};
exports.timestampToTimetag = function(secs) {
var fracSeconds, wholeSecs;
wholeSecs = Math.floor(secs);
fracSeconds = secs - wholeSecs;
return makeTimetag(wholeSecs, fracSeconds);
};
makeTimetag = function(unixseconds, fracSeconds) {
var ntpFracs, ntpSecs;
ntpSecs = unixseconds + UNIX_EPOCH;
ntpFracs = Math.round(TWO_POW_32 * fracSeconds);
return [ntpSecs, ntpFracs];
};
exports.timetagToDate = function(timetag) {
var date, dd, fracs, fractional, seconds;
seconds = timetag[0], fractional = timetag[1];
seconds = seconds - UNIX_EPOCH;
fracs = exports.ntpToFractionalSeconds(fractional);
date = new Date();
date.setTime((seconds * 1000) + (fracs * 1000));
dd = new Date();
dd.setUTCFullYear(date.getUTCFullYear());
dd.setUTCMonth(date.getUTCMonth());
dd.setUTCDate(date.getUTCDate());
dd.setUTCHours(date.getUTCHours());
dd.setUTCMinutes(date.getUTCMinutes());
dd.setUTCSeconds(date.getUTCSeconds());
dd.setUTCMilliseconds(fracs * 1000);
return dd;
};
exports.deltaTimetag = function(seconds, now) {
var n;
n = (now != null ? now : new Date()) / 1000;
return exports.timestampToTimetag(n + seconds);
};
exports.ntpToFractionalSeconds = function(fracSeconds) {
return parseFloat(fracSeconds) / TWO_POW_32;
};
exports.toTimetagBuffer = function(timetag) {
var high, low, type;
if (typeof timetag === "number") {
timetag = exports.timestampToTimetag(timetag);
} else if (typeof timetag === "object" && ("getTime" in timetag)) {
timetag = exports.dateToTimetag(timetag);
} else if (timetag.length !== 2) {
throw new Error("Invalid timetag" + timetag);
}
type = "Int32";
high = binpack["pack" + type](timetag[0], "big");
low = binpack["pack" + type](timetag[1], "big");
return exports.concat([high, low]);
};
exports.toIntegerBuffer = function(number, type) {

@@ -162,5 +247,5 @@ if (type == null) {

var split;
split = exports.splitInteger(buffer, "UInt64");
split = exports.splitTimetag(buffer);
return {
value: split.integer,
value: split.timetag,
rest: split.rest

@@ -170,6 +255,3 @@ };

toArg: function(value, strict) {
if (typeof value !== "number") {
throw new Error("expected number");
}
return exports.toIntegerBuffer(value, "UInt64");
return exports.toTimetagBuffer(value);
}

@@ -210,4 +292,4 @@ },

split: function(buffer, strict) {
var length, _ref;
_ref = exports.splitInteger(buffer), length = _ref.integer, buffer = _ref.rest;
var length, ref;
ref = exports.splitInteger(buffer), length = ref.integer, buffer = ref.rest;
return {

@@ -287,4 +369,4 @@ value: buffer.slice(0, length),

exports.oscTypeCodeToTypeString = function(code) {
var _ref;
return (_ref = oscTypeCodes[code]) != null ? _ref.representation : void 0;
var ref;
return (ref = oscTypeCodes[code]) != null ? ref.representation : void 0;
};

@@ -295,3 +377,3 @@

for (code in oscTypeCodes) {
if (!__hasProp.call(oscTypeCodes, code)) continue;
if (!hasProp.call(oscTypeCodes, code)) continue;
str = oscTypeCodes[code].representation;

@@ -357,4 +439,4 @@ if (str === rep) {

exports.fromOscMessage = function(buffer, strict) {
var address, arg, args, arrayStack, built, type, typeString, types, _i, _len, _ref, _ref1;
_ref = exports.splitOscString(buffer, strict), address = _ref.string, buffer = _ref.rest;
var address, arg, args, arrayStack, built, j, len, ref, ref1, type, typeString, types;
ref = exports.splitOscString(buffer, strict), address = ref.string, buffer = ref.rest;
if (strict && address[0] !== '/') {

@@ -369,3 +451,3 @@ throw StrictError('addresses must start with /');

}
_ref1 = exports.splitOscString(buffer, strict), types = _ref1.string, buffer = _ref1.rest;
ref1 = exports.splitOscString(buffer, strict), types = ref1.string, buffer = ref1.rest;
if (types[0] !== ',') {

@@ -383,4 +465,4 @@ if (strict) {

arrayStack = [args];
for (_i = 0, _len = types.length; _i < _len; _i++) {
type = types[_i];
for (j = 0, len = types.length; j < len; j++) {
type = types[j];
if (type === '[') {

@@ -428,8 +510,8 @@ arrayStack.push([]);

exports.fromOscBundle = function(buffer, strict) {
var bundleTag, convertedElems, timetag, _ref, _ref1;
_ref = exports.splitOscString(buffer, strict), bundleTag = _ref.string, buffer = _ref.rest;
var bundleTag, convertedElems, ref, ref1, timetag;
ref = exports.splitOscString(buffer, strict), bundleTag = ref.string, buffer = ref.rest;
if (bundleTag !== "\#bundle") {
throw new Error("osc-bundles must begin with \#bundle");
}
_ref1 = exports.splitInteger(buffer, "UInt64"), timetag = _ref1.integer, buffer = _ref1.rest;
ref1 = exports.splitTimetag(buffer), timetag = ref1.timetag, buffer = ref1.rest;
convertedElems = mapBundleList(buffer, function(buffer) {

@@ -466,9 +548,9 @@ return exports.fromOscPacket(buffer, strict);

toOscTypeAndArgs = function(argList, strict) {
var arg, buff, oscargs, osctype, thisArgs, thisType, typeCode, value, _i, _len, _ref;
var arg, buff, j, len, oscargs, osctype, ref, thisArgs, thisType, typeCode, value;
osctype = "";
oscargs = [];
for (_i = 0, _len = argList.length; _i < _len; _i++) {
arg = argList[_i];
for (j = 0, len = argList.length; j < len; j++) {
arg = argList[j];
if ((getArrayArg(arg)) != null) {
_ref = toOscTypeAndArgs(getArrayArg(arg), strict), thisType = _ref[0], thisArgs = _ref[1];
ref = toOscTypeAndArgs(getArrayArg(arg), strict), thisType = ref[0], thisArgs = ref[1];
osctype += "[" + thisType + "]";

@@ -495,3 +577,3 @@ oscargs = oscargs.concat(thisArgs);

exports.toOscMessage = function(message, strict) {
var address, allArgs, args, old_arg, oscaddr, oscargs, osctype, _ref;
var address, allArgs, args, old_arg, oscaddr, oscargs, osctype, ref;
address = (message != null ? message.address : void 0) != null ? message.address : message;

@@ -511,3 +593,3 @@ if (typeof address !== "string") {

oscaddr = exports.toOscString(address, strict);
_ref = toOscTypeAndArgs(args, strict), osctype = _ref[0], oscargs = _ref[1];
ref = toOscTypeAndArgs(args, strict), osctype = ref[0], oscargs = ref[1];
osctype = "," + osctype;

@@ -520,8 +602,8 @@ allArgs = exports.concat(oscargs);

exports.toOscBundle = function(bundle, strict) {
var allElems, buff, e, elem, elements, elemstr, oscBundleTag, oscElems, oscTimeTag, size, timetag, _i, _len, _ref, _ref1;
var allElems, buff, e, elem, elements, elemstr, error, j, len, oscBundleTag, oscElems, oscTimeTag, ref, ref1, size, timetag;
if (strict && ((bundle != null ? bundle.timetag : void 0) == null)) {
throw StrictError("bundles must have timetags.");
}
timetag = (_ref = bundle != null ? bundle.timetag : void 0) != null ? _ref : 0;
elements = (_ref1 = bundle != null ? bundle.elements : void 0) != null ? _ref1 : [];
timetag = (ref = bundle != null ? bundle.timetag : void 0) != null ? ref : new Date();
elements = (ref1 = bundle != null ? bundle.elements : void 0) != null ? ref1 : [];
if (!IsArray(elements)) {

@@ -533,6 +615,6 @@ elemstr = elements;

oscBundleTag = exports.toOscString("\#bundle");
oscTimeTag = exports.toIntegerBuffer(timetag, "UInt64");
oscTimeTag = exports.toTimetagBuffer(timetag);
oscElems = [];
for (_i = 0, _len = elements.length; _i < _len; _i++) {
elem = elements[_i];
for (j = 0, len = elements.length; j < len; j++) {
elem = elements[j];
try {

@@ -542,4 +624,4 @@ buff = exports.toOscPacket(elem, strict);

oscElems.push(exports.concat([size, buff]));
} catch (_error) {
e = _error;
} catch (error) {
e = error;
null;

@@ -567,4 +649,4 @@ }

return function(buffer) {
var bundleTagBuffer, copyIndex, elem, elems, lengthBuff, outBuffer, string, timetagBuffer, totalLength, _i, _j, _len, _len1, _ref;
_ref = exports.splitOscString(buffer), string = _ref.string, buffer = _ref.rest;
var bundleTagBuffer, copyIndex, elem, elems, j, k, len, len1, lengthBuff, outBuffer, ref, string, timetagBuffer, totalLength;
ref = exports.splitOscString(buffer), string = ref.string, buffer = ref.rest;
if (string !== "\#bundle") {

@@ -580,4 +662,4 @@ throw new Error("osc-bundles must begin with \#bundle");

totalLength = bundleTagBuffer.length + timetagBuffer.length;
for (_i = 0, _len = elems.length; _i < _len; _i++) {
elem = elems[_i];
for (j = 0, len = elems.length; j < len; j++) {
elem = elems[j];
totalLength += 4 + elem.length;

@@ -589,4 +671,4 @@ }

copyIndex = bundleTagBuffer.length + timetagBuffer.length;
for (_j = 0, _len1 = elems.length; _j < _len1; _j++) {
elem = elems[_j];
for (k = 0, len1 = elems.length; k < len1; k++) {
elem = elems[k];
lengthBuff = exports.toIntegerBuffer(elem.length);

@@ -615,4 +697,4 @@ lengthBuff.copy(outBuffer, copyIndex);

return function(buffer) {
var rest, string, _ref;
_ref = exports.splitOscString(buffer), string = _ref.string, rest = _ref.rest;
var ref, rest, string;
ref = exports.splitOscString(buffer), string = ref.string, rest = ref.rest;
string = transform(string);

@@ -650,8 +732,8 @@ return exports.concat([exports.toOscString(string), rest]);

mapBundleList = function(buffer, func) {
var e, elem, elems, nonNullElems, size, thisElemBuffer, _i, _len;
var e, elem, elems, j, len, nonNullElems, size, thisElemBuffer;
elems = (function() {
var _ref, _results;
_results = [];
var error, ref, results;
results = [];
while (buffer.length) {
_ref = exports.splitInteger(buffer), size = _ref.integer, buffer = _ref.rest;
ref = exports.splitInteger(buffer), size = ref.integer, buffer = ref.rest;
if (size > buffer.length) {

@@ -663,13 +745,13 @@ throw new Error("Invalid bundle list: size of element is bigger than buffer");

try {
_results.push(func(thisElemBuffer));
} catch (_error) {
e = _error;
_results.push(null);
results.push(func(thisElemBuffer));
} catch (error) {
e = error;
results.push(null);
}
}
return _results;
return results;
})();
nonNullElems = [];
for (_i = 0, _len = elems.length; _i < _len; _i++) {
elem = elems[_i];
for (j = 0, len = elems.length; j < len; j++) {
elem = elems[j];
if (elem != null) {

@@ -676,0 +758,0 @@ nonNullElems.push(elem);

{
"name": "osc-min",
"version": "0.2.0",
"version": "1.0.0",
"main": "lib/index",

@@ -26,3 +26,3 @@ "author": {

"mocha": "*",
"docket": ">=0.0.3",
"docket": "0.0.5",
"coveralls": "*",

@@ -46,2 +46,3 @@ "blanket": "*",

},
"license": "Zlib",
"engines": {

@@ -48,0 +49,0 @@ "node": ">=0.10.0"

@@ -40,3 +40,3 @@ [![build status](https://secure.travis-ci.org/russellmcc/node-osc-min.png)](http://travis-ci.org/russellmcc/node-osc-min) [![Coverage Status](https://coveralls.io/repos/russellmcc/node-osc-min/badge.png?branch=master)](https://coveralls.io/r/russellmcc/node-osc-min?branch=master) [![dependencies](https://david-dm.org/russellmcc/node-osc-min.png)](https://david-dm.org/russellmcc/node-osc-min)

### for browser
### For the browser
If you want to use this library in a browser, you can build a browserified file (`build/osc-min.js`) with

@@ -55,7 +55,7 @@

sock = udp.createSocket("udp4", function(msg, rinfo) {
var error;
var error, error1;
try {
return console.log(osc.fromBuffer(msg));
} catch (_error) {
error = _error;
} catch (error1) {
error = error1;
return console.log("invalid OSC packet");

@@ -92,3 +92,3 @@ }

sock = udp.createSocket("udp4", function(msg, rinfo) {
var error, redirected;
var error, error1, redirected;
try {

@@ -99,4 +99,4 @@ redirected = osc.applyAddressTransform(msg, function(address) {

return sock.send(redirected, 0, redirected.length, outport, "localhost");
} catch (_error) {
error = _error;
} catch (error1) {
error = error1;
return console.log("error redirecting: " + error);

@@ -128,5 +128,7 @@ }

See "JavaScript representations of the OSC types" below.
----
### .toBuffer(address, args[], [strict])
alternative syntax for above. Assumes this is an _OSC Message_ as defined below,
alternative syntax for above. Assumes this is an _OSC Message_ as defined below,
and `args` is an array of _OSC Arguments_ or single _OSC Argument_

@@ -167,2 +169,16 @@

----
### .timetagToDate(ntpTimeTag)
Convert a timetag array to a JavaScript Date object in your local timezone.
Received OSC bundles converted with `fromBuffer` will have a timetag array:
[secondsSince1970, fractionalSeconds]
This utility is useful for logging. Accuracy is reduced to milliseconds.
----
### .dateToTimetag(date)
Convert a JavaScript Date to a NTP timetag array [secondsSince1970, fractionalSeconds].
`toBuffer` already accepts Dates for timetags so you might not need this function. If you need to schedule bundles with finer than millisecond accuracy then you could use this to help assemble the NTP array.
----
## Javascript representations of the OSC types.

@@ -214,3 +230,3 @@ See the [spec][spec] for more information on the OSC types.

+ An _OSC Bundle_ is represented as a javascript object with the following layout
+ An _OSC Bundle_ is represented as a javascript object with the following fields:

@@ -223,10 +239,22 @@ {

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.
`oscType` "bundle"
`timetag` is one of:
- `null` - meaning now, the current time.
By the time the bundle is received it will too late and depending
on the receiver may be discarded or you may be scolded for being late.
- `number` - relative seconds from now with millisecond accuracy.
- `Date` - a JavaScript Date object in your local time zone.
OSC timetags use UTC timezone, so do not try to adjust for timezones,
this is not needed.
- `Array` - `[numberOfSecondsSince1900, fractionalSeconds]`
Both values are `number`s. This gives full timing accuracy of 1/(2^32) seconds.
`elements` is an `Array` of either _OSC Message_ or _OSC Bundle_
[spec]: http://opensoundcontrol.org/spec-1_0
----
## License
<a href="http://www.boost.org/LICENSE_1_0.txt" rel="license">Boost Software License v1.0</a>
Licensed under the terms found in COPYING (zlib license)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc