==============================================================================
                     PMD for Windows 「PMDWin」 Ver.0.35
                        Copyright & Programmed by C60
==============================================================================


------------------------------------------------------------------------------
▼はじめに

    このプログラムは、PC9801 シリーズの FM 音源ドライバ「PMD98」の曲データを
    Windows 上で聞くための dll です。PMD98 のすべての曲データ(PMDB2, PPSDRV,
    P86DRV, PPZ8)に対応しています。
    本 dll だけでは演奏させることはできません。
    別途プレイヤを入手してください。


------------------------------------------------------------------------------
▼インストール、アンインストール

    ａ）インストール
        PMDWin.dll を c:\windows\system または c:\winnt\system32 または
        プレイヤと同じディレクトリに置いて下さい。
        YM-2608 のリズム音源を鳴らす場合は、以下の wave ファイル
        (44100Hz, 16bit, monoral。PCM 形式以外は使用できません)を
        プレイヤで指定したディレクトリに置いてください。

            2608_BD.WAV         ;バスドラム
            2608_SD.WAV         ;スネアドラム
            2608_HH.WAV         ;ハイハット
            2608_TOP.WAV        ;シンバル
            2608_TOM.WAV        ;タム
            2608_RIM.WAV        ;リムショット
        
        
    ｂ）アンインストール
        本 dll を Explorer 等で削除してください。
        プレイヤ、wave ファイル等も不要なら削除してください。


------------------------------------------------------------------------------
▼動作確認環境

    自作ＡＴ互換機（Asustek P4B266-E, Pentium4 1.8GHz, ELSA GLADIAC FX 534,
                    AOpen AW744 Pro, etc.）
    
            ＋ WindowsXP SP1                  合成周波数＝55kHz
            ＋ Windows98                      合成周波数＝55kHz

    SHARP Mebius FJ-200U(Celeron 600MHz, 内臓 YMF734)
            ＋ Windows2000 SP4                合成周波数＝55kHz
            ＋ WindowsMe                      合成周波数＝55kHz


------------------------------------------------------------------------------
▼組み込みソフトについて

    PMDWin.dll には、cisc 氏作の FM 音源エンジン(fmgen 008)を
    組み込んでいます。
    
        FM Sound Generator with OPN/OPM interface
        Copyright (C) by cisc 1998, 2003.


------------------------------------------------------------------------------
▼使用条件＆転載

    このソフトはフリーソフトウエアです。著作権はＣ６０が所有しています。
    但し、オリジナルの FMP の著作権は Guu 氏、PMD98 の著作権は KAJA 氏、
    PPZ8 の著作権は Ukky 氏、FM 音源エンジンの著作権は cisc 氏、
    BrowseDialog コンポーネントの著作権は前田氏、色変更可能トラックバーの
    著作権はｆｕｍｉｋａ氏、TrayIcon コンポーネントの著作権は辻原幸夫氏
    （修正・サポートは加藤太朗氏）が所有しています。
    WinFMP, PMDWin 及び FMPMD2000 を使用してデータの損失、機械の損傷等の
    不具合を生じても作者は責任を負いません。
    WinFMP, PMDWin 及び FMPMD2000 にバグ、不具合が存在しても作者は修正する
    義務を負いません。
    （が、報告してくだされば修正するよう努力します）
    WinFMP, PMDWin 及び FMPMD2000 の転載、配布は禁止します。但し、
    PMDWin, FMPMD2000 のソースコードに改変を加えたものについては事前に
    連絡をいただければその限りではありません。
    PMDWin, FMPMD2000 のソースコードを組み込んだソフトに関しては、事前に
    連絡をいただければフリーソフトとして公開することができます。
    WinFMP.dll, PMDWin.dll を利用するソフトに関しては、フリーソフトとして
    自由に公開することができます。公開の際は作者に連絡をいただければ幸いです。
    商用ソフト(シェアウェア含む) に PMDWin, FMPMD2000 のソースコードの一部、
    または全部を組み込む場合は、事前に PMDWin, FMPMD2000 の作者の合意を得る
    必要があります。
    PMDWin, FMPMD2000 に改変を加えたソフトを配布する場合は、PMDWin, FMPMD2000
    の著作権表示、および改変内容を明示してください。
    *.cpp または *.pas(WinFMP.pas, PMDWin.pas, PCMMusDriver.pas,
    FMPMDdefine.pas を除く)のうち、音楽の演奏に関わる部分を組み込む場合、
    あるいは改変する場合はソースの公開をお願いします。


