Juce Max MSP audio plugin wrapper
Hello,
I've working on a wrapper for MaxMSP which makes a MaxMSP signal processing object out of a Juce AudioProcessor class. Juce already includes a crossplatform framework for AU, VST and RTAS plugins. This project allows you to take the same code and make a MSP object.
Browse or SVN the source...
I've added another subproject to this: A Juce Component wrapper. The plan is to allow you to build a Juce-based component as a separate window (owned by an object) or as a UI object box. Works only in Max 4.6 at the moment but I suspect it's going to be easier in Max 5 than the hacking I did to get some of this to work!
The Juce audio plugin wrapper works in Max 5 BTW and in Max 4.6 can own a Juce window too as the plugin editor too.
In the trunk the two directories juce_msp and juce_box.
good on ya, dude! I seriously spent days trying to figure out how to wrap a max patch into an audio unit! Your a life saver!
So far this is the best looking way ive found to potentially make an audiounit plugin with a max patch that communicates with the DAW through a wrapper.
The problem is, I am completely new to JUCE and C++ and all that. As most of my patch is already done in max, I really only require simple audio and midi through to the au wrapper for sync and playback in Logic.
I would be extremely grateful if you could give me a push in the right direction as to how i may go about setting that up via max and juce.
I am utterly disoriented in Xcode, and just starting to pick up the projucer. and faust a bit, but still pretty green in the scripting department. Any hints you could give me would help...
Cheers!
You are replying to a 7year old thread, Max 4.6 had support for Pluggo (native VST support), so i suspect wrapping to AU wasn't such a big deal.
I'm pretty much on the same page as you, except I looked for an even simpler thing - a simple AU Template for [gen~] code, and I couldn't even find that
i didnt bother looking at the date of the original post until i was done hitting the "reply" button. haha.
YES! it would seem that there is some kind of conspiracy out there to keep logic and max from syncing together without a ton of environment cabling and soundflower routing! even the direct sync with the midi timeclock is a complete mess. So far, the best i have been able to do is complete midi communication between an AU built with the ctrlr app and a max patch. This method can be a full solution if your only needing to wrap a max patch in an au for midi control... however it still leaves audio as a completely separate function.
I am starting to make some headway here whilst looking into developing using JUCE, Faust and supercolider.
Theres also some valuable externals that allow for Faust signal processing in max, use of faust, juce, lisp, and supercollider as languages in max objects etc.
As I have said, i am quite new to programming as from a scripting stand point. As an MSP programmer, i have been with it since the logic environment v 4,2, and the C++ language i am finding to have many similarities to MAX... but still, i am learning so much so fast (and indeed there is a whole lot to learn) that my head is spinning.
I am finding it kind of jaw dropping that no one has managed to accomplish this task since the loss of pluggo (or if they have, they dont seem to be talking about it.)
Why are the boards not lit up with angry people like myself who spent a year developing a patch, only to have c74 drop support for everything but Live, which i seriously just dont use and dont like. In a time when developers are making all the efforts they can to unify music technology, it is a little bit shocking to me that a company that has built their legacy from open source software would just say "oh, you dont use Live? WHOOPS! looks like your on your own!"
Regardless, I am waaayyyy too invested and have spent wwaaaaayyyy way waaayyy too much time developing my patch to use as an au/VST to give up now. That said, I continue on my quest to make this happen, and any help or collaboration i get along the way is appreciated. I will keep you all posted on my progress, and hopefully real soon be posting a patch that will help any one else with my same problem get back to making music instead of learning the ins and outs of 50 different programming languages.
Cheers!
OH and apple is messed up too. Ya gotta dig and dig just to get a hold of a relevant CoreAudio SDK, much less the template your looking for. Supposedly, [gen~] can export code to standard C, so, in theory, you could do that and then put it in a regular AU template and compile with xcode or whatever you use to build source. Juce also has some pretty flexible templates and good coding for au implementation and theres some people on github that have thrown up some au templates. Im still workin on it, but hope that helps a little.
Apple messed it up completely, latest Xcode versions are completely devoid of any decent tutorials or templates, and most of them found online (on apple developer pages) have to be "fixed" to even compile and pass au validation because they're out of date.
The templates (that filter thingie) also doesn't do retina afaik.
I don't know why and how. I suspect that either:
- SDK AU is going to get a serious update (when Logic X gets all their plugins updated - most of them are still non-retina LP8 style), and they're going to link the AU plugins to the Mac App Store, (pro tools was faster on this front). A few plugins that come with logic under "Apple" (AUPitch, AUSampler,...) are hinting that they are working on something.
- or they will slowly drop it completely... just like they did Aperture.
Anyway, I'm also slowly delving into the whole Xcode/AU environment (very slowly) and I'll surely post if I find something decent, I've been waiting for 2 years for apple to update CoreAudio SDK for AU, to no avail... looks like the only way is to go "head-first".
For the time being, I use Audulus in Logic... :(
here's a more recent path, where i asked what you described in your previous post
https://cycling74.com/forums/is-there-a-simple-gen-to-au-xcode-path/
glad to see i'm not alone though. :)
edit: also, i don't like ableton either.
Well, It's been four years and I found myself stumbling back over this old post that I had all but forgotten. I suppose I should post an update on this issue, as I promised all those years ago...
I never did find a real solution to the problem I was tackling - or at least - no solution that didn't require one to learn how to program and compile a vst from scratch... which sort of makes it all a mute point, eh? lol.
As for Apple and the audiounit standard... well, that whole thing kind of stagnated, didn't it? Apple as a company has kind of stagnated, in my opinion (especially in the realm of pro apps and pro audio,) which seems to be a far off second fiddle to the company's efforts to do things like make iphones less 'jail-breakable' and generally make their UNIX based OS more susceptible to things like forced scarcity and planned obsolescence... Yes, it would seem that Apple's glory days as the leading platform for artists and musicians have come to an end, and the company has flagrantly chosen to pursue maximizing profit margins at the expense of just about every innovation they once embraced... I'm not proud of it, but I once worked at an Apple store. I was there when the first iphone was released. I watched things go from things like Logic pro and Final cut being the flagship perks of OSX, to pro apps being all but abandoned and 'User friendly apps with emojis' become the focus of a multi billion dollar company... Sad, I suppose, but then, it forced me to learn my way around technology in a manner that seemed unrealistic to me when I was stuck relying on simple GUIs and waiting for developers to implement functionalities in my audio tools that I only dreamed of.
For me, I gave up trying to make my max patch into a VST. Instead, I turned it into a standalone app that runs alongside a DAW (or any other app) and does all syncing or controlling that it needs to do via MIDI, OSC or piped audio ports. I also stopped using all Apple everything and rebuilt my workflow in my new digital home, Linux. I am much happier in Linux for reasons that would be too much to put in one post... and yes, I even still use Max within linux. (works great via wine)
So the conclusion to this thread ( almost two decades after the OP ) is that sometimes there is no shortcutting the learning curve. Sometimes, it's easier to tackle the learning curve from the beginning than to tackle a way to hack through it. Working to create a vision within a proprietary software platform like AU or VST means that you have to be in cooperation with the company who owns said intellectual property... and even then, the direction of that companies goals are arbitrary and unpredictable, sometimes leaving your work rendered dated at best, useless at worst. Sometimes, if you have an idea, you have to build it yourself from scratch.... and if that seems like it's way too much work, then you just have to weigh out just how badly you want your idea to manifest, and if it's worth it to you in the end. If yes, then roll your sleeves up and get your hands dirty! dig in and learn all that you need to make it happen! Don't be afraid of learning curves like I was. You'll be very happy you went for it.
damn, would have been perfect if Cycling74 created a VST plugin to use Max patches in any DAW...