Today we are excited to share the upcoming release of Max 6, and new, more accessible pricing for Max. Starting today, all new Max purchases will recieve a free Max 6 upgrade. For more info, please read this Special Message from David Zicarelli.
The question on everyone's minds: How do I get beta access? I'll beg. I'll drive up to SF and sit on your doorstep and generally be in the way and act pitiful. I'll bring cute kittens. THINK OF THE KITTENS
edit: also, 'Code Generation' means pluggo is coming back, right? right!?
It seems there will be 3 versions of Max now (Max Code/Max 6/M4L). The upgrade path for personal licenses needs to be worked out. Asking people to pay 3 times to upgrade essentially a single package would be a little unfair. If you place on top of that the separate upgrade price for Live itself it becomes quite expensive.
That said I am amazed at the achievement of getting code to run 15 times faster whilst simultaneously improving the quality and moving up to 64bit. That is astounding and I am not aware of anything that can make such a claim during an upgrade. I at least never heard of such a thing. Also the mutlithreading of patchers sounds great. I didn't expect Max to be able to use multicore any time soon so that is great. I have a worry about M4L but I guess that'll be worked out in time.
@EMV: Thanks for your reply, but that's not what I was asking. I was specifically asking if Max 6 would support OS 10.5 - Leopard, not 10.6 Snow Leopard. My question was not concerned with previous versions of Max, just Max 6. I have a four year old MacBook & I'm not planning on buying a new computer just run Max 6. So I plan on staying with good ole 10.5.8 for the forseeable future.
@grizzle I spent years working on compilers and virtual machines, and it is not at all unusual to get amazing speedups by inserting a compile phase into a few key spots in an otherwise interpreted product. Not sure that this is what is promised by Cycling, but it is certainly possible.
We'll be posting more detailed information about "code generation" and other Max 6 features soon. There will be a lots to talk about then, and I don't want to attempt to talk about it until that information is ready. Until then, feel free to speculate, but we might steal your ideas. ;)
@Andrew: Ideas for you to steal! (Also known as OH I WISH I WISH UPON A FISH)
Code Generation of standalone apps - apps are now fully compiled applications, no more runtime!
Along those lines, no runtime means being able to target various plugin formats (VST, AU, RTAS, Live) without needing a runtime to run them in.
Even further down the insanity-rabbit-hole, target things like Flash or some other web-based system (I have no personal need for it, but at least once a month I see someone wondering how to make Max run in a browser...)
The way Gen~ seems to work to me (with the limited information I've got) is that it is similar in use to a subpatcher/bpatcher that's precompiled, so you can patch a chunk of code together, compile it, and use it inside other patches for speed gains. That is happy as well.
Hey, how about Arduino/Processing as a target? :P Program your integrated hardware with max! Would be snazzy. And probably painful.
One more: I like that each top level patcher gets its own thread, how about each Gen~ instance of a compatch (I'm coining this term for compiled patches) runs in it's own thread? Make every max object in a patch have it's own thread! :D
The Max/Web interaction is really a permanently reoccurring issue here.
And here is another idea I'd be very pleased if it was stolen:
What about an extended jweb object. Currently it is practically a browser inside max. But what if this browser could interact with the max-patch that contains it: In example trigger DOM-events via message.
Julien: Imagine a stable, multiplatform SonicBirth...
but I am not a commercial developer. Most of the time I just need to create a ad hoc plug to play my DAW in real time and keep the data/info/stuff inside the piece... Pluggo was great, Live is cute but not for me (not enough of a real DAW, especially with multichannel support and bussing and mixing and everything else) so there is something missing in my composition workflow...
Apologies for "me too!"-ing, but multi-touch support would be a real boon.
Also consider that both Mac OS Lion and Windows 8 are purported to be providing OS level support for at least a standard vocabulary of multi-touch gestures (probably mostly dual-touch, but better than nothing…).
To the extent that real multi-touch (> 2 points) is still evolving, it might be tempting to take a wait-and-see approach. But I'm seeing kids who've played with iThings go up to standard computer screens and reach out five or more fingers and being disappointed that the machine doesn't interact. The UI future will be seriously multi-touch and it's coming soon.
I’m sorry to ask you cycling people for even more figures, but can you give us any clues as to academic discounts? The reason I need to know is that we’re currently in the capital expenditure round at the university where I work, and I’d love to budget for some Max 6 upgrades. I imagine quite a number of other academics might be in the same position at this time of year..
Thank you for all your enthusiasm about code generation. We realize it's an exciting, yet vague, area of possibilities, and naturally there has been a lot of speculation as to what it might be. We'll be coming out with more information in the coming months, but in the meantime, I'd like to clarify a few things so that we won't disappoint your expectations.
The first thing to make clear is that the code generation tools don't compile existing max patches. They use new types of patchers with new kinds of operators. Many of the ideas, and many of the patching skills you are familiar with will translate, but these new patcher domains work with data and the expressions of the patch itself in a different way than existing Max patches and objects. These new kinds of patchers and operators simplify the problem area so that we are able to make reasonable assumptions for turning a patcher into raw code, compile, and optimize. So you won't take your existing Max 5 patches and "compile" them to produce faster code. There will be some amount of rethinking your problem and reprogramming in the code generation patchers.
The next thing to highlight is that this about more than performance. It makes it possible to do things which were previously too expensive or not possible to do with patching Max objects as they are. With gen~ for example, the graph operates one sample at a time rather than with a large vector. This alone opens the door to many DSP tasks which previously required using C code. The vector sample delay for any feedback stage got in the way of making recursive filters, FM feedback, and physical modeling algorithms just to name a few.
Finally, the Max 6 release will represent only the start of what we're doing with code generation. You've all brought up great ideas about possible applications, and many of these are things we've been actively thinking about. However, not all of them will be in the initial release. The first release will remain focused on getting the foundation in place and making it solid for use *within* Max. We think that this is a good place to start, and will be listening to you about how we can make it better.
We realize that this might open the doors to more questions than it answers, but for the time being we appreciate your patience while we work hard at finishing Max 6 so that we can get it in your hands.
from what I read here some of the possible uses/features of [gen~] are very close to what FAUST (developed by GRAME http://faust.grame.fr/ ) does. It is free (even works on line so you are not really obliged to install in on your own machine) and, using a simplified language it creates the C++ code, or a max, Pd, Supercollider object, or a vst...
I'm no programe at all, don't know C, but was able during my first day of using/trying it to make max objects based on the patches/ abstractions I use a lot.
Seems to me the 2 approches are very similar - ok, gen~ will be inside of max, but faust does the vst
Click on the link at the Faust site that says "Read some papers" - there's some good stuff in there, including a tutorial. Yann Orlarey was also very helpful to me when I was working with it, as was Stephane Letz.
I don't think faust is JIT (just in time) compiled. I don't know how similar it will be, but LuaAV does JIT compile and the same developers are working for C74. I think the authors wrote some papers describing it, but their site seems to be down right now. Might be an interesting read for people excited about gen~