遅刻しました。
ふたたびネタが思いつかなかったので触ってみよう系薄い記事です。よろしくお願いします。
Ableton Link って?
公式サイトを見てみるのがいちばん早いのですが、Ableton Liveからはじまったテンポや再生情報を対応アプリや機器と同期させようという規格です。
Ableton Linkで同期させてみた例
Mac、Windows、iPhone間は同一ネットワークで繋がっているのみで、リズムが完全に同期されて再生できている
で、このAbleton Link、なんと仕様やSDKが公開されており、自由に自前のアプリやデバイスに組み込んで利用することができます。
Node.js から扱ってみる
Node.js 用ライブラリを公開してくださっている方がおり、ものすごく簡単に扱えます。
const abletonlink = require('abletonlink');
const link = new abletonlink();
let latestPhase = -1;
const main = (beat, phase, bpm) => {
console.log(" Beat: " + beat);
console.log(" Phase: " + phase);
console.log(" BPM: " + bpm);
};
// Start Ableton Link
link.startUpdate(60, (beat, phase, bpm) => {
if (Math.floor(phase) !== latestPhase) {
latestPhase = Math.floor(phase);
main(
Math.floor(beat),
Math.floor(phase) + 1,
Math.floor(bpm)
);
}
});
Beat、Phase、BPMを更新のタイミングで(小数点切り捨てた上で)出力しているだけのコードです。
実際に実行してみるとAbleton Linkを有効にしたLogic Proと同期が取れていることが確認できました。
おわりに
ものすごく短い触ってみた系となってしまいました。
本当は別の記事を投稿する予定だった(AWS IoT)のですが、突然証明書認証ができなくなってしまい…。
次書くことがあればAbleton Linkを活かして何か作ってみたいと思いました。