Comment créer un AVAudioUnit avec son AURenderCallbackStruct?

Bonjour

Je sèche depuis plusieurs jours. Il me faut pour un projet avec AVAudioEngine MacOS créer un AVAudioUnit. Je ne parviens pas à l'instancier. D'autres fois j'emploie le audioUnit du inputNode ou du outputNode de l'audioEngine, mais là ce n'est pas possible : il me faut créer ce audioNode.

J'ai bien vu cette discussion :
https://forums.developer.apple.com/thread/39715

J'ai fait :
AVAudioEngine *audioEngine;
AVAudioUnit *aUnit;
AudioUnit captureUnit;

puis dans le constructeur de la classe audio
AudioComponentDescription desc = { kAudioUnitType_Effect,'fltx','rvnr',0,0 };

[AUAudioUnit registerSubclass:aUnit.class asComponentDescription:desc name:@Herve:TestCaptureAudioRythm version:67072];

[AVAudioUnit instantiateWithComponentDescription:desc options:0 completionHandler:^(AVAudioUnit * unit, NSError *error) {
self->aUnit = unit;
[self->audioEngine attachNode:self->aUnit];
NSLog(@AVAudioUnit: %@, error: %@", unit.description, error);
}];

(captureUnit = aUnit.audioUnit; //sera utilisé plus tard)

avec dans info.plist la NSExtension suivante :

NSExtensionAttributes

AudioComponents


description
$(PRODUCT_NAME)
factoryFunction
$(PRODUCT_MODULE_NAME).AudioClass
manufacturer
Herve
name
Herve:TestCaptureAudioRythm
sandboxSafe

subtype
fltx
tags

Effects

type
aufx
version
67072



NSExtensionMainStoryboard
MainInterface
NSExtensionPointIdentifier
com.herve.testCapture

Je n'y arrive toujours pas. Le AVAudioUnit reste 'null', il ne s'instancie pas. Avec alloc-init avant pas davantage.

(après, il sera facile de mettre le renderCallback une fois le audioUnit actif, je l'ai déjà fait en dérivant les noeuds par défaut de AudioEngine)

Quelqu'un aurait une idée?? Merci par avance.

Réponses

Connectez-vous ou Inscrivez-vous pour répondre.