for the record, again, Ardour utilizes a completely cross-platform build tool (waf) that runs on macOS, Windows and Linux. Once upon a time, we used to keep an XCode project up to date with the state of things, but we abandoned that years ago because XCode (as a platform specific environment) offered us nothing. There's nothing special about what waf does compared to make (other than that it is about 2000% smarter), and there's no reason why you should not be able to build with a makefile. The actual invoked programs are still roughly the same as on any *nix system (waf knows about the differences; apple's make might already know them too).
On Sun, Apr 1, 2018 at 6:40 AM, Igor Clark <igor.cl...@gmail.com> wrote: > Thanks Brian, that's really helpful. > > I'm trying to establish whether I can avoid Xcode because I'm working with > a very specific toolchain which handles Makefiles & build pipeline > automatically, completely independent from Xcode. My usual process for > building this kind of lib is to find out whether I can do what I want as a > straight C/Makefile proof-of-concept first, then implement that into my > main project and have the toolchain manage the build for me. > > As for the MIDI send/receive, on reflection I think I'll be able to use > normal MIDI I/O. I just need to establish what other outputs I can get from > the plugins via the AU API, which is obviously going to be dependent on > individual plugins. > > Thanks again! > > > On 01/04/2018 04:19, Brian Willoughby wrote: > >> You can host an AU in Standard C. Just because AudioUnits are written in >> C++ doesn’t mean that the host must be written in C++. In fact, I tend to >> prefer to avoid C++ in favor of Standard C and Objective C. About the only >> time I use C++ for CoreAudio is when creating an AudioUnit (but not when >> hosting one). >> >> I would recommend using AUGraph if you want to host multiple AUs. If your >> connections are simpler then you can just host the AU(s) directly without >> an AUGraph. Your choice may be influenced by whether you need live audio >> output during your processing, or just offline. Obviously, offline >> processing is quite easy in a command line program - the biggest challenge >> is not terminating before the audio is complete. >> >> Writing a command line program is very much supported. I do it all the >> time. It’s typically more difficult to weave the Objective C User Interface >> with the Standard C CoreAudio API, but even that isn’t difficult. You >> should find it even easier to access CoreAudio and AudioUnits in a CLI >> program written in Standard C. >> >> As for Xcode, the tool supports command line programs just as easily as >> GUI programs. I write a large number of CLU programs and I always use Xcode >> because it is familiar. It presents no hurdles for CLI development. Are you >> trying to avoid Xcode because you have specific issues? I’ve certainly >> written a few projects with a simple Makefile and command-line make, but I >> tend to get weary of manually managing the Makefile(s). Xcode makes this >> work with much less effort, and it supports all kinds of development: GUI >> apps, CLI programs, plugins, etc. >> >> About the only question I don’t have an answer for off-the-cuff is how to >> send MIDI events to an AU. If I needed to do that, I’d get the basic >> structure of the AU loading and processing audio first, then look for some >> documentation or examples that send MIDI events. I have done CLI programs >> that send and receive MIDI, but those always communicated with external >> devices. I’m not quite sure how to target an AU. As Paul suggested, it >> might be possible to look through Ardour to find a hint, but you should get >> everything else working first before diving into Ardour sources. >> >> Brian >> >> >> On Mar 30, 2018, at 6:10 AM, Igor Clark <igor.cl...@gmail.com> wrote: >> >>> Hi all, >>> >>> Is it possible to load an existing AudioUnit MIDI plugin and interact it >>> with it from a CLI program written in C? I'd like to be able to use >>> commercial plug-ins in my MIDI processing app. >>> >>> I'm comfortable with how to communicate between C & C++ using 'extern' >>> etc, so that's not the main issue. Rather, I'm wondering whether it's >>> possible to have a C CLI app that loads the AU and sends MIDI passages to >>> it, so that the AU processes the data (ideally async) and then returns its >>> result back to the C app. I guess it's effectively writing an AU host app, >>> but does that all have to be done in Xcode, or is it possible to do it as a >>> straight C/C++ program using clang/llvm at the shell? >>> >>> Also, the AU Hosting Guide docs talk about I/O, Mixer and Effect units - >>> is there any other material that focuses on how to do MIDI in AU? Or is a >>> adaptor/translator layer necessary? >>> >>> Thanks for any pointers, >>> Igor >>> >> > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Coreaudio-api mailing list (Coreaudio-api@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/coreaudio-api/paul% > 40linuxaudiosystems.com > > This email sent to p...@linuxaudiosystems.com >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list (Coreaudio-api@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to arch...@mail-archive.com