node.js port of ableton Link with node-addon-api
see detail on node-gyp
- python v2.7
- Xcode
- make
- Microsoft windows-build-tools (
npm install --global --production windows-build-tools
)
- OSX 10.14.6 with Xcode / node.js 10.16.0
- Windows 10 with windows-build-tools / node.js 10.16.0
npm install abletonlink
or
npm install 2bbb/node-abletonlink
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;
...
}
const abletonlink = require('abletonlink')
: Thread Safe
abletonlink.Audio
: Not Thread Safe (but on node.js/V8...??)
-
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]
getNumPeers
:(void) -> number
[deprecated from v0.0.8. usenumPeers
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.
MIT
- ISHII 2bit [bufferRenaiss co., ltd.]
- ishii[at]buffer-renaiss.com
- Hlöðver Sigurðsson (hlolli) #3
- Yuichi Yogo (yuichkun) #10
- Jakob Miland #11
- Alessandro Oniarti #11
- Théis Bazin #12, #15
- Jeffrey Kog #16
If you get happy with using this addon, and you're rich, please donation for support continuous development.
Bitcoin: 17AbtW73aydfYH3epP8T3UDmmDCcXSGcaf