¥$pHinは音楽と飯を作り酒を飲む。

音楽などについて記す場所である。

音楽とかDTMとか色々書こうとしてます。

バッファサイズってなんやねん!!!教員免許持ちが解説してみた。

どうも、¥$pHinです。

f:id:endorpHin:20200526100212p:plain

 

DTMや同期演奏をしていると耳にするバッファサイズという言葉。

「ああ、あの数値あげたらPCの動作重なって下げたら音がプツプツするやつやろ?」

くらいの認識しかなかったのでちゃんと調べました。

 

 

その前にレイテンシーってなんやねん

レイテンシー(Latency)、この言葉もDTMをしていると耳にするのではないでしょうか。

"Late"という単語が隠れているので「遅い」という言葉に関係はしそうですね。

Google翻訳くんに聞いてみるとズバリ、

待ち時間だそうです。

「遅い」という言葉を絡めるなら「遅延」でしょうか。

 

ではDTMにおけるレイテンシーってなんなんでしょう。

ここでこんな経験はありませんか?

 

「音をモニタリングしながらMIDIキーボードで楽器を鳴らすとき、遅れて聞こえる」

「マイクに向かって出した声がイヤホンから遅れて聞こえる」

 

など、音を出すアクションを起こしてから実際にイヤホンやスピーカーから音が鳴るまでの時間に待ち時間があるという現象です。

 

この待ち時間をレイテンシーと呼ぶわけです。

 

レイテンシーの単位はms(ミリセカンド=1000分の1秒)で、リアルタイムで演奏する際は20ms=0.02秒くらいまでのレイテンシーなら問題なく演奏できます。

 

「じゃあレイテンシーなんか0に近い方がいいやん!」

 

そう思ったあなた…

 

その通りです。

 

しかしながらそうもいかないわけで、例えば

「ドの音出して!」とキーボードのドを叩きますよね。だれに音を出して欲しいかというとDAW内のソフトシンセくんです。そして実際に音を出すのはスピーカーやヘッドホンですよね。

 

つまり、キーボード→シンセ→スピーカー(ヘッドホン)と信号が送られて処理する時間があるわけです。

これを短くするには処理速度上げればいいのですが、そのためにはPCくんの能力も必要になってくるわけです。

そしてそれには限界があります。

限界を超えるとどうなるかというと、処理し切れずに音がプツプツと切れたり、最悪の場合DAWが停止したりしてしまうわけですね。

 

レイテンシーとPCの処理能力を天秤にかけて、ちょうどいい場所を探すのが大切です。

 

バッファサイズってなんやねん

今回の本題です。

とりあえずGoogle先生にバッファって何?とたずねるとズバリ、

 

1.衝撃をやわらげる装置や液

2.コンピュータで、データを一時的に記憶する場所。

 

DTMにおけるバッファは2ですね。そのサイズ、大きさのことをバッファサイズというんですね。

単位はサンプル(sample)で、これまた後述しなければいけないのですが今はいいです。

この説明だけではピンとこないのではないでしょうか。私はきません。

 

では、

音を出す命令=蛇口をひねる

バッファサイズ=ホースの長さ

音が鳴る=水が出る

という風に例えてみます。

 

まずはバッファサイズが0、つまりホース無しの場合を見てみましょう。

 

蛇口をひねった瞬間に水が出ますよね。これが、レイテンシー0の状態です。もしかすると10msくらい遅れて水が出るかもしれませんが、それでも気にはなりません。

 

続いてバッファサイズが512サンプル、ここではホースが512cmだと仮定した場合です。

(※なぜ中途半端な数字かというと、データの世界では2進数でやり取りをするので数字が2の○乗になりがちです。512=2の9乗)

蛇口をひねった瞬間に水はホースを流れ出しますが、実際に水が出るのは512cmのホースを通った先です。水が出てくるのが遅くなりますよね。

f:id:endorpHin:20200526102502p:plain 

ここで突然蛇口が壊れて水が止まってしまったとします。音を出す命令を出しているのに伝わっていない状態です。

