• 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: AudioUnitScheduleParameters
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AudioUnitScheduleParameters


  • Subject: Re: AudioUnitScheduleParameters
  • From: William Stewart <email@hidden>
  • Date: Mon, 11 Apr 2005 11:41:01 -0700


On 11/04/2005, at 11:24 AM, Ev wrote:


On Apr 11, 2005, at 1:12 PM, William Stewart wrote:


Yes - it really needs to be done BEFORE the AU begins its render cycle - so RenderNotify is the perfect time in the sense that it is called by the AU from the thread on which its Render method is called, and is called just before it goes into the render method proper.


OK, got it, that makes sense.
Will it work at all if it's done in the *post* RenderNotify? I may not know my 'playback position' until after the render (looping and what not).

Nope - in fact you may lose scheduling events for ramping if you schedule stuff in Post Render...




The MusicSequence API provides an event for parameter scheduling, and it will schedule parameters to sample accurate positions (it does its scheduling from the render notify) - so you can construct a sequence of events and play them back at some later time - you can also add user events, and use a callback to act on them when they are played.


I will look into this.


At some point, the calling chain will end up with a call to AudioUnitSetParameter, so I'm not entirely sure that I understand the distinction you are trying to make.


I'm trying to take advantage of the "ramped" capability that AudioUnitScheduleParameter gives - and I'm doing my parameter changing based on curves, so the resulting resolution of ramping will be much better than stair-stepping with AudioUnitSetParameter.

The MusicSequence API's also support scheduling ramps - all you need is a track with:
MusicTrackSetProperty with kSequenceTrackProperty_AutomatedParameters and a UInt32 set to 1 (tells the sequence engine to treat this track in this way)..


Then it looks at parameter events in that track as pairs:
The first param event - start of the first ramp
The second param event - end of the first ramp
The third param event - start of the second ramp
The fourth param event - end of the second ramp, etc...

The two pairs must of course have the same paramID - if you need overlapping ramps for different params, then you will need to put them in different tracks.

Bill


Ev Technical Knowledge Officer Head Programmer/Designer Audiofile Engineering

http://www.audiofile-engineering.com/



--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________ __
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________ __


_______________________________________________
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


  • Follow-Ups:
    • Re: AudioUnitScheduleParameters
      • From: Ev <email@hidden>
References: 
 >AudioUnitScheduleParameters (From: Ev <email@hidden>)
 >Re: AudioUnitScheduleParameters (From: William Stewart <email@hidden>)
 >Re: AudioUnitScheduleParameters (From: Ev <email@hidden>)

  • Prev by Date: Re: AudioUnitScheduleParameters
  • Next by Date: Re: AudioUnitScheduleParameters
  • Previous by thread: Re: AudioUnitScheduleParameters
  • Next by thread: Re: AudioUnitScheduleParameters
  • Index(es):
    • Date
    • Thread