リアルタイム入力をするとMIDIが前にズレてしまうのでレイテンシーの差を検証してみた

これまでMIDIのリアルタイム入力をすると音符がどうしても前にズレてしまって困っていました。

しっかりとカウントに合わせてプレイしているのにグリッドよりもわすがに前に入力されてしまうので「なんでだろ~?タイムが悪いのかな?」と悩まされてきました。

もしかするとレイテンシーの設定のせいではないかと気が付いたので数値を変更して検証してみました。

検証環境

CPU Core i7-6700 3.4GHz。
サンプルレートは48kHz
Studio Oneを空の状態で新規ファイルを起動。
起ち上げた音源はPresenceのドラムStandard Kitのみ。
テンポは100でハイハットを八分音符で2小節をリアルタイム入力しました。

サイズの変更はオーディオインターフェイスのソフトから変更できます。

入力にはMIDIパッドのを使用。

画像で比較

リアルタイム入力して音符のズレを比較してみました。
画像はクリックすると大きくなります。

512

まずはこれまで使用してきた512サンプルです。
いくら正確に入力しているつもりでも音符がどうしても前にズレてしまって困っていました。
この位ズレてしまうとクオンタイズをかけた時に前にズレてしまうことがあるんですよね。

256

次に256サンプルに変更してみました。

音符のズレは見事に解消されてグリッドにほぼピッタリと入力することができました。

128

次に128サンプル。
ここまでくると機械の遅れと言うよりも人間のズレのようですね。

64

ついでに64サンプル。
タイミング的には問題ありませんがここまで数値を下げしまうとCPU使用率が気になります。

検証結果 数値の比較

メニューから「Studio One→オプション→オーディオ設定」を見るとレイテンシーの数値を見ることができます。その数値を一覧にしてみました。

CPU使用率はStudio Oneトランスポートバーにあるパフォーマンスモニターのおおよその数値です。

ブロックサイズ CPU使用率 入力レイテンシー 出力レイテンシー
512サンプル 1% 15.27ms 15.10ms
256サンプル 2% 9.94ms 9.77ms
128サンプル 4% 5.27ms 5.10ms
64サンプル 8% 2.94ms 2.77ms

まとめ

「レイテンシー=遅延」と言うと音が遅れる事だとばかり思っていました。

考えてみれば、遅れている音を遅れないようにするために若干早く入力していたってことだったんですね。だから前にズレていた!

同じような問題でお困りの方がいましたらぜひブロックサイズを小さい数値に変更してみてください。

ブロックサイズの数値を下げるほどパソコンへの負荷がかかりますので負荷がかかり過ぎないように数値を設定すると良いようです。

ブロックサイズを下げた状態でオーケストラ音源など重い音源を使うとノイズが出やすいようです。