前者は壊れた瞬間に水も止まってしまいますよね。

しかし後者の場合は水の供給が断たれてもホースの中にある水をだしきるまでは水が出続けます。

 

f:id:endorpHin:20200526103115p:plain

バッファの役割、おわかりいただけたでしょうか。

逆にわかりにくくなってたらすいません。

 

この説明をまとめると、

バッファサイズ小→レイテンシー短、安定性低

バッファサイズ大→レイテンシー長、安定性高

となります。

 

なのでレイテンシーを短くして、なおかつ安定して水が出続けるくらいのバッファサイズにしなければいけないということなのです!!!

 

実際に設定してみようや

設定画面は各DAWによって違うので、

「バッファサイズ DAW名」とかで検索しましょう。

 

設定画面を開いたらとりあえず高めに設定してみましょう。

例にもあった512sampleくらいにしてから、MIDIキーボードを弾くなりマイクに声を出すなりしてその音をモニタリングしましょう。

1フレーズ弾いたり歌ったりするとより分かりやすいと思います。

 

「なんか遅れてんなあ」と思ったらバッファサイズを1段階小さくします。

あとはこれを繰り返して、演奏しやすい!と思った数値で作業をしましょう。

 

後から「動作が重い」「音がプツプツ切れる」などの症状が出たら、

バッファサイズを1段階上げれば改善されると思います。

 

サンプリングレートってなんやねん

はい、後述しますと言っていた話題です。

バッファサイズの単位、サンプル(sample)ってなんやねんという話です。

 

サンプリングレートはよく、

「1秒間に何回音を記録するかを決める値」という説明がなされます。

単位はヘルツ(Hz)ですが、細かく表すと[回/秒]になります。

 

「いやいや、記録なんか何回もせんと1回でよろしいやん」

と思うんですが、音をデジタルのデータに変換するためにはそうもいきません。

 

音は空気の振動であり、複雑な波です。たった1秒の音でも絶えず波形は変化します。

それをデジタルのデータ、2進数で表さなければいけないのです。0と1だけで、です。

もし1秒間に1回しか記録しなかったら、それはもう原型をとどめていない雑音になってしまうでしょう。

 

音楽業界でのサンプリングレートは44.1kHzや48kHz、96kHzなどが一般的です。

kは1000倍なので、1秒間に44100回とか48000回も音を記録してるわけです。

 

やっとバッファサイズの単位の話に戻るのですが、この1秒間に行われている膨大な回数の記録の1回分をサンプルというのです。

 

もし44.1kHzの録音環境だったら、1サンプルの長さは1/44100秒になります。

バッファサイズが512サンプルの場合、512×1/44100=0.0116・・・≒11.6ms分のデータを一時的に記憶できるよーってことになります。

 

ちなみにこの11.6msがそのままレイテンシーの値になります。(実際にはもうちょっと長い)

 

まとめ

バッファサイズ小→レイテンシー短、安定性低

バッファサイズ大→レイテンシー長、安定性高

 

これが全てでしょう!

作曲をする際にもスムーズに作業ができますし、

同期演奏をしたい!という方には重要な設定になります。

 

 

書けば書くほどわけがわからなくなりそうでしたが、みなさんご理解いただけましたでしょうか。

私の教員免許がただの紙切れでないことを祈るばかりです。

疑問点やご指摘がありましたらコメントをお願いします!

 

以上¥$pHinでした!

 

 

 

ここまでお読みいただきありがとうございます!

「この記事ええやん!」と思った方は、

 

▶︎YouTubeのチャンネル登録

http://www.youtube.com/channel/UCO1jYzS-5QCMjJb-8XBGpSw?sub_confirmation=1

▶︎Twitterのフォロー

https://twitter.com/YendorphinS

▶︎当ブログの登録

https://yendorphins.hatenablog.com/

を是非お願い致します!

 

また、コメントやシェアなども嬉しいです!

それではまた別の記事でお会いできたら幸いです。