Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MylesBorins/node-osc
Open Sound Control protocol library for Node.js
https://github.com/MylesBorins/node-osc
Last synced: 4 months ago
JSON representation
Open Sound Control protocol library for Node.js
- Host: GitHub
- URL: https://github.com/MylesBorins/node-osc
- Owner: MylesBorins
- License: lgpl-3.0
- Created: 2012-03-21T00:53:50.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2024-10-15T03:11:39.000Z (4 months ago)
- Last Synced: 2024-10-19T02:05:28.403Z (4 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.4 MB
- Stars: 435
- Watchers: 9
- Forks: 72
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# node-osc
A no frills [Open Sound Control](http://opensoundcontrol.org) client and server.
Heavily inspired by [pyOSC](https://trac.v2.nl/wiki/pyOSC).Install using npm
```
npm install node-osc
```## Written using ESM supports CJS
Supports the latest versions of Node.js 12, 14, and 16 in both ESM + CJS
## Example
### Sending OSC messages:
```js
import { Client } from 'node-osc';const client = new Client('127.0.0.1', 3333);
client.send('/oscAddress', 200, () => {
client.close();
});
```
### Listening for OSC messages:```js
import { Server } from 'node-osc';var oscServer = new Server(3333, '0.0.0.0', () => {
console.log('OSC Server is listening');
});oscServer.on('message', function (msg) {
console.log(`Message: ${msg}`);
oscServer.close();
});
```### Sending OSC bundles:
```js
import { Bundle, Client } from 'node-osc';// a bundle without an explicit time tag
const bundle = new Bundle(['/one', 1], ['/two', 2], ['/three', 3]);// a bundle with a timetag of 10
bundle.append(new Bundle(10, ['/four', 4]));const client = new Client('127.0.0.1', 3333);
client.send(bundle));
```### Listening for OSC bundles:
**WARNING**: Bundle support is Experimental and subject to change at any point.
```js
import { Server } from 'node-osc';var oscServer = new Server(3333, '0.0.0.0', () => {
console.log('OSC Server is listening');
});oscServer.on('bundle', function (bundle) {
bundle.elements.forEach((element, i) => {
console.log(`Timestamp: ${bundle.timetag[i]}`);
console.log(`Message: ${element}`);
});
oscServer.close();
});
```### CJS API
This just works due to conditional exports, isn't that cool!
```js
const { Client, Server } = require('node-osc');const client = new Client('127.0.0.1', 3333);
var server = new Server(3333, '0.0.0.0');server.on('listening', () => {
console.log('OSC Server is listening.');
})server.on('message', (msg) => {
console.log(`Message: ${msg}`);
server.close();
});client.send('/hello', 'world', (err) => {
if (err) console.error(err);
client.close();
});
```## Typescript
To install type definitions for node-osc:
`npm install --save @types/node-osc` or `yarn add @types/node-osc`The types should then be automatically included by the compiler.
## License
LGPL. Please see the file lesser.txt for details.