Max 6.1 Public Beta

    Feb 27 2013 | 8:54 pm
    Today we're excited to release a public beta of Max 6.1 as we rapidly approach release. Detailed release notes are linked below, but the most significant changes in Max 6.1 are a 64bit application, Live 9 support, new Gen features, improved load time, and other optimizations.
    Many low level changes have been made in this version, especially for supporting 64bit in a shared code base. We're still working out some kinks and fleshing out some of the documentation. Please take some time to try your existing patchers in the 32bit version, and let us know where anything seems to have been broken, as compared with Max 6.0.8. That would be a huge help to us. As always with beta software, be sure to back up important work and don't rely on it for mission critical live performance.
    You can download the Max 6.1 public beta from the following page, but please take the time to read the rest of this post:
    Max 6.1.0 release notes. Lots of changes. Please look them over:
    64 bit:
    64bit application support is a big deal, and those of you who have been hitting the limits of 32bit memory usage will be excited. However, I'd like to balance expectations here. This being our first 64bit release, we will not have all of the features of the 32bit version, especially regarding Jitter and Quicktime support. Quicktime is simply not available on Windows under 64bit and the QTKit API on Macintosh has fewer features, and requires a dramatic rewrite of our code base. We will be continuing to work on Jitter video playback and other QT features in the 64bit version, but many features won't be in our initial release.
    Max and MSP should have nearly all the same features, except where it relies on QT (e.g. PICT files are not currently supported under 64bit and instead we recommend converting to PNG or JPG). However, 3rd party developers will need to port their objects to 64bit for them to be able to run inside the 64bit version of Max. There is no loading of 32bit externals in 64bit version of Max.
    We will be providing an SDK for 3rd party developers in the next few weeks, but it will likely take some time before any particular 3rd party external will be available to use. We would recommend that if you do want to use the 64bit version and you have 3rd party dependencies that you see if you can remove these dependencies by using core objects or abstractions to replace these dependencies, until your favorite 3rd party object is available.
    On Macintosh, the application comes as a single FAT bundle, by default set to run in 32bit mode. To run in 64bit mode, select the application and "Get Info" from the finder. In the "General" tab there should be a check box which says "Open in 32-bit mode". You can turn this off to run in 64bit. If you want to keep separate 32bit and 64bit versions, you can duplicate your max folder, select one of the applications and set it to run in 64bit as described. Externals are also FAT bundles--i.e. contain both 32 and 64bit code.
    On Windows, there are separate 32bit and 64bit installers and applications, and externals are in separate .mxe (32bit) and .mxe64 files.
    Live 9:
    Max for Live users will need to use Live 9 in conjunction with Max 6.1. Live 9 will be released on March 5th, and as you may have heard, Max for Live is now included in the Suite bundle. The factory content will look a little different than in previous versions and you will need to download and install the appropriate live packs for the content which previously was installed by default. In addition to the exciting features of Live 9, there are some great new devices in Max for Live, especially the drum synths and convolution reverb, but I will recommend you go to the ableton.comwebsite for more information regarding Live 9 and Max for Live.
    New Gen features:
    Gen has some significant additions and improvements in this release. Gen now has an integrated operator reference in the side bar to make learning and discovery easier than in previous releases. The operator set has grown, and the GenExpr language now supports recursive functions (for CPU, not GPU targets), calling gen patchers as functions, and defining functions with named parameters. But most exciting in this release is that we have a beta version of code export. This means that you can take your gen~ patchers and export them to c++ code and your objects and export them to GLSL code. This feature will have only limited support in our initial Max 6.1 release, but over the coming months, we will be working to improve the generated code, template examples, and documentation to make this feature useful for those of you who have been waiting for this capability. Note that the code export feature will assume that you are familiar with C++ and working with a development IDE like XCode or Visual Studio.
    Bug reporting:
    Please take the time with any problems you experience to strip down to a clear example patch with steps to reproduce, and provide us clear application, operating system, and any other relevant info (especially if you are running in 32 or 64bit) by filling out the bug reporting form:
    There is a new feature in Max 6.1 which should make providing us application and operating system information easier for you. In the Max menu, select "About Max", and then click the link in the About Max window which reads "Copy support information to clipboard". Then you can paste into your message something which looks like the following.
    { "version" : "Beta Version 6.1.0 (d35f01e)", "platform" : "mac", "arch" : "x64", "osversion" : "Mac OS X Version 10.8.2 x86_64", "samplerate" : 44100, "iovs" : 512, "sigvs" : 64, "scheduler_in_audio_interrupt" : "off", "audio_drivername" : "Core Audio", "audio_driver_subname" : "", "eventinterval" : 2, "overdrive" : "on", "mixerparallel" : "off", "mixercrossfade" : 0, "mixerlatency" : 30.0, "mixerramptime" : 10.0 }
    Thanks again for your help in testing this release and continuing inspire us with your creativity.
    Happy Patching!

    • Feb 28 2013 | 3:49 am
      Ohhhh I am highly looking forward to screwing around with the code export stuff for Gen~. Does it export in a way that it's already wrapped as an MSP object, or is that up to the end-user to set up?
    • Feb 28 2013 | 4:14 am
      Code export documentation forthcoming. Eventually we may have a template maxmsp object template, but initially we will simply have a barebones AU template which shows how to interface with the code. In general we only plan to provide examples of how you can use the code elsewhere, not to make a complete package for different situations. Everything else is up to you, the developer :)
      To see the raw code in its current form, send the message exportcode to gen~ and then pick a directory. We'll have some documentation, support headers, and an example template in a forthcoming update. This feature will be in beta for a few months and subject to changes, but you can start poking your head into it now.
    • Feb 28 2013 | 4:14 am
      Oh, also! Does Max 6.1 PB install alongside a max 6.0.8 installation, or does it replace it?
    • Feb 28 2013 | 4:16 am
      Well, my first line of action with it will be replacing the various instances of [Gen~] I've got littered through my [poly~] patchers - mainly because AFAIK it compiles those gen instances whenever you load a new poly~ instance (correct me if I'm wrong) - this can chew up a lot of time when loading 100 instances!
    • Feb 28 2013 | 4:24 am
      --Answered my own question - Max 6.1 installs in it's own location.
    • Feb 28 2013 | 4:25 am
      Re: installing 6.1 side by side 6.0.8. It is fine. Don't forget to read the FAQ on the download page:
      Re: poly~ and many gen voice compilation, we will be improving that eventually by caching the code. However, there have been some speedups already to gen compilation time in general.
    • Feb 28 2013 | 4:35 am
      "To see the raw code in its current form, send the message exportcode to gen~ and then pick a directory."
    • Feb 28 2013 | 10:41 am
      I've said it before, but: thanks for making Java/mxj work out of the gate for the 64 bit release. I've tested my Python and Clojure packages and they all seem happy. (I've not looked at mxj~ yet - it's on my list.)
    • Feb 28 2013 | 6:46 pm
      Great news! I can imagine how complicated is to port Max to the 64bit architecture and I'm very impressed how fast you did that (even if this is still work-in-progress phase). I'm keeping my fingers crossed.
    • Mar 01 2013 | 12:58 pm
      Does anyone know where to find the gen~.rate example? I was looping forward to checking that one out, but I can't find it. A while back I tried to figure it out for myself in gen, but it proofed to be too big of a leap. So I reeaaally hope the cycling74 elves didn't forget to include it.
    • Mar 01 2013 | 2:14 pm
      Rate in gen works exactly like rate~ in Max:
    • Mar 01 2013 | 2:29 pm
      Ah ok, thanks... Was that object always there? (scratches head)
      Thanks again!
    • Mar 01 2013 | 3:22 pm
      I see rate~ in Max 4 ;-)
    • Mar 01 2013 | 3:37 pm
      I know :) What I meant was. Was that object in the gen~ world all along? Or was it added with the update?
      Anyway doesn't matter. It's here now.
    • Mar 01 2013 | 4:52 pm
      Just for history's sake ;-) It's a new operator in gen~.
    • Mar 02 2013 | 11:08 pm
      Gen to C! I think I'm going to faint
    • Mar 03 2013 | 8:05 am
      Windows 7, 32 bit - the loading speed is significantly faster, thanks,
    • Mar 04 2013 | 5:39 pm
      Hey, I just tried to use Max6.1 (32bit) with Max for Live but it doesn't float: incompatible version. Is that because of the beta state or will 6.1 only work with Live 9? The info above is a bit ambiguous. Live 9 requires Max6.1 but is it also the other way around?
    • Mar 04 2013 | 6:58 pm
      Yes. As mentioned in the FAQ on the downloads page, Max 6.1 requires Live 9.