I want to share some news about the next major Max upgrade, version 6, arriving this fall.

For us, Max 6 is about four things: accessibility, performance, quality, and workflow.

Accessibility

For some of you reading this, getting into Max was no big deal. Maybe you learned it while in school. Maybe it just clicked for you right away. Maybe the purchase was a no-brainer. However, for a lot of people who would love Max, obtaining and learning the software is too much of a challenge, and we’re committed to changing that. Max 6 is the next step in our ongoing effort to increase the accessibility of our software. Let me review a few of the things we’ve already done in this area:

But we’re not stopping there.

  • Effective immediately, we’re lowering the retail price of Max/MSP/Jitter to $399. We’re also lowering the price of some of our upgrade and academic options. And starting today, if you purchase Max 5, you’ll get an upgrade to Max 6 for free.
  • We’re introducing a subscription plan for universities that will make it possible for our academic customers to serve to more students at a lower cost. For more details, click here.
  • With Max 6, we’ll be supporting a user-driven, machine-assisted cross-platform translation project for both the software and the documentation, so we can better serve the majority of the world’s population that doesn’t speak English fluently.

Now, I suspect you’re curious as to what will be new in the software. Accessibility is a major theme here too. In Max 6, we’ve focused on improving the experience for both new and accomplished users. When we add a new feature, we think carefully about how you’ll learn about it, even if no one tells you it’s there. You might have seen our series of Did you Know videos. Even though I think these are great, I would love to get to the point where no one needs to make another one, because Max holds no secrets.

Performance

The area of performance is where Max 6 will be truly exciting for a lot of you. The big news is a completely new patching domain, which we refer to as code generation. Code generation technology will be available as an inexpensive add-on to Max 6. It focuses on areas where traditional patching has not been able to deliver the combination of performance and programmability that we wanted, namely DSP and GPU programming. What do we mean by “code generation”? Essentially, we translate the patch you make into text-based source code, and compile it on the spot. With code generation, we can optimize the entire patch, something that’s impossible with existing Max-like approaches.

In the DSP realm, our new gen~ object is a new domain of low-level signal processing operators that let you build recursive filters, delays, spectral processors, and sound generators, all using 64-bit floating-point internal precision. Not only do these things sound great, but the performance gains over equivalent Max patches are simply stunning. Where you could actually implement the same algorithm with MSP objects, a gen~ version will be up to 15 times faster. And in many cases, there is simply no way to implement the same kinds of DSP algorithms with MSP objects, you’d have to write C code. Not only is gen~ cross-platform, unlike C code, but in our tests, gen~ operators are nearly as fast as equivalent MSP objects written in C.

The code generation approach is equally suited to GPU programming for Jitter. For several years, we’ve offered the ability to write your own shader programs in Jitter for high-performance pixel processing, but text-based shader languages are not easy to learn and never felt completely integrated within the Max environment. Now you’ll be able to create high-performance image processing algorithms graphically, and our code generation technology will write the shader program for you. But the power of code generation extends beyond processing images — you can also use it to generate materials for shading interactive 3-D objects. In this application, the code generation technology is automatic — you just specify the parameters of the materials and we generate the shader program.

There’s much more to say about code generation, but at this point all I want to say is this: stay tuned — we’ll be showing you much more in the coming weeks.

Code generation hasn’t been our only performance focus. Another major area has been Javascript, where we’ve integrated the latest Mozilla runtime engine for significant performance gains. We’ve also exposed an efficient new 2D graphics API in Javascript that can be used to port existing HTML5 Canvas code to Max. We now run the audio of every top-level patcher in its own thread for effortless multicore processing. Performance improvements have taken place in many other areas as well.

Quality

Another focus of Max 6 has been quality. We think of quality in two ways: first, the quality of the output and second, the quality of the experience you have while using the software. In the former category, we put a major focus on audio quality in Max 6. The cycle~ object now uses a 16K wavetable for far better signal-to-noise performance. You’ll be able to use any sampling rate you wish, thanks to high-quality resampling filters. And, to eliminate errors with large numbers, long envelopes, and recursive algorithms, MSP processes all audio with 64-bit precision. Older 32-bit third-party objects are still compatible however.

And those resampling filters I mentioned? We used MSP to develop them, using a suite of new filter design and audio analysis tools.

Beyond looking at audio quality, we wanted to help make your time with Max more enjoyable. To do this means paying attention to every detail. I think you’ll generally see more clarity and refinement in the interface. For example, we’ve introduced curved patch cords, which make an unexpectedly dramatic improvement in understanding how a patch works.

One feature I’m particularly fond of improves the experience of editing an audio patch with the audio turned on. Whenever you make a change to your patch, we intelligently crossfade between the old and new versions, so you never hear a gap in the output. And if you have other top-level patchers playing audio, they’re completely unaffected by your edits. This is just one of the benefits of our new audio mixing engine. Another is that every audio patcher has controls in the toolbar for muting or adjusting gain without the need to add any objects.

In the Jitter domain, quality means the ability to achieve visual complexity more easily. One way you can do that is with the new materials system — an advanced toolset for high quality rendering of 3-D objects. Other ways we hope to enrich your Jitter work is though better support for 3-D model and animation files, better support for cameras and lighting, a new physics engine, and hierarchical animation and rendering tools.

Workflow

As part of the Max 6 development process, we’ve observed and interviewed users, from those who’ve never seen the software before to those who’ve been using it for decades. On the basis of these studies, we identified areas for improving patching workflow and usability, and you’ll see the results vividly in Max 6. Just to focus on one area: The act of making a new object has been dramatically enhanced, with access to documentation at every step of the process. It begins with the object box, which now offers you a way to make objects even if you can’t remember their names. Then there’s the message box, which tells you about the messages understood by nearby objects as you begin typing. Arguments and attributes of objects and messages are also displayed as you type.

A new object called attrui integrates attribute monitoring and editing, eliminating the need for a lot of patching. Attrui knows the best way to edit any object attribute. For example, if you want to change a color, attrui lets you edit it as a color, not four numbers.

We’ve also reorganized Max 6 to show the most common information first. Every help file now has a simplified initial presentation of the five or so most basic things you need to know. Advanced features are shown in a tabbed interface grouped by functional area. We’ve done the same with our redesigned inspector and object palette.

A common request from educators and more experienced users was the ability to manage patches that encompassed many files. Max 6 has a new Project feature, where you can see all the patchers, code, and media files you’re using. Projects enable you to maintain multiple versions of files as well as archive and share your work more easily.

The Path to Max 6

Over the next few weeks, we’ll be telling you more about Max 6. I promise, I’ve only scratched the surface of what we’re up to. If you’d like to be notified when we release new information about the software, keep your eye on our website, Facebook, and Twitter.

One of the things that really inspires me is when I get a new piece of software that is both cheaper than what I’ve been using and better in every conceivable way. My co-workers and I are driven to do that with Max. You’ll ultimately be the judge of whether we’ve succeeded with this new version, but now you know what we’re trying to achieve. Our friends in the Max community creating extraordinary work deserve nothing less.

This is huge. In fact, it might make me move to Max/MSP/Jitter for visuals too. I mean, it might take some time to phase out. But with the optimized gen~ object, and Jitter's graphical shader editor, and a html code converter for 2d code! Huzzah! This is going to be a big deal. Note that the price for their full suite has been dropped to $399. Now you have no excuse.


Published

12 July 2011

blog comments powered by Disqus