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
로 코드 스타일을 확인하세요.
lib
폴더에 UMD 모듈을 내보내기 위한 npm run build
.
npm은 라이브러리를 문서화하는 HTML 파일로 docs
폴더를 생성하기 위해 npm run docs
. 여기에서 온라인으로 읽어보세요: https://adzialocha.github.io/osc-js
MIT 라이선스 MIT