--------------------------------------------------------------------------------
                             - PCM-DSD Converter 改 Ver1.13 -
--------------------------------------------------------------------------------
                                                              DJ TOYO 2026/01/01
【はじめに】

「PCM-DSD_Converter改」はserieril氏作DSD変換ソフト「PCM-DSD_Converter V1.0.0.11」をベースに
内部64Bit Float演算、FIR(高精度)/IIR(低精度)フィルタによるアップサンプリング、
ノイズシェーピング（量子化ノイズ高周波移動）による1BIT変換、フロントエンド(GUI)などの
基本性能・機能はそのままに機能拡張、仕様変更を行った改良版となります。
生成された音の特性、性能についてはserieril氏のHPを参照願います。


主な変更内容について
・WAVだけでなくFLAC/ALAC/RF64/SONY WAVE64に対応
・ID3V2.3形式タグ出力に対応 ※WAV、SONY WAVE64(.W64)、RF64は下記「・タグ」を参照
・DSD出力フォーマットを.DFFから.DSFに変更、これによりID3V2タグの使用が可能
・オーディオ機器との再生互換性向上の為、48KHz系PCMをDSD2.8MHzの倍数に準拠したサンプリングレートで出力可能
・PCMサンプリングレートからDSDサンプリングレート自動選択機能追加
・ギャップレス再生のDSF出力に対応
・RF64/SONY WAVE64ファイルを使用することで4GByteサイズ以上のDSDも作成可能
・発振（クリップオーバー）対策の為、ゲインを下げるゲイン調整、制限機能を追加
・音量を正規化するノーマライズ機能を追加
・最大音量を均一にするためのゲイン制限機能を追加 ※ゲイン調整との掛け合わせも可能
・オプション設定、ウィンドウ位置を保持する機能を追加
・ショートカットへのドラッグ＆ドロップに対応
・DFFをDSF形式にネイティブ変換する機能追加
・その他機能追加、一部仕様変更など


【動作環境】
・Windows 10/11 64BIT版
  ※32BITは対応しておりません
  ※Windows7でもVisualStudio2017/2019ランタイムをインストール擦る事で動作する可能性がありますが、環境がない為未確認です。
    https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads


【仕様】
■入力フォーマット
・ファイル
  WAVE(.wav)
  RF64(.rf64)
  SONY WAVE64(.w64)
  FLAC(.flac)
  ALAC(.m4A)
  DSDIFF(.dff)
・サンプリングレート
  44.1/48/88.2/96/176.4/192/352.8/384/705.6/768KHz
  ※DSDIFFは制限がありません。
・ビットレート
  WAV        :16/20/24/32Bit Integer
              32/64Bit Float
  RF64       :16/20/24/32Bit Integer
              32/64Bit Float
  SONY WAVE64:16/20/24/32Bit Integer
              32/64Bit Float
  FLAC       :16/24/32Bit Integer
  ALAC       :16/20/24/32Bit Integer
  DSDIFF     :1Bit
・チャンネル
  ステレオ(2Ch)のみ
・タグ
  WAV
  FLAC
  ALAC ※カバー画像は、JPEG/PNGのみサポート
  ※RF64/SONY WAVE64ファイルはタグ未対応

■出力DSDフォーマット
・ファイル
  DSFファイル
・サンプリングレート
  DSD64(2.8/3.0MHz)
  DSD128(5.6/6.1MHz)
  DSD256(11.2/12.2MHz)
  DSD512(22.5/24.5MHz)
  DSD1024(45.1/49.1MHz)
  DSD2048(90.3/98.3MHz)
  ※DSDIFFは、元のサンプリングレートが引き継がれます。

【追加変更機能】
本家からの追加変更内容について説明します。

・DSDサンプリングレート選択にAUTOを追加
  AUTOを選択した場合は、PCMサンプリングレートから設定したDSDサンプリングレートで変換を行います。

  デフォルト設定
   44.1 /  48KHz  → DSD64(2.8MHz)
   88.2 /  96KHz  → DSD128(5.6MHz)
  176.4 / 192KHz  → DSD256(11.2MHz)
  352.8 / 384KHz  → DSD256(11.2MHz)
  705.6 / 768KHz  → DSD256(11.2MHz)
  ※「PCM48KHzはDSD3.0MHzで出力する」のチェックボックスを有効にすると48KHz系のPCMは、DSD3.0MHz系のサンプリングレートで出力します。

・2.8MHzの倍数に準拠したDSDサンプリングレートで出力
  48KHz系のデータは44.1KHz系に簡易アップサンプリングを行いDSD変換を行うので
  2.8MHzの倍数に準拠したDSDサンプリングレートで出力されます。
  これによりWalkmanなどの一般的なオーディオ機器でも再生が可能となります。
  簡易の為、一切補間処理はしておらず1回分FIR/IIRフィルタによるアップサンプリングを通さない事になります。
  少しでも音質を気にされる方は、予め高精度のリサンプリングソフトにて44.1KHz系に変換して下さい。

  [アップサンプリング条件]
  48KHz  → 88.2KHz
  96KHz  → 176.4KHz
  192KHz → 352.8KHz
  384KHz → 705.6KHz
  768KHz → 1411.2KHz

