更新履歴

1999/連休頃: 作り始める
1999/06/?? : Timer まわりの bug fix
1999/06/?? : 休符で key off しない bug fix
1999/06/05 : soft env の bug fix
1999/06/05 : 転調 の bug fix
1999/06/05 : LFO bug fix
1999/06/06 : ポルタメント bug fix
1999/06/06 : 拡張 detune bug fix
1999/06/06 : 普通の lfo の bug fix
1999/06/06 : エンベロープの bug fix
1999/06/07 〜 13 : FM音源部分の実装
1999/06/15 : FMポルタメント bug fix
1999/06/17 : m88 ver2.04 のユニットに切り替え
1999/06/20 : DLL化 / フロントエンドの作成
1999/06/21 : 曲切り替え時に音が残る bug を fix
1999/06/21 : FM LFO の bug fix
1999/06/22 : SSG Rhythm の６つのコマンドの関数を実装
1999/06/23 : FMポルタメント bug fix part2
1999/06/23 : md_inc bug fix
1999/07/03 : ch3mode 一部 bug fix
1999/07/04 : TimerA 一部実装(for #EnvSpeed Extend)
1999/07/06 : ch3mode bug fix
1999/07/07 : relesase 後 ssg の音が残る bug fix
1999/07/11 : dll の バージョンを取得できるようにした
1999/07/12 : PVI 読み込み(とりあえず実装だけしてみた)
1999/07/12 : PPC, PVI 再読み込み防止
1999/07/14 : fm3extend volume & partmask 解除時の音色化け bug fix
1999/07/19 : special_0c0h の bug fix
1999/07/19 : 曲データチェックルーチンの導入
1999/07/19 : 出力周波数を変えられるようにした
1999/07/19 : ADPCM の partmask の bug fix
1999/07/20 : OPNA rhythm で長さがずれる bug fix
1999/07/22 : ADPCM が鳴らない bug の fix
1999/08/01 : ADPCM の Envelope bug fix
1999/08/01 : LFO B の bug fix
1999/08/01 : LFO(one shot) の bug fix
1999/08/01 : volume set の実装
1999/08/01 : rhythm part の bug fix
1999/08/02 : opna rhythm の partmask の bug fix
1999/08/02 : ver0.01 公開
1999/08/03 : m88 2.10 のユニットに差し替え
1999/08/03 : 55kHz 合成時に rhythm が鳴らない bug fix
1999/08/02 : ver0.02 公開
1999/08/05 : #LFOSpeed Extend の時に LFO がかからない bug fix(>TAN-Y 氏)
1999/08/05 : #Detune Extend の時に Detune が２倍になる bug fix(>TAN-Y 氏)
1999/08/05 : 相対テンポ設定でテンポがおかしくなることがある bug fix(>cisc 氏)
1999/08/05 : LFO2 delay 設定の bug fix(>cisc 氏)
1999/08/07 : プロジェクトの設定をちゃんとした
1999/08/07 : エンベロープの修正×2(>TAN-Y 氏)
1999/08/07 : ver.4.8o への差し替え(random Q への対応 etc.)
1999/08/07 : ADPCM での pvi 読み込みに対応
1999/08/07 : P86 -> PVI Rename に暫定的に対応
1999/08/07 : ADPCM filename を外から読めるようにした(p86 > ppc の時ファイル名が
             一致しないため)
1999/08/07 : _M と x を併用すると音程がずれる bug に暫定的に対応
1999/08/08 : ADPCM の音量がおかしいことがある bug fix(>cisc 氏)
1999/08/08 : fmlfo_sub で signed と unsigned が混ざっていた bug fix(>cisc 氏)
1999/08/08 : ver0.03 公開
1999/08/08 : PCM フォルダの SJIS 対策
1999/08/09 : _vd_fm(), _vd_ssg() 等で、不等号の向きが逆の部分があった bug fix
1999/08/11 : SSGドラムの実装
1999/08/12 : 軽量化(memset の範囲を制限)
1999/08/13 : OPNA Rhythm の相対音量、パン変更の bug fix
1999/08/13 : ADPCM Repeat の bug fix
1999/08/14 : LFO の bug fix
1999/08/14 : work の int 化
1999/08/14 : #??_Voldown を使った曲を演奏するとおかしくなることがある bug fix
1999/08/14 : fadeout の実装
1999/08/16 : SSGドラムと同時にリズム音源を鳴らすかどうか設定できるようにした
1999/08/16 : ハードウェアLFO がかからなかった bug 修正
1999/08/16 : ver0.04 公開
1999/08/18 : w- の bug fix
1999/08/18 : ノイズ周波数が設定されないことがあった bug fix
1999/08/18 : m88 2.11 のユニットに差し替え
1999/08/21 : 音量 LFO の bug fix
1999/08/26 : 11kHz, 22kHz の再生のサポート
1999/08/26 : ppc, p86 ファイルバッファの動的生成
1999/08/26 : 2バイト半角→半角への変換、エスケープシーケンス除去のサポート
1999/08/27 : PPZ8 のサポート
1999/08/29 : ver0.05 公開
1999/08/30 : PPZ8 パートのポルタメントの bug fix
1999/09/04 : Rhytym wave のパスを指定できるようにした
1999/09/12 : y コマンドの bug fix
1999/09/12 : TimerB の設定値が微妙にずれていた bug fix
1999/09/12 : C, FM3 ch のパンの設定がずれることがあった bug fix
1999/09/14 : PCM の強制読み込みをできるようにした
1999/09/14 : ADPCM ループの bug fix
1999/09/14 : PCM 検索部分の内部的変更
1999/09/18 : PPZ8 ユニットの軽量化
1999/09/19 : ver0.06 公開
1999/09/19 : OPNA Rhythm の相対音量変更(\v?-)の bug fix
1999/09/26 : OPNA Rhythm の相対音量変更(\v?-)の bug fix その２
1999/09/26 : PPZ8 ユニットの軽量化その２
1999/09/26 : PPZ8 ユニットの０割対策？
1999/10/01 : 転調コマンド で o1 〜 o8 を外れたときに強制的に o1,o8 に
             するようにした
1999/10/01 : PPS のサポート
1999/10/01 : 再生位置の設定をできるようにした
1999/10/02 : LFO の DepthA が負の時の bug fix
1999/10/03 : ver0.07 公開
1999/10/04 : PPZ8 の周波数設定ミス修正
1999/10/10 : PPSDRV のプチノイズ低減
1999/10/10 : PPSDRV のデチューンの bug fix
1999/10/21 : FMパートで音色切り替え時に雑音が入ることがあった bug fix
             (> cisc 氏)
1999/10/23 : setpos() で演奏停止後に設定した場合に雑音が入ることがあった
             bug fix
1999/10/24 : ver0.08 公開
1999/11/04 : setpos() が直っていなかったので bug fix
1999/11/04 : setpos() で音色が化けることがあった bug fix
1999/11/06 : PPZ8 の軽量化、メモリ節約
1999/11/13 : SSG, ADPCM, PPZ パートでMML「"」「'」コマンドの動作がおかしかった
             bug fix
1999/11/14 : P86 のサポート
1999/11/15 : DLL の呼び出し規約を cdecl から stdcall に変更した
1999/11/17 : DLL 外部からの fadeout, fadeout2 のサポート
1999/11/20 : ver0.09 公開
1999/11/24 : p86, ppc 強制読み込み時に (AD)PCM パートが鳴らないことがあった
             bug fix
1999/11/24 : PPSDRV のプチノイズ低減
1999/11/26 : getlength, getlength2 の実装
1999/11/28 : ver0.10 公開
1999/12/12 : ランダム LFO の変化幅が少なかった bug fix
1999/12/12 : PPZ8 で、v0 の時に音が出ることがあった bug fix
1999/12/14 : タイでつないでいるときに keyon してしまうことがあった bug fix
             (> cisc 氏)
1999/12/14 : ハードウェア LFO が #0 で切れなかった bug fix(> cisc 氏)
1999/12/18 : ver0.11 公開
2000/01/05 : m88 2.14 のユニットに差し替え(リズムの wave の余分なチャンクに対応)
2000/01/06 : pmdwininit(NULL) の時に落ちる不具合の修正
2000/01/08 : PPZ8 のプチノイズ対策？
2000/01/10 : ver0.12 公開
2000/02/05 : setppsuse(true) でアクセス違反になることがあった bug fix
2000/02/05 : PPS と SSG 3ch(Ich)を同時に使っている場合、ノイズが入ることが
             あった bug fix
2000/02/05 : sam1.m の memo で余分な情報も表示されていた bug fix
2000/02/06 : VC++ 6.0 Pro に乗り換えた
2000/02/06 : ver0.13 公開
2000/03/06 : getlength, getlength2 で曲の長さの計算を間違えていたので修正
2000/03/07 : PMD86 の PCM パートでポルタメントを使っていると正常に動かなかった
             バグを修正
2000/03/07 : fgetmemo 系を付けた
2000/03/10 : m88 2.16 のユニットに差し替え
2000/03/10 : getlength(), getlength2() に WINAPI を付け忘れていたので追加
2000/03/11 : setpcmdir() でメモリリークする可能性があったので修正
2000/03/12 : music_load2() を付けた
2000/03/14 : FMパートで音色切り替え時の雑音でエンバグしていたので修正
2000/03/16 : m88 2.16x のユニットに差し替え
2000/03/19 : ver0.14 公開
2000/04/16 : getloopcount() を追加
2000/06/11 : ver0.15 公開
2000/07/31 : SSG3ch で & で繋いでいてもキーオフすることのある不具合を修正
             (ver0.13？でエンバグ)
2000/07/31 : 再演奏の時に SSG ノイズの音程が変わることのある不具合を修正
2000/08/12 : opna に出力したときの wait を再現できるようにした（リリース中の
             アタックの再現性向上)
