working OSC output
This commit is contained in:
@ -21,7 +21,12 @@ wss.on("connection", function (ws) {
|
|||||||
ws.on("message", function (data) {
|
ws.on("message", function (data) {
|
||||||
try {
|
try {
|
||||||
const message = JSON.parse(data);
|
const message = JSON.parse(data);
|
||||||
sendOscMessage(formatAndTypeMessage(message));
|
sendOscMessage(
|
||||||
|
formatAndTypeMessage(message),
|
||||||
|
message.address,
|
||||||
|
message.port
|
||||||
|
);
|
||||||
|
console.log(`> Message sent to ${message.address}:${message.port}: ${JSON.stringify(message.args)}`)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("> Error processing message:", error);
|
console.error("> Error processing message:", error);
|
||||||
}
|
}
|
||||||
@ -58,10 +63,11 @@ udpPort.on("ready", function () {
|
|||||||
|
|
||||||
udpPort.open();
|
udpPort.open();
|
||||||
|
|
||||||
function sendOscMessage(message) {
|
function sendOscMessage(message, address, port) {
|
||||||
try {
|
try {
|
||||||
|
udpPort.options.remotePort = port
|
||||||
|
message.address = address;
|
||||||
udpPort.send(message);
|
udpPort.send(message);
|
||||||
console.log(message)
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("> Error sending OSC message:", error);
|
console.error("> Error sending OSC message:", error);
|
||||||
}
|
}
|
||||||
@ -69,6 +75,8 @@ function sendOscMessage(message) {
|
|||||||
|
|
||||||
const formatAndTypeMessage = (message) => {
|
const formatAndTypeMessage = (message) => {
|
||||||
let newMessage = {};
|
let newMessage = {};
|
||||||
|
delete message.args['address'];
|
||||||
|
delete message.args['port'];
|
||||||
newMessage.address = message.address;
|
newMessage.address = message.address;
|
||||||
newMessage.timestamp = osc.timeTag(message.timetag);
|
newMessage.timestamp = osc.timeTag(message.timetag);
|
||||||
|
|
||||||
@ -78,7 +86,7 @@ const formatAndTypeMessage = (message) => {
|
|||||||
if (typeof arg === 'number')
|
if (typeof arg === 'number')
|
||||||
return {type: 'f', value: arg};
|
return {type: 'f', value: arg};
|
||||||
if (typeof arg === 'boolean')
|
if (typeof arg === 'boolean')
|
||||||
return value ? {type: 'T', value: true} : {type: 'F', value: false};
|
return value ? {type: 's', value: 1} : {type: 's', value: 0};
|
||||||
})
|
})
|
||||||
|
|
||||||
newMessage.args = args
|
newMessage.args = args
|
||||||
@ -86,9 +94,9 @@ const formatAndTypeMessage = (message) => {
|
|||||||
return newMessage;
|
return newMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(formatAndTypeMessage({
|
// console.log(formatAndTypeMessage({
|
||||||
address: '/baba',
|
// address: '/baba',
|
||||||
port: 2000,
|
// port: 2000,
|
||||||
args: { s: 'fhardkick', dur: 0.5, port: 2000, address: 'baba' },
|
// args: { s: 'fhardkick', dur: 0.5, port: 2000, address: 'baba' },
|
||||||
timetag: 1701696184583
|
// timetag: 1701696184583
|
||||||
}))
|
// }))
|
||||||
|
|||||||
Reference in New Issue
Block a user