・アルバム実行（ギャップレス再生のDSD変換）について
  アルバム実行を行う事でギャップレス再生が行えるDSFファイルの生成が行えます。
  ライブCDなどのノンストップCDはこちらで実行下さい。
  1曲ごとに無音がある普通のアルバムは[全て実行]で行って下さい。
  1曲ごとにゲイン調整/制限が掛かりますのでクリップオーバーしにくくなります。
  またDSDネイティブ再生対応のWalkmanではアルバム名、トラックNoタグが入っていませんとトラックとの間で音が止まりギャップレス再生になりませんので注意して下さい。
  おそらく仕様としてDSD回路をリセットするからだと思います。

  (注意事項)
  ・ギャップレス再生のDSDデータを作成するには全て連続したデータで行う必要があり、リストに登録したアルバム(フォルダ)内のオーディオデータを
    全て結合してDSD変換を行い最後にトラック毎にDSFファイルに分割します。
    その為、巨大な作業ファイルが生成されますので十分な空き容量が必要です。
  ・ゲイン機能も結合したデータで行われます。
  ・アルバム実行を行う場合、アルバム（フォルダ）内に違うフォーマットを混在させないでください。
  以下の[音楽]フォルダを追加した場合の例

  ☆OKの例
  C:\MUSIC
  ├ALBUM1
  │├TRACK1.WAV  44.1KHz/16BIT
  │├TRACK2.WAV  44.1KHz/16BIT
  │└TRACK3.WAV  44.1KHz/16BIT
  ├ALBUM2
  │├TRACK1.FLAC 192KHz/24BIT
  │├TRACK2.FLAC 192KHz/24BIT
  │└TRACK3.FLAC 192KHz/24BIT
  └ALBUM3
    ├TRACK1.FLAC 96KHz/24BIT
    ├TRACK2.FLAC 96KHz/24BIT
    └TRACK3.FLAC 96KHz/24BIT

  ☆NGの例
  C:\MUSIC
  ├ALBUM1
  │├TRACK1.WAV  44.1KHz/16BIT
  │├TRACK2.WAV  44.1KHz/16BIT
  │└TRACK3.WAV  44.1KHz/16BIT
  ├ALBUM2
  │├TRACK1.FLAC 192KHz/24BIT
  │├TRACK2.WAV  192KHz/24BIT ←FLACとWAVの混在は出来ません
  │└TRACK3.FLAC 192KHz/24BIT
  └ALBUM3
    ├TRACK1.FLAC 48KHz/24BIT ←異なるサンプリングレートの混在は出来ません
    ├TRACK2.FLAC 96KHz/16BIT ←異なるビットレートの混在は出来ません
    └TRACK3.FLAC 96KHz/24BIT

  ・また以下の様なALBUM1のファイルがリストに連続追加にならない追加もNGとなります。
  追加
  ALBUM1
   TRACK1.FLAC
   TRACK2.FLAC

  追加
  ALBUM2
   TRACK1.FLAC
   TRACK2.FLAC
   TRACK3.FLAC

  追加
  ALBUM1
   TRACK3.FLAC ← リストにALBUM1が連続にならないのでNG

・ゲイン機能
  調整と制限の方法で音量を下げる事が行えます。
  DSDの変換において発振(クリップオーバー)が発生しないように十分に下げる事を推奨します。
  クリップオーバーした場合、ゲインを下げて変換を試みて下さい。

  ・調整(0.0dB〜-2.0dB)
    全ての曲を一律音量を下げたい場合はこちらをお使い下さい。
    -0.1dBステップで調整が行え、0がソースの音量に近くなりマイナス値が大きい程、音量を小さくして変換します。

  ・制限(-10dB〜-24dB)
    クリップオーバーしそうな音量が大きい曲だけ下げたい場合はこちらをお使い下さい。
    最大音量を指定dBに制限するように音量を調整します。
    マイナス値が大きい程、音量を小さくして変換します。
    -13〜-14dB辺りがクリップオーバーに安全な音量かと思われます。
    音量が制限を超えなかった場合は調整は行われません。
    制限をしてもどうしてもクリップオーバーしてしまう場合は、回避策として調整と掛け合わせする事が出来ます。
    アルバム実行の場合はアルバム全ての曲を1曲として処理が行われます。

    (例)全て実行
    制限-13dB
    TEST1.WAV -12.5dB→-13.0dB ※最大音量が制限である-13dBを超えているので-13dBに音量を下げる
    TEST2.WAV -13.1dB→-13.1dB ※変更なし
    TEST3.WAV -14.0dB→-14.0dB ※変更なし

    (例)全て実行
    制限-13dBと調整-0.5dB掛け合わせ
    TEST1.WAV -12.5dB→-13.0dB→-13.5dB ※最大音量が制限である-13dBを超えているので-13dBに音量を下げる。さらに一律-0.5dB音量を下げる
    TEST2.WAV -13.1dB→-13.1dB→-13.6dB ※制限は掛からないが一律-0.5dB音量を下げる
    TEST3.WAV -14.0dB→-14.0dB→-14.5dB ※制限は掛からないが一律-0.5dB音量を下げる

    (例)アルバム実行
    制限-13dB
    TEST1.WAV -13.1dB→-13.6dB ※TEST2.WAVにより一律-0.5dB音量を下げる
    TEST2.WAV -12.5dB→-13.0dB ※最大音量が制限である-13dBを超えているので一律-0.5dB調整され-13dBに音量を下げる
    TEST3.WAV -14.0dB→-14.5dB ※TEST2.WAVにより一律-0.5dB音量を下げる

