今年買ってよかったもの 2023年版

Dirtywave M8におけるSamplerの仕様について (※V1.3.1時点)


 ※この記事はM8 Headless V1.3.1時点での検証結果について記述しています。
 ※現在の最新版では挙動が異なる可能性が非常に高いです。

 知人友人が「M8のSamplerに読み込ませられるサンプルファイルの仕様が分からない」といった疑問が浮かんでいるのを見かけたので、これまでSamplerを試していませんでしたが、テストしてみる事にしました。

テスト内容は以下の四種類としました。

  • 読み込みテスト
  • Mono/Stereo比較テスト
  • 再生品質テスト
  • レンダリング品質テスト

順番に条件と結果を書いていきます。

・読み込みテスト

テスト条件

  • 本体はM8 Headless V1.3.1
  • 次のサンプリングレートのファイル群を用意
    8000, 11025, 16000, 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000 (Hz)
  • 次のビットレートのファイル群を用意
    8, 16, 24, 32, 32(float) (bit)
  • 以上のファイルをM8内のSamplerに読み込ませられるかどうかをテスト

テスト結果

  • サンプリングレートチェック
    読み込み可能 - 8000, 11025, 16000, 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
    読み込み不可 - 無し
  • ビットレートチェック
    読み込み可能 - 8. 16
    読み込み不可 - 24, 32, 32(float)

サンプリングレートについては、試した限り制限が無いようです。
ビットレートの方は16bitまでで、24bitは一切読み込みを受け付けてくれませんでした。


・Mono/Stereo比較テスト

テスト条件

  • 本体はM8 Headless V1.3.1
  • Monoのデータを一つ用意する
  • 上記Monoのデータの波形をLとして、Lの内容をRにコピーしたものをStereoのデータとして用意する
  • データの内容は「16bit/44100Hz, 440Hzのサイン波, 10秒、フェードアウト」

テスト結果

  • 二者のデータの間で、音量の差異は見られなかった。
    • Monoのデータは、同じ内容をLRに出力する模様。

 MonoかSteroかについては、どうやらどちらも読み込めるようです。
音量もMonoで半分になったりといった事は無いようなので、用途に合わせて選べますね。


・再生品質テスト

テスト条件

  • 本体はM8 Headless V1.3.1
  • 次のサンプリングレートのファイル群を用意
    8000, 11025, 16000, 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000 (Hz)
  • ビットレートは全て16 (bit)
  • データの内容は「440Hzのサイン波, 10秒、フェードアウト」
    (厳密にはスウィープでやるべきだと思いますが…)
  • 以上のファイルを順番に再生し、M8 HeadlessのUSB接続から録音
  • 録音したデータをRX 7で確認

テスト結果

以下画像の通り

所見

  • 全てのデータにおいて、13000Hz付近に大きなエイリアスノイズがある。
  • 波形の最初の半周期の音量が小さく出るが、88.2kHz以降は影響が小さくなる。
    • フェードイン処理?
    •  21/01/30 追記
      開発者(Trash80)に問い合わせた所、意図しない挙動のようです(Renderなら発生しないはずなのだけど、とも言っていましたが、実際には発生しています)。そのうち修正が入る可能性があります。
  • 8000, 11025, 16000のデータにおいて、可聴域内に大きめのエイリアスノイズが発生している。
  •  44100のデータがエイリアスノイズの影響が最も小さく、上下するとそれぞれ違った形で増加する。
    • Windowsのサウンドプロパティによると、M8 HeadlessのUSB音声出力レートは16bit, 44100Hzで、レートに合致している為影響が小さいと推測。
  •  44100の倍数系列(88200, 176400, 352800)は、48000の倍数系列(96000, 192000, 384000)より影響が小さい。
    • 未テストだが、22050のデータも影響は比較的小さくなるのではと推測。
  • 384000のデータのみ、150cent程度低く再生される。
    • 原因は不明。

傾向が見えてきました。気になったので、Renderについてもチェックしました。


・レンダリング品質テスト

テスト条件

  • 本体はM8 Headless V1.3.1
  • 上記「再生品質テスト」のデータを、Projectメニュー内のRenderでレンダリング
  • MicroSDに書き出されたWAVファイルをRX7で確認

テスト結果

以下画像の通り

所見

  • 概ね再生品質テストと同傾向
  • 低音域に何故か信号が発生している
    [21/01/30 追記]
    この症状を開発者(Trash80)に報告して確認してもらった所、「M8の内部処理は32bit floatで、そこからレンダリング時に16bitに変換した際に発生する歪みと見られる」との事でした。この現象はサンプルに限らず、FMSYNTHでも確認できたそうです。
    現状の対処法としては「サンプルをノーマライズする」が有効とみられるとの回答でした。
    USBライン出力も16bit 44.1kHzで出力しているようでしたが、こちらでは発生しない理由については、今の所謎のようです。


このような結果となりました。M8(Headless V1.3.1時点)において、用意するサンプルのベストクオリティは、
16bit, 44.1kHz, Mono or Stereo
という事になるのではないでしょうか。
しっかりとしたテストはしていませんが、8bitのデータでも16bitのデータでの計測結果と同じ傾向が出ているようでした。8bitサンプルの質感が良いという場合も、安心して使えると思います。

また、現時点(V1.3.1)では、Renderではなくライン録音をした方が正確な結果が得られる様子です。報告したら治りそうな話ではありますが…。

 

[22/01/01追記] 記事タイトルに (※V1.3.1時点) と追加し、最新版と異なる可能性が高い旨も表記。

コメント