pd osc->ws

This commit is contained in:
Dooho Yi 2022-01-26 00:21:21 +09:00
parent 5b537bc209
commit 19ed159164
4 changed files with 1845 additions and 0 deletions

17
puredata/livetest.pd Normal file
View file

@ -0,0 +1,17 @@
#N canvas 501 449 450 300 12;
#X obj 117 88 netsend -u -b;
#X msg 117 45 connect localhost 57001;
#X obj 169 179 list prepend send;
#X obj 169 204 list trim;
#X obj 169 147 oscformat -f i flow;
#X obj 284 80 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1
-1 2;
#X obj 284 100 + 1;
#X floatatom 338 126 5 0 0 0 - - -;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;

1750
puredata/nodejs/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,20 @@
{
"name": "walkingtowardstheflow-nodejs",
"version": "1.0.0",
"description": "",
"main": "sender.js",
"scripts": {
"start": "node sender.js",
"dev": "nodemon sender.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"osc": "^2.2.3",
"socket.io-client": "^2.3.0"
},
"devDependencies": {
"nodemon": "^2.0.15"
}
}

58
puredata/nodejs/sender.js Normal file
View file

@ -0,0 +1,58 @@
const osc = require("osc");
const udp = new osc.UDPPort({
localAddress: '0.0.0.0', //<-- NOTE: '127.0.0.1' doesn't work!! for comm. between different machines
localPort: 57001, remoteAddress: '0.0.0.0', remotePort: 57000, metadata: true
});
//firstly establish/prepare osc conn.
Promise.all([
new Promise((resolve, reject) => udp.on("ready", () => resolve('resolve: udp ready.'))),
]).then(results => {
console.log(results[0]);
const io = require('socket.io-client');
const socket = io('https://walkingtowardstheflow.xyz');
socket.on('connect', () => {
console.log("[osc-receiver] i'm connected.");
socket.emit("room", 1, (res) => console.log(res));
});
socket.on('disconnect', () => console.log("[osc-receiver] i'm disconnected."));
// (puredata)
// socket.on('key', k => {
// if (k.value == 1)
// udp.send({
// address: "/voice",
// args: [{type: "f", value: k.seat}, {type: "f", value: k.id + 1}]
// });
// });
//
socket.on('post', p => {
console.log('post', p);
});
//
socket.on('flow', f => {
console.log('flow', f);
});
//
udp.on("message", function (m) {
console.log("osc(pd)", m);
if (m.address == '/flow') {
console.log(m.args[0].value);
socket.emit('flow', m.args[0].value)
}
});
});
//osc.js - start service
udp.open();
udp.on("ready", () => console.log(
"[udp] ready (udp) : \n" +
"\tlistening on --> " + udp.options.localAddress + ":" + udp.options.localPort + "\n" +
"\tspeaking to -> " + udp.options.remoteAddress + ":" + udp.options.remotePort + "\n"
));