見出し画像

新BeatMaster、メトロームエンジン部分の精度検証が終了し開発ロジックを決定の巻(後編)

こんにちは、安田陽です。リズム感をスパルタトレーニングするiOSアプリ「BeatMaster」シリーズの再生プロジェクトが2月1日からスタートして今日でちょうど1ヶ月。想像以上のスピードで(いまのところ、ですが)進んでいまして、プロジェクトリーダーの私としてはかなり嬉しい状況です。

さて、前回からの続きを書かせて頂きたいと思うのですが、結局、ポイントは「メトロノームアプリの場合、時間の計測をプログラムでソフトウェア的に行なうべきではない」という部分ですね。

全然正確じゃなかったXcodeのメトロノームサンプル(^^;

実はいまから10年前、初代BeatMasterを開発していたときのXcodeの中に、まさしく「メトロノームアプリ」のサンプルソースコードが入っておりました。で、それを見つけて「おぉー、なんてラッキー♡」と喜んだわけですが、実際に動かしてみると「ん??? なんか微妙…このメトロノーム、あんまり正確じゃないんですけど???!!!」という事態になりました。

つまり、スマホアプリ開発において、プログラムで「超〜正確な時間計測」を行うのって、実はそんなに簡単ではなかったんですね。厳密なレベルで見ると、やはりどうしても他のタスクの邪魔が入ってしまうのですトホホ…

超〜正確なメトロノームアプリの作り方

ではどうすればいいのか?ですが、ヒントは「itunesなどで音楽を聴く場合は、曲の再生が速くなったり遅くなったりすることはない」というところにあるような気がしています。つまり、正確なメトロノームパルスを鳴らしたければ、ソフトウェア的に時間を計測して鳴らすのではなく、オーディオとしてパルスを鳴らす、という発想ですね。

その方法でコーディングした結果、かのSteinberg社がリリースしているメトロノームアプリと同等の精度を実現できました。それがどのくらいの精度かと言いますと「5分鳴らし続けて、ズレは数百マイクロ秒」という感じです。ちなみにマイクロ秒というのは「100万分の1」という単位になっています。

↑独自開発のメトロノームエンジンで5分鳴らし続け、その波形を取り込んで精度をチェックの図。

新BeatMasterのサンプルアプリ、できました

そんな感じで開発を進めていまして、いまのサンプルアプリの状態がこちら↓↓↓

ハイ、基本的な動きはある程度できている感じです。テンポ設定もできますし、BeatMasterのコンセプトである「メトロノームをウラ拍で鳴らす + オモテ拍をタップしその精度を計測」という動きもできています。

課題は画面をタップしたときのレイテンシー

ただ、オモテ拍をタップしたときのレイテンシーが気になる状態のため、そこはこれからの課題ですね〜。反応スピードを上げるには、恐らくもっと低レベルな、つまりハードに近いレベルでのコーディングが必要になるのでは?とエンジニアSHRED氏と話しています。これって結構ハードル高いかも?ドキドキ。

という状況ですが、次回はいま制作中のUI(ユーザーインターフェイス)デザインについてお伝えする予定です。お楽しみに!

この記事が気に入ったらサポートをしてみませんか?