Thank you very much for your timely response. 

I am already aware of most of this material. Unfortunately, none of this 
material seems to answer my questions. 

Here's how I see it. The whole AudioUnit rendering process seems to be  
equivalent to using callbacks in AudioQueue (at least logically, and even 
programmatically in many ways). Just a bunch of different functions (So that 
part will, I believe, slip right into my existing code (doubtless  after lots 
of aggravation on my part). I can also appreciate that Xcode might be a pain. 
These are all details which I believe I can handle.

However, as far as I can tell (and please correct me if I am wrong) none of 
these examples illustrate what I actually need and what I listed in my original 
email:

* How to get "signals" from Logic into the plugin - not external MIDI signals 
(which I can already do) but signals from the Logic software track into which 
the plugin is plugged. These would probably be called something like Logic 
"internal MIDI events"  or something similar. There must be some function 
(functions?) to get these.

* How to get output generated by the plugin (created by the rendering) directed 
to the same instrument track (for instance, so it can be processed by EXISTING 
effects processors supplied with Logic, which I do NOT want to write).

* How to connect my plugin to automation.

Presumably all this involves figuring out how to fit into the AUGraph structure 
in LogicPro. 

I already have a classy stand-alone synth -  fancy GUI,  nice DSP processing 
routines, etc etc etc. What I need is really simple and basic -   bare-bones 
function calls that allow me to do what is listed above. I don't want C++ 
classes (I'm not using C++), I don't want convenience routines. All these 
things are just wrappers around C (objective C) functions. I want the relevant 
functions.

Again, thanks for your response, and (hopefully) for additional responses.

Perhaps, as a final comment, it will be necessary for me to pay an Apple 
engineer to help me with this. It is a sign of my desperation that I am 
actually willing to do this if I could be sure that, after spending the money, 
I would have my answer (and if Apple even offers this service). I'd even enroll 
in a course (if such a thing exists). 

Anyway, thanks again.

Steve


BTW, just to indicate the paucity of available material on this subject, when I 
google "programming an au plugin for logic pro" I'm getting back references to 
my forum postings. 





On Apr 13, 2015, at 12:23 PM, Christian Rober <[email protected]> wrote:

I would start with building, installing, running and setting debugger 
breakpoints in the example AudioUnits in this sample project (look for the 
different Render, Parameter and MIDIEvent/StartNote calls):

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

While doing that I would refer to this for clarification of both the higher 
level design and some notable details:

https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/Introduction/Introduction.html

You will probably also want the Core Audio helper code files.  They are 
partially included in the sample projects above, but it may best to "install" 
it in a more accessible/global location that is conducive to your workflow.  
Among other things, these give helpful c++ base classes for bootstrapping your 
own Audio Unit via the AU API:

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

One word of warning: getting the Xcode project/workspace configured for audio 
units can be tricky and has a few gotchas, especially with respect to older 
hosts.  For example, there are many cases where the older component 
manager-based code paths require strict matching of properties and strings 
across multiple files.

I create mine from scratch and pattern-match the sample code environments, 
others copy and alter the existing ones.  Do whichever works the best for you.

Good luck.

--Christian

On Mon, Apr 13, 2015 at 11:34 AM, Steven Brawer 
<[email protected]> wrote:
I apologize in advance if this topic has been discussed or if this is not the 
correct forum. And if I am asking too much.
-----------------------
I have created a complex and sophisticated synthesizer with objective C, Cocoa 
and AudioQueue. (For just onesimple example, frequencies, amplitudes and 
timbres can fluctuate on sub-millisecond up to seconds time scales. There is no 
start/end latency.) The synth receives MIDI signals from a LogicPro external 
MIDI track and outputs to standard out (which is piped back to a Logic audio 
track via an audio interface). Objective C classes organize the modules of the 
project, while time-critical variables and calculations use C. There is no C++ 
(which I know). It runs in X-code.
I would like to make this synth an au plugin app for LogicPro, and am looking 
for MINIMAL help or examples to guide me. I think I need only a few things. 
POINT ME TO THE APPROPRIATE FUNCTIONS (see below) and I will figure out the 
rest. I'm just asking for a few words. I will use audio graphs if necessary.
1. What is the C/Obj C function (or functions) needed to capture signals from 
the Logic software tracks into which the plugin is inserted? (These would 
replace/expand MIDI signals with Logic signals.)
2. What is the C/Obj C function (or functions) to send the output directly to 
the instrument track?
3. What is the C/Obj C function (or functions) required for automation?
4. How do I create the app bundle and where do I put it?
5. I have been informed that Audio Queue cannot be used in an au plugin. Is 
this true? Is there an alternative that operates in essentially the same 
manner? 
Currently, the synth is for my own personal use for composing opera and songs 
using custom instrumental sounds. I am not fooling around. See 
soundcloud.com/steven-brawer for a sci-fi opera composed entirely with Logic 9.
I use XCode 5.1.1, Logic Pro 10.0.7, OSX 10.8.5. I plan to upgrade to Yosemite, 
Logic 10.1 and the most recent XCode when I see from the forums that things 
have settled down sufficiently.
Thank you in advance.

 _______________________________________________
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/recapitch%40gmail.com

This email sent to [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