Is this possible? I mean, would it take a lifetime to do it or it's pretty much straight forward? If I would like to end up with C++ application at the end, should I go through the trouble of designing it in Max/MSP first?
If you want to get into the coding side of things, I would suggest learning Java first (this is a very subjective topic!!). Java is a good introduction because it has a lot of the advantages of a traditional programming language, but still does a number of things for you like garbage collection. It is also cross platform, and it is relatively simple to implement little applications into your max apps with the mjx object. This way, you can use what knowledge of Java you have fairly immediately. The best thing of all is that once you get good with Java, it's not a giant leap to C++.
I agree with Stefan that it may be more trouble than its worth, but at the same time a language like C++ or Java can easily do things that are difficult in max. I find that doing iterative statements in max to be a bit cumbersome (especially nested loop stuff), and recursion is pretty much impossible. However, there are so many advantages to Max/MSP as far as music-based programming goes. However, if you hit a point where you think you need more than Max has to offer, then you should try investing the time into a more general programming language.
However, don't forget to keep your eye on the prize- did you get into Max/MSP to help write music or because you want to be a programmer? It's easy to fall down the rabbit hole and suddenly realize that a year has gone by and you haven't written any new songs.
This is definitly not true. Visual Studio has tons of debug options that I could only dream of in max.
> it takes so long to do it...
It might take long to learn how to properly use C++, but after that it is probably even faster, assuming you know exactly what you want to make (which is never the case if you didn't first make a prototype).
Although a real delay I'd say could be caused by mining the different available sound/visuals processing libraries until you believe you found all the functionality you need. Max/MSP/Jitter has it all in one bundle.
> If you are concerned about speed, don't worry, by the time you've done
> the conversion the newly available hardware is as fast with the original
> Max patch. And if you would have stuck with Max you'd have version 3.0
> ready instead of 0.98 of a C++ program...
3.0? Like you already sold 1.0 and 2.0? I wouldn't sell a Max/MSP patch. Max is just not there yet. Max is great for performances and installations that can live by some workarounds and imperfections. Distributing a Max program would be something entirely different.
> There is a reason why people don't use much assembler anymore though in
> theory its much faster... The reality is adifferent beast...
I don't think this is a valid metaphor. Max is not yet a complete programming language. Assembler and C both are.
> It depends of course a lot on your background as well. But if you are so
> fluid with C++, you wouldn't touch Max would you?
> To design in Max is no trouble. Its the best rapid prototyping tool in
> the world.
I agree, at the moment Max is a very good rapid prototyping tool. But anytime you want to make a complex system that you want large groups of people to work with, max in its current state isn't the way to go. You'll inevitably run into the incompleteness of Max as a programming language and the fact that it hasn't been tested when it comes to big programs worth a few years of full time work.
..Don't forget that you can do terrific stuff using prototypes, only you can't sell them.
> Even if you later code in C++... It will give you a fully
> workable application. I would not go through the trouble to code it
> again for the only advantage that I can say its a C++ program...
Maybe in the future, depending on the philosophy of cycling 74, Max will be a programming language that replaces C++. I personally don't believe this is the idea behind Max.
> It's easy to fall down the rabbit hole and suddenly realize that a year has gone by and you haven't written any new songs.
This is exactly what has happened to me. In the hours I would have been making songs before, I am now working on my personal software studio + sequencer. It was at least 3 years ago I wrote my last song. Problem is, none of the alternatives are an option. I tried all (ALL) available audio hard- and software production environments but none of them were properly programmed and/or up to the task I had in mind (and I must admit I was badly spoiled after using Buzz for so many years). So well.. although I might never get back to making songs, at least I'll gain some programming experience ;)
I've tried to make bigger apps with max as well, but it always gets very fustrating... There might be a missing object, or a bug somewhere, which we have to wait for the developers to fix.
In C++ or another programming language it will be up to one self to fix it...
In the process of learning C++ i realized that i started using MaxMSP to make my music more interesting, and to do things that other apps woulden't let me do. But for about a year it stopped my productivity completely. Now i'm back to making music, and using max in a very productive way.
Basically i'm a perfectionist (like a lot of those on this list i guess), and that is exactly what was slowing me down in getting usefull musical results from maxMSP. After i forgot about making commercial apps, and began using max to make some noise - my love for the invironment has been reborn...
MaxMSP/Jitter is for making installations, producing music, prototyping, parsing and formatting data, copying hardware which you cannot afford, and making pluggo's
C++ is for writing serious apps. Sure you can do cool things with C++, but if making music is the priority,- getting into this might be a bit overkill. I would like to be able to write my own externals though.