2000/08/17 : getmemo2, getmemo3, fgetmemo2, fgetmemo3 でアクセス違反が
             あることのあった不具合を修正
2000/08/17 : fgetmemo2, fgetmemo3 の動作が逆だった不具合を修正
2000/08/18 : WARNING の綴りが間違っていたので直した
2000/08/18 : getlength の結果が毎回微妙に変わっていたので修正
2000/08/20 : ver0.16 公開
2000/08/28 : setfmcalc55k() を実装。setpcmrate() で 11kHz, 22kHz, 44kHz, 55kHz
             以外も設定できるようにした
2000/08/28 : setppzrate() を実装
2000/11/12 : getmemo 系で曲データが不正なときのエラーチェックを強化
2000/11/18 : setpos(), setpos2() で、現在の再生位置より先に設定するときの
             処理を高速化
2000/11/26 : COM 風インターフェイスの実装
2001/01/14 : 演奏と getlength() を別スレッドで同時に実行すると ppz8 の音が
             鳴らなくなることのある不具合を修正
2001/01/21 : ver0.17 公開
2001/01/27 : インスタンスを複数使用すると音が変になることのあるバグを修正
2001/01/28 : OPNA 新コア(fmgen001.tar.bz 2000/09/09)に載せ替え
2001/02/17 : ver0.18 公開
2001/02/28 : DLLinfof.txt で、getversion() を getdllversion() と
             書き間違えていた場所があったので修正
