Forums > MaxMSP

Transition from Max/MSP to C++ – Your Thoughts?

November 5, 2006 | 7:47 am

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?


November 5, 2006 | 8:28 am

If you are on a Mac, and doing Visuals/jitter, id suggest trying out
Quartz Composer + Cocoa.

Im currently migrating to that, ive been having some serious issues
with my long term relationship with max/jitter, and need a mistress..
let me tell you.. things just havent been the same…

v a d e //

http://www.vade.info
abstrakt.vade.info

On Nov 5, 2006, at 2:47 AM, Substorm wrote:

>
> 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?


November 5, 2006 | 4:59 pm

Substorm wrote:
> 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?

But why would you want the trouble to end up with C++? It has much less
advantages then you might think.

Its not crossplatform, its much harder to debug/change, it takes so long
to do it…

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…

There is a reason why people don’t use much assembler anymore though in
theory its much faster… The reality is adifferent beast…

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. 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…

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


November 5, 2006 | 5:56 pm

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.


November 5, 2006 | 6:13 pm

Quote: Stefan Tiedje wrote on Sun, 05 November 2006 17:59
—————————————————-

> Its not crossplatform,
> its much harder to debug/change,

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.

Mattijs


November 5, 2006 | 6:42 pm

"I don’t think this is a valid metaphor. Max is not yet a complete
programming language. Assembler and C both are."

I dunno about that. Max and PD are quite similar, and id imagine you
could do this in straight up Max too (not to mention obviously
javascript or Java):

http://lists.puredata.info/pipermail/pd-list/2006-09/042618.html

>
> 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.
>

This is really true. Ive been working on a huge max patch id like to
release as an open source VJ application and framework for building
easy to reuse modules. Either im an idiot, or when you start to
approach max as a true programming environment, building the
equivalent of real reusable code, modularizing everything, The max
runtime just starts to shit itself, slow down, and use tons of ram. I
would really love for someone to say, here is what NOT TO DO, EVER,
in creating very large and complex patches – and here is a
methodology – a best practice with example code for what TO do, and
why. Ive shown my patch to quite a few people, and all of them have
said, yeah, you know, you might want to uh, not use Max for this – at
all. They all echo your sentiments, fine for performance patches,
fine for installations (if you reboot the machine once a day
perhaps), but not for a commercial grade app. Its a shame. I really
want to be able to work through this, but it gets more and more
frustrating.

Its frustrating enough to have me start to explore Cocoa and OBJ-C/
Core Image, which most likely will be faster. Back to the beginners
for me.

v a d e //

http://www.vade.info
abstrakt.vade.info

On Nov 5, 2006, at 1:13 PM, Mattijs Kneppers wrote:


November 5, 2006 | 6:48 pm


November 5, 2006 | 7:09 pm

Quote: Nick Inhofe wrote on Sun, 05 November 2006 18:56
—————————————————-
> 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 ;)

Mattijs


November 5, 2006 | 10:46 pm

"I dunno about that. Max and PD are quite similar, and id imagine you
could do this in straight up Max too (not to mention obviously
javascript or Java): "

there are tons of things that I cant dream of doing in max, thats why
I personally want to learn C++. most of them are technologies which
can be used for music but are not music oriented themselves. And if
you sit on max, you have to wait for someone else to write the
object. A perfect example is sample library management.

Sample organization, according to the prevailing philosophy on the
list, is not a live application and therefore is not a priority to
maxers. I’m fine with mixing medias and creating new forms of art.
What I don’t like is the idea that mixed media somehow debunks a
traditional format such as recorded music or a simple movie.

dipping into js slows things down.

all that being said. Max is definitely like a drug to me, it’s
become increasingly clear that I must Hyper manage my programming vs
creating time in max.

-matt


November 5, 2006 | 10:57 pm


November 6, 2006 | 10:46 am

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.


Viewing 11 posts - 1 through 11 (of 11 total)