kpidop.kpi v1.0.0 登録

DSD (Direct Stream Digital) 音源を DSD over PCM (DoP) 方式で再生するための KbMedia Player プラグインです。対応する拡張子は dsf, dff, wsd です。

KbMedia Player 2.51beta14 以降が必要です。

対応 DSD DAC

DoP Version 1.0 以降をサポートする DSD DAC で動作します。本プラグインの実装は Version 1.1 の仕様に従っています。

5.6MHz 以上のサンプルレートには PCM サンプルレートを上げる方法で対応します。マーカ 0x06/0xf9 を使う方式には対応していません(デバイスを持っていないので)。

ステレオ以上のチャンネル数には DAC が対応している必要がありますが、KbMedia Player の構造上チャンネル構成を伝える方法が無いため、データの想定通りのチャンネル配置では鳴らないことがあります。

Roland UA-M10FOSTEX HP-A4 (thanks KOH) で確認しています。

KbMedia Player の構成

このプラグインが出力した DoP フレームをビットパーフェクトを守ったままデバイスまで伝える必要があるため、KbMedia Player 本体からのプラグイン出力ビット数要求は無視し、常に 32bit INT で出力しようとします。

2.51beta10 以降の KbMedia Player は常に 64bit float で演算をするようになっているため、ボリュームその他が無効になっている限り、DoPフレームの 24bit/32bit INT を演算誤差なくデバイスに出力できるはずです。

バイスによっては 24bit INT での出力が必要になるかもしれません。次の「デバイス設定」をご覧ください。

ASIO/WASAPI サポートが必要です。waveOut/DirectSound では動作しません。

開発及び動作確認は 2.51beta14, 2.51beta19 で行っています。

バイス設定

お使いのデバイスに合わせて、KbMedia Player の「デバイス設定」ダイアログで以下の項目について設定を行ってください。

  • バイスインタフェース:ASIO か WASAPI を選択。両方使えるデバイスもあるし、どちらかでないと使えないデバイスもあるらしい。
  • バイスへの出力ビット数:32bit INT と 24bit INT だけをチェック、これら以外は外す。
  • プラグインへの出力ビット数要求
    • (2.51beta14 まで)24bit INT か 32bit INT を選択。どちらが使えるかはデバイスによって異なる。プラグインは両方に対応する。
    • (2.51beta15 以降)kpidop.kpi と同じディレクトリに kpidop.ini ファイルを作り、以下の内容を書きます。このファイルを置かないと 32bit INT で出力します。
[kpidop]
BitsPerDOPFrame=24または32

バイスによって動作する組み合わせは変わるようですので、試行錯誤する必要があるかもしれません。

ASIO4ALL 経由では使えないようです。ASIO サポートのないデバイスでは WASAPI をおすすめします。

サポートしない機能

以下の機能はオフにしてください。これらはプラグイン出力を加工するため、デバイスが DoP フレームとして認識しなくなります。

  • ボリューム→100% に戻す
  • エコー
  • ピッチスケール・テンポチェンジ
  • クロスフェード
  • リプレイゲイン

フェードアウトはそれを実行した瞬間から DoP フレームでなくなるため、ノイズになったり音が出なくなります。
スペアナは DoP ストリームを無理やり分析しようとするため、常に低域がちょっと動くだけになります。

このプラグインで再生中のとき、「曲の長さ」の PCM パラメータは

176400Hz(2.8224MHz のとき)または 352800Hz(5.6448MHz のとき)
24bit または 32bit(プラグインへの出力ビット数要求に対応)
mono または stereo

のように表示されます。

対応ファイルフォーマット

以下のファイルフォーマットとバージョンに対応します。

  • ソニー DSF v1.01
  • フィリップス DSDIFF v1.5
  • 1bit オーディオコンソーシアム WSD v1.1

DSDIFF フォーマットにおける DST (Direct Stream Transfer) コーデックには対応していないため、SACD から吸い出した音源の再生はそのままではできません。

KORG AudioGate v3.0.2 で生成した DSF/DSDIFF/WSD での動作を確認しています。

http://www.2l.no/hires/ でダウンロードできる DSDIFF ファイルで動作を確認しています。

e-onkyo music で購入した DSF ファイルで動作を確認しています。

1bit オーディオコンソーシアム公式サイトの WSD ファイルで確認しています。

対応 OS

64bit ファイル API を使用するため、Windows 2000 以降が必要です。リンカーの設定上は Windows XP 以降に対応すると設定してビルドしていますが、Windows 7 / 8.1 / 10 Preview 以外では確認していません。

シークについて

DSD DAC の機種によってはシーク時にプチノイズが乗ることがあります。KbMedia Player はシーク中にデータが途切れる(PCM としては正しいが、DoP としては無音データを流すべき)ため、これを回避する手段はありません。

タグ情報について

DSF の ID3v2 タグには自力で対応します。ID3v2 のフレームと KbMedia Player タグ情報との対応は以下のとおりです。

  • TIT2 => タイトル
  • TPE1 => アーティスト
  • TALB => アルバム
  • TCON => ジャンル
  • TSSE => コメント
  • TRCK => トラック番号
  • (ID3v2.3 のとき)TYER, TDAT, TIME => 日付
  • (上記が見つからないか、ID3v2.4 のとき)TDRC または TDRL => 日付

ID3v2 タグの動作確認には、KORG AudioGate で生成される DSF と e-onkyo music で購入した DSF を使っています。

DSDIFF では、Edited Master Information チャンクにある DITI と DIAR チャンクが、それぞれタイトルとアーティストに対応します。COMT チャンクがあれば、その中の最初のものがコメントとして使われます。

DSDIFF の仕様に文字コードの規定がないので、これらが漢字を含むときはタグ情報自体が記録されていないことがあります。もしあれば本プラグインとしては Shift_JIS として解釈します。

WSD では、タイトル、アーティスト、アルバム、ジャンル、コメント、日時に対応します。WSD v1.1 の仕様には文字コードの規定がないので、これらが漢字を含むときはタグ情報自体が記録されていないことがあります。もしあれば本プラグインとしては Shift_JIS として解釈します。

ライセンス

kpidop.kpi - DSD over PCM plugin for KbMedia Player
Copyright (c) 2015, Autch.net.

kpidop.kpi は MIT ライセンスで配布されます。配布 zip に同梱の COPYING ファイルをご覧ください。

ダウンロード

GitHubからダウンロード