------------------------------------------------------------------------------
▼謝辞

    すばらしい音源ドライバである FMP を作成し、本プログラムの公開を
    許可して下さった Guu 氏、
    高機能な音源ドライバである PMD を作成し、本プログラムの公開を
    許可して下さった KAJA 氏、
    PPZ8 を作成して音源ドライバの表現力を広げたのみならず、
    ソースの提供とプログラムの公開を許可してくださった Ukky 氏、
    高性能な FM 音源エンジンを作成し、使用、本プログラムの公開を
    許可してくださったばかりでなく、PMDWin のバグフィックスもして
    下さったcisc 氏、
    数多くのバグを発見してくださった TAN-Y 氏、
    WinAMP のプラグインを作ってくださった Mamiya 氏、
    PMV を作ってくださった Kigami 氏、
    有用なコンポーネントを公開してくださった前田氏、ｆｕｍｉｋａ氏、
    バグ報告や貴重な意見、要望を下さった皆様、
    ありがとうございました。


------------------------------------------------------------------------------
▼履歴

ver.0.01        1999/08/02
    暫定版の公開

ver.0.02        1999/08/04
    音源エンジンを M88 Ver2.10 にした
    55KHz で合成するとリズムが鳴らないバグを fix

ver.0.03        1999/08/08
    #LFOSpeed Extend の時に LFO がかからない bug fix(>TAN-Y 氏)
    #Detune Extend の時に Detune が２倍になる bug fix(>TAN-Y 氏)
    相対テンポ設定でテンポがおかしくなることがある bug fix(>cisc 氏)
    LFO2 delay 設定の bug fix(>cisc 氏)
    プロジェクトの設定をちゃんとした
    エンベロープの修正×2(>TAN-Y 氏)
    ver.4.8o への差し替え(random Q への対応 etc.)
    ADPCM での pvi 読み込みに対応
    P86 -> PVI Rename に暫定的に対応
    ADPCM filename を外から読めるようにした
    _M と x を併用すると音程がずれる bug に暫定的に対応
    ADPCM の音量がおかしいことがある bug fix(>cisc 氏)
    fmlfo_sub で signed と unsigned が混ざっていた bug fix(>cisc 氏)

ver.0.04        1999/08/16
    PCM フォルダの SJIS 対策
    _vd_fm(), _vd_ssg() 等で、不等号の向きが逆の部分があった bug fix
    SSGドラムの実装
    軽量化(memset の範囲を制限)
    OPNA Rhythm の相対音量、パン変更の bug fix
    ADPCM Repeat の bug fix
    LFO の bug fix
    work の int 化
    #??_Voldown を使った曲を演奏するとおかしくなることがある bug fix
    fadeout の実装
    SSGドラムと同時にリズム音源を鳴らすかどうか設定できるようにした
    ハードウェアLFO がかからなかった bug 修正

ver.0.05        1999/08/29
    PPZ8 のサポート
    11kHz, 22kHz の再生のサポート
    2バイト半角→半角への変換、エスケープシーケンス除去のサポート
    ノイズ周波数が設定されないことがあった bug fix
    音量 LFO の bug fix
    w- の bug fix
    ppc, p86 ファイルバッファの動的生成
    M88 2.11 のユニットに差し替え

ver.0.06        1999/09/19
    PPZ8 パートのポルタメントの bug fix
    Rhytym wave のパスを指定できるようにした
    y コマンドの bug fix
    TimerB の設定値が微妙にずれていた bug fix
    C, FM3 ch のパンの設定がずれることがあった bug fix
    PCM の強制読み込みをできるようにした
    ADPCM ループの bug fix
    PCM 検索部分の内部的変更
    PPZ8 ユニットの軽量化
    M88 2.12(+α) のユニットに差し替え
    DLL の仕様書を書いた

