ハード音源の適切なサンプリング周波数

 現在でもDAWでソフトウェア音源を鳴らすだけではなく、DAWからMIDI経由で外部のハードウェア音源を鳴らすという人も少なからずいると思います。
 ですが、楽曲中で動的にパラメータを変更して音色変化させるのでなければ、サンプリングしてしまえばほぼ同じ音をDAW(とサンプラー)だけで鳴らすことが可能になります。すると、機材のセッティングやら移動時の作業などから解放されるため、ハードウェア音源を自前でサンプリングして使用している方も少なからず存在すると思います。
 なるべく良い状態でサンプリングしたいと思って、闇雲にサンプリング周波数を高くしてないでしょうか?

 或いは、過去の名機をサンプリングしたと謳ったプラグインを利用する人も多くいるでしょう。
 で、量子化ビット数が大きかったり、サンプリング周波数が高かったりといった訴求をしている製品もあります。が、それって、本当に意味あるんでしょうか?

 ハイレゾって意味あるの?という話にも通じるのですが、ちょっと書いておきます。
 

ヒトの可聴帯域

 良く知られた話ですが、大前提としてヒトの可聴帯域は20~20kHzと言われています(周波数によって聞き取りやすさ、すなわち感度も違います*1 )。
 もちろん個人差はありますし、加齢によって聞こえる帯域は狭くなります。
 

サンプリング定理(標本化定理)

 染谷・シャノンの定理とも言われますが、ある周波数の信号をサンプリングする際はその2倍以上のサンプリング周波数でサンプリングすれば元の信号の特性を再現できるという奴です(なお、サンプリング周波数の半分をナイキスト周波数と呼びます)。
 このため、前述のヒトの可聴帯域の上限20kHzの2倍の40kHzを満たすサンプリング周波数44.1kHz(ナイキスト周波数22.05kHz)がCDなどのサンプリング周波数として使われているわけです。
 故に、96kHzや192kHzのハイレゾって意味あるの?という疑問に対しては、ただ音楽をそのまま聴くだけ(記録された信号を再生するだけで、聞くのがヒトの場合)なら意味がない。と、考えられます。
 逆に、音楽制作の過程でシンセサイザーエフェクターで変調系の加工をするとかピッチシフトなどで激しく周波数が変わり、可聴帯域にまで降りてくる可能性があったりする用途なら意味があるでしょう(或いは、超音波を知覚するコウモリのような生物を混乱させようとか、純粋に高精度に信号波形を記録/再生したいとかそういった用途でも意味はあるでしょう)。
 

ハードウェア音源のサンプリング

 サンプリング対象の機材がデジタルな機材の場合は、その機材自体のサンプリング周波数が存在します(例えばFMシンセサイザーのように、サンプルプレイバック方式ではない機材であっても演算結果はD/Aコンバータでアナログ音声信号に変換されますので、そのD/Aコンバータの動作周波数*2がサンプリング周波数になります)。つまり、(D/Aコンバータの後段のアナログ回路で特殊なことをしていない限り、)元のサンプリング周波数より高いサンプリング周波数でサンプリングしてもデータが無駄に大きくなるだけで基本的に意味はありません。
 元のサンプリング周波数が取説等で明らかな場合はその値を使用すればいいですが、そうではない場合は使用するオーディオインタフェースのサンプリング周波数上限で一度サンプリングしてみれば、元のサンプリング周波数を概ね調べることが可能です。
 以下に例を示します。

 下図は、24bit 192kHzで試しにサンプリングした波形データからスペクトログラムをプロットしたものです(192kHzでサンプリングしていますから、ナイキスト周波数は96kHzです)。

f:id:kachine:20210305234308p:plain
Spectrogram (Nyquist frequency=96kHz)

 ざっくりと、20kHz以上の信号成分が全く存在しないことが判ります。よく見えないのでナイキスト周波数を24kHzにして再プロットしてみると下図になります。

f:id:kachine:20210305234434p:plain
Spectrogram (Nyquist frequency=24kHz)

 信号周波数の上限が16kHz位に見えるので、ナイキスト周波数16kHzで再々プロットしてみると下図になります。

f:id:kachine:20210305234507p:plain
Spectrogram (Nyquist frequency=16kHz)

 どうやらこの周波数レンジに収まってるようですので、32kHzがこの機材のサンプリング周波数と考えられます。
 というわけで、この機材をサンプリングするのに32kHzより高いサンプリング周波数を選択しても無駄にストレージを消費するだけであることが判ります(とは言え、昨今では32kHzに対応しないオーディオインタフェースもありますから、そのような場合は44.1kHzや48kHzでサンプリングすればよいでしょう)。

 ちなみに、この機材はRoland Groovebox D2で、MC-505(1998年発売)の派生モデルです。SC-88Pro(1996年発売)のサンプリング周波数が32kHzだとか非可逆圧縮してるから音質に悪影響が…という類の話は大昔に見かけましたが、メモリがまだまだ高価だった頃に大量の音色を搭載していた機材ならではのスペックと言えるのでしょうね。

 なお、アナログシンセをサンプリングする場合は、当然ながら元のサンプリング周波数なんてものは存在しません。ですが、適切なサンプリング周波数を決める手段は同様です。オーディオインタフェースの最高のサンプリング周波数で一度サンプリングしてみて、含まれる周波数成分の上限を特定し、その2倍(以上)のサンプリング周波数を選択すれば余すところなく信号波形を記録しつつも無駄にストレージを消費することもありません。
 

補足

 スペクトログラムはSoXを使うと簡単にプロットできます。
 例えば、ナイキスト周波数を96k, 48k, 22.05k, 16kと変えたスペクトログラムをプロットするには以下のようなコマンドを叩けばいいです(bashを使った場合の例)。

INPUT="Source.wav"
for fs in 192k 96k 48k 44.1k 32k; do
 OUTPUT="Spectrogram_${fs}.png"
 sox ${INPUT} -n -D rate ${fs} spectrogram -o ${OUTPUT} -z 96 -c ""
done

SoX自体はWindows版バイナリも存在しますので、WSLが必須という訳ではありません。Ubuntuではパッケージマネージャから簡単にSoXを導入できます(sudo apt install sox)。
 



以上。

*1:興味ある方はラウドネス等価曲線などをキーワードに調べましょう。

*2:厳密なことを言うと、動作クロックそのものとサンプリング周波数は一致しないDACが多いですが。