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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

10

BeatMaster Reborn Project

2009年2月にリリースしたリズム感スパルタトレーニングアプリ「BeatMaster Professional Edition」。その後iOSのバージョンアップについていけず現在ストアからも消えているのですが、2019年2月よりその復活プロジェクトをスタート。沖縄で開発中です。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。