4

Audio Unit ホストがプラグインのパラメータをステップスルーして、次のような情報を取得する方法はありますか?

  • 「Delay Time」などの文字列としてのパラメータ名
  • パラメータ範囲 (最小、最大)
  • パラメータ単位 (秒など)
  • パラメータコントロール(スライダーなど)

AFAICT この情報はプラグインで利用できますが、ホスト側からクエリを実行する方法がわかりません。

4

1 に答える 1

8

#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() を呼び出すことによって)。

于 2011-07-08T18:44:49.410 に答える