2001/03/02 : opna.cpp の高速化オプション(#define FM_USE_CALC2, FM_USE_CALC2E,
             NO_BITTYPE_EMULATION)が off になっていたので定義した
2001/03/03 : OPNA 新コア(fmgen003.tar.bz 2001/02/24)に載せ替え
2001/03/03 : fgetmemo 系で外部ファイルからメモを取得しようとすると読めなく
             なっていたバグを修正
2001/03/04 : getlength(), getlength2() で、65536クロック以上だと
             強制的に計算を打ち切るようにした
2001/03/04 : 曲データ読み込み前にバッファを終了コードで埋めるようにした
             (不正曲データ対策)
2001/03/04 : ver0.19 公開
2001/04/23 : OPNA 新コア(fmgen006.tar.bz 2001/03/30)に載せ替え
2001/05/12 : 試しに出力音量を若干上げてみた。が音割れしたので元に戻した
2001/07/22 : SSG 3ch(Ich) と SSG Drum を同時に使っている場合、
             SSG Drum の音が切れることのある不具合を修正
2001/08/05 : ver0.20 公開
2001/09/10 : データの末尾が 00 で終わっていない曲を読み込んだ時に
             アクセス違反になる不具合を修正
2001/09/10 : pmdwininit() で PPC, PZI, P86, PPS のバッファをクリアするようにした
2000/09/16 : ver0.21 公開
2001/09/26 : PPC, PZI, P86, PPS でアクセス違反を起こす可能性のあった不具合を修正
2001/09/26 : スタックを大量に消費していた不具合を修正
2000/09/30 : ver0.22 公開
2001/11/11 : DLL の起動時間を気持ち改善した
2001/11/11 : pmdwinimport.h の setfmcalc55k の記述が間違っていたので修正
2001/11/17 : ver0.23 公開
2002/01/20 : TOWNS の曲データを FM 部分のみ演奏できるようにした
2002/01/20 : PCM の読み込みに失敗したときも曲のファイル名を内部バッファに
             格納するようにした
2002/03/12 : ヘッダが不正な PVI を PPZ8 に読み込ませた時に
             メモリリークしていた不具合を修正
2002/03/24 : ver0.24 公開
2002/07/29 : 曲データ中で PPS の拡張子を省略している場合でも PPS を
             読み込むようにした
2002/08/03 : ver0.25 公開
2002/08/04 : 曲データ中で PPS の拡張子が「PPS」以外の場合に読み込めなかった
             不具合を修正
2002/08/04 : ver0.26 公開
2002/09/22 : ヘッダが不正な PVI を PPZ8 に読み込ませた時にメモリリークしていた
             バグを取りきれていなかったのを修正
