Thank you. This is very helpful.

I will try to connect the classes that come with the sample code with the .h 
files in the new framework which come with Yosemite/XCode 7. 

Steve



On Sep 20, 2015, at 8:20 PM, Christian Rober <[email protected]> wrote:

Unfortunately the AU Examples do not contain all of Apple's AU utility files.  
They just provide enough of the utility classes to get the examples going.  So, 
while the examples are definitely essential to learning the different aspects 
of AU development, they do not cover the less-common types, such as 
MusicDevice.  Here is a link to the full set of utility files:

https://developer.apple.com/library/ios/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html
 
<https://developer.apple.com/library/ios/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html>

If you look in there you will find MusicDeviceBase.h.  These files are NOT part 
of the AudioUnit related frameworks installed on both iOS and OS X.  I think 
they used to be installed by installing the Apple developer tools but were 
moved out of the installation years ago, being made available for downloading 
separately.

Brian's comment about not inheriting from AUBase directly is 100% true.  That 
said it is worthwhile to look at what is happening under the hood, especially 
with respect to the different AU types...

If you dig a little deeper you will see how the inheritance hierarchy of 
MusicDevice determines what AU features it's children support.  It inherits 
from AUBase, which gives all the essential implementations and then inherits 
from AUMIDIBase, which adds some added MIDI handling capabilities.  I would 
look at the template-based Factory method in ComponentBase.h and 
AUMusicLookup::Lookup() in AUPluginDispatch.cpp to get familiar with AU types 
and the Apple-provided inheritance hierarchy.

Finally, Apple have recently released a new v3.0 audio unit API.  Most likely 
the above semantics have changed, but I haven't had time to investigate the 
precise differences.  It is definitely worth a look and has probably simplified 
some of the development aspects you are currently encountering in this thread.

--Christian

On Sun, Sep 20, 2015 at 12:40 PM, Steven Brawer 
<[email protected] 
<mailto:[email protected]>> wrote:
MusicDevice.h is not a class, nor are any classes named MusicDevice (or 
MusicDeviceBase) declared in this file, nor does it include or reference 
MusicDeviceBase. Rather, besides C-structs and some other definitions, this 
file contains only calls to C functions (externs). Also, this file (and others) 
has LOTS of documentation (uncharacteristic). 

So, perhaps Apple is providing in these frameworks a set of functions to use. I 
think I did read somewhere that Apple was overhauling Core Audio, so maybe this 
is it. Perhaps now one is expected to roll one’s own classes, or Apple will 
(has already???) come up with some classes.

I will check out the downloads and compare the C functions to the .cpp files of 
the older frameworks. 

Thanks

Steve


On Sep 20, 2015, at 12:18 PM, Jim Credland <[email protected] 
<mailto:[email protected]>> wrote:

Download the samples here (see Download button at the top): 

https://developer.apple.com/library/mac/samplecode/sc2195/Introduction/Intro.html
 
<https://developer.apple.com/library/mac/samplecode/sc2195/Introduction/Intro.html>

Should have everything you need unless anyone knows a newer version.

On 20 Sep 2015, at 17:12, Steven Brawer <[email protected] 
<mailto:[email protected]>> wrote:

> I have added the following frameworks to a project: CoreMIDI, CoreAudio, 
> CoreAudioKit, AudioToolbox, AudioUnit (XCode 7, OSX10.10.5). These were 
> downloaded when I upgraded the OS and XCode, and are in 
> System/Library/Frameworks, all dated with the date of my upgrade of OSX. 
> 
> All I see in the project are headers. 
> 
> There is a MusicDevice.h, but no MusicDeviceBase.h. There are no AUEffect….. 
> .h of any kind.  Am I missing a framework, have things changed considerably, 
> or am I supposed to be using other frameworks that were not downloaded?
> 
> Thanks
> 
> Steve
> 
> 
> On Sep 19, 2015, at 6:15 PM, Brian Willoughby <[email protected] 
> <mailto:[email protected]>> wrote:
> 
> Yes. AUEffectBase handles one input stream to one output stream. All the 
> classes like AUInlineEffectBase and AUMIDIEffectBase that inherit from 
> AUEffectBase have the same assumptions. At the moment, I can't remember 
> whether additional streams require moving away from AUEffectBase or if there 
> are easy ways to adapt it. I do recall that I never finished my side-chain 
> effect that requires a second input stream.
> 
> You're on the right track with MusicDeviceBase. If you search for that class, 
> you'll probably find more help getting started in that area. Synths are a bit 
> more rare than effects that have audio input, so you might have to search a 
> little further.
> 
> Of course, the rarest plug-in is a synth that also accepts input audio for 
> any reason - whether side-chain, modulation, envelope tracking, etc.
> 
> Brian Willoughby
> 
> 
> On Sep 19, 2015, at 2:50 PM, Steven Brawer 
> <[email protected] 
> <mailto:[email protected]>> wrote:
>> Thank you so much. This is really a big help.  I am planning a plug-in synth 
>> to generate audio, so I will start with MusicDeviceBase and plow on from 
>> there.
>> 
>> If a class name includes the word “Effect”,  would it be for an effect 
>> plug-in and not a synth plug-in? (That is, such a class expects a stream 
>> input at the very least.)
>> 
>> Steve
>> 
>> 
>> On Sep 19, 2015, at 5:33 PM, Brian Willoughby <[email protected] 
>> <mailto:[email protected]>> wrote:
>>> Ultimately, it's AUBase.
>>> 
>>> However, you're most likely to use something like AUEffectBase, 
>>> AUInlineEffectBase, MusicDeviceBase, or AUMIDIEffectBase (which 
>>> incorporates AUMIDIBase).
>>> 
>>> It's very difficult to work directly with AUBase unless you understand how 
>>> to provide everything required. The subclasses are there to provide the 
>>> general stuff for nearly all possibilities.
>>> 
>>> If you have a synthesis plug-in, i.e. one that generates audio, then start 
>>> with MusicDeviceBase. If you have a standard effect, AUEffectBase is the 
>>> most common - one stream in, one stream out, any number of channels. There 
>>> are a few effects where AUInlineEffectBase makes sense, but it may not 
>>> always be easy to know when to choose it over AUEffectBase. 
>>> AUMIDIEffectBase combines AUEffectBase and AUMIDIBase, but I don't believe 
>>> that there are any base classes which combine MusicDeviceBase and 
>>> AUEffectBase, but I can't recall if there are actually any valid scenarios 
>>> where that would be needed.
>>> 
>>> Brian Willoughby
>>> Sound Consulting
>>> 
>>> On Sep 19, 2015, at 1:29 PM, Steven Brawer 
>>> <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>>> What is the Core-Audio base class for creating a logic pro plug-in? 
> 
> 
> 
> _______________________________________________
> 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/jim%40cernproductions.com
>  
> <https://lists.apple.com/mailman/options/coreaudio-api/jim%40cernproductions.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] 
<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