・ノーマライズ機能追加
  ゲイン調整前にノーマライズ(音量正規化)にて音量を上げます。※ゲイン制限では使用出来ません。
  左右小さい方の乗数で、正規化しますので左右のバランスが崩れる事はありません。
  しかし近年のデジタルマスタリングされたCDですと振幅がほぼ最大値を使い切っておりますので
  あまり効果は期待出来ません。おまけ機能だと思って下さい。
  またノーマライズで音量を上げてしまうとクリップオーバーの懸念がありますので、使用に注意願います。
  ※32/64Bit Float WAVにおいて、-1〜1の範囲を超えてた場合には救済処置として自動でノーマライズ処理が有効になり-1〜1の範囲内に正規化します。

・DSDIFF(.DFF)をDSFファイルに変換
  DFFファイルをリストに追加して実行すればDSFファイル形式に変換します。
  メモリの許す限り一括で読込み、メモリ上で編集して書込みを行いますので、HDDへのアクセスをなるべく纏めて行うようになり高速に変換が行えます。
  [アルバム実行][全て実行][実行]どの実行ボタンでも結果は同じになりますが、※トラックNoタグが異なります。
  [アルバム実行]だとリストへの追加ルールの条件が適用されますので注意下さい。
  DFFのサンプリングレートの制限は特にありません。元のサンプリングレートがそのまま引き継がれます。
  ネイティブ（ダイレクト）に変換しているだけなので、3.0MHz→2.8MHzにリサンプリング変換すると言った事は出来ません。
  しかしネイティブに変換しますので、変換によるデータ欠落、改変などがない為、音質に影響はありません。
  オーディオ機器によっては再生出来ないサンプリングレートがありますので、リストのサンプリングレートの項目を確認した上で変換下さい。
  DFFのタグは引き継ぐメリットがあまりない為、引き継ぎ対応しておりません。タグのないWAVと同じルールでタグが設定されます。

  以下の設定は無視されます。
  「サンプリングレート」
  「PCM48KHzはDSD3.0MHzで出力する」
  「精度」
  「ゲイン機能」
  「ゲイン調整前にノーマライズを行う」

・タグ
  WAV/FLAC/ALACタグのID3v2タグに引継ぎ可能なタグはDSFファイルに引き継がれます。
  タグのないWAVファイルは、フォルダ名をアルバム、ファイル名をタイトル、変換順をトラックNoとして独自に設定されます。
  [実行]、[全て実行]は常にトラックNo1となります。
  ALACのカバー画像は1枚目がFRONT画像、2枚目以降が全てOTHER画像のようでしたので、2枚目まで引き継ぎます。
  ※RF64/SONY WAVE64(.W64)/DFFファイルは、タグのないWAVファイルと同等のタグが生成されます。

・アルバムタグサフィックス
  アルバムタグがある場合に、ここに入力した文字がアルバムタグの末尾に追加されます。
  これによりプレーヤーにFLACとDSFが混在しても異なるアルバム名として表示させる事が行えます。
  この機能を使用したくない場合は空欄にして下さい。

  (例)アルバムタグサフィックス「(DSD)」
  FLACのアルバム名「テストアルバム」
              ↓
  DSFのアルバム名 「テストアルバム(DSD)」

・出力先ルートパス
  パスを設定するとタグ情報がある場合アルバムアーティスト名／アルバム名+アルバムタグサフィックス、
  複数枚アルバムの場合、アルバムアーティスト名／アルバム名+アルバムタグサフィックス/ディスクNo(Disc *)
  でフォルダを生成してDSFファイルを出力します。
  タグが無い場合は元ソースファイルパスの上位1階層のフォルダを作成して出力します。
  空欄にするとソース元のフォルダに出力します。
  複数枚アルバムはディスク枚数タグが2以上、かつディスクNoタグが設定されている必要があります。

  (設定例)
  出力先ルートパス
  C:\DSD

  (例)1枚組アルバム
  Album:テストアルバム
  Album Artist:テストアルバムアーティスト

  1.TEST.FLAC
    ↓
  C:/DSD/:テストアルバムアーティスト/テストアルバム/1.TEST.dsf


  (例)2枚組アルバム
  Album:テストアルバム
  Album Artist:テストアルバムアーティスト

  1.TEST_disc1.FLAC		Disc No:1 / Disc数:2
  1.TEST_disc2.FLAC		Disc No:2 / Disc数:2
    ↓
  C:/DSD/:テストアルバムアーティスト/テストアルバム/Disc 1/1.TEST_disc1.dsf
                                                 └/Disc 2/1.TEST_disc2.dsf

・変換完了時の処理の機能を追加
  変換完了後、選択により以下の動作をさせる事が出来ます。
  ※この機能を使う場合は、出力ファイル上書きを有効にして下さい。
  ※クリップオーバーが発生した場合は機能しません。

  何もしない    ：アプリは継続して実行されます。
  シャットダウン：シャットダウン状態に遷移します。
  スタンバイ    ：スタンバイ状態に遷移します。
  休止          ：休止状態にに遷移します。
  終了する      ：アプリを終了します。

・コマンドライン対応
  ショートカットに対応ファイルをドラッグ＆ドロップする事で
  リストに追加された状態で本アプリが起動します。
  オプション引数はありません。

・ファイルリスト画面のキー操作対応
  CTRL+A：全選択
  DELETE：選択行を削除

・変換完了のお知らせ機能
  変換完了時に音で知らせるようにしました。

・スリープ抑止
  変換中はスリープに入らないようにしました。
  また進捗ダイアログ画面「モニタOFF」ボタンにてモニタの電源OFFが行えます。
  ※何故か数分後にモニタがONになる場合があります。原因不明です。申し訳ありません。

