working OSC output

This commit is contained in:
2023-12-04 15:44:25 +01:00
parent 4c0eb8c043
commit 04a4f28f68

View File

@ -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
})) // }))