Songle Syncとmicro:bitで曲に合わせてLEDを光らせる

micro:bit, Node.js

先日開催されたMUSIC HACK DAY 2018に参加したのですが、
思いついたアイデアとマッチせずSongle Syncを利用できなかったため、個人的に触ってみました。

Songleの説明とSongle Syncについては以下の公式をご覧ください。

Songle SyncのAPIキーを作成

まず、Songle Syncを利用するためにAPI利用登録からアカウントを作成しアクセストークンとシークレットを取得します。

Songle Syncのmasterを作成

次に、ブラウザ向けSongle Syncのソースをcloneして先ほど取得したアクセストークンとシークレットを設定します。
また、Songleで解析済みの曲を選択するか自分で好きな曲をSongleに解析してもらうことで使用する曲を変更できます。
起動したらブラウザで表示します。

Songle Syncのslaveを作成

Node.jsのプロジェクトを作成して songle-widget をインストールします。

slaveの実装はSongle公式のサンプルを参考にします。

slaveをmicro:bitに接続

Bluetoothでmicro:bitと通信するこちらのモジュールを利用します。

API仕様を参考に実装します。
以下コメントにて解説。

これだけで、beatに合わせてLEDの表示を変える演出を複数のmicro:bitで同期させながら行うことができます。
また、以下のようにすることでサビの間だけ表示を変えるような処理を実装できます。

感想

Songle Sync(master/slave) -> bluetooth -> micro:bitの構成だったのですが、masterで再生する動画とmicro:bitのLED表示のズレがほぼ気にならないレベルで同期できていて完成度が高かったです。
また、songle-widgetはイベントに応じて処理を書くだけなので拍やサビのタイミングで表示を変えるようなコードを簡単に追加できて、すぐに品質の高いデモが作れて色々と応用してみたくなる面白いサービスだと思いました。

micro:bit, Node.js