• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Choosing an AU base class
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Choosing an AU base class


  • Subject: Re: Choosing an AU base class
  • From: patrick machielse <email@hidden>
  • Date: Fri, 27 Nov 2009 21:27:43 +0100

Op 21 nov 2009, om 02:36 heeft William Stewart het volgende geschreven:

> On Nov 20, 2009, at 13:08, patrick machielse wrote:
>
>> Now a new pitch shift mode must be implemented; the tempo must vary with the pitch ('vinyl style'). I suspect that this breaks the boundaries of AUEffectBase, and I should drop down to AUBase? Can I pull in as much data as I like in AUBase->Render()?
>
> Yes - but your AU can no longer be an aufx type
>
> When we develop 'aufc' units, we subclass from AUBase directly (which we do for some other cases as well)
>
> Brian's point about max frame size needs to also be observed. We use MaxFramesPerSlice to also limit how big any given pull is.

Thanks to both of you for your answers. This week I've been having a go at converting my 'aufx' unit into an 'aufc'. (I noticed a kAudioUnitSubType_Varispeed type that seemed to fit the bill even better, but auval testing seemed to indicate that it has the same '1:1' restriction as 'aufx' -- confusing).

I've canged the super class to AUBase, and by looking at the auval output, cutting and pasting bits and pieces from AUEffectBase, and googling this list, managed to build something that loads and runs. However, I still can't fully validate it yet. auval seems to run a broader spectrum of test on my 'aufc' compared to 'aufx' (logicly), and I'm stuck at this output:

Bad Max Frames - Render should fail

  PASS

Checking parameter setting
Using AudioUnitSetParameter

SetParameter:0 value: 1.88672   (caveman debugging)
SetParameter:0 value: 0.205078  (caveman debugging)
SetParameter:0 value: 0.224609  (caveman debugging)

ERROR: -1 IN CALL AudioUnitRender

* * FAIL
--------------------------------------------------
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
--------------------------------------------------

The 'SetParameter' logging seems to indicate that auval sets some values of my custom parameter (in the valid rage). Then AudioUnitRender returns '-1', a code which I cannot track down the meaning of... I'm missing some piece, but which one?

patrick _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Choosing an AU base class (From: patrick machielse <email@hidden>)
 >Re: Choosing an AU base class (From: Brian Willoughby <email@hidden>)
 >Re: Choosing an AU base class (From: William Stewart <email@hidden>)

  • Prev by Date: Re: Struggling to create a simple audio mixer
  • Next by Date: pass-thru using audio queues?
  • Previous by thread: Re: Choosing an AU base class
  • Next by thread: cleanly finishing a recording cycle on the iPhone - best practice?
  • Index(es):
    • Date
    • Thread