・ファイル名のサフィックス廃止
  本家は「〜_DSD64.dff」などのDSDサンプリングレートが分かるファイル名が付与
  されていましたが廃止しました。

・「エンコーダーした人」タグの設定
  初回起動時に作成者(エンコーダーした人)の設定を行います。
  OKを押した場合、ログインユーザー名が設定され、キャンセルした場合ダイアログタイトルに表示される「DSD-PCM_Convertor 改 Ver*.**」が設定されます。
  後から変更可能です。
  個人のプライバーシーで判断して設定下さい。
  なおソフトウェアタグ(TSSE)にも「DSD-PCM_Convertor 改 Ver*.**」が設定されます。

・DSD変換のクリップオーバー
  アルバム実行  ：クリップオーバーした場合は、即座に停止します。
                  複数アルバム変換において停止させたくない場合は、複数アプリを起動してアルバムごと変換するか
                  INIファイルのDsdClipOverChkを0にして下さい。※ただしクリップオーバーした曲は正しく再生する事は出来ません。
  全て実行、実行：クリップオーバーした曲はスキップし、リストに残します。

・ノイズシェーピング8次楕円フィルタ係数のファイル仕様について
  PCM-DSD_Converter V1.0.0.11に準拠します。
  NoiseShapingCoeff.datファイルを修正する事で独自に設計出来ます。
  ただしファイル仕様が公開されておりません。
  本家含むソースは公開されておりますので分かる方はお調べ下さい。

・FFTW3ライブり
  fftw-3.3.10に差し替え。

・FLACライブラリ
  以下のVerをビルドした物を使用
  ・FLAC Ver1.5.0 Windows版
  ・Ogg Vorbis(libogg Ver1.3.6)

・ALACライブラリ
  Apple Lossless Audio Codecを使用

・FAAD2ライブラリ
  Freeware Advanced Audio (AAC) Decoder 2からkobarinさんがALAC対応した、mp4ff関係を使用。
  私の方でC4996対応させて貰いました。

・mp3infp/u Ver.2.55
  WAV(RIFF)タグに関する部分のみ使用させて貰いました。
  私の方でC4996対応させて貰いました。

【インストール、アンインストール】
インストーラーはありません。
アクセス可能な任意のフォルダに解凍を行い「PCM-DSD_Converter.exe」を起動して下さい。
アンインストールは削除するだけです。
レジストリは使用していません。


【使用方法など】
初回起動時に、作成者(エンコーダした人)タグにログインユーザー名にするかソフトウェア名にするか問い合わせダイアログ、簡易説明のダイアログが表示されます。
WAV/W64/FALC/DFFファイルを画面のリストにドラッグ＆ドロップを行い、[全て実行]ボタンを押下する事で変換が開始されます。


【DSDについて】
DSD64(2.8MHz)の意味についてですが、
これは44.1KHzを64倍すると2822.4KHz(2.8MHz)となる為、DSD64もしくはDSD2.8MHzと言う意味になります。
5.6MHzなら128倍、11.2Hzなら256倍となります。
48MHzですと、64倍は3072KHz(3.0MHz)となりますが、殆どのオーディオ機器はこれらの周波数を再生出来るように作られておりません。
PCM-DSD_Converter改では44.1KHz系に簡易アップサンプリングする事で2.8MHz系に準拠して出力します。
またJEITA「ＤＳＤ表記ガイドライン」では、DSD64と言った倍数の表記は推奨せずDSD2.8MHzと表記する事となっておりますが
本ソフトでは3.0MHz系の出力も行える為、倍数表記のが分かりやすい為、DSD64などの表記としております。

PCM-DSD_ConverterのDSD変換エンジンとして、
最初に内部64Bit Floatに変換を行います。
次にPCMのサンプリングレートがDSDのサンプリングレートになるまで、2倍ずつアップサンプリングを行った後
ノイズシェーピングによる量子化ノイズを聴覚範囲外（高域）へ移動を行い、1bit(DSD)にしています。
アップサンプリングのフィルタを、高精度ではFIRフィルタ、低精度ではIIRフィルタにより
本来のアナログ波形に近い状態に復元します。

個人的見解になりますが、DSDにすることでPCMに比べて解像度が高くなり、滑らかな音にする事が出来ます。
解像度が高くなる為、音が歪難くなり硬さも取れます。

録音ソースの状態、再生機器の性能にもよりますが、ボリュームを上げても聞き疲れしない音で聞くことが出来きると思います。
歪まないベースの音、スネアドラムの抜け、クリアなハイハットやクラッシュシンバルなどが分かりやすいかと思います。
DSDネイティブ再生可能な環境でご視聴頂ければと思います。

デメリットとしては変換時間が掛かる事、ファイルサイズが肥大化する事になります。
WalkmanなどリアルタイムDSD変換機能が搭載されるプレーヤーもございますので、どちらが良いか検討頂くと良いと思います。


【ビットとダイナミックレンジ(dB)の関係について】
PCMのサンプリングレートとビットについては知れ渡っていると思います。
ご存知でなくてもナイキスト周波数などで調べれば簡単にご理解頂けるかと思います。
ここではビットとダイナミックレンジ(dB)について軽く説明させて頂きます。

DSD Conveterでは内部64Bit Floatで全て処理を行っております。
波の高さ（サンプリングした量子化）をビット深度で表します。
0を中心とし、波の高さの範囲を-1〜1して、どのくらいの分解能で表現出来るか？がビット深度になります。
その為、ビット数が大きい程、細かい強弱が表現出来る事がご理解頂けるかと思います。