2002/09/22 : ver0.27 公開
2002/10/06 : P86 の音量バランスが悪かったのを修正した
2002/10/27 : ver0.28 公開
2003/03/03 : P86 再演奏時にパンが初期化されていなかったのを修正した
2003/03/09 : ver0.29 公開
2003/06/16 : fmgen 007a を組み込んだ
2003/06/22 : ver0.30 公開
2003/07/16 : getmemo3 / fgetmemo3 で、取得文字列が０バイトの時にメモリリークを
             起こす可能性があった不具合を修正した
2003/07/25 : getmemo 系のメモ取得 API の取得文字列を 1024 バイトに限定した
2003/08/03 : ver0.30 で setfmcalc55k が効かなくなっていた不具合を修正
2003/08/03 : ver0.31 公開
2003/08/12 : getmemo 系の API の戻り値を間違えていたのを修正した
2003/08/13 : ver0.32 公開
2003/09/28 : fmgen 008 を組み込んだ
2003/09/28 : ver0.33 公開
2003/12/07 : 再演奏時にプチノイズが入ることのある不具合を修正
2003/12/07 : ver0.34 公開
2004/01/10 : FM パートにおける LFO2 でスロットマスクを用いた際の音量 LFO
             (MMB と *B2,*B3,*B6,*B7 のいずれかを併用したとき)が
             正常に動かなかった不具合を修正
2004/01/10 : FM パート TL値設定コマンド(Oコマンド）で TL 値にマイナスの
             相対値を指定した際に正常に動かなかった不具合を修正
2004/01/10 : ver0.35 公開
2010/01/11 : SSG の音量を86ボード相当に変更
2010/01/11 : 合成周波数 55kHz での周波数を 55555Hz から 55466Hz に変更
2010/01/11 : ver0.36 公開
2020/01/12 : PMD 4.8r の修正を反映
2020/01/12 : ver0.37 公開

以下、ver0.37には実装せず、ver0.38に実装

2013/02/24 : 変数の初期化(デバッグモードでエラーが出ないようにした）
2013/04/08 : デバッグモードでassertが出るバグをfix
             インクルードパスを絶対パス→相対パスに変更
             fmgenをm88の一部から独立して配置するようにした
             PMDWinImport.h, PMDWin.h の typo 修正
             PMDWinImport.h の fgetmemo系の戻り値が char* になっていたのを
             int に修正
             PPSの重複読み込みをしないように修正
             曲データ読み込み時にAPIの戻り値が一部間違っていたエラーを修正
             (PPS関連)
2013/05/03 : ファイルアクセス／パスをクラスライブラリに切り分け
             曲データ読み込み時にAPIの戻り値が一部間違っていたエラーを修正
             (PPC/P86/PZI関連)
2013/08/11 : ソースのUNICODE対応
             PPZ8の駆動周波数のワーク初期化漏れを修正
2014/02/23 : PMDWin と PMDWinCoreを分割
2019/11/17 : ppz8l.cpp の file close 漏れを修正
             opna.cpp の無効命令を削除
             ppc, p86, ppz の音量設定が上限を超えたときの不具合を修正
             ssg の fnum 計算時の端数処理を修正
             ssg の効果音モードの端数処理を修正
2020/01/18 : マルチスレッドでデータが化けることのあった不具合を修正
2020/02/22 : FM音源の音色番号がファイル内に存在しないときにアクセス違反になる
             不具合を修正
2020/02/22 : ２回目以降のInit()が不十分だった不具合を修正
2020/02/22 : PMD 4.8s の修正を反映
2020/04/09 : 転調指定の不具合修正
2020/04/12 : 極力warningが出ないようにソースを整理
2020/04/12 : ver0.38 公開
2020/08/08 : MDコマンドのクリッピング処理の不具合修正
             ADPCMレジスタ書き込み時のwaitがかかっていなかった不具合を修正
             ADPCMに再生アドレスを書き込んでいる際に音が異常になる不具合を修正
2020/08/10 : 上記修正でスタートアドレスとリピートアドレスが異なる際の不具合を修正
2020/08/16 : ver0.39 公開
2020/09/06 : P86, PPS, PPZ ヘッダ読み込みの互換性向上
2020/10/03 : char = unsigned の環境でも問題なくコンパイルするようにした
2020/10/04 : Ａndroid 版とソースコード共通化
2020/12/28 : FileStream を実装
2021/07/24 : ソースコード整理
2021/08/01 : ver0.40 公開
2021/10/02 : FM音源エンジンをfmgenからymfmに変更
2021/11/06 : 周波数変換を一次補間からsinc補間に変更
2021/12/05 : ver0.50 公開
2021/12/19 : sinc補間を32〜512まで定義
2021/12/05 : ver0.51 公開
2022/09/19 : PPC, PVI読み込み時のメモリのアクセス違反をデバッグ
2022/11/13 : オブジェクト解放漏れ、ファイル閉じ操作漏れを修正
2023/02/26 : ymfm を 2023/2 時点の最新版に更新
2023/03/04 : ver0.52 公開
