DirectSoundサウンドドライバAyameを使ってみる

最終更新日時 2014.08.30


<前置き>


ここでは葉迩倭さんが以前に作成されていた、DirectSoundを使用したサウンドドライバ「Ayame(あやめ)」を 紹介します。
Ayameは、無圧縮・圧縮WAVファイル、Ogg Vorbisファイル、MP3ファイルなどを再生するDLLです。
以前は葉迩倭さんのWebページで公開されていたのですが、サポートを打ち切ったようなので、こちらで保守を行うことにしました。

Ayameを使用すると、あなたのアプリケーションで簡単に各種サウンドファイルを再生することが出来ます。

なお、葉迩倭さんのところで公開されていたAyame.DLLとはインターフェイスが若干異なります。
なので、このDLLをそのままLunaライブラリのAyame.DLLと差し替えて使用することは出来ません。
 


<ダウンロード>

ダウンロードはこちらから

何か質問などがありましたらAyameサポートブログまで


<使い方>


ダウンロードしたファイルを展開すると、いろいろなファイルが出てきますが、使用するだけであればMasterフォルダーだけを見ればOKです。
またMasterフォルダーにもいくつかファイルが入っていますが、最終的に必要になるのは、使用するケースによって2つに分かれます。

1.C++で開発している場合

C++で開発を行っている場合は、最終的に使用するファイルはAyame.DLLのみとなります。
DLLにはいくつか種類がありますが、自分に合った物を選択すればいいです。
DLLへのアクセスは、CAyameManagerクラスを使用しますので、自分のプロジェクトにAyameManager.hをインクルードしてください。
Ayame.DLLはVisualStudio2008で作成されています。
 

2.C#.NETで開発している場合

C#.NETで開発を行っている場合、最終的に使用するファイルはAyame.DLLとAyameCLR.dllになります。
自分のプロジェクトにAyameCLR.dllを参照として追加すると使用できるようになります。
開発環境には少なくともVisualStudio2008(.Net2.0以上)以降である必要があります。
 

詳しい使用方法については、どちらもサンプルを入れてありますので、そちらを参考にしてください。
 


<どういったことが出来るのか>


Ayameは無圧縮・圧縮WAVファイル、Ogg Vorbisファイル、MP3ファイルを再生することができます。
無圧縮WAVファイルおよびOgg Vorbisファイル以外のフォーマットについては、WindowsのACM(Audio Compression Manager)を使用して再生を行います。
Windows2000以降のOSであれば、大抵MP3コーデックが入っているので、MP3ファイルの再生もほぼ行えます。
再生にはストリーミング再生方式を使用します。(一括再生方式もサポート)
これはファイルを少しずつ読み込みながら再生していく方式です。
この方式を使用すると、どんなに大きなサウンドファイルでも、ごく少量のサウンドバッファやメインメモリで再生を行うことが出来ます。
再生データは、ローカルのハードディスクやCD-ROMのファイル・メインメモリ・インターネット上のファイルを指定することが出来ます。
再生中の負荷を抑えたい場合は、圧縮ファイルを先に無圧縮にデコードしておき再生することも可能です。

ボリューム調整・パン・再生スピード変更などを行うことが出来ます。
またループ再生は、データの先頭ではなく、任意の場所にループさせることが出来ます。
無限ループやループ回数などを指定できます。
他にも複数のデータ同士を繋ぎ目無く再生することなどが出来ます。

C#でアクセスするためのDLLが用意されているので、C#で簡単にサウンド再生ソフトを作成することができます。
 

<今後は>


あんまりAyame自体の機能追加は行わない予定です。(たぶん)
独自フォーマットの読み込みとか、ソースついてるのでやりたい人は自力でどうぞということで。

Seleneと組み合わせて使用できるサウンドライブラリでも作ろうと思います。
といっても、Luna用に作った物をほぼそのまま持ってくるだけですが。
 

<とりあえず>


Ayameを使用したサウンドライブラリをこちらに上げておきます。
LunaやSeleneに組み合わせて使用することも可能ですし、他のライブラリと併用することも基本的には可能なはずです。
Selene上でサンプルを作ってあるのですが、配布サイズが大きくなってしまうので、とりあえずサウンドマネージャライブラリソースだけ置いておきます。
組み込み方が分からない方は諦めてください。

一応BGMを効率よく管理したり、フェードイン・アウトしたり一通りの操作は行えるようになっています。
あとMIDIの再生も簡易的ですがサポートしています。
SeleneでMIDIが鳴らせられずにお困りの方は、一度お試しください。

こちらのサポートもAyameサポートブログにて行います。