﻿* 更新履歴は最下部に書いてます

▼ 本コンポーネントについて
   Winamp用のvgm再生プラグインであるin_vgm.dll(Valley Bell氏作成のバージョン)のfoobar2000移植版です。
   foobar2000 v1.1以上に対応しています。
   今後力をいれて開発する予定がないので、意欲のある方はどんどん改良してくださると嬉しいです(汚いコードですが)。


▼ インストール方法
   user-componentsフォルダの場合
   通常のインストール方法と同じです。

   componentsフォルダの場合
   foo_input_vgm.fb2k-componentの拡張子をzipに変えて解凍してください。
   解凍先のfoo_input_vgm.dllとvgm_player.dllをcomponentsフォルダに入れてください。

   ■ YMF278B(OPL4)チップの再生には "yrw801.rom" を各自で用意し、foobar2000.exeと同じ場所に置く必要があります(コンポーネントと同じ場所ではないことに注意)。
      yrw801.romがない場合は無音再生になります。


▼ 再生できるファイル
   拡張子vgmとvgzに対応しています。
   書庫の再生にはfoo_unpackやfoo_unpack_7zなどの対応したコンポーネントが必要です。


▼ 設定を変更したのにプレイリスト上の情報が更新されない場合
   Preferencesで設定を変更したのにプレイリスト上の情報が更新されない場合は、該当するファイルを選択した状態で
   Properties->Tools->Reload info
   または
   Shift + 右クリック->Tagging->Reload info from file(s)
   で更新されるようになります。

   なお、プレイリスト上の情報が更新されないだけで変更自体は適用されています。


