webrtc2osc
v1.0.1
Published
Web to OSC bridge using PeerjS WebRTC
Downloads
1
Maintainers
Readme
webrtc2osc
Convert WebRTC messages to OSC (OpenSoundControl).
Browsers do not support the UDP-protocol, which is often used for OpenSoundControl. Instead, browsers have a similar low-latency lossy connection: the WebRTC data channel.
This is a commandline utility you run on your computer to act as a bridge, it will translate WebRTC messages to UDP, and vice versa.
It uses the excellent PeerJS and osc-js libraries.
Usage
npx webrtc2osc
--peer-id MY_PEER_ID
--host localhost
--send 11000
--receive 11011
--url "http://{ip}:3000/?peerId={peerId}"
--qr
--log
--peer-id
: The peer id of the webrtc2osc bridge app.--host
: The host address of the OSC server.--send
: The port to send messages to.--receive
: The port to receive messages from.--url
: Generate an URL.{peerId}
is replaced by the (generated) peerId, and{ip}
is replaced by the IP address of your machine.--qr
: Display QR code of the URL--log
: log all messages
Settings are saved webrtc2osc.json
in your HOME directory, so next time you can call npx webrtc2osc
(without arguments).
Client Usage
Use PeerJS to send and receive arrays of [ address, ...args ]
. Use the json
serialization, as the default (binary) is not supported in nodejs (yet).
const peer = new Peer();
const conn = peer.connect("MY_PEER_ID", { serialization: "json" });
conn.send(['/say', 'hello world']); // note the array
conn.on('data', ([ address, ...args]) => { // note the array
console.log(address, args);
})
PS. Creating an osc-js Plugin is not possible, because plugins need to send binary data, and there is no way I can unpack that on the server side.
Changelog
- 1.0.1 Add --log parameter
- 1.0.0 Add URL and QR code.
- 0.9.0 Initial release.