ビット深度とダイナミックレンジの関係になりますが、
CDは16BITで表現されております。これは-32768〜32767の65536段階で表す事が出来ます。
24BITなら-8388608〜8388607の16777214(約1670万)段階となり16BITに比べより細かい強弱を再現出来る事となります。
1BITは6dBの表現する事が出来るそうです。※何故6dBなのかは私も詳しくは説明出来ませんのでネットでお調べ願います。
BITは2のn乗になりますのでBITが増えるごとに2倍となります。
dBで2倍は6dBという事になりますので1BITの表現は6dBという事です。

よってダイナミックレンジは以下のようになります。

16Bit Integer × 6dB = 96dB
20Bit Integer × 6dB = 120dB
24Bit Integer × 6dB = 144dB
32Bit Integer × 6dB = 192dB
32Bit Float   × 6dB = 1680dB
64Bit Float   × 6dB = 12606dB

小数点(Float)のダイナミックレンジですが理論値として以下のような考え方になります。
IEEE浮動小数点の規格として、
32Bit Float:符号1Bit、指数部 8Bit、仮数部23Bit
64Bit Float:符号1Bit、指数部11Bit、仮数部52Bit
となっております。

32Bit Floatの場合、指数部8Bitは0〜255の256BIT扱いとなり ※実際には255はエラー扱いです。
これに残りのBITを足すと280Bitとなりますので以下の計算となります。

280Bit × 6dB = 1680dB

64Bit Floatの場合も同様に
2048Bit + 53Bit = 2101Bitとなり

2101Bit × 6dB = 12606dB

と言うダイナミックレンジでDSD Converterは処理している事となります。
なお現在のCPUでは80Bit Floatまで扱う事が出来ますので
もう少し精度を上げる事が可能ですが、
高速なSSE関係の命令は64Bit Floatまでしかサポートされてない為、処理が重くなると思われます。※FFTW3ライブラリがSSE関係の命令を使用している為


【主な開発機材】
自作PC        ：Core i7-13700K + 32Gメモリ、ASUS TUF GAMING Z790-PLUS WIFI、Windows 11 Home
開発ツール    ：Visual Studio Community 2022
                PCM-DSD_Converter Ver1.0.0.11
                libfftw3-3 Ver3.3.10
                libFlac Ver1.5.0 Windows版
                libogg Ver1.3.5
                Apple Lossless Audio Codec
                Freeware Advanced Audio (AAC) Decoder 2
タグ編集ソフト：「STEP_K Ver1.05a」「STEP_J Ver1.04」「MP3Tag」「Sony Music Center for PC」など
再生ソフト    ：「Sony Music Center for PC」「KbMedia Player」など
プレーヤー    ：SONY Walkman NW-ZX507/NW-WM1AM2