▼ Preferences
   Preferences->Playback->Input->VGM inputで、各種設定が行えます。
   各オプションの説明はVGMPlay.iniに書いてある説明を参考にしましたが、よくわかってないので間違っている箇所があるかもしれません。

   * Resampling Mode
     リサンプラの品質を決めます。再生環境に合わせて変更すると良いです。
     HQ Resampling  常に高品質のリサンプラを使用します。
     HQ up, LQ down アップサンプリングの際は高品質のリサンプラを使用し、ダウンサンプリングの際は低品質&低負荷のリサンプラを使用します。
     LQ Resampling  常に低品質&低負荷のリサンプラを使用します。 

   * Sample Rate
     サンプリングレートを設定します。vgmのデフォルトは44100です。
     min 4000, max 1411200です。
     Resampling Modeで設定したリサンプラによって、ここで設定したサンプリングレートに変換されます。

   * Chip Sample Mode, Chip Rate
     音源チップの出力サンプリングレートについて設定します。
     Chip Rateは 0 あるいは 4000 - 192000の間が有効値です。0を指定した場合 Chip Rate = Sample Rateになります。
     native		 音源チップデフォルトのサンプリングレートで出力します。Chip Rateで設定した値は無視します。
     highest		 音源チップデフォルトとChip Rateで設定したサンプリングレートのより高いほうで出力します。
     custom		 常にChip Rateで設定したサンプリングレートで出力します。
     highest, FM native	 FM音源チップの場合はデフォルトのサンプリングレートで出力し、その他のチップの場合は音源チップデフォルトとChip Rateで設定したサンプリングレートのより高いほうで出力します。

   * Playback Rate
     再生速度を変更します。vgmのヘッダのアドレス0x24に0が指定されている場合は無関係の項目です。値が大きいほど速くなります。
     Recorded rate  vgmのヘッダのアドレス0x24-0x28で指定されている値を採用します。
     60 Hz          60を採用します。
     50 Hz          50を採用します。
     Other:         右のエディットボックスで設定した値を採用します。min 0, max 100000です。

   * Loop Count
     ループ回数を決めます。ループしないタイプのvgmには無関係の項目です。
     min 0, max 50です。
     0の場合無限ループになります。

   * Fade Length
     フェードアウトの時間を決めます。ループしないタイプのvgmには無関係の項目です。
     min 0, max 36000000です。

   * Pause between tracks
     ポストギャップの長さを設定します。
     Non-loopingはループしないタイプのvgm、Loopingはループするタイプのvgmに影響します。
     min 0, max 36000000です。
     必ずしも無音になるわけではないようですが、無音になる場合はポストトラックサイレンスの代わりになるので便利です。

   * "Surround" Sound
     チェックするとサラウンド再生になります。

   * Double SSG Volume
     チェックすると、YM 2xxxチップの SSGの音量が(vgmのヘッダによってオーバーライドされている場合)2倍になります。
     将来的に廃止予定のオプションだそうです。
     
   * Volume
     音量を調節します。
     デフォルトは100で、Winamp + in_vgm.dllのデフォルトと同じになります。
     min 1, max 400です。
     
   * Prefer Japanese tag
     チェックすると日本語のタグを優先して表示します。空の項目は英語のタグを表示します。
     タグ編集時にも影響するのでご注意ください。

   * Display both English tag and Japanese tag
     チェックすると
     Prefer Japanese tagオプションが OFF のときは
     ALBUM_J
     TITLE_J
     ARTIST_J
     SYSTEM_J

     ON のときは
     ALBUM_E
     TITLE_E
     ARTIST_E
     SYSTEM_E

     というフィールドにそれぞれ英語(E)、日本語(J)のタグを表示します。
     Prefer Japanese tagのチェックありのとき、某所のvgmのジャケットが表示できなかったために作成したオプションです。
     %album_e%.pngとすると上手く行きます。
     英語、日本語両方のタグを一度に編集したい場合にも便利です。
     mp3やwavにconvertするとID3v2タグのユーザー定義フィールドを大量に使うので注意です。

   * Guess track number tag from file name
     チェックするとファイル名からトラックナンバータグを推測 & 表示します。
     ファイル名が数字から始まり、以降に
     ' ' (半角スペース)
     '_' (アンダーバー)
     '. '(ドットスペース)
     のいずれかが続く場合、その数字をトラックナンバータグとして表示します。

     英語のゲーム(アルバム)名 - 数字 - ??????????.拡張子
     英語のゲーム(アルバム)名 - 数字.拡張子
     というファイル名の場合にも対応しています。

   * Recompress at level X after editing tag of VGZs
     gzip圧縮されたファイルのタグ編集後に level X で再圧縮します。
     min 3, max 9です。
     9が最も圧縮率が高いですが時間がかかります。
     デフォルトは6です。
     
   * Extension
     本コンポーネントで再生したいファイルの拡張子を設定します。
     他のコンポーネントと使い分けたいときに有効です。


   ■ VGM input -> Chips Optionsより、チャンネルマスクとチップオプションが設定できます。
      このページのオプションはOK/Cancel/Applyボタンを押すor押さないに関わらず即設定が保存されるのでご注意ください。
      Disable Chip, Mutingのオプションは再生中のvgmに即効果があります。

      再生中のvgmに使用されているチップ名を知りたい場合、PropertiesのVGM_CHIP_NAMEをご覧ください。
      デュアルチップの場合は 2xチップ名 と表示されます。
      ステータスバーあたりに$info(vgm_chip_name)を表示させると便利かもしれません。
      
      Chip OptionsはChip #1とChip #2で共有されます。
      各オプションについてはVGMPlay.iniで詳しく説明されています。
      ややこしいNES APUのオプションのみ引用

      Options (NSFPlay cores only)
      ; -------
      ; APU/DMC Options
      ;   UNMUTE_ON_RESET (enable all channels by default after reset)
      ;   NONLINEAR_MIXER    
      ; APU Options
      ;   PHASE_REFRESH
      ;   DUTY_SWAP
      ; DMC Options
      ;   ENABLE_4011
      ;   ENABLE_PNOISE
      ;   DPCM_ANTI_CLICK (nullify register 4011 writes, keeps DPCM limits correctly)
      ;   RANDOMIZE_NOISE
      ;   TRI_MUTE (stops Triangle wave if set to freq = 0, processes it at a very high rate else)
      ;   TRI_NULL (VB custom, always makes Triangle return to null-level when stopping)
      ; FDS Options
      ;   4085_RESET (reset modulation phase on 4085 writes)

      引用終わり


   ■ VGM input -> Other Optionsで、エミュレーションコアとPanningを変更できます。
      このページのオプションはOK/Cancel/Applyボタンを押すor押さないに関わらず即設定が保存されるのでご注意ください。
      エミュレーションコアはChip #1とChip #2 それぞれの変更はできないそうです。
      コアによってChip Optionsで設定できる項目が変わる場合があります(YM2612, NES APU)。

      Panningオプションは再生中のvgmに即効果があります。
      現時点ではSN76496(コアがMaxim), YM2413(コアがEMU2413)チップしか設定できません。

      
