From b8f455dc25b5f2dc902c7a122adf3bf93a5b9075 Mon Sep 17 00:00:00 2001 From: msawired Date: Sun, 18 Aug 2024 23:32:33 +0200 Subject: [PATCH 01/12] init: test worked with TouchOSC! --- TouchOSC example.tosc | Bin 0 -> 1051 bytes opc.js | 113 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 100 insertions(+), 13 deletions(-) create mode 100644 TouchOSC example.tosc diff --git a/TouchOSC example.tosc b/TouchOSC example.tosc new file mode 100644 index 0000000000000000000000000000000000000000..1dc0b7429e8d75fc438447db44e489f6319b3083 GIT binary patch literal 1051 zcmV+$1myd8ob6d%Z{j!<{VUxko|uFTpOWhl3#D7B3y7wx9gRjKlQ_X@h$GwSz`q|m zpMdF@}Bz-p8hgx;-@Lo8G|dHqOL0!sm_4 z#q4%2AC4G}FcSpx!ro>dS<2gYcniTFUq<7hJ^Zpn&YjO_9J*h>LSQ8K?okk9*aAjs z03!#{;G9D^hX#}#A^`?XU@!=Lb@d@ws_PO0q!vN&goQkPAr@k`KrV@S70=lrpvTY} zYo2eEryB^i>MEzd!){wz-yvARepgznQ@q!*?lZKUP)B#&tb#^Dff;fHxz_@ygcnff z4r_ck1&SX+g~yUwW`V|0a`#bSatKTr!J$AxzA?4LOk)v{Q1kT^D(SwZST|xDRN4>? zFrvv8&l!41NvY9dV zP#lO+%$TG@dH-M@xaoN3bw>eDT`q2A#yk!J1++UXL&<%1RwQsG_D-qpS*Fvr-0n`P zM&6)*v{X-q#byz5k-5SXq6yU!}sKPDmY!+>jROPnha_+^xJM+bCezCAWS97N* z>d*4XNb`i4AFn05_@R&g46ko5jyO2Eo(=7v`nP$4b5^JGfO|WR83{X$lC6dk_d60F zVcZ^AOH)dG)K4Y;!1Rtw{6BAPdp3PhjjwC-SO^;0TfMwmZ&sUk>Xg5&cCLT>`4>E$ zT>o}niTr)5vTud>H!c{x!|&4XMWmk=a3tkgJse~>z)07Sl_ITC?x`o{l#|*h@-84> zyMSC1m;5dYGK;Fzj`m`9J^E`ny(|UM3Q1Rz4CN+pkwC2^XNi%Ft$b{i0!CxyQHi?8 zgOUP|iM@R}wNI@C_-Z=7`1hHMJhsN3c6{iadu$P_cWjx0dPd5)_k+v(!R5a=xIE Date: Wed, 4 Sep 2024 13:04:07 +0200 Subject: [PATCH 02/12] wip --- opc.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/opc.js b/opc.js index 9ff15f8..cf1a53e 100644 --- a/opc.js +++ b/opc.js @@ -303,6 +303,10 @@ class OPC { } } + static set(variableName, value) { + window[variableName] = value; + } + static buttonPressed(variableName, value) { OPC.options[variableName].value = value; if (typeof window.buttonPressed == 'function') { From 30f3f0aad583cc358bff6464755eabb53c8c1436 Mon Sep 17 00:00:00 2001 From: msawired Date: Sun, 15 Sep 2024 13:18:09 +0200 Subject: [PATCH 03/12] release-it added to modules --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 13be271..c8932b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /node_modules +.release-it.json From 1d94dfa42aaef91dbf6d51425b6920ba7beb29ef Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 13:53:43 +0200 Subject: [PATCH 04/12] reorg of file structure --- .gitignore | 2 + .vscode/launch.json | 17 + TouchOSC example.tosc | Bin 1051 -> 0 bytes example/TouchOSC example.tosc | Bin 0 -> 1051 bytes node_modules/.package-lock.json | 7 + opc.js | 2 +- oscServer/oscServer.js | 117 ++++ oscServer/package-lock.json | 1032 +++++++++++++++++++++++++++++++ oscServer/package.json | 15 + 9 files changed, 1191 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .vscode/launch.json delete mode 100644 TouchOSC example.tosc create mode 100644 example/TouchOSC example.tosc create mode 100644 node_modules/.package-lock.json create mode 100644 oscServer/oscServer.js create mode 100644 oscServer/package-lock.json create mode 100644 oscServer/package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..55d26a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +/oscServer/node_modules diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..1d248ec --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Server", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/oscServer/oscServer.js --verbose" + } + ] +} \ No newline at end of file diff --git a/TouchOSC example.tosc b/TouchOSC example.tosc deleted file mode 100644 index 1dc0b7429e8d75fc438447db44e489f6319b3083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmV+$1myd8ob6d%Z{j!<{VUxko|uFTpOWhl3#D7B3y7wx9gRjKlQ_X@h$GwSz`q|m zpMdF@}Bz-p8hgx;-@Lo8G|dHqOL0!sm_4 z#q4%2AC4G}FcSpx!ro>dS<2gYcniTFUq<7hJ^Zpn&YjO_9J*h>LSQ8K?okk9*aAjs z03!#{;G9D^hX#}#A^`?XU@!=Lb@d@ws_PO0q!vN&goQkPAr@k`KrV@S70=lrpvTY} zYo2eEryB^i>MEzd!){wz-yvARepgznQ@q!*?lZKUP)B#&tb#^Dff;fHxz_@ygcnff z4r_ck1&SX+g~yUwW`V|0a`#bSatKTr!J$AxzA?4LOk)v{Q1kT^D(SwZST|xDRN4>? zFrvv8&l!41NvY9dV zP#lO+%$TG@dH-M@xaoN3bw>eDT`q2A#yk!J1++UXL&<%1RwQsG_D-qpS*Fvr-0n`P zM&6)*v{X-q#byz5k-5SXq6yU!}sKPDmY!+>jROPnha_+^xJM+bCezCAWS97N* z>d*4XNb`i4AFn05_@R&g46ko5jyO2Eo(=7v`nP$4b5^JGfO|WR83{X$lC6dk_d60F zVcZ^AOH)dG)K4Y;!1Rtw{6BAPdp3PhjjwC-SO^;0TfMwmZ&sUk>Xg5&cCLT>`4>E$ zT>o}niTr)5vTud>H!c{x!|&4XMWmk=a3tkgJse~>z)07Sl_ITC?x`o{l#|*h@-84> zyMSC1m;5dYGK;Fzj`m`9J^E`ny(|UM3Q1Rz4CN+pkwC2^XNi%Ft$b{i0!CxyQHi?8 zgOUP|iM@R}wNI@C_-Z=7`1hHMJhsN3c6{iadu$P_cWjx0dPd5)_k+v(!R5a=xIE^D9^ z5a7L!wHpwG)Wv64ArfHF1O|h^mscNxrMxa7KyncTPguy)7h)l13*?f7SMi)30(uOs zvF7mb}>pnxv33YVW%_?Xlj4?w_OzyP+D&Ymx zxx*SCPJ!ZwP~owpmRX=lr0zZnOb&r5BRGsvEZ&$}Vx~zPkWlmW6e{VyrC2xdHmI~A z8el}#7S95amBQ6hcTYH3>X9DBGInc|y3Gq(?19EKaaJW{N=X@MW@R&D z?4cxxM+sws4(0uWdElnwo!1=&JaxIal^OFS2qe(%unZ;l*;$dm71%qax@VbA+j6@* zr5bsI{?SrB8ICU&FIuXPz-fiL659pNnD8h-m3Vn_2Wh>w4x%O0Nf_5%uawgi>KSQ0 zxxHC=f9rO$1~Lt8*g7v~85@-NZQ3)9|t8K3^%X zFV*K+`Hua68hs_eU(x6p<`E5fJxU}8n+O^nsdeV>C`C5EP==UKmmqIZEv+%<$d?x7 z4g@$vVwYUGFS!Xg4%LLZ0)`zd%AD%@nF&0MU8#ZOa)k{X8iv@B<$=SN`~$}B6o?t| zeQ~rdESW)exVvgfJm(Vm7#vPNE0}BujN)0N#EVe8lK%yTkO*2*5{_om8+$ml#pmQu zLT2ZBcw;ZFrk4sfpE@j*#%_(|4hrz!B$VM6b~cMPDpk2HxSV^j@6LQNn_n#K&(+*1 ziu$uWGSWOD<|k{xE`I3aKf~+Wiz5zBu4hC0r~Yl8;GEUzJmB7rV}@dQSQkn=9H7#DDo~K zU%P-@6PNrh3NnkT)Q "); +console.log("Optional: --verbose: Print all messages, but slower"); + + +// Create an Express server app +// and serve up a directory of static files. +let staticPort = 8081; +let verbose = args.includes("--verbose"); +let ports = args.filter(arg => !isNaN(parseInt(arg))); +let udpPortReceive = ports[0] ? parseInt(ports[0]) : 57120; +let udpPortSend = ports[1] ? parseInt(ports[1]) : 57121; +var app = Express(); +server = app.listen(staticPort, () => { + console.log(`✅ Websocket port ready on ws://localhost:${staticPort}`) +}); + +// app.use("/", app.static(__dirname + "/static")); + +// Listen for Web Socket requests. +var wss = new WebSocket.Server({ server }); + +var socketPort = null; + +// Listen for Web Socket connections. +wss.on("connection", function (socket) { + console.log(`✨ New connection`); + + socketPort = new osc.WebSocketPort({ + socket: socket, + metadata: true + }); + + socketPort.on("message", function (oscMsg) { + verbose && console.log("New Message:", oscMsg); + echoMessage(oscMsg.address, oscMsg.args); + }); +}).on("error", function (err) { + console.error(`❌ WebSocket port can't be created on ${staticPort}`); + if (err.code === 'EADDRINUSE') { + console.error(`Port already occupied.`); + } else { + console.error(err.message); + } + process.exit(1); +}); + +// Create an osc.js UDP Ports. +var udpPortR = new osc.UDPPort({ + localAddress: "127.0.0.1", + localPort: udpPortReceive +}); + +// Listen for incoming OSC messages. +udpPortR.on("message", function (oscMsg) { + verbose && console.log("New Message:", oscMsg); + echoMessage(oscMsg.address, oscMsg.args); +}); +// Listen for incoming OSC messages. +udpPortR + .on("ready", function () { + console.log(`✅ UDP port ready to receive on 127.0.0.1:${udpPortReceive}`); + }).on("error", function (err) { + console.error(`❌ UDP port can't be created on 127.0.0.1:${udpPortReceive}`); + if (err.code === 'EADDRINUSE') { + console.error(`Port already occupied.`); + } else { + console.error(err.message); + } + process.exit(1); + }); +udpPortR.open(); + +//connect to the sending port +var udpPortS = new osc.UDPPort({ + localAddress: "127.0.0.1", + localPort: udpPortSend +}); +udpPortS.on("ready", function () { + console.log(`✅ UDP port ready to send on 127.0.0.1:${udpPortSend}`); +}).on("error", function (err) { + console.error(`❌ UDP port can't be created on 127.0.0.1:${udpPortSend}`); + if (err.code === 'EADDRINUSE') { + console.error(`Port already occupied.`); + } else { + console.error(err.message); + } + process.exit(1); +}); +udpPortS.open(); + + +function echoMessage(address, args) { + // Send OSC message back to other parties + udpPortS.send({ + address, + args + }); + socketPort?.send({ + address, + args: [ { type: args[0]?.type ?? 'f', value: args[0]?.value ?? args[0] } ] + }); +} + +//close the ports on exit +process.on('exit', function () { + udpPortR?.close(); + udpPortS?.close(); + socketPort?.close(); +}); diff --git a/oscServer/package-lock.json b/oscServer/package-lock.json new file mode 100644 index 0000000..3fdf95f --- /dev/null +++ b/oscServer/package-lock.json @@ -0,0 +1,1032 @@ +{ + "name": "opcserver", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "opcserver", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "express": "^4.19.2", + "osc": "^2.4.4" + } + }, + "node_modules/@serialport/binding-mock": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz", + "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==", + "optional": true, + "dependencies": { + "@serialport/bindings-interface": "^1.2.1", + "debug": "^4.3.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@serialport/bindings-cpp": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-10.8.0.tgz", + "integrity": "sha512-OMQNJz5kJblbmZN5UgJXLwi2XNtVLxSKmq5VyWuXQVsUIJD4l9UGHnLPqM5LD9u3HPZgDI5w7iYN7gxkQNZJUw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@serialport/bindings-interface": "1.2.2", + "@serialport/parser-readline": "^10.2.1", + "debug": "^4.3.2", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12.17.0 <13.0 || >=14.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/bindings-interface": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz", + "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==", + "optional": true, + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/@serialport/parser-byte-length": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-10.5.0.tgz", + "integrity": "sha512-eHhr4lHKboq1OagyaXAqkemQ1XyoqbLQC8XJbvccm95o476TmEdW5d7AElwZV28kWprPW68ZXdGF2VXCkJgS2w==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-cctalk": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-10.5.0.tgz", + "integrity": "sha512-Iwsdr03xmCKAiibLSr7b3w6ZUTBNiS+PwbDQXdKU/clutXjuoex83XvsOtYVcNZmwJlVNhAUbkG+FJzWwIa4DA==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-delimiter": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-10.5.0.tgz", + "integrity": "sha512-/uR/yT3jmrcwnl2FJU/2ySvwgo5+XpksDUR4NF/nwTS5i3CcuKS+FKi/tLzy1k8F+rCx5JzpiK+koqPqOUWArA==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-inter-byte-timeout": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.5.0.tgz", + "integrity": "sha512-WPvVlSx98HmmUF9jjK6y9mMp3Wnv6JQA0cUxLeZBgS74TibOuYG3fuUxUWGJALgAXotOYMxfXSezJ/vSnQrkhQ==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-packet-length": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-10.5.0.tgz", + "integrity": "sha512-jkpC/8w4/gUBRa2Teyn7URv1D7T//0lGj27/4u9AojpDVXsR6dtdcTG7b7dNirXDlOrSLvvN7aS5/GNaRlEByw==", + "optional": true, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@serialport/parser-readline": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-10.5.0.tgz", + "integrity": "sha512-0aXJknodcl94W9zSjvU+sLdXiyEG2rqjQmvBWZCr8wJZjWEtv3RgrnYiWq4i2OTOyC8C/oPK8ZjpBjQptRsoJQ==", + "optional": true, + "dependencies": { + "@serialport/parser-delimiter": "10.5.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-ready": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-10.5.0.tgz", + "integrity": "sha512-QIf65LTvUoxqWWHBpgYOL+soldLIIyD1bwuWelukem2yDZVWwEjR288cLQ558BgYxH4U+jLAQahhqoyN1I7BaA==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-regex": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-10.5.0.tgz", + "integrity": "sha512-9jnr9+PCxRoLjtGs7uxwsFqvho+rxuJlW6ZWSB7oqfzshEZWXtTJgJRgac/RuLft4hRlrmRz5XU40i3uoL4HKw==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-slip-encoder": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.5.0.tgz", + "integrity": "sha512-wP8m+uXQdkWSa//3n+VvfjLthlabwd9NiG6kegf0fYweLWio8j4pJRL7t9eTh2Lbc7zdxuO0r8ducFzO0m8CQw==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-spacepacket": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-10.5.0.tgz", + "integrity": "sha512-BEZ/HAEMwOd8xfuJSeI/823IR/jtnThovh7ils90rXD4DPL1ZmrP4abAIEktwe42RobZjIPfA4PaVfyO0Fjfhg==", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/stream": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-10.5.0.tgz", + "integrity": "sha512-gbcUdvq9Kyv2HsnywS7QjnEB28g+6OGB5Z8TLP7X+UPpoMIWoUsoQIq5Kt0ZTgMoWn3JGM2lqwTsSHF+1qhniA==", + "optional": true, + "dependencies": { + "@serialport/bindings-interface": "1.2.2", + "debug": "^4.3.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "optional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "optional": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "optional": true + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/osc": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/osc/-/osc-2.4.4.tgz", + "integrity": "sha512-YJr2bUCQMc9BIaq1LXgqYpt5Ii7wNy2n0e0BkQiCSziMNrrsYHhH5OlExNBgCrQsum60EgXZ32lFsvR4aUf+ew==", + "dependencies": { + "long": "4.0.0", + "slip": "1.0.2", + "wolfy87-eventemitter": "5.2.9", + "ws": "8.13.0" + }, + "optionalDependencies": { + "serialport": "10.5.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialport": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/serialport/-/serialport-10.5.0.tgz", + "integrity": "sha512-7OYLDsu5i6bbv3lU81pGy076xe0JwpK6b49G6RjNvGibstUqQkI+I3/X491yBGtf4gaqUdOgoU1/5KZ/XxL4dw==", + "optional": true, + "dependencies": { + "@serialport/binding-mock": "10.2.2", + "@serialport/bindings-cpp": "10.8.0", + "@serialport/parser-byte-length": "10.5.0", + "@serialport/parser-cctalk": "10.5.0", + "@serialport/parser-delimiter": "10.5.0", + "@serialport/parser-inter-byte-timeout": "10.5.0", + "@serialport/parser-packet-length": "10.5.0", + "@serialport/parser-readline": "10.5.0", + "@serialport/parser-ready": "10.5.0", + "@serialport/parser-regex": "10.5.0", + "@serialport/parser-slip-encoder": "10.5.0", + "@serialport/parser-spacepacket": "10.5.0", + "@serialport/stream": "10.5.0", + "debug": "^4.3.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/slip/-/slip-1.0.2.tgz", + "integrity": "sha512-XrcHe3NAcyD3wO+O4I13RcS4/3AF+S9RvGNj9JhJeS02HyImwD2E3QWLrmn9hBfL+fB6yapagwxRkeyYzhk98g==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wolfy87-eventemitter": { + "version": "5.2.9", + "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", + "integrity": "sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==" + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/oscServer/package.json b/oscServer/package.json new file mode 100644 index 0000000..a866ba7 --- /dev/null +++ b/oscServer/package.json @@ -0,0 +1,15 @@ +{ + "name": "opcserver", + "version": "1.0.0", + "description": "", + "main": "opcServer.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.19.2", + "osc": "^2.4.4" + } +} From ebc32d127e6ab3a1a677b0164b127fff0365b313 Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 14:42:52 +0200 Subject: [PATCH 05/12] combined read/send port in one --- oscServer/oscServer.js | 49 ++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/oscServer/oscServer.js b/oscServer/oscServer.js index f108900..d311628 100644 --- a/oscServer/oscServer.js +++ b/oscServer/oscServer.js @@ -22,8 +22,6 @@ server = app.listen(staticPort, () => { console.log(`✅ Websocket port ready on ws://localhost:${staticPort}`) }); -// app.use("/", app.static(__dirname + "/static")); - // Listen for Web Socket requests. var wss = new WebSocket.Server({ server }); @@ -53,18 +51,20 @@ wss.on("connection", function (socket) { }); // Create an osc.js UDP Ports. -var udpPortR = new osc.UDPPort({ +var udpPort = new osc.UDPPort({ localAddress: "127.0.0.1", - localPort: udpPortReceive + localPort: udpPortReceive, + remoteAddress: "127.0.0.1", + remotePort: udpPortSend }); // Listen for incoming OSC messages. -udpPortR.on("message", function (oscMsg) { +udpPort.on("message", function (oscMsg) { verbose && console.log("New Message:", oscMsg); echoMessage(oscMsg.address, oscMsg.args); }); // Listen for incoming OSC messages. -udpPortR +udpPort .on("ready", function () { console.log(`✅ UDP port ready to receive on 127.0.0.1:${udpPortReceive}`); }).on("error", function (err) { @@ -76,42 +76,31 @@ udpPortR } process.exit(1); }); -udpPortR.open(); - -//connect to the sending port -var udpPortS = new osc.UDPPort({ - localAddress: "127.0.0.1", - localPort: udpPortSend -}); -udpPortS.on("ready", function () { - console.log(`✅ UDP port ready to send on 127.0.0.1:${udpPortSend}`); -}).on("error", function (err) { - console.error(`❌ UDP port can't be created on 127.0.0.1:${udpPortSend}`); - if (err.code === 'EADDRINUSE') { - console.error(`Port already occupied.`); - } else { - console.error(err.message); - } - process.exit(1); -}); -udpPortS.open(); - +udpPort.open(); function echoMessage(address, args) { // Send OSC message back to other parties - udpPortS.send({ + udpPort.send({ address, args }); + let type = 's'; //default string + switch (typeof args[0]) { + case 'number': + type = 'f'; + break; + case 'boolean': + type = 'T'; + break; + } socketPort?.send({ address, - args: [ { type: args[0]?.type ?? 'f', value: args[0]?.value ?? args[0] } ] + args: [{ type: args[0]?.type ?? type, value: args[0]?.value ?? args[0] }] }); } //close the ports on exit process.on('exit', function () { - udpPortR?.close(); - udpPortS?.close(); + udpPort?.close(); socketPort?.close(); }); From f74dc61b5f07c908f44724c26173678e729c68f8 Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 14:43:19 +0200 Subject: [PATCH 06/12] made TouchOSC example similar layout to OPC example on OP. --- example/TouchOSC example.tosc | Bin 1051 -> 1279 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/example/TouchOSC example.tosc b/example/TouchOSC example.tosc index b05ea83d7ef6cff41f936698de5caf1b64a0ef2b..d61c622c124621b67db6f5d5663336ca72b57028 100644 GIT binary patch literal 1279 zcmVtsJdJQ4f_-kXi@wuOrR2; z7g&!-@P~b%qFpGz%&3JGf;dd>z6y+Yfdhh(Pa$PrOf7Q`V(MXE&~+bI5_MZ+-P4s< zX+Z?QFi4hoMlhQ;UDbjaEnrw_x`OGRafD5ArlnZYW^77sN4Z;Ufzlwh76s(mCHYKK zDeV~{2gV*9#)L3;DDLm{1AE=x_}rlvtyRu%rNS)sJPx$kET)p_Y%Q>7Gwh8}-Bo3) zt=if~sD@6zR~o8s2BYiwhlc7BI3ZA1@^*$Z!cpkKN`AR_22qYJg9rw-ViJj}SF-6E z>J4VyJH08rEWxQ+hHJ@LhU+M`C%8(MbqTJAo^YVyffPmlq;~f7F<~9~c=r^Aq8VB> zC;Ccu{isAwijS<;OkZizAC>7V0lr73CnyR7KdOg{WMDVU4NHQZ{5x`ypIbMV(_XktOqI#ZmoqK4 z)tSwwv+KF>t(rP{P=Av~(%MdtxbYM7u4q@suY>W!b%}yEF; zr(XWsO8Kvn6W~tHf9v1isg%`DmG>=R^mjx_@QCW?en-8_^Ivg4VZtHfYxVdbK^}r4 ziL5l!8u=c7V-`fXHWxWF$YW=aPuRw9rjYV+P{?#v1$i{))A8`jU~*e9q6K8CBo@j< zU_%O(#Ab<*wAHMw77Rx4%2JNH-%ZB(#y&fzE6GR<;qc?M|;pjo_a1-PV7KhK%!_#2Of6) zFI6@@UWWTx1x{F44mb30SWBQxz+MTKN*XMc1A}F$A;!pe>7tee=WzGHbqp91t ziU-$3%HB26#<|#UU%%}#5?MAi1hpP#B;AyepicM9NKTiLD6MPbzA@d literal 1051 zcmV+$1myd8ob6d%Z{j!<{VUxko|uFTpOWhl3#D7B3y7wx9gRjKlQ_X@h$B1cz`q~c z`2tL*G|hC|+4iBicF6I)*C+QL1NgLA2WR(~aYDoMM(cywIK!bsT@w1|jaz%t>^D9^ z5a7L!wHpwG)Wv64ArfHF1O|h^mscNxrMxa7KyncTPguy)7h)l13*?f7SMi)30(uOs zvF7mb}>pnxv33YVW%_?Xlj4?w_OzyP+D&Ymx zxx*SCPJ!ZwP~owpmRX=lr0zZnOb&r5BRGsvEZ&$}Vx~zPkWlmW6e{VyrC2xdHmI~A z8el}#7S95amBQ6hcTYH3>X9DBGInc|y3Gq(?19EKaaJW{N=X@MW@R&D z?4cxxM+sws4(0uWdElnwo!1=&JaxIal^OFS2qe(%unZ;l*;$dm71%qax@VbA+j6@* zr5bsI{?SrB8ICU&FIuXPz-fiL659pNnD8h-m3Vn_2Wh>w4x%O0Nf_5%uawgi>KSQ0 zxxHC=f9rO$1~Lt8*g7v~85@-NZQ3)9|t8K3^%X zFV*K+`Hua68hs_eU(x6p<`E5fJxU}8n+O^nsdeV>C`C5EP==UKmmqIZEv+%<$d?x7 z4g@$vVwYUGFS!Xg4%LLZ0)`zd%AD%@nF&0MU8#ZOa)k{X8iv@B<$=SN`~$}B6o?t| zeQ~rdESW)exVvgfJm(Vm7#vPNE0}BujN)0N#EVe8lK%yTkO*2*5{_om8+$ml#pmQu zLT2ZBcw;ZFrk4sfpE@j*#%_(|4hrz!B$VM6b~cMPDpk2HxSV^j@6LQNn_n#K&(+*1 ziu$uWGSWOD<|k{xE`I3aKf~+Wiz5zBu4hC0r~Yl8;GEUzJmB7rV}@dQSQkn=9H7#DDo~K zU%P-@6PNrh3NnkT)Q Date: Mon, 16 Sep 2024 14:43:56 +0200 Subject: [PATCH 07/12] added auto re-try on closed and broken OSC connections --- opc.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/opc.js b/opc.js index f36b0a1..318de3c 100644 --- a/opc.js +++ b/opc.js @@ -37,10 +37,20 @@ class OPC { console.log('OSC connection opened'); }); OPC.osc.on('close', function () { - console.log('OSC connection closed'); + console.log('OSC connection closed. Trying again in 5 seconds...'); + //try again in 5 seconds + setTimeout(function () { + OPC.osc.open(); + }, 5000); + }); OPC.osc.on('error', function (error) { - console.error('OSC error:', error); + console.log('OSC connection error. Trying again in 5 seconds...'); + //try again in 5 seconds + setTimeout(function () { + OPC.osc.open(); + }, 5000); + }); OPC.osc.on('message', function (message) { //set variables based on message From 99f7c1021f8b199c0260cbad7f4f73c71971729e Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 14:44:15 +0200 Subject: [PATCH 08/12] added support for messages without any type definitions --- opc.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/opc.js b/opc.js index 318de3c..cab1dda 100644 --- a/opc.js +++ b/opc.js @@ -59,13 +59,16 @@ class OPC { let variableName = message.address.slice(1); //remove the first slash if (OPC.options[variableName]) { if (message.args.length === 1) { - let value = message.args[0].value; - if (message.args[0].type === 'f') { - value = parseFloat(value); - } else if (message.args[0].type === 'i') { - value = parseInt(value); - } else if (message.args[0].type === 's') { - value = value.split(','); + let value = message.args[0]; + if (typeof message.args[0] === 'object') { + value = message.args[0].value; + if (message.args[0].type === 'f') { + value = parseFloat(value); + } else if (message.args[0].type === 'i') { + value = parseInt(value); + } else if (message.args[0].type === 's') { + value = value.split(','); + } } OPC._set(variableName, value); } From a825c368b423f3aad8668fda5b779930982d1449 Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 14:44:39 +0200 Subject: [PATCH 09/12] added release-it data. --- .release-it.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .release-it.json diff --git a/.release-it.json b/.release-it.json new file mode 100644 index 0000000..a5fb735 --- /dev/null +++ b/.release-it.json @@ -0,0 +1,13 @@ +{ + "git": { + "tagName": "${version}", + "commitMessage": "Version Bump ${version}", + "requireCleanWorkingDir": true, + "requireUpstream": false, + "commit": true, + "pushTags": true + }, + "npm": { + "publish": false + } +} From 63cac432fe87bec1beeaefdc41e2215d45324166 Mon Sep 17 00:00:00 2001 From: msawired Date: Mon, 16 Sep 2024 19:18:53 +0200 Subject: [PATCH 10/12] Added OSC support documentation to readme --- README.md | 63 ++++++++++++++++++++++++++++++++++ docs/OSC_recording.webm | Bin 0 -> 979568 bytes docs/touchOSC_screenshot.png | Bin 0 -> 49703 bytes example/TouchOSC example.tosc | Bin 1279 -> 1275 bytes 4 files changed, 63 insertions(+) create mode 100644 docs/OSC_recording.webm create mode 100644 docs/touchOSC_screenshot.png diff --git a/README.md b/README.md index 017a32e..f69f225 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ This is a helper library that allows generative art project to provide a UI to p OP Configurator communicates with the UI elements via postMessage() in browsers. This also allows configurator to be implemented across frames, making it suitable for use with iframes in code editors. Library can also be overridden to use the same mapping to other interfaces, such as physical buttons, knobs, sliders, etc. +OPC also supports OSC [Open Sound Control](https://en.wikipedia.org/wiki/Open_Sound_Control) protocol and can connect to a websocket server to send/receive OSC data. See [OSC Support](#osc). ## Example @@ -232,3 +233,65 @@ Deletes a variable and removes its UI component from the interface. ```javascript OPC.delete('myVariable'); ``` + + +# OSC Support +You can connect OPC to a websocket server to communicate with other devices via OSC protocol. An example websocket server that also opens a UDP port is provided in the oscServer folder. An example OPC control interface (for TouchOSC) is provided in the example folder. + + +./docs/OSC_recording.webm + +## Example Installation and Setup + +### Step 1: Clone the Repository + +First, clone this repository to your local machine, and install the necessary dependencies for the server. + +```sh +git clone https://github.com/msawired/OPC.git +cd OPC/oscServer +npm install +``` + +### Step 2: Run the OSC Server + +Start the OSC server using the following command: + +```sh +node oscServer.js + +``` + +The server will start and listen for incoming OSC messages on the specified port. You can also define the ports and output every message received via: + +```sh +node oscServer.js 57120 --verbose +``` + +### Step 3: Connect via TouchOSC + +1. Install and open the [TouchOSC](https://hexler.net/touchosc) app on your device. +2. (Optional) Open the example in the "/example/TouchOSC example.tosc" +2. Go to the "Connections" tab and add a new OSC connection. +3. Set the Host as "127.0.0.1" +4. Set the Send Port to the port number specified in the `oscServer.js` file (default is 57120). +5. Save the connection settings. +![TouchOSC setup screenshot](./docs/touchOSC_screenshot.png) +2. Open the example layout provided in the `example` folder of the repository. +3. Press play to connect layout to the server. + +Your TouchOSC app should now be able to send and receive OSC messages to and from the OSC server. + +### Step 4: Connect OPC to the OSC Server + +Add the code below to your sketch to connect OPC to your server: +```js +OPC.setOSC('ws://localhost', 8081); +``` +Once connected, any changes in the variable values will be sent as an OSC message to TouchOS and vice versa. + +### Troubleshooting + +- Ensure that your device and the machine running the OSC server are on the same network. +- Verify that the IP address and port number are correctly configured in TouchOSC. +- Check the console output of the OSC server for any error messages. \ No newline at end of file diff --git a/docs/OSC_recording.webm b/docs/OSC_recording.webm new file mode 100644 index 0000000000000000000000000000000000000000..424621afbf770db54f532826a812c986188f7509 GIT binary patch literal 979568 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