37 lines
991 B
JavaScript
37 lines
991 B
JavaScript
const WebSocket = require("ws");
|
|
const osc = require("osc");
|
|
|
|
const cleanIncomingOSC = (oscMsg) => {
|
|
let data = oscMsg.args;
|
|
// Remove information about type of data
|
|
data = data.map((item) => {
|
|
return item.value;
|
|
});
|
|
return { data: data, address: oscMsg.address };
|
|
};
|
|
|
|
// ==============================================
|
|
// Receiving and forwarding OSC UDP messages
|
|
// Create an osc.js UDP Port listening on port 57121.
|
|
console.log("> OSC Input: 127.0.0.1:30000");
|
|
const wss = new WebSocket.Server({ port: 3001 });
|
|
var udpPort = new osc.UDPPort({
|
|
localAddress: "0.0.0.0",
|
|
localPort: 30000,
|
|
metadata: true,
|
|
});
|
|
udpPort.on("message", function (oscMsg, timeTag, info) {
|
|
console.log(
|
|
`> Incoming OSC to ${oscMsg.address}:`,
|
|
oscMsg.args.map((item) => {
|
|
return item.value;
|
|
}),
|
|
);
|
|
wss.clients.forEach((client) => {
|
|
if (client.readyState === WebSocket.OPEN) {
|
|
client.send(JSON.stringify(cleanIncomingOSC(oscMsg)));
|
|
}
|
|
});
|
|
});
|
|
udpPort.open();
|