【補足、問題点】
・W64ファイルの検証が不十分かも知れません。予算がないので高級なソフトが買えないので(T_T
・当方の環境では384KHzを超えるサンプリングレート、64Bit Int/Floatの確認が行えません。
  大丈夫だとは思っておりますが、ご了承願います。
・アップサンプリングが簡易で行っている為、1回分FIR/IIRフィルターが掛からない事になります。
  何とかしたいのですがスキル不足で実装出来ず申し訳ありません。
  音質が気にされる方は高精度で行えるリサンプリングソフトにて44.1KHz系に変換願います。
・WAVのRIFFタグ読込みはmp3infp/uの仕様の為、2Gまでのファイルしかタグを読み込めません。
  またWAVだけRIFFタグが無ければID3v2タグを独自に設定してDSF出力します。
・W64はタグであるサブチャンクはWAVEと同じタグみたいなので、何とか実装はしたいと思っております
  編集ソフトもありませんと意味がないのでSTEP_Jの対応も必須になりますし・・・そもそも需要がどれ程あるか。
・ID3v2ユーザー定義(TXXX)タグに変換したファイルとフォーマットを定義し、元ファイルが分かるようにしました。
  (例)「Original File:TEST.WAV(44.1KHz/16Bit)」
・アルバム実行って名前が宜しくないですね。初見の人はこちらで実行すると思います。
  ギャップレスアルバムはこちらで変換して欲しいのですが良い名称が思いつきません。

【将来やるかも？】
・リファクタリングしたい
  ソースが醜くなってしまいましたので再設計し、
  出来れば対応オーディオファイルをプラグイン化して対応オーディオファイルを追加出来るようにしたい
  さらにDSD変換エンジンもプラグイン化出来れば別のユーザーが作ってくれるかも知れない(笑)
・SONY WAVE64を一応対応したのでタグ対応したい

【隠し機能】
特に変更不要な機能為、画面からは使えない機能があります。
INIファイルを直接書き換えて起動する事で使用出来るようになります。
ただしINIファイルについて熟知されてない方はこの作業は行わないで下さい。

・変換完了通知
COMPLETIONNOTICE=1
0:通知なし
1:音で通知            ※complete.wavファイルを差し替える事で任意の音に変更可能です。
2:モニタ電源ONで通知  ※モニタがOFFになってた場合、ONにします。うまく行かないPC環境があるので隠しモードとします。
3:1と2の両方で通知

・前回のウィンドウ位置による起動

MonitorBorder=0

マルチモニタ環境において縦横などにより画面外に表示されて起動する場合は
1に変更する事で一番近いモニタ内に収まるように起動します。

・DSD変換中のクリップオーバーチェック

DsdClipOverChk=1

0にする事で、DSD変換中のクリップオーバーを無視します。※Ver1.02以前と同じ動作
アルバム実行においてエラーで止めたくない場合に活用下さい。
ただしエラーが発生した場合データは正しく作られておりません。


【最後に】
素晴らしいソフトを開発、ソースを公開していますserieril氏に
「PCM-DSD_Converter」の改造、公開の許可を頂けた事、
また氏にはお忙しい所、不明点についてアドバイスも頂いた事について
この場を借りて感謝させて頂きます。

元々はID3V2タグが追加出来るDSF対応だけして終わりの予定でしたが、
FLAC対応など色々欲が出てしまいました。
空いた時間を見つけてはこつこつ開発を行い、
オーディオが好きなだけで、デジタル音声処理は一切分からずプログラミングした為、
色々苦労したのが現実です。
データサイズが大きくなるのでデバッグが大変でした。
オーディオ関係のソフトを作られている方には脱帽です。
DSD変換エンジンについてスキルがありませんので、
専門的な回答は出来ない状況です。申し訳ありません。

ソースに関しましても、DSF、FLAC、タグなど初めてで
こつこつ検証しながらの実装だった為、1本ソースとなってしまい・・・
そもそも作者様はWAV対応のみだった作りに、私が強引にFLACに対応させたので
ソースが醜くなってしまいました。
ソース公開しますが醜い事をご了承願います。


・serieril氏「PCM-DSD_Converter」
PCM-DSD_Converter本家のサイトになります。
ソースも公開されております。
http://pcmdsd.com/Software/PCM-DSD_Converter.html
https://github.com/serieril/PCM-DSD_Converter

・kobarin氏「STEP_K(STEP_M 1.054f のUNICODE 対応版) Version 1.05a」
STEPのUNICODE対応版になります。
DSFファイル対応は私がプラグインを実装させて頂きました。
カバージャケット画像の編集は行えませんがとても多機能かつ便利なタグ編集ソフトです。
ソフトウェア、エンコーダー者のカラムを表示有効にする事で本ソフトウェアでDSF変換した情報が分かるようになります。
http://hwm5.gyao.ne.jp/kobarin/

・jarupxx氏「STEP_J」
jarupxx氏がSTEP_Kを引き継ぎ、高DPI環境向けなど対応されました。
https://github.com/jarupxx/STEP_J/releases

・kobarin氏「KbMedia Player」
PCにてDSD再生確認に使用しました。
http://hwm5.gyao.ne.jp/kobarin/

・MP3Tag
https://www.mp3tag.de/en/
タグのデバッグに使用しました。

・Music Center for PC
SonyのWalkman用音楽管理ソフトになります。
PCにてDSD再生、タグ確認に使用しました。
こちらとWalkmanでの再生確認をしております。
https://musiccenter.sony.net/ja/

・Sound Engine Free
リマスタリング用に使ってます。
昔のCDがマスタリングプロセス、オートマキシマイズだけで蘇ります。
リサンプリングも行えます。
デバッグ用に16/24/32bit Int、32Bit FloatのWAVEデータ作成、サイン波形作成などに使いました。
https://soundengine.jp/

・WaveLab Elements 8
20BITのWAVデータ作成に使用しました。
https://japan.steinberg.net/jp/products/legacy_products/wavelab_8/system.html

・iTune for Windows
ALACのエンコードに使用しました。
https://www.apple.com/jp/itunes/

・spwave
同じくテスト用のWAV作成に使いました。
http://www-ie.meijo-u.ac.jp/~banno/spLibs/spwave/index-j.html

・Wave Pcm Upconvert Player
アップサンプリング、高域補間処理などの機能を持った再生ソフトですが
WAV/FLACに変換出力も行えます。
高精度なリサンプリングで44.1Khz系にしたい場合はこちらで行うと良いかと思います。
DSFからWAVのエクスポート機能にてDSFファイルの整合性チェックに使用しました。
http://wpup.html.xdomain.jp/

・DSF File Format(DSFFileFormatSpec_E.pdf)
SONYが提唱するDSFのファイル仕様になります。
serieril氏のサイト、他のサイトなどと併用して参考にしました。
https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf

・DFF File Format(DSDIFF_1.5_Spec.pdf)
DFFのファイル仕様になります。
DFFからDSFに変換する機能の実装の際に参考にしました。
http://www.sonicstudio.com/pdf/dsd/DSDIFF_1.5_Spec.pdf

・JEITA「ＤＳＤ表記ガイドライン 」
DSDの表記ガイドラインです。
DSD64ではなくDSD2.8MHzと表記する事を推奨しています。
本アプリではDSD3.0MHzもある為、DSD64表記を主体にしております。
https://home.jeita.or.jp/page_file/20151217172302_rQWqAHsR9X.pdf

・FFTW3ライブラリ ※FFTW 3.3.10
Visual Studio2010用のビルド環境がありましたので、
それをベースにVisual Studio 2022で3.3.10をビルド出来る環境を構築しました。
http://www.fftw.org/
http://www.fftw.org/install/windows.html

・CMake
FLACのビルド行うにはFLAC 1.4.0以降からCMakeが必要になりました。
CMakeでVisualStudioビルド構築を行う行います。
https://cmake.org/

・FLAC(FLAC - Free Lossless Audio Codec)
FLACのライブラリ
https://xiph.org/flac/
https://ftp.osuosl.org/pub/xiph/releases/flac/

・Ogg Vorbis (libogg)
FLACライブラリのビルドに必要です。
※FLACのビルドにおいて非サポートにすればビルドは出来ると思います。
※本ソフトではOggは使っていませんので本来は不要です。
https://xiph.org/downloads/

・Apple Lossless Audio Codec
ALACのエンコード／デコードライブラリになります。
https://macosforge.github.io/alac/

・FAAD2(Freeware Advanced Audio (AAC) Decoder 2)
https://www.audiocoding.com/index.html

・mp3infp/u Ver.2.55
https://github.com/k-takata/mp3infp/releases

・Visual Studio 2017/2019/2022用 Microsoft Visual C++ 再頒布可能パッケージのダウンロード。
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads
https://visualstudio.microsoft.com/ja/downloads/#other-ja-family
※x64: vc_redist.x64.exe



【著作権、免責】
    本アプリは無償のフリーソフトウェアとします。
    元ソースの著作権は「serieril」氏が有し、
    改変に関する部分の著作権は作者であるDJ TOYOが有します。

    本プログラムを使用したことにより生じたいかなる障害、損害
    において作者は一切責任を負わないものとします。
    各自の責任において使用して下さい。

    作者は、本アプリのバグが発見された場合においても、その修正、バージョンアップの
    義務を負わないものとします。

    ソースはオープンソースと致しますので、そのルールに沿った形でご自由に改変、ご使用下さい。
    ソースはGitHubから取得下さい。

    作者である私は、元ソース、改変したソースに関する問題の義務を負わないものとします。
    使用、公開する場合は各自が責任持って対応して下さい。


【PCM-DSD Converter 改】ダウンロード
  Vector
  https://www.vector.co.jp/

  GitHub
  実行ファイル
  https://github.com/DJ-TOYO/PCM-DSD_Converter/releases
  ソース
  https://github.com/DJ-TOYO/PCM-DSD_Converter


【連絡】
  不具合、要望などご意見ございましたら
  対応出来るか分かりませんが下記にて連絡下さい。

  TOYOのブログ ※アメーバブログ
  https://ameblo.jp/dj-toyo/

  GitHubのissueに投稿下さい。
  https://github.com/DJ-TOYO/PCM-DSD_Converter



【履歴】
  Ver1.13 2026/01/01
  ・RF64(.rf64)ファイルに対応
  ・WAV/SONY WAVE64の互換性向上
  ・音量調整であるゲイン(dB)の初期設定を調整-1.dB0から制限-13dBに変更
  ・変換完了時に表情されるメッセージボックスを廃止
  ・FLAC Ver1.5.0に差し替え
  ・Ogg Ver1.3.6に差し替え

  Ver1.12	2023/7/25
  ・FLAC Ver1.4.3に差し替え

  Ver1.11	2023/7/01
  ・DSD2048でアルバム実行を行うとDSD64で変換される不具合を修正
  ・最新のVisualStudio2022に差し替え

  Ver1.10	2023/5/19
  ・FLAC Ver1.4.2に差し替え

  Ver1.09	2023/5/15
  ・iniファイルの直接変更が必要だった機能は一部を除いて全て画面から変更が行えるようにした。
    ・サンプリングレートAUTOの設定画面を追加して変換するDSDサンプリングレートを選択出来るようにした。
    ・作成者(エンコーダーした人の)のタグを画面で変更出来るようにした。
  ・ゲイン制限モードのアルゴリズムを見直しした。
  ・ゲイン制限モードにおいてクリップオーバーしてしまうデータの対策用に調整も掛け合わせ出来るようにした。
  ・リスト件数をリストの右下に表示するようにした。
  ・進捗ダイアログのパス表示を見やすくするように変更した
  ・FLAC Ver1.3.4に差し替え
  ・FFTW3 Ver3.3.10に差し替え
  ・最新のVisualStudio2022に差し替え
  ・軽微な変更
  不具合
  ・アルバム実行(ギャップレス変換)のゲイン制限において、指定した音量(dB)で正しく動作していなかった。
  ・軽微な修正

  Ver1.08	2021/9/15
  ・SONY WAVE64(.w64)ファイルに対応 ※TAGは未対応
  ・ゲイン制限モードを実装
  ・ゲインの計算をDSD変換アルゴリズムで行っていたがPCMで行うようにした
  ・FFTW3 Ver3.3.9に差し替え
  ・Ogg Ver1.3.5に差し替え
  ・最新のVisualStudio2019に差し替え
  不具合
  ・軽微な修正

  Ver1.07	2020/7/1
  機能・仕様変更
  ・ゲイン調整をdBに変更、0.0〜-2.0dBの範囲を-0.1dBステップで選択出来るようにした。
  ・アルバム実行の判定にディスクNoが同じである事のチェックをするようにした。
  ・リストビューにディスクNo、ディスク数を追加、レイアウトを一部変更。
  ・出力先パス設定時、複数枚アルバムの場合、アルバムアーティスト名／アルバム名/ディスクNoでフォルダを生成するようにした。
  ・ID3v2タグユーザー定義(TXXX)タグにどの設定で変換したか分かるように変換に関するオプションを出力するようにした。
    ・精度(フィルター)のモード
    ・ゲインのdB設定
    ・ノーマライズのOn/Off
  ・変換完了時の処理(シャットダウン、スタンバイ、休止状態、終了する)の機能を追加
  不具合
  ・変換中にキャンセルしたときに「空き容量がない」エラーが表示される場合があった。

  Ver1.06	2020/5/21
  機能・仕様変更
  ・PCM-DSD Converter v1.0.0.11のFIR/IIRフィルターロジック相当に差し替え
    ※NoiseShaping8thCoeffs.datファイルは廃止となり、代わりにNoiseShapingCoeff.datとなります。
  ・出力先ルートパスかつタグ（アルバムアーティスト/アルバム）がある場合は、
    [出力先ルートパス/アルバムアーティスト/アルバム]のディレクトリで出力するようにした。
  ・リストビューにトラックNo、タイトル、アルバム、アーティスト、アルバムバーティストを表示するよにした。
    ※WAVタグ(RIFF)にはアルバムアーティストがありませんのでアーティストと同じ内容が表示されます。
  ・INIファイルに保存されるリストビューのカラム幅の最小値を内部で保持するデフォルトの幅で制限していたが制限解除した。
  ・リストビューのカラム区分をダブルクリックする事でカラム幅をデフォルト幅に戻すようにした。
  ・タスクバーにもプログレスバーを表示するようにした。
  ・Visual Studio Community 2019に移行
  ・FLAC Ver1.3.3に差し替え
  ・Ogg Ver1.3.4に差し替え
  不具合
  ・コマンドラインに渡した(ショートカットにD&Dした)ファイル／フォルダが正しく読み込まれない問題を修正
  ・アルバムモードの変換中にキャンセルするとメモリリークする問題を修正
  ・初回起動時にユーザー名取得に失敗する問題があった。
  ・その他不具合修正

  Ver1.05   2019/10/7
  機能・仕様変更
  ・ALACに対応  ※拡張子は.m4a
  ・WAVのタグ(RIFF)に対応 ※2G未満のファイルのみ。
  ・20BITのWAVに対応 ※ALACが20BIT対応なので対応しました。
  ・「ファイルサイズ」のカラムの内容がバラバラだったのでWAV、FALC、ALAC、DFFともに内容を同一にし「サンプル数」に変更、
    ※サンプリングレートで割ると再生秒数になります。
  ・ID3v2ユーザー定義(TXXX)タグに変換したファイルとフォーマットを定義するようにした。
  不具合
  ・ドラッグ＆ドロップでフォルダを追加した場合、DFFが追加されなかった問題を修正

  Ver1.04   2019/8/25
  機能・仕様変更
  ・DFFをDSFファイル形式にネイティブ変換機能追加
  ・WAV/DFFを変換した場合、ID3v2タグを独自に設定するようにした
  ・ノイズシェーピング8次楕円フィルタ係数を外部ファイル(NoiseShaping8thCoeffs.dat)にした
  ・リストのカラム位置を保存するにした ※デフォルト幅サイズ以下にした場合は、次回起動時にデフォルト幅に戻されます。
  ・ディスクの空きがなかった場合のエラー対応
  不具合
  ・DSD2048で変換するとDSD64で変換されてしまうデグレを修正
  ・進捗バーが伸びたり縮んだりする事がある問題を取り合えずの方法で修正

  Ver1.03   2019/7/9
  機能・仕様変更
  ・アルバム実行(ギャップレス対応)モードを追加
  ・DSD変換のクリップオーバーでエラー対応
  ・4K高解像度モニタと拡大縮小を100%以外にした場合の対策として高DPI認識をしないにした。
  ・FFTW3ライブラリをVer3.3.5→3.3.8に差し替え
  不具合
  ・DSD(IIR/FIRフィルタ)変換において最後のデータが正しく処理していなかった問題を修正
  ・変換中のキャンセルでテンポラリファイルが残ってしまう問題を修正
  ・その他

  Ver1.02   2019/5/11
  機能・仕様変更
  ・簡易リサンプリングの折り返し問題対策としてダウンサンプリングではなく簡易アップサンプリングにした。
    アップサンプリングにすることで折り返し問題が発生しなくなる為。※48KHz系を2.8MHz系のDSDで出力する場合の問題
  ・以下のタグに対応
    ・エンコーダー者
    ・著作権
    ・作詞者（作詞家）
  ・本家は48KHz系のPCMは3.0MHz系のDSDで出力していたが、その機能を復活させた。
  ・Verの桁数の扱いを見直し。表記をVer9.999→Ver9.99の3桁とし4桁目はβ版用とした  ※今回からVer1.02と表示されます。
    β版が公開された場合はVer9.99β9と表示されます。
  ・32BITアプリからのD&D対応 ※VS2017からの仕様変更の問題だと思われるが。
  ・Unicodeファイル名対応
  ・「出力ファイル上書き」モードを追加、有効にすると出力先に同名DSFファイルがある場合に、強制上書きします。
  ・進捗バーに変換中のDSDサンプリングレートを表示するようにした。
  ・進捗バーにモニタをOFFにするボタンを追加

  Ver1.001  2019/3/25
  機能・仕様変更
  ・出力先ルートパスが空欄の場合は、入力ファイルのフォルダに出力するようにした
  ・データ読み込み時、クリップオーバーのデータがあった場合、自動でノーマライズを行い、補正するようにした。
    ※32/64Bit Floatデータのみで、Integer型では発生しないはずです。
  不具合
  ・ID3v2タグの出力に不具合があったので修正
  ・出力先のフォルダ作成がおかしくなる事があるのを修正
  ・FLACのDISCTOTAL、TRACKTOTALフィールドタグの読み出し及びID3v2出力が正しく実装されていなかった。

  Ver1.000  2019/2/10
  ・公開