▼ GD3タグ編集について
   まだ不完全ですが GD3 v1.00 の編集ができます。
   いろいろ微妙な仕様です。オマケ程度だとお考えください。

   編集できるファイルに条件があります。

   (1) GD3タグを新規に付加する場合
   (2) GD3タグの終了位置 == ファイルの終了位置(EOF)の場合
   
   のいずれかの場合しか編集できません。
   現時点でGD3タグは規格上
   vgmヘッダー -> GD3タグ -> Dataブロック -> EOF
   というパターンも許されています(v1.70以降のvgmではさらにExtra Headerがどこかに位置する)。
   現在このパターンのタグは編集できません(実装が面倒)。
   ほとんどのファイルが(2)のパターンだとは思いますが...

   書庫内のファイルも編集できません(たぶんfoobar側の仕様)。
   例えば
   foo.zip内の     hoge.vgm or hoge.vgz -> 編集不可
   fooフォルダ内の hoge.vgm or hoge.vgz -> 編集可

   gzip圧縮されているファイルのみタグ編集後自動で再圧縮します。圧縮レベルはPreferencesで設定できます。
   ゆえに大量のファイルを処理すると遅いかもしれないです。

   一応サロゲートペアの読み書きもできるようにしています。

   その他
   * ファイル先頭に'Vgm 'の文字列がない場合
   * EOFOffset が 0である場合
   * EOFOffset(Absolute) がファイルサイズと異なる場合
   * GD3Offset(Absolute) がファイルサイズより大きい場合
   * GD3Offset が差す場所に 'Gd3 'の文字列がない場合
   * GD3のVersion が1.00でない場合
   * GD3のTagLength より算出されるGD3タグの終了位置がファイルサイズより大きい場合 
   * gzip圧縮されているファイルの解凍 or 再圧縮に失敗した場合
   * ファイルサイズ タグのサイズ 各Offsetの値 が巨大な場合(約1GB - 2GBまで可、オーバーフロー防止のため)
   は編集に失敗します。


   ■ 編集されるGD3タグ名 と foobarのPropertiesでの項目名の対応
      * jap  -> prefer japanese tagオプションのこと
      * both -> display both English tag and Japanese tagオプションのこと

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      GD3                                                    foobar(japOFF)  japON           既存のタグを削除する方法(japOFF)                    ヾ(japON)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Track name (in English characters)                     track title     title_e         del_gd3にtitle_eと書き込む or track titleを空欄     ヾ title_e
      Track name (in Japanese characters)                    title_j         track title     ヾ title_j                                          ヾ title_j or track titleを空欄
      Game name (in English characters)                      album title     album_e         ヾ album_e or album titleを空欄                     ヾ album_e 
      Game name (in Japanese characters)                     album_j         album title     ヾ album_j                                          ヾ album_j or album titleを空欄
      System name (in English characters)                    system          system_e        ヾ system_e or systemを空欄                         ヾ system_e
      System name (in Japanese characters)                   system_j        system          ヾ system_j                                         ヾ system_j or systemを空欄
      Name of Original Track Author (in English characters)  artist name     artist_e        ヾ artist_e or artist nameを空欄                    ヾ artist_e
      Name of Original Track Author (in Japanese characters) artist_j        artist name     ヾ artist_j                                         ヾ artist_j or artist nameを空欄
      Date of game's release                                 date            date            dateを空欄にする                                     dateを空欄にする
      Name of person who converted it to a VGM file          ripper          ripper          ripperを空欄にする                                   ripperを空欄にする
      Notes                                                  comment         comment         commentを空欄にする                                  commentを空欄にする
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     
     artist nameに複数値入力した(';' で区切った)場合は ', '(コンマスペース)を区切り文字としてまとめて書き込みます。
     commentに入力された改行コードCRLF は LF に変換します。

     japの ON / OFF によって編集されるタグが変わることにご注意ください。
     ゆえに jap の ON / OFF を切り替えた場合は Reload Info してから編集してください。
     でないと意図しないタグが付く or 消える ことになります。

     上記の通り本コンポーネントでは一部の既存のタグ(xxxxx_eやxxxxx_jのタグ)
     を削除する方法が特殊になっています。
     del_gd3 という項目を作成し、そこに削除したいタグ名を指定します。
     複数指定する場合は , (コンマスペース) で区切ってください。
     英語のタグをすべて削除するには english
     日本語のタグをすべて削除するには japanese
     すべてのタグを削除するには all と書き込んでください。

     例: Track name (English) と Game name (Japanese) を削除したい場合
     del_gd3 という項目をつくり、そこに
     title_e, album_j
     と書き込む

     このような面倒な仕様にしたのは bothの ON / OFF を切り替えたときに Reload Info しないまま編集すると
     一部のタグが消えてしまうのを防ぐためです。
     
     japが ON のとき、日本語タグが空の項目は英語のタグを表示させているせいで
     日本語のタグに英語のタグがそのまま書き込まれることがあります。
     ゆえに意図的に日本語タグを空にしたい場合はRemoveしてください。

     例: prefer japanese tagオプション ON 時
     Track name (in English characters) -> abcde
     ヾ (in Japanese characters)        -> 空
     の場合foobar側では
     track title -> abcde と表示される
     この状態で例えば date に 2015 と入力し、OKを押すと
     Track name (in English characters) -> abcde
     ヾ (in Japanese characters)        -> abcde
     Date of game's release             -> 2015
     となってしまう
     編集前にtrack titleの値をRemoveすることで書き込みを防げる

     新規にタグを付加することが多い方は
     Propertiesで編集するよりもMassTaggerのほうが楽かもしれません。新規の項目(ripper, systemなど)を作成するのが結構面倒なので。

   ■ 日本語を入力できない環境の場合
      編集したい項目の上で右クリック -> Formats from other fields を選択
      Pattern欄に
      $char(x) を入力してやると良いです。ただし x は10進数で入力する必要があります。

      例:
      $char(12354)$char(12356)$char(12358)$char(12360)$char(12362)
      -> あいうえお

      IMEパッドなどの別の方法を使ったほうがはやいかも...
    
   ■ ファイルが破損する可能性は0ではないので大事なファイルのタグを編集するときはバックアップをとってください。
      特に巨大なファイルを編集する場合は注意してください。


