kpid2p.kpi
==========

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

KbMedia Player 2.80beta29 以降が必要です。

このプラグインは DSD ファイルフォーマットの実装を kpidop.kpi と共有して
います。このため、ファイルフォーマットやタグ形式サポートの状況は 
kpidop.kpi と共通です。


DSD -> PCM 変換
---------------

dsd2pcm によって 8:1 変換を行った後、SoX Resampler によってオーディオデ
バイスがサポートするサンプリングレートまでダウンサンプリングしています。

たとえば 2.8MHz の DSD64 なら、以下のように変換しています。

DSD 1bit 2.8MHz
-(DSD2PCM)-> PCM 32bit float 352.8kHz
-(SoXr)-> PCM 16/24/32bit int 44.1/48/96kHz


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

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

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

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

以下の方法で入手したファイルフォーマットで動作確認しています。

- KORG AudioGate v3.0.2, v4.0.2 で生成した DSF/DSDIFF/WSD ファイル
- http://www.2l.no/hires/ でダウンロードできる DSDIFF, DSF ファイル
- e-onkyo music で購入した DSF ファイル
- 1bit オーディオコンソーシアム公式サイトの WSD ファイル


対応 OS
-------

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


タグ情報について
----------------

DSF の ID3v2 タグは KbMedia Player 2.80beta23 以降の本体が対応するように
なりました。そのためフレーム名などの解釈は本体の実装に準じます。

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

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

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

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


ライセンス
----------

kpid2p.kpi - DSD to PCM plugin for KbMedia Player
 Copyright (c) 2016, Autch.net.

dsd2pcm - https://code.google.com/archive/p/dsd2pcm/
 Copyright 2009, 2011 Sebastian Gesemann. All rights reserved.

SoX Resampler Library - http://soxr.sourceforge.net/
 Copyright (c) 2007-13 robs@users.sourceforge.net


kpid2p.kpi は以下の 2 つのソフトウェアを利用しています。

8:1 デシメーションフィルタと 16bit 出力用ノイズシェイパーとして dsd2pcm 
(https://code.google.com/archive/p/dsd2pcm/) を使用しています。本プラグ
インのソースでは kpid2p/include/Downsampler.h と Noiseshaper.h が相当し
ます。
ライセンスは 2 条項 BSD ライセンスです。COPYING.dsd2pcm ファイルをご覧く
ださい。

サンプリングレート変換に SoX Resampler (http://soxr.sourceforge.net/) を
無修正で使用しています。本プラグインのソースでは libsoxr プロジェクト以
下に相当します。
ライセンスは LGPL v2.1 以降です。LICENSE.soxr と COPYING.LGPL ファイルを
ご覧ください。

kpid2p.kpi の上記以外の部分については MIT ライセンスです。COPYING ファイ
ルをご覧ください。


ソースコード
------------

ソースコードは以下の GitHub リポジトリから入手できます。
https://github.com/autch/kpidsd

Visual Studio 2015 Community でビルドしています。


履歴
----

v1.0.0 (65536)
        初版。KbMedia Player 2.80beta30 以降用


----
Autch
autch@autch.net
http://github.com/autch
http://www.autch.net/
