Audio Unit ホストがプラグインのパラメータをステップスルーして、次のような情報を取得する方法はありますか?
- 「Delay Time」などの文字列としてのパラメータ名
- パラメータ範囲 (最小、最大)
- パラメータ単位 (秒など)
- パラメータコントロール(スライダーなど)
AFAICT この情報はプラグインで利用できますが、ホスト側からクエリを実行する方法がわかりません。
Audio Unit ホストがプラグインのパラメータをステップスルーして、次のような情報を取得する方法はありますか?
AFAICT この情報はプラグインで利用できますが、ホスト側からクエリを実行する方法がわかりません。
#import最初にCAAUParameter と AUParamInfoが必要です( /Developer/Extras/CoreAudio/PublicUtility にあります)。
編集: これらのファイルは、「Audio Tools For Xcode」パッケージに含まれるようになりました。Xcode > Open Developer Tool > More Developer Tools... に移動して取得できます。
と呼ばれる AudioUnit があると仮定すると、次のコードはのパラメーターtheUnitを反復処理するように設定します。theUnit
bool includeExpert = false;
bool includeReadOnly = false;
AUParamInfo info (theUnit, includeExpert, includeReadOnly);
for(int i = 0; i < info.NumParams(); i++)
{
if(NULL != info.GetParamInfo(i))
{
// Do things with info here
}
}
たとえば、info.GetParamInfo(i))->ParamInfo()次のように定義された AudioUnitParameterInfo 構造体を提供します。
typedef struct AudioUnitParameterInfo
{
char name[52];
CFStringRef unitName;
UInt32 clumpID;
CFStringRef cfNameString;
AudioUnitParameterUnit unit;
AudioUnitParameterValue minValue;
AudioUnitParameterValue maxValue;
AudioUnitParameterValue defaultValue;
UInt32 flags;
} AudioUnitParameterInfo;
最初に AudioUnit を開く必要があることに注意してください (たとえば、ユニットを含む Graph で AUGraphOpen() を呼び出すことによって)。