ver.0.07        1999/10/03
    PPS のサポート
    再生位置の設定をできるようにした
    PPZ8 ユニットの軽量化その２
    PPZ8 ユニットの０割対策？
    OPNA Rhythm の相対音量変更(\v?-)の bug fix
    転調コマンド で o1 〜 o8 を外れたときに強制的に o1,o8 にするようにした
    LFO の DepthA が負の時の bug fix

ver.0.08        1999/10/24
    PPZ8 の周波数設定ミス修正
    PPSDRV のプチノイズ低減
    PPSDRV のデチューンの bug fix
    FMパートで音色切り替え時に雑音が入ることがあった bug fix
    (Thanks > cisc 氏)
    setpos() で演奏停止後に設定した場合に雑音が入ることがあった bug fix

ver.0.09        1999/11/20
    P86 のサポート
    PPZ8 の軽量化、メモリ節約
    fadeout, fadeout2 のサポート
    SSG, ADPCM, PPZ パートでMML「"」「'」コマンドの動作がおかしかった
    bug の修正
    setpos() で演奏停止後に設定した場合の不具合が直っていなかったので bug fix
    setpos() で音色が化けることがあった bug fix
    DLL の呼び出し規約を cdecl から stdcall に変更した

ver.0.10        1999/11/28
    P86, PPC 強制読み込み時に (AD)PCM パートが鳴らないことがあった bug fix
    PPSDRV のプチノイズ低減
    getlength, getlength2 の実装

ver.0.11        1999/12/18
    ランダム LFO の変化幅が少なかった bug fix
    PPZ8 で、v0 の時に音が出ることがあった bug fix
    タイでつないでいるときに keyon してしまうことがあった bug fix
    (> cisc 氏)
    ハードウェア LFO が #0 で切れなかった bug fix(> cisc 氏)

ver.0.12        2000/01/10
    M88 2.14 のユニットに差し替え(リズムの wave の余分なチャンクに対応)
    pmdwininit(NULL) の時に落ちる不具合の修正
    PPZ8 のプチノイズ対策？

ver.0.13        2000/02/06
    VC++ 6.0 Pro に乗り換えた
    setppsuse(true) でアクセス違反になることがあった bug の修正
    PPS と SSG 3ch(Ich)を同時に使っている場合、ノイズが入ることがあった
    bug の修正
    sam1.m の memo で余分な情報も表示されていた bug の修正

ver.0.14        2000/03/19
    PMD86 の PCM パートでポルタメントを使っていると正常に動かなかった
    バグを修正
    getlength(), getlength2() で曲の長さの計算を間違えていたので修正
    getlength(), getlength2() に WINAPI を付け忘れていたので追加
    setpcmdir() でメモリリークする可能性があったので修正
    FMパートで音色切り替え時の雑音でエンバグしていたので修正
    fgetmemo 系を付けた
    music_load2() を付けた
    M88 2.16x のユニットに差し替え

ver 0.15        2000/06/11
    getloopcount() を追加

ver 0.16        2000/08/20
    SSG3ch で & で繋いでいてもキーオフすることのある不具合を修正
    (ver0.13？でエンバグ)
    再演奏の時に SSG ノイズの音程が変わることのある不具合を修正
    opna に出力したときの wait を再現できるようにした（リリース中のアタック
    の再現性向上)
    getmemo2, getmemo3, fgetmemo2, fgetmemo3 でアクセス違反があることの
    あった不具合を修正
    fgetmemo2, fgetmemo3 の動作が逆だった不具合を修正
    WARNING の綴りが間違っていたので直した
    getlength の結果が毎回微妙に変わっていたので修正

ver 0.17        2001/01/21
    COM 風インターフェイスの実装
    setfmcalc55k() を実装。setpcmrate() で 11kHz, 22kHz, 44kHz, 55kHz
    以外も設定できるようにした
    setppzrate() を実装
    getmemo 系で曲データが不正なときのエラーチェックを強化
    setpos(), setpos2() で、現在の再生位置より先に設定するときの
    処理を高速化
    演奏と getlength() を別スレッドで同時に実行すると ppz8 の音が鳴らなくなる
    ことのある不具合を修正

