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 のページに掲載しています)。
使い方
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フィルタを用いています。
現在把握している不具合
- マルチチャンネルには対応しておりません。処理は正常に実行されたように表示されますが、結果は出たらめです。
- DSD512以上はやや発振しやすいです
バージョン
| 1.0.0.1 | 2015/05/23 | 関係者内リリース |
| 1.0.0.2 | 2015/05/24 | SNSで公開 |
| 1.0.0.3 | 2015/05/26 | Webページで公開、膨大な一時ファイルを作らないようにした、あまり高速にならないので、CPU拡張命令を使うのをやめた、64bit版を作った |
| 1.0.0.4 | 2015/05/27 | 出力先を選べるようにした、int32の壁にぶち当たるのを回避した |
| 1.0.0.5 | 2015/05/30 | 低精度を追加した |
| 1.0.0.6 | 2015/07/01 | ノイズシェーピングフィルタの係数を自分で作った |
| 1.0.0.7 | 2015/07/02 | 一部機器で再生できない不具合を修正 |
| 1.0.0.8 | 2015/11/28 | 特殊文字へ対応 |
| 1.0.0.9 | 2016/01/29 | DSD16,DSD32追加、ノイズシェーピングフィルタの係数を外部ファイルから読むようにした |
| 1.0.0.10 | 2016/09/30 | 2GB以上のWAVファイルを読み込めなかった問題を修正 |
| 1.0.0.11 | 2020/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)
性能比較
 Quality Group One.png)
 Quality Group Two.png)
 Quality Group One.png)
 Quality Group Two.png)

おまけ
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 …
です。