ofSoundPlayer (openFrameworks)とADX2を比べてみた


クリエイティブな開発環境であるopenFrameworksofSoundPlayerとCRI ADX2のAtomExPlayerを比較してみました。

なぜ?

プログラムからジェネラティブなものまで簡単に記述できるopenFrameworksはとても魅力です。

また、サウンド制御においても学ぶのに好都合です。

 

これらのサウンド面をADX2を介して移植できたら、
または逆にopeFrameworks上でゲーム的な演出をできたら、何か嬉しいことが起きそうな予感がします。

 

同じC++の関数として呼び出せるので、移植もそれほど難しくないかと思います。

比較

ofSoundPlayer AtomExPlayer 内容
getPan()  criAtomExPlayer_GetParameterFloat32
CriAtomExParameterIdTag CRIATOMEX_PARAMETER_ID_PAN3D_ANGLE 
現在のパンを得る
getPlayer() CriAtomExPlayerHn プレーヤーを得る
getPosition() criAtomExPlayer_GetTime  再生時刻0.0~1.0で得る
getPositionMS() criAtomExPlayer_GetTime  再生時刻をms(ミリ秒)で得る
getSpeed()  criAtomExPlayer_GetParameterFloat32
CriAtomExParameterIdTag CRIATOMEX_PARAMETER_ID_PITCH 
再生速度を得る0.0~2.0で得る
getVolume()  criAtomExPlayer_GetParameterFloat32
CriAtomExParameterIdTag CRIATOMEX_PARAMETER_ID_VOLUME
再生音量を0.0~1.0で得る
isLoaded() criAtomExPlayer_Prepare criAtomExPlayer_GetStatus  リソースロード済みかどうかを得る
isPlaying() criAtomExPlayer_GetStatus  再生中かどうかを得る
load() criAtomExPlayer_Create ファイル名指定でリソースをロードする。ストリームかどうかも指定。
play() criAtomExPlayer_Start 再生
setLoop() criAtomExPlayer_LimitLoopCount  ループにする
setMultiPlay() 基本多重再生(*1) 多重再生にする
setPan() criAtomExPlayer_SetPan3dAngle  パンを変更
setPaused() criAtomExPlayer_Pause criAtomExPlayback_Resume ポーズする
setPlayer() CriAtomExPlayerHn プレーヤーを新たにセットする
setPosition() criAtomExPlayer_SetStartTime 
再生開始位置を0.0~1.0でセットする
setPositionMS() criAtomExPlayer_SetStartTime  再生開始位置をmsでセットする
setSpeed() criAtomExPlayer_SetPitch  再生速度を0.0~2.0でセットする
setVolume() criAtomExPlayer_SetVolume 再生音量を0.0~1.0でセットする
stop() criAtomExPlayer_Stop 止める
unload() criAtomExPlayer_Destroy  リソースを破棄する。

マニュアルへのリンクはADX2LEのマニュアルへリンクしていますが、一部アカウントが必要なマニュアルへのリンクが含まれます。引数など多少変換が必要なものもあります。

(*1) 基本多重再生・・・ もし発音数をリミットさせるなら用途に応じて、「ボイスリミットグループ」「キューリミット」「カテゴリによるキューリミット」「フェーダーのアタッチcriAtomExPlayer_AttachFader」「トラックのMonoモード」「ボイスプライオリティ」「ボリューム0時停止」などがある。

比較してみた感想

ADX2では他にも山のようにサウンド系の関数が用意されていて、リファレンスを見ると目眩を起こすかもしれません。

少し前準備が必要ですが、それほど手間なくofSoundPlayerのようにwavファイルを直接指定して再生することもできます。

もし、openFrameworks上でADX2を使うメリットがあるとすれば、「大量音声」の管理になるかと思います。
多重再生時のリミット制御やプライオリティリミットなどのデーター駆動化などもあるでしょう。

ADX2もマルチプラットフォーム(クロスプラットフォーム)な環境として似ています。さらにはゲーム専用機という環境にまで対応しています。
もう一つはゲーム的なインタラクティブな演出データが扱えるのも魅力があるかもしれません。

単純に鳴らすだけでなく、ランダムな再生、楽曲のクロスフェードやブロック遷移などの音楽的な操作、相互作用などをある程度データ側に持たせることができるのも良い点かもしれません。

openFrameworksでサウンドの扱いに慣れてからADX2を見るのもありかもしれません。


ちゃ〜り〜

ちゃ~り~田中(tatmos a.k.a. charytanaka) 興味あるもの、ゲームジャム、サウンドプログラム、リアクティブな音やアートやシステム、楽器、作編曲、音制作、ボカロ、ファミコンやFM音源、MML、レトロゲーム、音声合成、CRI ADX2、LogicPro、Unity、MIDI、Max7、MikuMikuDance、TouchDesigner、JUCE

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です