ver 0.18        2001/02/17
    PMDWin インスタンスを複数使用すると音が変になることのあるバグを修正
    OPNA 新コア(fmgen001.tar.bz 2000/09/09)に載せ替え

ver 0.19        2001/03/04
    fgetmemo() 系で外部ファイルからメモを取得しようとすると読めなくなっていた
    バグを修正
    OPNA 新コア(fmgen003.tar.bz 2001/02/24)に載せ替え
    opna.cpp の高速化オプション(#define FM_USE_CALC2, FM_USE_CALC2E,
    NO_BITTYPE_EMULATION)を定義するのを忘れていたので定義した
    getlength(), getlength2() で、65536クロック以上だと強制的に計算を
    打ち切るようにした
    曲データ読み込み前にバッファを終了コードで埋めるようにした
    (不正曲データ対策)
    DLLinfop.txt で、getversion() を getdllversion() と書き間違えていた
    場所があったので修正

ver 0.20        2001/08/05
    OPNA 新コア(fmgen006.tar.bz 2001/03/30)に載せ替え
    SSG 3ch(Ich) と SSG Drum を同時に使っている場合、SSG Drum の音が
    切れることのある不具合を修正

ver 0.21        2001/09/16
    データの末尾が 00 で終わっていない曲を読み込んだ時にアクセス違反になる
    不具合を修正
    pmdwininit() で PPC, PZI, P86, PPS のバッファをクリアするようにした

ver 0.22        2001/09/30
    PPC, PZI, P86, PPS でアクセス違反を起こす可能性のあった不具合を修正
    スタックを大量に消費していた不具合を修正

ver 0.23        2001/11/17
    多くのスレッドを用いた際の DLL の動作速度を気持ち改善した
    pmdwinimport.h の間違いを修正した

ver 0.24        2002/03/24
    TOWNS の曲データを FM 部分のみ演奏できるようにした
    PCM の読み込みに失敗したときも曲のファイル名を内部バッファに
    格納するようにした
    ヘッダが不正な PVI を PPZ8 に読み込ませた時にメモリリークしていた
    不具合を修正

ver 0.25        2002/08/03
    曲データ中で PPS の拡張子を省略している場合でも PPS を読み込むようにした

ver 0.26        2002/08/04
    曲データ中で PPS の拡張子が「PPS」以外の場合に読み込めなかった不具合を修正

ver 0.27        2002/09/22
    ヘッダが不正な PVI を PPZ8 に読み込ませた時にメモリリークしていた
    バグが取りきれていなかったのを修正

ver 0.28        2002/10/27
    P86 の音量バランスが悪かったのを修正した

ver 0.29        2003/03/09
    P86 再演奏時にパンが初期化されていなかったのを修正した

ver 0.30        2003/06/22
    fmgen 007a を組み込んだ

ver 0.31        2003/08/03
    setfmcalc55k が効かなくなっていた不具合を修正
    getmemo3 / fgetmemo3 で、取得文字列が０バイトの時にメモリリークを
    起こす可能性があった不具合を修正した
    getmemo 系のメモ取得 API の取得文字列を 1024 バイトに限定した

ver 0.32        2003/08/13
    getmemo 系の API の戻り値を間違えていたのを修正した

ver 0.33        2003/09/28
    fmgen 008 を組み込んだ

ver 0.34        2003/12/07
    再演奏時にプチノイズが入ることのある不具合を修正

ver 0.35        2004/01/10
    FM パートにおける LFO2 でスロットマスクを用いた際の音量 LFO
    (MMB と *B2,*B3,*B6,*B7 のいずれかを併用したとき)が
    正常に動かなかった不具合を修正
    FM パート TL値設定コマンド(Oコマンド）で TL 値にマイナスの
    相対値を指定した際に正常に動かなかった不具合を修正



------------------------------------------------------------------------------
▼連絡先

    E-mail                  HQD00151@nifty.com
    Homepage                http://www.fmp.jp/~c60/
                            http://member.nifty.ne.jp/C60/



                                                                Ｃ６０
