osc-js は、アドレス パターン マッチングとタイムタグ処理を備えた JavaScript アプリケーション (ノード、ブラウザーなどの UMD モジュール) 用のオープン サウンド コントロール ライブラリです。 UDP 、 WebSocket 、またはその両方 (ブリッジ モード) 経由でメッセージを送信し、ネットワーク プロトコル用のカスタマイズ可能なプラグイン API を提供します。
ウィキ |基本的な使い方 |ドキュメント |プラグインAPI
ws
を除く)osc-js とその使用方法の詳細については、Wiki とドキュメントを参照してください。
const osc = new OSC ( )
osc . on ( '/param/density' , ( message , rinfo ) => {
console . log ( message . args )
console . log ( rinfo )
} )
osc . on ( '*' , message => {
console . log ( message . args )
} )
osc . on ( '/{foo,bar}/*/param' , message => {
console . log ( message . args )
} )
osc . on ( 'open' , ( ) => {
const message = new OSC . Message ( '/test' , 12.221 , 'hello' )
osc . send ( message )
} )
osc . open ( { port : 9000 } )
npm 経由での推奨インストール: npm i osc-js
またはyarn add osc-js
。
ライブラリconst OSC = require('osc-js')
をインポートするか、ブラウザで使用するためにスクリプトlib/osc.js
またはlib/osc.min.js
(縮小バージョン) を追加します。
osc-js は、ネットワーク機能を拡張するためのプラグイン アーキテクチャを提供します。ライブラリには 4 つの組み込みプラグインが付属しています。 OSC アプリケーションに必要なのはおそらくこれだけです。
WebsocketClientPlugin
(デフォルト)WebsocketServerPlugin
DatagramPlugin
BridgePlugin
WebSocket クライアントと UDP クライアントの間の便利なブリッジですすべてのプラグインの構成と例は、Wiki で読むことができます。
OSC インスタンスの作成時にプラグインを登録します。
const osc = new OSC ( { plugin : new OSC . WebsocketServerPlugin ( ) } )
osc . open ( ) // listening on 'ws://localhost:8080'
< button id =" send " > Send Message </ button >
< script type =" text/javascript " src =" lib/osc.min.js " > </ script >
< script type =" text/javascript " >
var osc = new OSC ( ) ;
osc . open ( ) ; // connect by default to ws://localhost:8080
document . getElementById ( 'send' ) . addEventListener ( 'click' , ( ) => {
var message = new OSC . Message ( '/test/random' , Math . random ( ) ) ;
osc . send ( message ) ;
} ) ;
</ script >
const OSC = require ( 'osc-js' )
const config = { udpClient : { port : 9129 } }
const osc = new OSC ( { plugin : new OSC . BridgePlugin ( config ) } )
osc . open ( ) // start a WebSocket server on port 8080
[udpreceive 9129] // incoming '/test/random' messages with random number
osc-js インターフェイス (メッセージ処理などを含む) を失うことなく、OSC アプリケーション用のより洗練されたソリューションを作成することが可能です。詳細については、プラグイン API ドキュメントを参照してください。
class MyCustomPlugin {
// ... read docs for implementation details
}
const osc = new OSC ( { plugin : MyCustomPlugin ( ) } )
osc . open ( )
osc . on ( '/test' , message => {
// use event listener with your plugin
} )
バイナリ OSC データの書き込みと読み取りが必要な場合は、ライブラリは前述の機能なしで使用できます。低レベル API の使用については、以下の例を参照してください (ただし、この例のように UDP を処理するためのソリューションがライブラリにすでに用意されています)。
const dgram = require ( 'dgram' )
const OSC = require ( 'osc-js' )
const socket = dgram . createSocket ( 'udp4' )
// send a messsage via udp
const message = new OSC . Message ( '/some/path' , 21 )
const binary = message . pack ( )
socket . send ( new Buffer ( binary ) , 0 , binary . byteLength , 41234 , 'localhost' )
// receive a message via UDP
socket . on ( 'message' , data => {
const msg = new OSC . Message ( )
msg . unpack ( data )
console . log ( msg . args )
} )
osc-js は ES6 サポートに Babel、ドキュメントに ESDoc、テストに Mocha + Chai、UMD モジュールの生成に Rollup を使用します。
リポジトリのクローンを作成し、すべての依存関係をインストールします。
git clone [email protected]:adzialocha/osc-js.git
cd osc-js
npm install
テストを実行するためのnpm run test
。 npm run test:watch
。 npm run lint
でコードスタイルを確認してください。
npm run build
、UMD モジュールをlib
フォルダーにエクスポートします。
npm run docs
ライブラリを文書化する HTML ファイルを含むdocs
フォルダーを生成します。ここでオンラインで読んでください: https://adzialocha.github.io/osc-js
MITライセンスMIT