Re: Sample-accurate parameter automation? Possibe at all with AUs?
Re: Sample-accurate parameter automation? Possibe at all with AUs?
- Subject: Re: Sample-accurate parameter automation? Possibe at all with AUs?
- From: William Stewart <email@hidden>
- Date: Wed, 12 Mar 2008 13:06:37 -0700
On Mar 12, 2008, at 1:24 AM, Greg X wrote:
Mr. Stewart!
Thank you for taking the time to answer.
My AU inherits from MusicDeviceBase, since it is a
synthesizer plugin, not an effect.
How can I take advantage of this automatic render
buffer splitting behavior?
I'm not sure I understand that question.
I also want to extend my synthesizer to be able to
accept an audio signal and use it as a modulation
source in its modulation matrix.
You can create an input element for you Synth. AULab will give you the
option to route an audio input into a input element of a music
instrument unit.
My original idea was to move to AUMIDIEffectBase.
- Is it the move I need to do in order to take
advantage of the automatic buffer splitting?
- Are MIDI events also splitting up the buffer or I'll
still need to implement MIDI event scheduling and
pull/process the MIDI events with sample offsets when
rendering the next slice? (the buffer is already
automatically split up on parameter change boundaries)
yes - MIDI works the same for both of these AU types.
- Is AUMIDIEffectBase useable to implement a fully
featured synthesizer? (I'm handling MIDI events
myself, I don't need the special calls for note on and
such)
No, I think it is better to use the MusicDevice
Bill
Regards,
Greg1X
p.s.: Thanks a lot to everyone to answering to my
questions!
--- William Stewart <email@hidden> wrote:
Yes. And Stephen's general description is right..
As for a stream of parameter events... we had this
notion in general
sometime ago and we even defined in specific format
type for this kind
of control stream (see CoreAudio/CoreAudioTypes.h)
However, there didn't seem to be a general interest
in providing a
sample by sample parameter stream, so we've
basically not done
anything further on it.
Audio units in general are pretty agnostic about
what format they see
on given buses, so its something we could add if
there was sufficient
interest from both AU and host app developers
Bill
On Mar 11, 2008, at 3:15 PM, Brian Willoughby wrote:
On Mar 11, 2008, at 15:06, Kevin Dixon wrote:
The answer lies in the source code for AUBase
and AUEffectBase, or
perhaps some of the others. I believe it is
AUEffectBase which has
optional code to split the render process into
chunks. Without
sample-accurate parameters, you always get a
full buffer and process
it at once. But with sample-accurate parameter
scheduling,
AUEffectBase will calculate the points within
the buffer where the
parameter value changes to a new value. Then,
your normal render
will be called with a small chunk of the buffer,
just the part where
the parameter remains constant. In this case,
you still just call
GetParameter once at the beginning of your
render, but you'll be
called again to render the next parameter value.
So given this information, if an AU inherits from
AUEffectBase,
then as a
host, you could schedule parameter changes and
then by calling
render, it
would take care of itself by splitting the render
up at the scheduled
points?
-Kevin
I believe the answer is 'yes'
I also think you have phrased the question
perfectly. i.e. it seems
to be the responsibility of the AU to handle
breaking down buffers
for sample-accurate parameters. Unless I'm wrong,
the AU Host is
apparently only required to provide the
information necessary, but
not to actually break down the buffers or anything
like that.
Brian Willoughby
Sound Consulting
_______________________________________________
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
_______________________________________________
Do not post admin requests to the list. They will be
ignored.
Coreaudio-api mailing list
(email@hidden)
Help/Unsubscribe/Update your Subscription:
@yahoo.com
This email sent to email@hidden
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
_______________________________________________
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
_______________________________________________
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