pxtone.dll を C/C++ 以外の言語で利用しようのコーナー。
Pixel さんが開発中の「ピストンコラージュ」は、独自の再生エンジンを持つ作曲ソフトです。特に、ゲーム音楽に利用されることが想定されているため、ループ機能や独自音声による省サイズが簡単に実現できます。そして、他のアプリケーションに組み込むための dll が存在してます。
しかし、dll のインターフェースは非常に無駄のない一方で、C/C++ 以外の言語で扱うのに多少苦労する (もしくは直接は使えない) という問題もあります。
pxeasy.dll は pxtone.dll を他の言語でも扱えることを目標とした中継 dll です。pxtone.dll を直接呼び出せなくて挫折した人も、これを使えば夢がかなうかもしれません (私の実力不足でかなわないかもしれません)。
VisualBasic, ActiveBasic など、__stdcall が指定されたインターフェースを必須としたり、推奨したりする言語があると思います。pxtone.dll は __cdecl が指定されているので、直接呼び出せません。pxeasy.dll は __stdcall が指定されているので、これらの言語にも対応できる可能性があります。
ウィンドウを意識せずに pxtone.dll を扱うことができれば、非常に快適なプログラミングができます。また、仕様上ウィンドウを生成できない言語もあります。pxeasy.dll では既存のデスクトップウィンドウを利用するので、開発者が新たにウィンドウを生成する必要がありません。
LightGameProgramming など、ポインタのない言語にも、DLL ロード機能がある場合があります。pxeasy.dll は整数型 (int) と文字列型 (char*) だけのインターフェースになっています。ポインタの概念のない言語や、ポインタがよく分からない人におすすめです。
ピストンノイズは wave データと同等のバッファを生成しますが、再生方法までは提供されていません。再生エンジンはユーザが自由に決めて実装することができます。しかし、そういうことのできない言語もあります。簡単ではありますが、pxeasy_Sound_XXX にてピストンノイズの再生を提供します。
また、ウィンドウが閉じられたときに開放処理が書けない言語・ライブラリの環境では、ウィンドウを閉じることで開放忘れの心配があります。これについては確実な方法かどうか分かりませんが、DLL 切り離し時のイベント内で 開放処理を行うようにしています。ウィンドウが閉じられる時のイベントが記述できる環境では自力で開放処理を書く方が安全です。
このライブラリによる損害は全て、自己責任でお願いします。