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: "Aurelio Ramos" <email@hidden>
- Date: Fri, 23 Sep 2005 11:35:16 -0400
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
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
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!
-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:
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
________________________________________________________________________ __
_______________________________________________
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