ANN: RMS Buddy AU, public example code, props to CA team
ANN: RMS Buddy AU, public example code, props to CA team
- Subject: ANN: RMS Buddy AU, public example code, props to CA team
- From: Marc Poirier <email@hidden>
- Date: Sat, 22 Feb 2003 01:33:59 +0100 (CET)
Hello. This is a sort of multi-part message/announcement.
Part 1: new Audio Unit released
I just released an Audio Unit version of my RMS Buddy plugin. It's not an
effect, it's just a signal analyzer. It tells you information about the
RMS and peak levels. Personally I find it extremely useful, especially
when mastering, but that's just me...
If you want to check it out, it's available at:
http://destroyfx.org/audiounits.html
Part 2: props to CoreAudio team for making the AU API so good
It was fun making the AU version of this particular plugin because, thanks
to some nice capabilities of AU, I was finally able to make it work like I
had always wanted to. For one thing, I made it more efficient thanks to
the AUInlineEffect thingy. This is perfect for an analyis plugin because
I don't need to touch the output at all, I just look at the input values
and everything's fine. With VST, I had to copy over the contents of the
input to the output, which is redundant and inefficient. It's not super
inefficient, but still wasteful, and ideally I like for RMS Buddy to take
approximately 0% CPU so that you can always squeeze it into a signal path
and not worry about it.
But the main benefit of AU was the far more sophisticated notification
system which allowed me to finally make a GUI that can present the
information reliably, and at a consistent rate. The VST version was
always pretty inconsistent between different hosts and sometimes not
accurate. Because I can get total reliable accuracy with the AU version,
I also added a parameter that lets you control the analysis window size
(which is also the refresh rate), something that I've always wanted to do
but was hopeless with VST! The way I implemented the notification scheme
from the audio thread was based on the recent recommendations by Bill
Stewart to use a private parameter to send notifications and then I cache
the analysis data for the UI and use a private property to share the data
with the UI component.
Part 3: public example source code available
The source code is available in our cvs repository at SourceForge. In
order to make this plugin extra lightweight and efficient, and since it
relies on a number of AU-specific features to work well, I did it purely
using the AU API rather than our DfxPlugin "meta API" class. So it might
be of interest to folks as example code that is purely AU oriented.
Anyway, I hope that some folks find the plugin useful, and if you
encounter any problems with it, please let me know.
Thanks,
Marc
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.