2009年2月アーカイブ

概要: Managed DirectXのDirectSoundによる実装を作り始めようか、って所で浮気するのも何なんですが、XAudio2ってどうなんでしょう。 XAudioの評判は、Googleで調べてみて...

Managed DirectXのDirectSoundによる実装を作り始めようか、って所で浮気するのも何なんですが、XAudio2ってどうなんでしょう。

XAudioの評判は、Googleで調べてみてもあまり見当たりません。SlimDX と C# で学ぶ DirectXさんとこのDirectSound と XAudio の違いにはXAudio では、PCM, ADPCM, XMA, xWMA のみ扱うことができます。その他のサウンドフォーマットは使用できません。(DirectSound と同様にアプリ開発者が自分で PCM に変換すれば使うことができますが、その場合は XAudio の提供するストリーム再生機能の恩恵を受けることができず、再生可能なサウンドサイズに厳しい制限が発生します。)とあり、それだけでがっかりして興味を無くしていました。

ところが、電波の缶詰さんとこのウマイハナシの一節を見ると、何だかストリーミング再生できそうな感じです。MSDNのIXAudio2SourceVoice::SubmitSourceBufferとかXAUDIO2_BUFFERとか見ても、複数回に分けてデータを渡せそうな感じ......真面目に調べてみる価値はあるかも知れません。

ただ困った事に、XAudio2ってC#ユーザを考慮していないのか、C++向けのソースコードしか載っていないんですね。当然.NETのアセンブリも無いようだし、COM参照可能でもないみたいで。これは......C++/CLIを使えというMSさんの啓示? 一度、.NET FrameworkとUnmanaged C++を知ってる人向けのC++/CLIへの移行ガイド(C++: .NET Framework プログラミング最良の言語)を読んだ事はあるのですが、......ちゃんとやるべきかなあ......C#がとても綺麗なので使う事も無いか、と思っていたのですが、どうもこれは。

DirectMusicがManagedなインターフェイスを持っていない事に気付いたのもついさっきです、困った。

概要: ようやく、前回言っていたライブラリの、暫定ですが公開に漕ぎ着けました。SounDecoderです。libogg、libFLAC、libmpg123などは、クロスプラットフォームとはいえ.NET Fra...

ようやく、前回言っていたライブラリの、暫定ですが公開に漕ぎ着けました。SounDecoderです。libogg、libFLAC、libmpg123などは、クロスプラットフォームとはいえ.NET Frameworkからはそう簡単にアクセスできず、またフォーマット間でデコーダの利用方法に差異がある為、これを解消しよう、という魂胆のものです(こういうの既にあるのかな、ってあるんだったら思いっきり無駄足踏んだ訳ですが)。初期化時以外は(場合によっては初期化も含めて)、SounDecoder.SoundDecoderという抽象クラスがSounDecoderユーザの知るべき唯一のインターフェイスで、内部でどのようにそれぞれのデコーダ(libvorbisfileとかlibFLACとか)が使われているかは知る必要がありません。

現時点で公開できているのは、コアとなるSounDecoder、Ogg VorbisをデコードするヘルパーSounDecoder Helper Ogg Vorbis、Native/Ogg FLACをデコードするSounDecoder Helper FLAC、その他諸々のドキュメントです。MP3を含むMPEG 1.0/2.0/2.5 Audio Layer I/II/IIIをデコードするヘルパーSounDecoder Helper MPEG Audioは、既にできあがってはいますがそのプロジェクトが入ったディレクトリをミラーしてくるのを忘れて(今は帰省中です)、帰るまで手に入りません。また、すぐに音を再生できるようにする為のインターフェイス、SounDecoder.Sounds.Soundは、インターフェイスは作りましたがまだ実装がありません(近日中にDirectSoundのものを公開予定)。プログラム例は、まだ書き足りませんが公開予定日を大幅に回っている為、今回の所は三つまでです。

これ以上ずるずる引き延ばすとまた大変な事になりそうなのでとりあえずできている所までを公開しましたが、実際の所これだけではまだ使い易くありませんね......少なくともSounDecoder Soundsの実装を一つは作らないと。

それにしても、自分用のプログラムって、気楽だ。

このアーカイブについて

このページには、2009年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年1月です。

次のアーカイブは2009年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。