tbazin / node-abletonlink

node.js porting of ableton Link

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-abletonlink

node.js port of ableton Link with node-addon-api

Dependencies

Required

see detail on node-gyp

Common

  • python v2.7

Mac

  • Xcode

UNIX

  • make

Windows

  • Microsoft windows-build-tools (npm install --global --production windows-build-tools)

Tested env

  • OSX 10.14.6 with Xcode / node.js 10.16.0
  • Windows 10 with windows-build-tools / node.js 10.16.0

Install

npm install abletonlink --save

or

npm install 2bbb/node-abletonlink --save

How to use

const abletonlink = require('abletonlink');
const link = new abletonlink();

link.startUpdate(60, (beat, phase, bpm) => {
    console.log("updated: ", beat, phase, bpm);
});

// callback is option.
// link.startUpdate(60); // correct!

function do_something() {
    const beat = link.beat;
    const phase = link.phase;
    const bpm = link.bpm;
    ...
}

Example

API

const abletonlink = require('abletonlink'): Thread Safe abletonlink.Audio: Not Thread Safe (but on node.js/V8...??)

property

  • isLinkEnable: bool [get/set]

  • isPlayStateSync: bool [get/set]

  • numPeers: number [get]

  • beat: number [get/set]

  • bpm: number [get/set]

  • phase: number [get]

  • quantum: number [get/set]

method

  • getNumPeers: (void) -> number [deprecated from v0.0.8. use numPeers property]

get num peers.

  • setBeatForce: (beat: number) -> void

set beat force.

  • on: (key: string, callback: (number) -> void) -> void

set callback will call change event.

key is 'tempo' then argument of callback is new tempo property.

key is 'numPeers' then argument of callback is new numPeers property.

key is 'playState' then argument of callback is new isPlaying property.

  • off : (key: string) -> void

remove callback.

  • enable: (void) -> void

  • disable: (void) -> void

  • enablePlayStateSync: (void) -> void

  • disablePlayStateSync: (void) -> void

  • update: (void) -> void

call update manually.

  • startUpdate: (interval: number [, callback: (beat:number, phase:number, bpm:number, playState: bool) -> void]) -> void

start update timer with interval.

if given callback, it will call every interval with arguments beat, phase, bpm, playState.

  • stopUpdate: (void) -> void

stop update timer.

License

MIT

Author

  • ISHII 2bit [bufferRenaiss co., ltd.]
  • ishii[at]buffer-renaiss.com

Special Thanks

At last

If you get happy with using this addon, and you're rich, please donation for support continuous development.

Bitcoin: 17AbtW73aydfYH3epP8T3UDmmDCcXSGcaf

About

node.js porting of ableton Link

License:MIT License


Languages

Language:C++ 89.8%Language:JavaScript 6.4%Language:Python 3.8%