2025-09-14
BPMを設定して光らせるネイティブアプリを作ってみたら、今鳴っている曲のBPMを検出したくなって発見した、音楽解析ライブラリ、aubio。WebAssmebly化するプロジェクト「aubiojs」を使って、ウェブアプリにしました。


「リアルタイムBPM検出 with aubiojs」

マイク開始を押して、トントンとマイク周辺を叩いてもBPMを検出してくれます。いろんな音楽を聞かせて検証してみましょう!

今回のウェブアプリのライセンスはGPL3.0です。aubioがGPL3.0なので、MITライセンスにはできません。配布が必要なもので、GPLにできないプロジェクトに使う場合は作者からの許諾が必要なのでご注意ください。


「code4fukui/bpmdetector」

ESモジュールに対応しているaubiojsforkして使い方を記述。

import aubio from 'https://code4fukui.github.io/aubiojs/aubio.esm.js'; const { Tempo } = await aubio(); const tempo = new Tempo( scriptProcessor.bufferSize * 4, scriptProcessor.bufferSize, audioContext.sampleRate );

URLでインポートするだけシンプルに使えて便利ですね!

ただ、セキュリティを考えると、URLインポートには権限限定機能があるべきですね。
scriptタグにtype="module_secure" とか?

links
- iPhoneのフラッシュライトを使ってビートに合わせた点滅を「bpmlight」、鯖江JAZZフェスティバル2025まで1月ちょっと

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS