[feature thought] exporting patches/abstractions as externals.

    Feb 23 2011 | 8:44 am
    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 ------ smokingbunny.co.uk

    • Feb 23 2011 | 9:30 am
      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 | 10:16 am
      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 | 9:49 pm
      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 | 10:26 pm
      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 | 11:32 pm
      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 | 3:51 pm
      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 | 9:52 pm
      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.