▼ 開発環境
   Visual Studio Express 2013 for Windows Desktop
   ResEdit


▼ ライセンス、クレジット

   * foo_input_vgm
     MemoryModule.hとMemoryModule.cはJoachim Bauch氏作のライブラリです。ライセンスはMPL v2.0です。MPL_v2.0.txtをご覧ください。
     それ以外のファイルについてはin_vgm v0.40.8のライセンスに従います(一部コードを流用しているので)。
       
     Memory DLL loading code
     Copyright (c) 2004-2017 by Joachim Bauch
     http://www.joachim-bauch.de
     
   * vgm_player
     VGMPlay v0.40.8 を改変したものなので、それらのライセンスに従います。
     vgzの解凍にはzlib v1.2.11を使用しています。   
  
     in_vgm/VGMPlay
     http://vgm.mdscene.net/
     http://www.smspower.org/Music/InVgm
     written by Valley Bell
     
     以下VGMPlay同梱のテキストファイルよりクレジットを引用

     Credits
     =======
     This program was written by Valley Bell.

     - Special thanks to ctr for major contributions in general.
     - almost all software emulators are from MAME (http://mamedev.org)
     - EMU2413 and Gens YM2612 were ported from Maxim's in_vgm
     - the YMF278B core was ported from openMSX
     - zlib compression by Jean-loup Gailly and Mark Adler is used
     - all custom OPL Mappers were written using MAME software emulators and the OPL2/3 programming guides by Jeffrey S. Lee and Vladimir Arnost
     - one YM2413 OPL Mapper was ported from MEKA.
     - the RF5C164 and PWM cores were ported from Gens/GS
     - the MAME YM2612 core was fixed with the help of Blargg's MAME YM2612 fix and Genesis Plus GX' YM2612 core
     - AdLibEmu (OPL2 and OPL3 core) was ported from DOSBox
     - The default HuC6280 core is from Ootake.
     - EMU2149, the alternative NES APU core and the NES FDS core were ported from rainwarrior's NSFPlay.
     - the WonderSwan core was ported from in_wsr
     - Virtual Boy VSU core was ported from vbjin and originates from mednafen
     - Thanks to grauw for patches that make it work properly on Mac OS X.
     - ctr for writing the new C352 sound core.
     引用終わり

     zlib v1.2.11
     http://www.zlib.net/
     Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler

   ■ 注意!! 必ず読んでください
      VGMPlayはライセンスが明記されていないのですが、ほとんどのエミュレーションコアはMAME(http://mamedev.org)のソースがベースのようです。
      それ以外のエミュレーションコアはGPLかLGPLのソースベースのようなので、これらのライセンスと矛盾しないライセンスであると思われます。
      ゆえに本コンポーネント全体としては GPL が適用されると思われます。
      さすがにfoobar2000本体が本コンポーネントの派生物には当たらないと思うので
      公開しても良いと判断しましたが、問題があるようなら削除してもらってかまいません。

      それぞれのライセンスの詳細についてはlicensesフォルダの各テキストファイルをご覧ください。
      これらのライセンスに従って、本ソフトを使用したことによるいかなる損害に対して作者は一切責任を負いません。

      
▼ その他
    無限ループ再生時はシークできません。


▼ 細かい話(興味ない方は読み飛ばしてください)
   ループありのvgmの場合で
   vgmのheaderのTotalSamplesより計算した時間 t [s]
   headerのLoopSamplesより計算した時間       l [s]
   Preferencesで設定したLoopCount回数(0以外) r [times]
   Preferencesで設定したFadeOut時間          f [s]
   Preferencesで設定したPause時間            p [s]
   とした場合、foobar側では演奏時間が
   t + l * (r - 1) + f [s]
   と表示されます。
   Pause時間は含めていません。
   実際に演奏される時間は
   t + l * (r - 1) + f + p [s]
   であり、Convert時もこの時間で出力されます。

   ループなしのvgmの場合は
   t [s]
   と表示され
   t + p [s]
   秒演奏 or Convertされます。

   ループありのvgmでLoopCountに0を指定した場合は
   t [s]
   と表示され
   演奏は無限再生になります。
   ただしConvert時は
   t + f + p [s]
   になります。

   * vgmのヘッダーにLoopBaseやLoopModifierが設定されている場合は結果が変わることがあります
   
    
▼ 更新履歴
   [2018-08-18 v0.28]
   メモリリークなどのバグがあったのを修正。念のため古いバージョンは使用しないようにしてください。
   foobar2000 SDKをv1.4用に更新。
   foo_input_vgm_v0.28_for_v1.1.fb2k-componentはfoobar2000 v1.1X～v1.2X用です。
   次回からはv1.4用SDKでのみビルドする予定。
   使用ライブラリ(MemoryModule)を最新版に更新。
   その他細かい修正。

   [2017-05-24 v0.27]
   in_vgm/VGMPlay v0.40.8ベースに更新。詳しい更新内容はVGMPlay同梱のVGMPlay_Updates.txtを参照してください。
   それに伴いGB DMGとOKIM6258の一部のchip optionsを削除。
   zlibを最新版のv1.2.11に更新。
   その他の使用ライブラリ(MemoryModule)も最新版に更新。

   [2016-05-05 v0.26]
   in_vgm/VGMPlay v0.40.7ベースに更新。詳しい更新内容はVGMPlay同梱のVGMPlay_Updates.txtを参照してください。
   Hard stop old VGMsオプションを追加。
   C352のchip optionsにDisable Rareを追加。
   その他細かい修正。

   [2016-03-26 v0.25]
   Panningを実装。その関係でChips OptionsとOther Optionsページの設定が初期化されます。ご了承ください。
   Chips OptionsとOther Optionsページの一部をキーボード操作しやすいように改良。
   コードがあまりに汚いのでいろいろ整理。そのせいで返ってバグが増えてたらごめんなさい。
   一部の使用ライブラリの変更。
   その他いろいろ修正。

   [2015-06-05 v0.24]
   in_vgm/VGMPlay v0.40.6ベースに更新。対応チップが8つも増えたらしい。
   ついでにOotakeのコアを最新の2.75に更新(といってもほとんど変わらない)。
   Muting用のCheckBoxを32個に増やした。
   その他細かい修正。

   [2015-03-08 v0.23]
   使用ライブラリ(dll_managerクラス)がバージョンアップされたので最新版に更新。
   artistタグは ', '(コンマスペース)を区切り文字とみなし、マルチフィールド扱いにした。
   ゆえに%<artist>%が機能するようになった。
   その他細かい修正。

   [2015-01-18 v0.22]
   Preferencesに Guess track number tag from file nameオプションを追加。
   vgzのタグ編集後の再圧縮時にファイルサイズが増える場合にもある程度対応できるようなった。
   ヘッダが不正なファイルを扱う場合の安全性を高めた。
   その他細かい修正。

   [2015-01-14 v0.21]
   タグ編集時に混乱しないように display both English tag and Japanese tagオプションの仕様を変更。
   その他細かい修正。

   [2015-01-12 v0.20]
   巨大なファイルを扱う場合やヘッダが不正なファイルを扱う場合の安全性を高めた。
   無駄なコードを整理。
   不完全だがGD3タグの書き込みを実装。
   ファイルが破損する可能性は0ではないので大事なファイルを編集するときはバックアップをとってください。
   使用前に ▼GD3タグ編集について をご覧ください。
   その他細かいバグ修正。

   [2014-12-23 v0.19]
   vgmのヘッダーでLoopBaseやLoopModifierが設定されている場合に、正しい演奏時間を表示するように修正。
   T6W28のMutingが効かなかったバグを修正。
   PreferencesのChipOptionsのチェックの有無が設定されている値と異なることがあったのを修正(v0.17_betaとv0.18限定のバグ)。
   その他細かい修正。
   
   [2014-12-20 v0.18]
   3スレッド以上で複数ファイルConvertした場合に失敗するバグを修正。
   PreferencesのLoop Countオプションで0を指定しても、Convert時は無限ループにならないようにした。
   PropertiesのInfoに表示する項目名を変更。
   その他細かい修正。
   ソースコードが汚かったので整理。

   * 具体的には
     Loop Countに 0 を指定した場合 ConvertやReplayGainScan(意味ないですが)のときは 1 を指定したものとして扱います。
     前バージョンまではチップ名をVGM_CHIP#1_NAMEとVGM_CHIP#2_NAME(デュアルチップの場合に表示)
     に表示していましたが VGM_CHIP_NAME という項目名に統一。
     デュアルチップの場合は 2xチップ名 と表示するように変更。 

   [2014-11-22 v0.17_beta]
   GD3タグがまったく付加されてないときにクラッシュするバグをようやく修正。
   GD3タグのNotes(foobar側ではCommentに表示)のマルチラインに対応。
   PreferencesでEmulation Coreが変更できるようになった(設定ダイアログは VGM input -> Other Optionsです)。
   PreferencesのChips OptionsページでResetボタンを押したときの挙動を変更。
   YM2612チップのnative chip sample rateを clock / 144 に変更(変更前は /72 だったが、/ 144が正しいらしい)。
   なので PseudoStereoがon & Chip Sample ModeがnativeまたはFM native のときにrateを半分にするのはやめた。
   その他細かい修正。

   * ちなみに現時点でin_vgm/VGMPlayでは、コアがMAME & SSG-EGのオプションがオフ & Chip Sample ModeがnativeまたはFM native
     のときにrateが半分になっているので、結果的にほとんどの環境で clock / 144 で再生されていると思います。

   [2014-11-15 v0.16_beta]
   YM2612チップのチップオプションの項目を変更。PseudoStereoが使えるようになり、DACHighpassとSSG-EGは削除(現在のコアに無関係なので)。

   PseudoStereoオプションについてはVGMPlay.iniの説明に
   Note: If you emulate at a set sample rate, this option halves it.
   と書いてあるが、ソース見るとこのオプションに関係なく常に半分になっているみたいだったので修正した。

   [2014-11-11 v0.15_beta]
   何度も更新すみません。
   PreferencesのPlayback Rateでエディットボックスに入力できる最大値が小さすぎたので修正。現在は100000まで指定できます。
   このあたりで開発に一区切りをつけるつもりです(リリースした直後によくバグが見つかるのですが)。

   [2014-11-10 v0.14_beta]
   YMF278B(OPL4)チップ再生時にメモリリークしていたので修正。
   その他細かい修正。

   [2014-11-09 v0.13_beta]
   Playback Rateを変更して演奏する場合に正しい演奏時間を表示するようにした。
   ファイル末尾が00でパディングされているvgzを演奏できるようにした。
   PreferencesにDisplay both English tag and Japanese tagオプションを追加。
   Preferencesにチャンネルマスクとチップオプションを追加(設定ダイアログは VGM input -> Chips Optionsです)。
   PropertiesのInfoに表示する項目を増やした。
   その他細かい修正。

   * YMF278B(OPL4)チップの再生時メモリをやたら消費しているような...?(ver0.10_betaから変わらず)
     今の所原因がわからないですが、わかったら修正するつもりです。
     私が認識しているYMF278Bチップ使用のvgmはSonyc(MSX2+)のみですが、他にもあるかもしれません。
     それらの再生にはin_vgmかVGMPlayの使用を推奨します。
     # 2014-11-10追記 この問題は0.14_betaで修正しました。

   [2014-10-25 v0.12_beta]
   * foo_input_vgm
   vgm_playerの更新に伴いPreferencesにオプションを追加した。
   Preferencesの各オプションを実用的でない値に設定できないようにした(クラッシュすることがあったので)。
   デコードバッファを固定長にした。前バージョンまではサンプリングレートに合わせて変えていたが、高い値にするとメモリを大量消費するのでやめた。
   拡張子に関係なくCodecを常にVGMと表示するようにした(foo_gepと同じ仕様にした)。
   PropertiesのInfoにvgmのバージョンを表示するようにした。  
   * vgm_player
   in_vgm/VGMPlay v0.40.5ベースに更新

   [2014-10-21 v0.11_beta]
   vgm_player.dllのビルドの際にランタイムライブラリを静的リンクするようにした。
   前バージョンはほとんどの環境でvgm_playerがロードできなかったかと思います。申し訳ないです。
   ついでにzlibのバージョンを最新の1.2.8に変更。

   [2014-10-20 v0.10_beta]
   最初のリリース
   in_vgm/VGMPlay v0.40.4ベース
   