Thank you very much Christian.

Correctly setting kNumberOfParameters to 1 now allows the Audio Unit to get to 
the "render” stage of AUVal without crashing - haha.

Will check out SetParameter - in the example TremoloUnit it is used with two 
arguments like so:

        SetParameter (
                kParameter_Frequency, 
                kDefaultValue_Tremolo_Freq 
        );
        
        SetParameter (
                kParameter_Depth, 
                kDefaultValue_Tremolo_Depth 
        );
        
        SetParameter (
                kParameter_Waveform, 
                kDefaultValue_Tremolo_Waveform 
        );

> On 23 May 2015, at 04:04, Christian Rober <[email protected]> wrote:
> 
> Without testing it, your constructor seems to be throwing an exception (Open 
> is a dispatched call to your constructor that catches any exceptions and 
> returns them as normal OSStatus errors, see ComponentBase.cpp).  The 
> exception looks like it wraps an invalid parameter error (10878, seen in 
> AUComponent.h).
> 
> I think this exception is being thrown in your call to SetParameter.  My 
> first thought is that your kNumberOfParameters is set to 0.  With no 
> parameters reserved, trying to set one will throw that exact error/exception 
> above.
> 
> The other part of this is that you are accidentally calling SetParameter on 
> AUBase/YourClass and not the global scope.  Though, from the code you shared, 
> I don't even know how a 2 parameter SetParameter call to the base class would 
> even compile.
> 
> I imagine the constructor body should look more like this:
> 
> Hardgainer::Hardgainer (AudioUnit component) : AUEffectBase (component) {
>     CreateElements ();
>     Globals () -> UseIndexedParameters (kNumberOfParameters); // <-- Should 
> be non-zero
>     Globals () -> SetParameter (
>                                                       kParameter_Gain,
>                                                       kDefaultValue_Gain
>                                                       ); // <-- Need more 
> arguments if calling AUBase::SetParameter.
>     ….
> 
> Note: The indexed parameter gets created in global scope by setting it on the 
> global element first.  Only after this initial global setting can it be 
> safely used by the AU.
> 
> --Christian
> 
> 
> On Fri, May 22, 2015 at 7:38 PM, Farhan Mannan <[email protected] 
> <mailto:[email protected]>> wrote:
> I have used the current audio unit tutorial (1) with a bit of tinkering to 
> create an Xcode project (2) that successfully builds a component but I can’t 
> get it to validate. AUVal gives me error -10878. (3)
> 
> I started in Xcode from the 'OS X > System Plug-in > Generic C++ plugin’ 
> template and copied all the methods in the tutorial for making the sample 
> audio unit (TremoloUnit) as well as a couple of methods that were in the 
> downloadable sample audio unit that seemed necessary to get it to build - 
> essentially trying to mimic the mythical audio unit template that the guide 
> refers to, but which is no longer available in Xcode and has been unavailable 
> for some time.
> 
> I think I have ended up implementing a version of every method in the sample 
> audio unit so I’m now stuck as to why it doesn’t validate. I understand that 
> the DSP code may be totally useless (it’s only meant to be a gain plugin) but 
> the thing won’t even open.
> 
> Any suggestions?
> 
> Even if this project isn’t salvageable in its current form, is there another 
> way I can go about starting to write audio units?
> 
> (1) 
> https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/TheAudioUnit/TheAudioUnit.html#//apple_ref/doc/uid/TP40003278-CH12-SW1
>  
> <https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/TheAudioUnit/TheAudioUnit.html#//apple_ref/doc/uid/TP40003278-CH12-SW1>
> 
> (2) https://github.com/farhanmannan/hardgainer 
> <https://github.com/farhanmannan/hardgainer>
> 
> (3) https://gist.github.com/farhanmannan/d5a83910d0b2f18840c1 
> <https://gist.github.com/farhanmannan/d5a83910d0b2f18840c1>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list      ([email protected] 
> <mailto:[email protected]>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/coreaudio-api/recapitch%40gmail.com 
> <https://lists.apple.com/mailman/options/coreaudio-api/recapitch%40gmail.com>
> 
> This email sent to [email protected] <mailto:[email protected]>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to