osc-js adalah pustaka Kontrol Suara Terbuka untuk aplikasi JavaScript (modul UMD untuk Node, Browser, dll.) dengan pencocokan pola alamat dan penanganan tag waktu. Mengirim pesan melalui UDP , WebSocket atau keduanya (mode jembatan) dan menawarkan API Plugin yang dapat disesuaikan untuk protokol jaringan.
Wiki | Penggunaan Dasar | Dokumentasi | API Pengaya
ws
di Node.js atau lingkungan serupa)Baca selengkapnya tentang osc-js dan cara menggunakannya di Wiki dan Dokumentasi.
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 } )
Instalasi yang disarankan melalui npm: npm i osc-js
atau yarn add osc-js
.
Impor perpustakaan const OSC = require('osc-js')
atau tambahkan skrip lib/osc.js
atau lib/osc.min.js
(versi yang diperkecil) untuk digunakan di browser.
osc-js menawarkan arsitektur plugin untuk memperluas kemampuan jaringannya. Perpustakaan dilengkapi dengan empat plugin bawaan. Ini mungkin yang Anda perlukan untuk aplikasi OSC:
WebsocketClientPlugin
(default)WebsocketServerPlugin
DatagramPlugin
untuk perpesanan jaringan UDPBridgePlugin
berguna Menjembatani antara Klien WebSocket dan UDPKonfigurasi dan contoh setiap plugin dapat dibaca di sini: Wiki.
Daftarkan plugin saat membuat instance 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
Dimungkinkan untuk menulis solusi yang lebih canggih untuk aplikasi OSC tanpa kehilangan antarmuka osc-js (termasuk penanganan pesannya, dll.). Baca dokumentasi Plugin API untuk informasi lebih lanjut.
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
} )
Pustaka dapat digunakan tanpa fitur yang disebutkan jika Anda perlu menulis dan membaca data OSC biner. Lihat contoh di bawah ini untuk menggunakan API Tingkat Rendah (walaupun perpustakaan sudah memiliki solusi untuk menangani UDP seperti pada contoh ini):
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 menggunakan Babel untuk dukungan ES6, ESDoc untuk dokumentasi, Mocha + Chai untuk pengujian dan Rollup untuk menghasilkan modul UMD.
Kloning repositori dan instal semua dependensi:
git clone [email protected]:adzialocha/osc-js.git
cd osc-js
npm install
npm run test
untuk menjalankan tes. npm run test:watch
spesifikasi yang berjalan selama pengembangan. Periksa gaya kode dengan npm run lint
.
npm run build
untuk mengekspor modul UMD di folder lib
.
npm run docs
untuk membuat folder docs
dengan file HTML yang mendokumentasikan perpustakaan. Baca secara online di sini: https://adzialocha.github.io/osc-js
Lisensi MIT MIT