[feature thought] exporting patches/abstractions as externals.

Feb 23, 2011 at 8:44am

[feature thought] exporting patches/abstractions as externals.

hello everyone,

had a sort of brain spooge late last night and thought to post it this morning, plus an awful nights sleep, but thats another story.
had an idea regarding external building and the such. if some have seen previous messages from me regarding externals and how to build them. still have not gotten round too it, just been too busy to learn something else on top of everything else im learning right now.

but does anyone remembers pluggo, ahh pluggo, gives you the ability to create bad-ass plugins for daws, lovely. all by simply having the license and exporting it as your desired plugin, with obvious /changes of course, with testing.

well my idea that i had is sort of based on the pluggo way, but for building externals.
what if we could export say, a patch that has [in 1] to [in 5] going to [out 1] and could export that as an external, much like pluggo.
so say you have an abstraction, but could make it into an external.
max already has the capability to make applications, so why not export externals?
i do guess it has way more to do than what i can comprehend, so please excuse my downright silliness?, ill-mind? whatever, its a question.

not saying that people dont need to know x-code, i really would like to get into when my time frees up, next year. but just thought that this would be a nice feature for experienced and beginner max users alike. its an ease of use way, so we can all get on with our music and our strange creations, rather than spending even more time building things more and more when we could spend it creating. if you get me?
plus as well it would be much easier to fix an external. if you have max, you can fix it. where-as with x-code not everyone knows it, or has it. although there are alternatives for mac and pc.

anyhow, thats my thought for the day. now back to my others ;D

lewis edwards

Feb 23, 2011 at 9:30am

I think the whole point of writing an external is that it gives you more control than max gives you when creating a patch. Also, most externals provide a function that it is difficult or impractical or (dare I say it) impossible to do with standard max objects. That’s before even mentioning the difficulties in providing such a feature.

If you can create something you want to re-use in max then just save it as an abstraction. If you learn C/C++/Java etc then you have the option to create something that gives you that little bit more control over the way the computer handles the process.

It’s one of those “no pain, no gain” situations!

Feb 23, 2011 at 9:53am

Hello lewis,

To build externals from an abstraction ? It could be fun (even if it is a very hard job to implement a kind of compiler) ; but i don’t really understand why ? As you can use externals only in maxMSP ; Pluggo’s advantage was to work as pluggins.

But i understand what you mean, as i realise that all what i do for maxMSP is just prototypes and if i want to use it in a more professional way i have to do it all again with another language/process ; but in the same time i would never have done all that without maxMSP.

Maybe it’s time for you (and for me) to go deeper inside the computer (and of course nobody have time for that !!!).


Feb 23, 2011 at 10:16am

I actually suggested this in the email list days. I’m just starting to try and get a handle on the API and it seems more apparent now that if the externals are written correctly, what max does isn’t pass messages between blocks of code, it just passes pointers.

One similar thing I’ve been fantasizing about is to include variable names, basic math and arrays in an object box.

[myList[10] = doo + foo]

[moo = myList[10] ]

or even

[+ myNumber]

[sprintf joe %ld %ld myVariable]

this would probably make the powers that be’s stomach turn because it doesn’t fit the max concept but in the end I think it would make basic logic a lock quicker to patch.

Feb 23, 2011 at 9:49pm

aye very true, you can have a better handling and build better externals with xcode etc. but just more or less a thought on that this would be a nice feature for prototypes or something like that.
anyhow, whatever.

but yeah, really should just sit down when i have the time and do xcode external building :D
but just a thought on something that might be useful for starters.

Feb 23, 2011 at 10:26pm

the minimum requirement for this would be that all externals
include a copy of their uncompiled source.

this will never happen, for a variety of reasons.

Feb 25, 2011 at 11:32pm

Maybe you guys would be interested in Jamoma, especially in the Jamoma Graph and Audio Graph parts. These allow to patch graphs of objects based on their externals (Jamoma’s) that can be exported as c++ (Max patchs, Ruby scripts…).

Admittedly their is yet not much documentation (DAFx paper may be interesting though http://bit.ly/gJo8Sh) but anyone is more than welcome to ask for more info on Jamoma forum.

Another interesting approach is Faust. You can write some Faust code and export as Max externals. The other way around is not true, though (Max -> C code). http://faust.grame.fr/

Feb 26, 2011 at 3:51pm

ooh, i will give that a look see. thanks very much for that. faustworks looks very interesting in helping with external building so will give all of them a look.

again, thanks

Feb 26, 2011 at 9:52pm

faustworks is really nice, and highly promising, but am finding it a bitch to work properly.
i started by making a simple [+~] but called it something different so i wouldnt override the original max one. it worked great, but now when i try to do the same thing, it doesnt. very strange and annoying, in equal measures.

dont know if anyone else has used it, but would love help with it. will start a new thread.


You must be logged in to reply to this topic.