■ Ogg Vorbis CODEC for MSACMについて Ogg Vorbis CODEC for MSACM(以下vorbis.acm)は、Windows 9x/NT/2000/XP上 で動作する、MSACMに準拠したCODECドライバです。MSACM準拠CODECを利用する 様々なソフトウェアに対して、Ogg Vorbisテクノロジーサポートを追加します。 Ogg Vorbis ストリームデータはいわゆるVBR(可変ビットレート)となっており、 vorbis.acmのエンコード出力もまたVBRです。しかしながらMSACM のインター フェース、またMSACMを利用するアプリケーションの多くが、CBR(固定ビット レート)を想定しています。vorbis.acmを利用するには互換性の面でいくつか の注意が必要です。 このドキュメントを参考にして、あなたの環境での互換性の問題を理解し、解 決してから利用されることをお薦めします。 ■ 無保証 vorbis.acmは無保証なソフトウェアです。本ソフトウェアを使用したことによ る、直接的または間接的にいかなる被害を被ったとしても、我々は責任を負い ません。 また本ソフトウェアは現状のまま提供され、ソフトウェアの不具合、不動作、 仕様と違った動作などが発生しても、修正に対する義務を負いません。 vorbis.acmの仕様は将来予告なしに変更される場合があります。またその時、 既に作成されたデータとの互換性が保たれる保証はありません。 ■ 著作権 Ogg Vorbis Audio CODEC Copyright (C)2001 H.Mutsuki Xiphophorus libVorbis I 20011231 Copyright (C)2001 Xiphophorus vorbis.acmはlibVorbisの『派生物』です。vorbis.acmの実装部分には我々 に著作権があり、libVorbisの実装部分には、Xiphophorusに著作権があります。 いくつかのリリースでは、ソースコードを同時に配布していますが、その場合 ソースコードも同様に著作権はそれぞれの作者にあります。 ■ 配布条件 vorbis.acmはフリーソフトウェアです。 使用、配布、転載などは内容を変更しない限り自由に行って構いません。 できれば、事後にでもご報告いただければ有り難いです。 vorbis.acmはlibVorbisを含んでいるため、libVorbisの配布条件を踏襲する必 要があります。基本的にはオリジナルのアーカイブを変更することなく再配布 すれば問題ないと思います。 詳細なlibVorbisの配布条件についてはCOPYING.txtを参照して下さい。 ソースコードを含まないリリースの場合、ご連絡いただければ基本的に特別な 条件なしに、ソースコードも配布いたしております。 ※過去のいくつかの版のvorbis.acmでは、バイナリのみを配布し、ソースコードを含みませんでした。 (beta4以前は、LGPL規約に従うために、常にソースコードと共に配布していました) それについては、いくつかの理由がありました。 1.配布用のサイトには容量制限があるので、無条件に公開できるわけではありません。 2.他の(私の作成した)ソースコードを流用しているため、ありのままの形で配布すると、非常にサイズが大きくなり、また、無関係なコードを多く含むせいで内容の理解を阻害します。しかし、依存性を確認し、無関係なコードを削除する作業は手間が掛かります。 3.多くのユーザー(ここで言うユーザーの多くはソフトウェアデベロッパーです)はソースコードを必要としませんでした。 ソースコードの開示、配布は、オープンソースの精神に則って原則的に無償で行います。 もしあなたがサポートを必要とするなら、対価を要求することも検討します。 しかし実際には、対価を要求したことはありませんのでご安心下さい。   ■ 動作環境 オーディオ圧縮(MSACM)がインストールされたWindows 95/98/ME/2000/XP (基本的にはNT3.1以降に対応しているはずですが、Windows 2000以前では動作確認していません) なお、実際の利用にはMSACMに対応したアプリケーション(サウンドレコーダー 等)が必要です。 ■ インストール 同梱のVORBISACM.INFを右クリックし、コンテキストメニューから『インストー ル』を選択してください。 基本的にOSそのものの再起動は必要ありませんが、既に起動しているソフトは vorbis.acm を認識しません。必要に応じて該当アプリケーションの再起動、 OSの再起動を行ってください。 *注意* あなたのソフトウェアの動作のため『占有的』にvorbis.acmを必要とし、また 同時に配布する場合、決してエンドユーザーに対してvorbis.acmのインストー ルを指示しないでください。この様な場合、vorbis.acmをグローバルドライバ としてインストールすることを強く『推奨しません』。 ここで言う『占有的』利用とは、例えば、ゲームソフトウェア、マルチメディ アコンテンツなど、自身の提供するコンテンツを再生するという限定された目 的を達成するためだけにvorbis.acmを必要とするソフトウェアのことを言い、 例えば、マルチメディアプレーヤー、サウンドエディタ、データコンバータな ど、再生、作成、編集、変換などを主たる目的とするものはこれに当たりませ ん。 一般的に、『占有的』利用の目的を達成するために、他の関係ないソフトウェ アを(しかもグローバルに作用する)インストールすることをユーザーは好みま せん。 このケースではvorbis.acmを必要とするプロセスから個別にローカルドライバ として追加して使用することを強く推奨します。したがって同時に、バージョ ンによる非互換性問題を防ぐため、開発時に動作確認の取れたバージョンを同 時に配布することは必須の条件(但しライセンス上の制限ではありません)にな ります。 ちなみに、ローカルドライバはグローバルドライバより常に高い優先順位を持 つため、バージョンの問題、プライオリティの問題など無用なトラブルを防ぐ ことができるはずです。 ■ アンインストール 同梱のuninstall.infを右クリックし、コンテキストメニューから『インストー ル』を選択してください。 vorbis.acmが使用中の場合、vorbis.acmは削除されません。その場合、必要に 応じて該当ソフトウェア、OSを再起動した後、もう一度同じ操作をするか、手 動でvorbis.acmを削除してください。 uninstall.infを使う方法ではMSACMの作成した情報(プライオリティ情報や、 フォーマット詳細キャッシュなど)は削除されません。どうしても気になる場 合は手動で削除してください。なお(現バージョンの) vorbis.acmは自身の為 にレジストリや、INIファイルの参照、更新を行いません。 ■ 開発背景 Ogg Vorbisはmp3と同等の圧縮率とクオリティを誇り、しかもパテントフリー、 ロイヤリティフリーという、開発者にとって非常に魅力的なテクノロジーです。 しかし、折角こんなに魅力的で興味深いテクノロジーが提供されているのにも 関らず、我々の周りでのOgg Vorbisの知名度は非常に低く、嘆かわしい限りで す。 このような現状には、Ogg Vorbisテクノロジーに対する、エンドユーザーが利 用可能な周辺ソフトウェア環境が十分に整っていないことが、最も大きく影響 しているのではないかと考えます。 我々にとって重要なのは、既に存在するソフトウェア資産を活かすことができ、 構築されたインフラ上で、それが直ちに利用可能であることです。机上の規格 定義や、特定のプレーヤーで再生できるという要件だけでは、我々の利用目的 を達成することはできませんし、この新しい圧縮テクノロジーを普及させるた めの求心力として不十分です。 今回、我々が採用したのは、MSACMに準拠したCODECドライバというソフトウェ ア形態です。昨今のWindows事情では、MSACMよりも、DirectShow Filterや、 各ソフト独自のプラグインなどの開発が盛んなようですが、(1)既存のソフト ウェア資産で、(2)再生だけでなくデータを作成することが出来る、という要 件を満たすのにMSACMは非常に都合のいい形態であると言えます。 ※我々が最も重要視したのは、Sound Forge 4.5 という優れたプラット フォーム上でOgg Vorbisテクノロジーを利用可能にすることでした。 MSACMに準拠することで、既に存在する多くのソフトウェア上で、それらを変 更することなく利用することができるようになりました。また、無償で再配布 を許諾しますので、マルチメディアコンテンツ、ゲームソフトウェアなどで利 用するのにも向いていると言えるでしょう(実は元々その目的で開発しました)。 ■ 仕様 vorbis.acmでは、Ogg VorbisストリームをWAVEフォームで包み込む、以下の3 (6)つのフォーマットモードをサポートします。 ・Ogg Vorbis (mode1),(mode1+) 単にオリジナルのOgg Vorbisストリームをそのままの形でWAVEフォームに包含 します。バイナリエディタなどでdataチャンクだけを抜き出すと、オリジナル フォームのOgg Vorbisストリームデータになります。 データチャンクの先頭に可変長で約4〜6KB分のOgg Vorbisのヘッダを含むため、 いくつかのフロントエンドでは(入力ストリームサイズを非常に小さく設定す るソフトの場合)正常に動作しない場合があります。 また、デコード時は、最初にヘッダを入力として受け取る必要があるので、い きなり途中から再生することはできません。 ・Ogg Vorbis (mode2),(mode2+) mode1の問題を解決するため、Ogg Vorbisのヘッダを、WAVEFORMATEXの拡張デー タ(可変長で約4〜6KB)として、サンプルストリーム本体から分離して格納しま す。ただし、いくつかのフロントエンドではWAVEFORMATEXのサイズに制限があ るため、正常に動作しない場合があります。 ・Ogg Vorbis (mode3),(mode3+) オリジナルの Ogg Vorbis ストリームは、先頭に約4〜6KBのヘッダ(ヘッダ、 コメント、コードブック)を伴いますが、例えば、非常に短いサンプルを、大 量に扱う場合(多くの場合PCゲームの音声などがこれにあたる)、無視できない 量の重複データになります。このモードではそれらのヘッダを保存しません。 ただしデコード時には、その時点で使用されるvorbis.acmの個体に内蔵される コードブックが使用されるため、エンコード時とデコード時のvorbis.acmの個 体が一致しない場合、正しくデコードすることが出来ない場合があります。 (開発者向けドキュメントに回避策(非常手段?)があるので参照して下さい) ※mode+はそれぞれのモードに対する擬似CBRモードです。 それぞれのモードで対応するレートは以下の通りです(全てのモードで共通)。 modeAA mode A mode B mode C mode D mode E 11025Hz 16bits Stereo 96kbps 128kbps 160kbps 192kbps 256kbps 350kbps 11025Hz 16bits Mono 48kbps 64kbps 80kbps 96kbps 128kbps 175kbps 22050Hz 16bits Stereo 96kbps 128kbps 160kbps 192kbps 256kbps 350kbps 22050Hz 16bits Mono 48kbps 64kbps 80kbps 96kbps 128kbps 175kbps 44100Hz 16bits Stereo 96kbps 128kbps 160kbps 192kbps 256kbps 350kbps 44100Hz 16bits Mono 48kbps 64kbps 80kbps 96kbps 128kbps 175kbps ※全てVBR(可変ビットレート)で表中の数値はあくまで目安です。 ※8bit入出力には対応していません。元データが8bitsの場合、事前に16bits  に変換しておく必要があります。仮に8bits入出力に対応したとしても、内部  処理はIEEE floatで扱われるため、サイズを節約することはできません。 ※サンプルレート変換には対応していません。必ず元データと同じサンプルレー  トで出力します。 ※チャネル数変換には対応していません。必ず元データと同じチャネル数で出  力します。 ■ 擬似CBRについて 擬似CBRモードは、エンコードそのものはVBRで行われますが、CBRに近いビッ トレートを保つようパディングページを挿入します。擬似CBRモードでエンコー ドしたデータは、多くのプレーヤー、デコーダーと高い親和性を持ちます。 パディングページはOgg Streamのconcurrent multiplexingにより実装されま す。concurrent multiplexingは、例えばオーディオ+ビデオのような、同時 に進行する複合ストリームに用いられる技法です。つまり、パディングは、オー ディオとは別の独立したストリームとして扱われるため、オーディオのデコー ド結果に影響を与えません。 なお、擬似CBRを使用する場合、パディングを挿入することにより、オリジナ ルのエンコード結果よりビットレートが増加します。 *注意* 擬似CBRはパディングを挿入してビットレートを調整するという、その原理上、 VBRのビットレート減少時にのみ働き、ビットレート増加時には何の効果も発 揮しません。 ■ 性能 一般的なエンコード時間を量ることは出来ませんが、一般的なmp3エンコーダ や、wmaエンコーダと比較して、現状のvorbis.acm、libVorbisは決して高速で あるとはいえないでしょう。参考までに、リファレンスマシン(開発環境(後述)) でのエンコード時間を掲示します。 無作為抽出のCDリップデータ、13曲、約55分のエンコード時間 0.0.1.0 0.0.2.5 0.0.2.6 0.0.3.5 44100Hz 16bits Stereo 96kbps ... 42:34 27:29 15:24 44100Hz 16bits Stereo 128kbps ... 38:49 未計測 15:24 24:02 44100Hz 16bits Stereo 160kbps ... 未計測 未計測 15:56 44100Hz 16bits Stereo 192kbps ... 未計測 未計測 16:18 44100Hz 16bits Stereo 256kbps ... 35:46 未計測 17:04 25:29/20:28 44100Hz 16bits Stereo 350kbps ... 26:47 17:50 15:35 ※最新の版での計測結果が不足しているので、旧版での計測値も掲示しました ※基本的には低ビットレートの方がよりエンコードに時間が掛かります WMA(WMAはSMPの分割処理に対応している) 44100Hz 16bits Stereo 128kbps ... 04:47 mp3(WAVフォーム FraunhoferIIS製エンコーダ) 44100Hz 16bits Stereo 128kbps ... 28:32 mp3(FraunhoferIIS製エンコーダ CBR エンコードクオリティ:普通) 44100Hz 16bits Stereo 128kbps ... 23:45 音質については、皆さんの耳で確認してください。また、適切なソフト(Sound Forge 4.5など)を利用すれば、スペクトルを確認することもできるでしょう (mp3などとスペクトル分布を比較すると面白いと思います)。 我々自身の試聴テストでは、低ビットレート時に、特に管楽器など中低域のビ ブラートが不自然にゆらぐことがあるような気がしましたが、皆さんの耳はど う判断しますか? ■ 互換性 Ogg Vorbis ストリームデータはVBRで構成されるため、いくつかのMSACM準拠 CODECを利用するソフトウェアとの整合性に欠ける場合があります。 基本的にどのソフトもWAVEFORMATEX::nAvgBytesPerSecと'data'チャンクの全 長から、メディアの全長を判断しているようですが、再生時間については、 CODECの消費した入力サイズから判断するものと、出力サイズから判断するも のとがあり、前者を採用するプレーヤーでは、多くの場合に正常なメディア時 間が得られないでしょう(擬似CBRを利用することで回避できる場合があります)。 全長、再生中のメディア時間として最も信頼できる情報は、CODECの出力サイ ズです。また、全長に関しては、'fact'チャンクから得られる場合があります (Sound Forge 4.5で作成したデータの場合は'fact'チャンクから得られる情報 が最も信頼できます)。 以下に、vorbis.acmをいくつかのソフトウェアで使用した場合に発生しうる、 既知の互換性問題について掲示します。 ・PlaySound (Win32 API) デコードに必要なバッファサイズが実際より大きくレポートされるため 余分にメモリを消費する ・Sonic Foundry Sound Forge 4.5h (Build 402) エンコード時、余分な入力サンプルを与えられる場合がある ・Sonic Foundry Batch Converter 5.0b (Build 156) エンコード時、余分な入力サンプルを与えられる場合がある ・Sound Recorder 4.90.0.3000 (Windows ME) スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データを正常に再生できない場合がある ・Sound Recorder 5.0.2134.1 (Windows 2000) スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データを正常に再生できない場合がある ・Windows Media Player 6.4.09.1109 (Windows 2000) スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データをいきなり途中から再生開始することはできない 再生が途中で終了してしまう場合がある ・Windows Media Player 7.00.00.1442 (Windows 2000) スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データをいきなり途中から再生開始することはできない mode2データを再生できない(WAVEFORMATEX::cbSize<=4056の制限) ・Nullsoft Winamp 2.6.6.6 スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データをいきなり途中から再生開始することはできない 全てのモードで、再生が途中で終了してしまう場合がある ・Windows ME プロパティシートでの再生 スライダの見た目の位置と実際のシーク位置が一致しない場合がある mode1データをいきなり途中から再生開始することはできない mode1データをシークすることができない ・CD革命 Virtual 4.21,5.0(buildvcd.exe) フォーマットの選択時、属性の項目が増える場合がある(見た目の問題だけで 動作結果に影響はない) mode2データを作成できない(WAVEFORMATEX::cbSize<=64の制限) ・CD革命 Virtual 4.21,5.0(mciplayer.exe,vcdplayer.exe) mode3+,128,256kbps、W9x版のみ動作を確認(CD再生にはWMP7を使用) ただしCD革命Virtual5.0で、mciplayer.exeを自動起動で起動した場合音切れ などの問題が発生した(原因不明)。mciplayer.exeを事前に起動している場合、 または、手動で再起動した後は問題なく動作した。 W2Kの場合、トラック毎の再生は正常に行えるが(CD再生にはWMP7及び標準のCD プレーヤーを使用)、トラック間の移行が正常に行われない(原因不明……と、 思っていたら、非圧縮WAVEでも全く同じ症状が発生することが判明)。 ■ 一般的な制限 通常、MSACMを利用するソフトウェアでは、WAVEフォームでOgg Vorbis ストリー ムを包含することになるため、vorbis.acmを使用して出力したファイルを、他 のOgg Vorbisプレーヤー、デコーダーで扱うことはできません。また、逆に、 他のOggVorbisエンコーダで出力したファイルを、vorbis.acmでOgg Vorbisサ ポートを追加したソフトウェアで扱うこともできません。 出力されるデータはVBRなので、ヘッダに記録されたビットレートと、ファイ ルサイズからメディアの全長を算出するプレーヤーでは、メディアの再生が途 中で終了してしまったり、ループ再生されてしまう場合があります。 出力されるデータはVBRなので、ヘッダに記録されたビットレートと、現在の フェッチ位置から再生時間を表示するプレーヤーでは、誤った再生時間が表示 される場合があります。 出力されるデータはVBRなので、ヘッダに記録されたビットレートを当てにし てシーク処理を行うソフトウェアの場合、意図した正しい位置にシークするこ とができない場合があります。 いくつかのソフトウェアでは利用する場合に、エンコードしたデータをデコー ドした結果が、元のデータと異なったサンプル長になる場合があります。 ※SoundForge 4.5h (Build 402)での検証では、エンコード時に元データの正 しいサンプル数より多いサンプルをvorbis.acmに渡してくる場合がありました vorbis.acmの使用するフォーマットタグ(WAVEFORMATEX::wFormatTag)は、正式 に取得したものではありません。しかも世界中にたった65536個しかない内の 6個を使用しています。将来(あるいは既に存在する)他のCODECが同一のタグ を使用する場合、vorbis.acmはそのCODECと共存出来ないばかりか、そのCODEC の正しい動作を阻害するかもしれません。 Windows Media Player 7などいくつかのソフトウェアでは、WAVEFORMATEXのサ イズに制限(構造上の制限に拘わらず)があります。vorbis.acmのmode2,mode2+ では約4〜6KBと、一般的なCODECと比較して、非常に大きなWAVEFORMATEXを必 要とするため、一部のソフトウェアでは利用できません。 ■ 開発環境 ・開発マシン(リファレンスマシン) Windows XP Professional Pentium III 800MHz * 2 1024MB ・ビルド環境 Visual C+ 6.0 Professional (SP5) Platform SDK November 2001 (5.1.3590.2) Windows XP DDK (Build 2600) ・互換性テスト用ソフトウェア環境 Sonic Foundry Sound Forge 5.0e (Build 248) Sonic Foundry Sound Forge 4.5h (Build 402) Sound Recorder 5.0.2134.1 Windows Media Player 6.4.09.1109 Windows Media Player 7.00.00.1442 Windows Media Player 7.01.00.3055 Windows Media Player 8.00.00.4477 Nullsoft Winamp 2.666 CD革命 Virtual 4.2 CD革命 Virtual 4.21 CD革命 Virtual 5.0 CD革命 Virtual 5.0a CD革命 Virtual 5.0b CD革命 Virtual 5.5a CD Player 5.0.2179.1 vorbis.acmのビルドには、VC++6.0以外にPlatform SDK及びNTDDKが必要です。 ※少なくともSDKの "basetsd.h" が必要(VC++6.0付属の物では古い) ※少なくともDDKの "msacmdrv.h" が必要 最新のPlatform SDKは以下のサイトから無償で入手可能です。 http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm 最新のDDKは以下のサイトから無償で入手可能です。 http://www.microsoft.com/ddk/W2kDDK.htm このソースでは以下のlibVorbisを使用している libogg-1.0rc3.zip 31-Dec-2001 18:32 271k libvorbis-1.0rc3.zip 31-Dec-2001 18:33 990k ■ バージョン履歴 2002/07/08 Ver 0.0.3.6 libVorbisのビットレート管理を使用しないようにした(0.0.3.4〜0.0.3.5で使用していた) 2002/04/22 Ver 0.0.3.5 一部のデータでパディングの挿入が正しくないのを修正 内輪向けベータ 2002/01/30 Ver 0.0.3.4 一部のアプリケーションとの互換性を改善(acmStreamSize()の応答値を変更) Win32 API PlaySound()での互換性確認作業をXP/MEで行った 英語圏ユーザー向けのドキュメントを配布アーカイブに同梱した(まだまだ書き足します) その他細かい修正 2002/01/19 Ver 0.0.3.3 一部のアプリケーションとの互換性を改善(acmStreamSize()の応答値を変更) 符号の謝り、桁溢れによるクリップノイズが生じる場合があったのを修正 より多くのビットレートに対応した(libVorbisのクオリティ指定で0.0〜1.0までを0.1刻みで対応した) 11KHz,22KHzのビットレートを変更 その他細かい修正 予告を裏切ってまだドキュメントは直していないです……。 2002/01/11 Ver 0.0.3.2 ベースライブラリを1.0-rc3(libVorbis I 20011231)に変更した ソースコードを大幅に書き直した(のでエンバグの可能性も……なんかあったら教えて下さい) mode2のヘッダサイズを改善した(概ねWMP7,8でも再生可能になった…と思う) 配布アーカイブをZIP形式に変更した(外人対策です) 配布アーカイブにソースコードを同梱するよう改めた だんだんREADME.TXTの内容が現状に即さない内容になってきたので、 次のリリースではドキュメントを色々直すつもりです(できれば英語版とかも……)。 2001/09/13 Ver 0.0.3.1 ベースライブラリを最新のlibVorbisに変更した 訳あって48KHzモードを追加 ひっそりと更新 2001/06/22 Ver 0.0.3.0 ベースライブラリを最新のlibVorbisに変更した 暫定公開版 2001/02/27 Ver 0.0.2.7 ベースライブラリを最新のlibVorbis(beta4)に変更した ベースライブラリのライセンス形態が変更されたことを受け、 vorbis.acmはフリーソフトウェアとすることにした 身内のみの公開版 2001/01/22 Ver 0.0.2.6 ベースライブラリを最新のlibVorbisに変更した libvorbisの更新に伴いmode2でのWAVEFORMATEX::cbSizeが以前のバージョンより大きくなった libvorbisの更新に伴い大幅に速度が向上した アーカイブに開発者向けの追加ドキュメント(DEVELOPER.TXT)を追加した 2000/12/14 Ver 0.0.2.5 0.0.2.4でバージョン情報が正しくなかったのを修正 libVorbisのメモリリーク問題が修正されたので新しい版に変更した vorbis-devにメモリリークの報告をしたところ、当日のうちに修正されました 素早い対応で修正を施してくれたMichael氏に感謝! っていうか、もっと早く報告すればよかった……。 2000/12/13 Ver 0.0.2.4 ベースライブラリを最新のlibVorbisに変更した vorbis-devに旧版のバグ報告をしたところ、なんと当日のうちに修正されました 素早い対応で修正を施してくれたMonty氏に感謝! っていうか、もっと早く報告すればよかった……。 11KHz,22KHzの扱いを変更した(旧バージョンとの互換性を捨てたので注意) 2000/12/12 Ver 0.0.2.3 互換性の問題を解決するためにパディングの挿入方法を改めた 0.0.2.2でmode3,mode3+がエンバグしていたのを修正 2000/12/03 Ver 0.0.2.2 互換性の問題を解決するためにパディングの挿入方法を改めた 互換性の問題を解決するためにacmStreamSize()応答値の算出方法を改めた ソースコードを整理したところ、副作用(?)で速度が向上した 2000/11/28 Ver 0.0.2.1 フォーマットの列挙に時間が掛かる問題を修正 (フォーマット詳細をダンプしたバイナリを本体にリンクした) 2000/11/27 Ver 0.0.2.0 初めて(!)、W9x(ME)で時間をかけてデバッグした 条件つきながらW9x版CD革命Virtualで仮想オーディオCDの正常再生を確認 一部のアプリケーションで、acmStreamSize()応答時に不正な値を返す可能性があったのを修正 互換性の問題を解決するため内部処理用のバッファを拡大した 2000/11/25 Ver 0.0.1.4 ドライバインスタンスのメモリ管理法を変更 W9x上で(主にSound Forge 4.5)、プロセス終了時にドライバインスタンスの開 放に問題が発生した場合、OSがクラッシュする問題を修正 2000/11/24 Ver 0.0.1.3 擬似CBRモードパディングの挿入位置を修正 W9xのサウンドレコーダ問題を修正 需要の薄い11kHzをコメントアウトした 2000/11/23 Ver 0.0.1.2 擬似CBRモードmode1+,mode2+,mode3+を追加 モードが増えたことで、Sound Forge 4.5等の場合に、フォーマット列挙に掛 かる時間がさらに増加した。 2000/11/22 Ver 0.0.1.1 Sound Forge 4.5で動作しなくなっていたのを修正 (acmStreamSize()応答時のサイズ算出の方法を改めた) 2000/11/21 Ver 0.0.1.0 Original stream compatibleの呼称をmode1に変更 Have independent headerの呼称をmode2に変更 Have no codebook headerの呼称をmode3に変更 WAVEFORMATEXのサイズに関する互換性を解決するためヘッダ仕様を変更 (そのため旧バージョンで作成したデータと互換性が無くなった) 身内ベータからパブリックベータへ変更 アーカイブにLGPLの参考訳(LESSERJ.TXT)を追加した 2000/11/19 Ver 0.0.0.2 Have independent headerのエンコードが正常に機能しなかったのを修正 22050Hz,11025Hzのコードブック選択を修正 2000/11/18 Ver 0.0.0.1 Have independent headerを追加 Have no codebook headerを追加 内輪向けベータテストバージョン 2000/11/12 Ver 0.0.0.0 Original stream compatibleのみサポート 非公開開発バージョン ■ 余談 ソースの説明は追い追いということで、取り敢えず、添付のソースコードを利 用してvorbis.acmをビルドするには、VC++6.0以外にPlatform SDK及びNTDDKが 必要になりますのでご注意を。あと、殆どエラーチェックしてないので、クラッ シュしたり、ライブロックしたりするかもしれません。 ところで、身内向けベータ(0.0.0.1)をリリースした後に気付いたのですが、 SourceForge にも"vorbisacm"というプロジェクトが登録されています。ほぼ 同様の意図を持ったプロジェクトのように思いますが、本ソフトウェアとは全 く関係ありません。 ちなみに、現状、こちらの配布はCVSのみのサポートで、モノは2000/08/28が 最終更新のようです。興味のある方はこちらもご覧になってみてはいかがでしょ うか? SourceForge http://sourceforge.net/ ※アクセスにはアカウント作成が必要 vorbis.acmは、パブリックベータバージョンです(少なくともlibVorbisがベー タの間は、または永久に……)。まだまだ、vorbis.acm本体およびドキュメン ト、ソースには常に未整理な部分や、不具合が多く残っていると思います。 バイナリ及びソースコードの配布に対して、基本的に、実費以上の対価を要求 することはありませんが、有償のサポート依頼も承っておりますので、お気軽 にご相談ください。有償とはいっても『名誉を与える』(笑)とかでも構いませ んのでハイ。 あと、無保証とはいえ、クリティカルな問題に関しては、そのままにして置く と私自身も困ると思いますので、お気づきの点などありましたら、メールその 他の方法でご連絡いただけると大変有り難く思います。 むつきはじめ freddie-fish@nifty.com