AUAudioUnit & AudioUnitGetProperty, AudioUnitSetProperty - PullRequest
1 голос
/ 16 марта 2019

С появлением Audio Unit v3 основным подклассом нашего класса является новый целевой класс C AUAudioUnit.

AUAudioUnit имеет реализацию AUParameter и легко работать с AUParameter через свойство AUAudioUnit.parameterTree.

Я не могу использовать свойства аудиоустройства, поскольку AUAudioUnit не предоставляет его свойство AudioUnit, которое требуется в качестве параметра

extern OSStatus
AudioUnitGetProperty(           AudioUnit               inUnit,
                                AudioUnitPropertyID     inID,
                                AudioUnitScope          inScope,
                                AudioUnitElement        inElement,
                                void *                  outData,
                                UInt32 *                ioDataSize) 

В настоящее время в AUAudioUnit нет свойства или проверки класса AudioUnit. Я не уверен, как использовать свойства AudioUnit в платформе AudioUnit v3.

Кто-нибудь знает, как использовать свойства AudioUnit в новом API v3?

Спасибо.

1 Ответ

0 голосов
/ 09 апреля 2019

В AppleUs AudioUnitV3Example приведен пример того, как это сделать. Вот код из этого:

// Create a parameter object for the cutoff frequency.
    AUParameter *cutoffParam = [AUParameterTree createParameterWithIdentifier:@"cutoff" name:@"Cutoff"
            address:FilterParamCutoff
            min:12.0 max:20000.0 unit:kAudioUnitParameterUnit_Hertz unitName:nil
            flags: kAudioUnitParameterFlag_IsReadable |
                   kAudioUnitParameterFlag_IsWritable |
                   kAudioUnitParameterFlag_CanRamp
            valueStrings:nil dependentParameters:nil];

  // Initialize default parameter values.
    cutoffParam.value = 20000.0;
    resonanceParam.value = 0.0;
    _kernel.setParameter(FilterParamCutoff, cutoffParam.value);
    _kernel.setParameter(FilterParamResonance, resonanceParam.value);

  // Create the parameter tree.
    _parameterTree = [AUParameterTree createTreeWithChildren:@[cutoffParam, resonanceParam]];

(я опустил код для резонансаParam)

Здесь также есть отличный учебник: https://audiokitpro.com/auv3-midi-tutorial-part2/

...