PCM-DSD_Converter

PCM WAV → DSD DSDIFF 変換ソフトウェア(Windows)

概略

PCM-DSD_Converter は、PCM WAV フォーマットの音源を DSD DSDIFF (.dff) フォーマットに変換する Windows 用のフリーソフトウェアです。PCM 16bit〜64bitFloat / 44.1〜768kHz から DSD16〜DSD2048 への変換ができます。ファイルやフォルダをウィンドウへドラッグ&ドロップし、DSDのサンプリングレートを選んで実行するだけで変換できます。

本ソフトを Python で全面的に作り直し、48kHz系入力やバッチ変換UIに対応した PCM-DSD_Converter v2 もあります(v1 と v2 の性能比較は v2 のページに掲載しています)。

使い方

PCM-DSD_Converter 起動直後のウィンドウ

1. PCM-DSD_Converter.exeをダブルクリックし、立ち上がったウィンドウに対して、処理をするWAVファイルをドラッグドロップをします。フォルダをドラッグドロップした場合、再帰的にWAVファイルを探索します。

ファイルリストとサンプリングレート選択画面

2. リストにドロップドラッグしたファイルが表示されます。プルダウンメニューから希望するDSDのサンプリングレートを選び、処理をするファイルを選択し、「実行」をクリックします。Ctrl+クリックで複数選択できます。
なお、PCMのフォーマットは44.1~768kHz/16,24,32bitInt,32,64bitFloatをサポートしているつもりです。DSDへは44.1kHz系列、48kHz系列それぞれのサンプリングレートに変換されます。

各種ボタンの動作は以下の通りです。

  • 全てを実行 — リストに表示されている全てのファイルに対して処理を実行します。
  • 全てを削除 — リストに表示されている内容を削除します。実ファイルは削除されません。
  • 実行 — 選択されているファイルに対して処理を実行します。
  • 削除 — 選択されているファイルをリストから削除します。実ファイルは削除されません。
処理完了ダイアログ

3. 正常に処理が完了すると、その旨が表示されたダイアログが出ます。また、正常に処理が完了したファイルはリストから削除されます。

処理されたファイルは出力先の設定がされていない場合、PCM-DSD_Converterがあるフォルダ内に保存されます。フォルダ名は元ファイルの名前で、ファイル名は元ファイルに_DSD+サンプリングレートが追加されます。

アルゴリズム

PCMのサンプリングレートがDSDのサンプリングレートになるまで、2倍ずつアップサンプリングした後、ノイズシェーピングし、1bitにしています。ノイズシェーピングには8次楕円フィルタを用いています。アップサンプリング時の折り返しノイズ遮断のためのフィルタを、高精度ではFIRフィルタ、低精度ではIIRフィルタを用いています。

現在把握している不具合

バージョン

1.0.0.12015/05/23関係者内リリース
1.0.0.22015/05/24SNSで公開
1.0.0.32015/05/26Webページで公開、膨大な一時ファイルを作らないようにした、あまり高速にならないので、CPU拡張命令を使うのをやめた、64bit版を作った
1.0.0.42015/05/27出力先を選べるようにした、int32の壁にぶち当たるのを回避した
1.0.0.52015/05/30低精度を追加した
1.0.0.62015/07/01ノイズシェーピングフィルタの係数を自分で作った
1.0.0.72015/07/02一部機器で再生できない不具合を修正
1.0.0.82015/11/28特殊文字へ対応
1.0.0.92016/01/29DSD16,DSD32追加、ノイズシェーピングフィルタの係数を外部ファイルから読むようにした
1.0.0.102016/09/302GB以上のWAVファイルを読み込めなかった問題を修正
1.0.0.112020/02/14久しぶりにやる気になったのでVS2019でビルドした

動作環境

Windows 10 Pro 64bit環境で動作を確認しています。

ダウンロード

32bit版ではDSD2048時のタップ数が使用メモリの関係上2047に制限されます。もし、自分で書き換えてタップ数増やす場合には64bit版をお使いください。

起動時にエラーが出るようでしたら、VC++ 2019再頒布パッケージの32bit|64bitをインストールしてください。
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

ライセンス関連

本ソフトはFFTライブラリに FFTW3 (GPL) を用いているため、ソースコードを公開しています。
PCM-DSD_Converter v1.0.0.11 ソースコード (zip)

性能比較

性能比較 Part 1: 24bit(float) Quality Group One
性能比較 Part 2: 24bit(float) Quality Group Two
性能比較 Part 3: 64bit(double) Quality Group One
性能比較 Part 4: 64bit(double) Quality Group Two
性能比較 Part 5: PCM-DSD_Converter DSD Sampling Rate

おまけ

PCMto2xPCM時の折り返し歪み遮断のためのフィルタの係数は自分で変えることが可能です。

FIRフィルタはFIRFilter.datから読んでおり、TAP数は2^N-1でフォーマットは

TAP数K
h(1)
h(2)
…
h(K)

です。

IIRフィルタはIIRFilter.datから読んでおり、Direct Form II方式2次直列型フィルタです。
フォーマットは https://ccrma.stanford.edu/~jos/fp/Direct_Form_II.html を参考にして

次数N

a0
a1
a2
b0
b1
b2

a0
a1
a2
b0
b1
b2

…

です。