Re: Newbie question: Making Jaguar compatible AU Instrument
Re: Newbie question: Making Jaguar compatible AU Instrument
- Subject: Re: Newbie question: Making Jaguar compatible AU Instrument
- From: William Stewart <email@hidden>
- Date: Fri, 23 Sep 2005 11:28:57 -0700
On 23/09/2005, at 8:35 AM, Aurelio Ramos wrote:
Thanks Bill,
I followed the steps that you suggested. This seems to definitely
move me in the right direction. Well, almost. With a few additional
changes I made I can make the sample build without errors and it
appears to work within Ableton Live 4.
I solved a number of additional compiler errors, and I will tell
you how, so you can confirm whether this changes are the most
sensible ones:
1. CAStreamBasicDescription.cpp no longer could find various
constant definitions:
kAudioFormatAppleLossless
kAppleLosslessFormatFlag_16BitSourceData
kAppleLosslessFormatFlag_20BitSourceData
kAppleLosslessFormatFlag_24BitSourceData
kAppleLosslessFormatFlag_32BitSourceData
Right - these have all been fixed in the latest CA SDK (the one with
the code in it!) - developer.apple.com/audio (1.4.2 is the version
you want)
I created a new header file where I put those, now missing,
definitions (as found in CoreAudioTypes.h) I then made a local copy
of CAStreamBasicDescription.cpp which includes my additional header
file.
Also, MusicDeviceBase.cpp could no longer find the declaration for
MusicDeviceMIDIEventProc. I solved this one by making my own local
copy of MusicDeviceBase.cpp and adding this declaration right on
top as found in MusicDevice.h
Also fixed in the same SDK
This led to success (FINALLY!) and seems like a formula that I can
now "reproduce" on the product that I am developing.
Thanks for your super prompt reply and for all the help!
Sure - glad its working
Bill
-Aurelio
From: William Stewart <email@hidden>
To: Aurelio Ramos <email@hidden>
CC: email@hidden
Subject: Re: Newbie question: Making Jaguar compatible AU Instrument
Date: Thu, 22 Sep 2005 15:35:13 -0700
There are two SDKs here, so I'll try to clarify what they are.
This is a general problem (not just a CoreAudio one)!
Firstly - there is the CoreAudio SDK that provides sample code,
etc. This is available for download at http://developer.apple.com/
audio (or /sdk) along with a lot of other SDKs
Second - there are SDKs that ship with XCode that represent
system headers for different releases of the operating system,
etc. These SDKs contain no sample code/documentation
The SDK that we distribute (the first one above) has two versions
currently:
1.3.6
- this SDK is still available for download and is completely
compatible with a 10.3.x system
1.4.2
- starting with the 1.4 SDK we decided to draw a line in the
sand, and to remove some components of the 1.3.x SDK, add new
code that requires 10.4 (or better).
One of the new features in the 1.4 SDK is a collection of base
classes (AUInstrumentBase) for building AU Instruments -
previously we never had an example synth in the SDK. As we are
targeting 10.4 in this SDK we decided with this example
(SinSynth) to also turn on the new 10.4 AU feature that maps MIDI
messages to parameters. With AUInstrument (actually, the
implementation is in AUMIDIBase) we provide full support for this
feature, so that if you enable this, it will just work.
The problem though is that this requires API that is first defined
in 10.4. So setting a previous SDK to build against will then
cause build failures as you are seeing below.
These are easy to fix though. In the project's compiler settings
you will see:
-DCA_AUTO_MIDI_MAP=1
You should remove this define.
Secondly, you will need to remove the following files from the
project:
CAAUMIDIMap.h and .cpp
CAAUMIDIMapManager.h and .cpp
The SinSynth project will then build against the 10.3.9 SDK
I'll add this to the read me for the SDK
Bill
On 22/09/2005, at 2:57 PM, Aurelio Ramos wrote:
I am developing a software synthesizer (currently a VST) and it
needs to support audio units. It also needs to run under 10.3.9
(as well as 10.4)
As a VST it is already working under 10.3.9 just fine, since its
all setup for "cross developing" that is, I got the 10.3.9 sdk
installed and everything in my main project points to it.
I also know how to build the SinSynth sample and install it and
test it...
The problem that I am finding is that, although the latest core
audio SDK provides a nice sample (SinSynth) this sample does not
compile if I make it "point" to the core audio sdk that came
with 10.3.9. In other words, I am setting SynSynth up to "cross
develop" for 10.3.9 as a simulation of what I need to do.
Clearly, if I can make this synth compile and work by linking it
with the old frameworks, then it should be easy for me to bring
whatever is needed over to my actual project.
The cross development SDK files do not include the Extras
(neither the samples nor the AU Public and PublicUtility
folders) for CoreAudio, and even if it did, I don't believe that
it had a software synthesizer in it.
Another thing that I tried was to try to make my synth use the
10.3.9 frameworks, but use the AU Public and PublicUtility files
from the current SDK, while fixing the multiple compile errors
that came up (since these files expect a different set of
frameworks I think).... That led nowhere, since the component
that was compiled was not "picked up" by auval or any host upon
installation.
What I would need is a software synth template that will work on
10.3.9, or better means to debug my non working audio unit.
Isn't there a Component Manager "viewer" utility or something to
see whats "wrong" with a component?
Also, is there a place where I can obtain the files from the
"extras" folder that came on a computer with 10.3.9 (given that
they are absent from the crossdevelopment sdk)?
Its pretty easy to trace bugs where "something" goes wrong but
very difficult to trace a bug where "nothing happens"...and I
feel at this point like I am wasting a lot of time and getting
nowhere,
Please help...
Grateful in advance,
-Aurelio
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com
This email sent to email@hidden
--
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
_____________________________________________________________________
___ __
--
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