crucial differences in SDK's 4.x 5.x 6.x ?
i’m currently trying to get into max externals in c creation using that (somehow classic ?) tutorial : http://www.music.mcgill.ca/~ich/classes/mumt402_06/MaxMSPExternalsTutorials/MaxMSPExternalsTutorial3.2.pdf ; but as you can see it’s a little outdated. So, are there other more recent tutorials out there on the web, or are there basic things i should know regarding max sdk since 5.x that would help me get started ? for example ‘new object list’ and hence any code related to it seems to be deprecated, are there many things like this ?
thanks in advance !
Thanks for your advices, they are very helpful. The Flop things seem that they will be too !
one little question – can you update an external after recompiling, without having to reboot max ? Does it depend on if it’s a .bundle or .mxo ?
hm ok, that’s odd, i have "WRAPPER_EXTENSION = mxo" in the maxmspsdk.xcconfig, but if i don’t create a .bundle of the compiled object, it doesn’t load, even though it is in max preference paths…. in fact the product name is .bundle and if i rename it in .mxo and make a clean, the generated external is a .bundle. i’m sure there is something fishy going there, due to a mismanipulation on my end :D
Solved – it was as stupid as just having "wrapper extension" in the max-external target poperty set as "bundle" instead of "mxo".
also something that might help you with XCode is to understand the difference between projects and targets, and how project settings affect the target settings. I remember that I’ve had a lot of trouble when I started developing with XCode as I always set up the wrong kinds of settings and after a while, everything was just messed up. BTW, I think you should really start by copy-pasting the SDK examples and just modifying the code, and only enter into linkage etc. questions once you’re familiar with the development process (well, unless you already have some background on programming, in which case it might not be that hard for you to understand how XCode works — for me, it was).
@nicolas danet and @$adam : i’m very well aware (even more now than previously) that i did not take the ideal route for a beginner. I have a very little background in programming, the project i’m working on is for studies and it’s not mine (i mean i didn’t create it), i dived headfirst into it because i did not evaluate well what i should have done first. But it’s getting better every day, so in the end lot of time was lost, but by doing tutorials, lot of trial and errors, correcting my errors, and correcting my corrections, i hope it will end well !…
that’s for the whacky learning route. In the future i’ll remember about selecting xcconfig first… and all i understood for now about the differences between project and target settings is that, at least if you have one target in your project, there should not be differences ?…
thanks for your help and patience !
do you mean, if you edit one and only one, and erase (?) the other, then the other will be automatically set to the first one’s values ?
Yeah, by the project/target trouble I guess I was referring to the same as Nicolas. And my solution has been the same. I am also a self-learning programmer, so the same nightmare here. :-)
The thing to remember about project/target settings is that they are in hierarchy, although I always forget which one overwrites which. So, if you consistently use either the one, or the other, there should be no problem. The trouble is that (at least, when I was a very beginner) I always forgot from time to time the one that I already modified, so I ended up many times with externals where some settings were set at project level and the others on target level. Don’t do the same mistake…
BTW, with time, I realised why it makes sense to have project and target settings separately: if you want to develop several externals within the same XCode project, it starts making sense. But until that, just stick to either project or target-level settings.
Ok it’s becoming clearer ! thanks again for your help.
actually i’ve spent a little time doing stuff with terminal, so that part is rather ok :)