”サイクリングを音楽にする”プロジェクト「Sound of Cycling RE」の制作記第3弾。開発環境やシステム要件がある程度固まり、音づくりの本番フェーズに入り始めたところだ。現在「サイクリングのBPM」を探っているがこれがなかなか難儀している。
心地よいビートを作りたい
サイクリングの動きを音として扱うとき、軸になるのはやはり「ペダル」だ。
基本的な音の構成は下記をイメージしている。
・ペダルの回転:Kick/Hihat など基礎リズム
・速度(スピード):アンビエント系の上モノ
・車体の傾きやその他データ:スポット的に鳴る効果音
構成だけ見ればシンプルだが、最大の難所はペダルの回転から自然なBPM(テンポ)を取り出す点にある。
ペダルの動作は見た目以上に不規則で、一定に見えても細かな揺れや減速・加速、停止直前のブレが常に発生する。そのままBPMに変換すると、Kickが揺らぎ、暴れ、時には急にジャンプする。これではとても心地よい状態とは言えない。リズムとして成立させるには、揺れを抑えつつ“リアルな走行感”を損なわない絶妙な調整が必要となる。
ペダル動作の不規則な揺れを抑えるため、中央値平滑化や1ステップあたりの変化量制限などあの手この手でスムーズになるよう調整を進めた。また、当初センサー(M5StickC Plus)側で制御していたBPM計算を、本体(Pixel 7a)側で行うようにするなどしてシステム全体の拡張性や安定化を図った。
あと意外(?)と苦労しているのが「止まった」(idle)の判定である。
・BPMが出ていれば「動いている」
・BPMが途絶えたら「止まっている」
という単純なロジックで組んでいたものの、実際は、ペダルを止めても、しばらく惰性の揺れが残る、ゆっくり回している時はBPM自体が低く、「止まった」のか「ゆっくり動いている」のか判断がつきにくいなどの問題が次々に発生した。こうした現象をBPM数値だけで判断しようとした結果、“閾値いじりの泥沼”にはまってしまった。最終的には、BPMとは別に「動きの強さ」だけを見るレイヤーを用意して、そこに“止まり方の気持ちよさ”を全部任せることでようやく抜け出せた、というのが現在の状況である。

皇居前で実走行してみた
ちょうど11月16日「パレスサイクリング」(主催:自転車産業振興協会)が開催されていた。これは、皇居東側の内堀通り(祝田橋〜平川門)を毎週日曜日だけ車両通行止めにし、自転車専用コースとして開放するという取り組み。特別な申し込みも不要で、その時間帯にそこに行けば車両通行止めになっていて自転車で走り放題という訳だ。

これまではあくまで机上のテストとして、センサーは手で持って回していたのだが、この機会に実際に自転車に取り付けて走行してみることにした。
さて、このパレスサイクリングだが、一言でいうと「非常に爽快」であった。普段は絶対に走れない道路のど真ん中を、車を気にすることなく駆け抜ける感覚は格別だ。皇居の目の前というロケーションもあり、周囲は開けているがちょっと先には丸の内の高層ビル群が見えたり景色も最高である。参加者も子供から大人までさまざま。また自転車の種類もロードバイクからママチャリ、ミニベロはもちろん、小型のペニーファージング(前輪の大きな自転車)に乗ってる人までいた。ロードバイクでスピードを出している人もいたが、車道4車線分を使えるため圧迫感はほとんどない。普通にサイクリングを続けたい気持ちを抑えつつ、システムの実走行テストを開始した。




実際の走行テストを行ったところ、システム全体の挙動について多くの発見があった。
まず、アプリの基本挙動は結構安定していた。走り出しのBLE受信からBPM表示までスムーズに動き、停止すれば正しくidleに入り、再びこぎ始めると自然に復帰する。一方で、BPMが実際の走行スピードに追従しきれていない点など、実走ならではの課題も明確になった。ピーク検出が乱れやすく、速度変化への反応が遅れたり、逆に急に跳ねたりする場面があった。
また、センサーの取り付け位置についても知見が得られた。ペダル内側(クランク寄り)は足が当たりやすく、踏みつけてしまいそうになる。反対に、ペダル側面に画面を上向きで設置する方法は、足への干渉がない。テストでは簡易的に面ファスナーで取り付けただけだったが、最終的には見た目にもこだわりたいところだ。今後はこの位置をベースに、専用の固定方法を整えていく予定だ。

今回の実走テストで、課題はまだまだ山積みであることを痛感した一方、皇居前を走りながら「やっぱりサイクリングは気持ちいい」と改めて感じた時間でもあった。引き続き、地道に改善を重ねていこうと思う。