読者です 読者をやめる 読者になる 読者になる

自宅プログラマーの憂鬱

Since 2013。個人でアプリ作っています。

正確なiPhoneのメトロノームアプリについて

ども。ちょっと開発に疲れたので、今日はメトロノームアプリのお話をさせて頂きます。

本日twitterを見ていたら「メトロノームはアプリで済まさず、ちゃんと買え!」みたいなのがあって、ちょっとムッとしたので反論です。信頼できないなどと、おっしゃる方がいらっしゃる。確かにいい加減なのあるのは否定しませんが、ちゃんと選べば正確なのがあるんです。私は、Smart Metoronomeを開発するにあたって50個のメトロノームを評価しましたので、iPhoneメトロノームアプリに関しては日本でも5本の指に入るくらい詳しいと思っています。今日は、その中でも代表的なの6つを選んで計測してみました。

<計測方法>

  • 120BPM
  • Beatが設定できるものは4/4拍子に設定


こんな感じ。

f:id:ihatomo:20161119134350p:plain
(クリックで拡大)

さて、拡大してみてみましょう。まずは3秒後のタイミング。1目盛りが1msです。

f:id:ihatomo:20161119134521p:plain
(クリックで拡大)

上ふたつが、正確で、その下2つは2msほど早いですが、許容範囲でしょう。
もう一箇所、10秒後を拡大してみましょう。同じく1目盛りが1msです。

f:id:ihatomo:20161119134906p:plain
(クリックで拡大)
上の2つは正確ですね。その下2つは5msほど早いですが、許容範囲でしょう。Bのふたつがほとんど同じタイミングでずれているのがわかりますが、これはiPhoneのハードウェアの特性によるものと考えています。Aはそれを補正しています。

私は、メトロノームアプリを正確性だけで分類すると、このABCの3種類に分けられると考えます。

A:正確なもの
B:間隔は一定だけど時間計測にわずかな誤差があるもの
C:揺らぐもの

AとBは、実用上の差異はありませんので、デザインや、使い勝手などでお好きなものを使えば良いと思います。ただ困ったことに、殆んどのメトロノームアプリはCに属しています。テンポ感覚は人それぞれかと思いますが、私は、1/100秒ずれると「あれっ?」って思います。なるべく正確なものを選んで、正しいテンポ感を身に着けたいですね。

尚、プログラムの内部的な話を少ししますと、恐らくAとBは基本的に同じ作りで、一番上のを作った感じだと、どれもハードウェアに直接クリック音を渡しており、時間計測をソフトウェアで行っていないと推測しています。そしてAは、若干それを補正しているだけ。だからBを補正するのは、実は簡単です。Cは、CPUでiPhone内のClockを見に行って、タイミングをとって音を鳴らしていると思われます。なので、CPUのタスク処理状況によって揺らぎが発生してしまいます。

というわけで、電子メトロノームを買うのも良いですが、アプリをバカにするのはやめて下さいね。
で、よかったらこれ使ってください。