Max 6.1 Public Beta
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:
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.
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 jit.gl.pix 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.
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: http://cycling74.com/max6-bug-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.
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?
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.
Oh, also! Does Max 6.1 PB install alongside a max 6.0.8 installation, or does it replace it?
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!
–Answered my own question – Max 6.1 installs in it’s own location.
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.
"To see the raw code in its current form, send the message exportcode to gen~ and then pick a directory."
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.)
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.
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.
Rate in gen works exactly like rate~ in Max:
----------begin_max5_patcher---------- 1951.3oc6cssbahCF9Z6mBFtriSFg37N6M6yvdYmNYTLJ1pECd.Y2j1Y6y9J jvXwYH0lfc0EwAzAzu99Onej023etbg9ywuhS009KsOqsXwOWtXAunrBVje+ B8cnWWGhR4MSOB+83m+p9JQUT7qTdwgwnfc3zTMvit1mpM9.MDSousGKFAcc sujW0KwQzTxO3UX.eDjWbzgcjHVe3ikQdg6Qz0aIQadJAulJdRl9lr9nYXCx 9mme1mP10EOeR.WrXh5CFV5RCZDZGeP0+mDBJT+73JDVw.mU3+sbY1Gq98vk 8aQowI+RC1JljR1DwDjlQFylQFX6HigqAGYr3+ywiiLFMiLl1efHyFbzulJP wzzTfCbyEKPWfBzezfh7.iSxghbrf8XHg3i3jTRbjTqWni1uWp3ERcIC.+ZL +A4rpnHRjnHihhRvGIm5OnnTTBa5SYy8CIBQ+UOGcQkLk1xSc8D1335vAEat ohCP.Q1RNSLE7l0wghQ+yLOb+UReXTtggwq+FNPVhzi2iiHQ6Svo3HJhVQf0 CvufNDRep4PBkq+EzZbqctQc0B8MIjf3nLgnTOyJ9zvwbarEwSjmL7VDg12P mSYyiCoOiRxT.OGhkr+Xl3wwgkqpPmy7TPQjcHJlRDBKDT7PI61mPhnkFHbD h8L1ltNINLrziRTywFpIfYVrF+cR.cK+YICkrlS1eREnWfQAjM3TZ4xnnMok KozhEx1qxg.JUdWgBpDnDkf1owzuz3DMC4lz9pHcrRR8vCxUzXbSH2Bvj6F3 4UcEkpgI70qHCMa80RHzEmBil6Ud4wy+V6Avi1WAbznabzSDoEx8mrf8Aidy bXL.GRQeTnngGOXroaenn6LGESXA7x8s+vvRgisiceXoyLGKY4MowVJkEA+i x21iigNV8gj1uajrpXbNopxfVqIW0VBVU5dSIZ0RxVsmvUeIcUJwqpIe4yiP Z4a2ZxWiJArVSBa.IhMjjw5MgrAlTVGIlMrjy5IAsdSRqmD05MYs1RXq6j15 NwstSdqyD3ZKItlSjq4j4p5aTMVUs56KlU43VeJyZ0220qZK5N1UOwu5LFVq 45I75LM4u4iSiIoTaWDL0aPnZ25ti0GJsFQ40Itx5fsjT1RvuMaz.Pe9N2X4 LHM.7NPC7IsGLxbCblAtA9FxdACSG.TdAWZEvnbB7uO7AXyR.vXFDGRr4WFN 7Las8GhJv6tPEjoAlAJ.wF3a35JRCdH3uqJDzk2AHemwGTLHGkB3RuFf6Hfe 66.3mDocsC9.FbvG9FYXBFT9O2AX+CWYfGNTfGZw2RNS3i18i72Cu9ESZzZz B5hufpEvq8cNtJzZ86BsfNf1x6XSHIpuMcfOmxZW23dZ7gj0mLXycM0pOMCv oTRTwdc84hPnMz1sjff5aijXmURy1ylf9lrqt3yJ6QLqbtYlUiQW4dyLqbGw rx7lYVYNhYk0c4rx+lYV4OhYU1V4bqDt.Nl40siqUKpf1iXXLho0NRv9XRDM e4VC.HKMq7CNmIPrC3ktCB4u+gqYwM0EsONrxb5vJHvfiUhiRGzwUjKk7cPS KIrJ6lYDVMpv.vaF2Euq35qU8V7r4uTh3adz1u3lYjV1YDvg2URIq8kk0q45 d9Gpr0ASzwCq+sJnssIXNdFRXXHb5wv7Chy.wP3LGC+zU..gCwHzzjuPjcum sNyYNBVc6PtTGSobXx1aXGdNq2KLAZ.lNe5gqsUGmQtlh3Kge8+xJC80uZNB eyQ26TWOVI1XfRr4rQhcGnD6MajXuAJw1yFI1dDVEFyBIFNPI1Y1fwNCThcu PRbdFfhRtLLCZ8aqCw+RywALw7Cxf2Us7WzqMRSA+CgzT4jqK+cf5gzTdJRS oHMkhzTJRSoHMkhzTJRSoHMkhzTJRSoHMkhzTJRSoHMk5nBqHMkhzTJu.Eoo TjlRQZJEooTjlRo.TjlRQZJEooTjlRQZpORRSMGNCopCJr53fqXDfhoIJ1Fo HGlhIe20rt79jgr2mrYVw7baEooTjlRQZJEooTjl5FjzTSMQH9SjrI2dD541 izT2dDS61i7eSMAKudjlxxBLw7CJ+6hqSNSAmjeBtv+H.stfdT6ShowYy9hg aKNbe1Qe8TKdNNI.mT5LhZCL7cLV03UxyMQW4B5it1mJT97lJ9U3R9ihNOR. 1BH9d9sN8YiHbgZOLdMR9DR1z5uiDXCIGwOtAQNy8rinjBX8eo3DbbeVcqju J6uWBiQzrKBIYm+xdLJIQrQYOuP...d2jYSXmJN4DFFs.lFE1PY7qAyF4mDm +z1g0S1.oni3fmPTZB44CT74qRqxvsinvC33WpSisyC5gHBMk9lXbsVUuA6X pI94v9bZekpkviL8fKnw5IrGOQXqjY6KEXSpQmzjM8.R2Fmb1atlURo1FFGs YnMkD8srlJmVcdvy2UDyLcvAxz8iRnqmzuMgs9qRn46kwjYSGday4FhDhvGn xIQK.npKHlCSMtzcQhZsrHXVnFoFUaEv5q9USeMFwALDwALIhiIbHxi+jIOP uAHOFSG7XOD3waxrdfVCUdlH0k+.UWSjy0Pfmxe+VWW4w7Z5cIBMVgcSYhRE 1LUgES0YuTarVhMN+2x+Grk9gJC -----------end_max5_patcher-----------
Ah ok, thanks…
Was that object always there? (scratches head)
I see rate~ in Max 4 ;-)
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.
Just for history’s sake ;-) It’s a new operator in gen~.
Gen to C! I think I’m going to faint
Windows 7, 32 bit – the loading speed is significantly faster, thanks,
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?
Yes. As mentioned in the FAQ on the downloads page, Max 6.1 requires Live 9.