FAQ: Max 4
- Authorization
- History and Background
- Macintosh-specific FAQ
- Windows-specific FAQ
- Developing Pluggo Plugins
- Operation and Compatibility
- Technical Questions
- Beginner’s FAQ
Authorization
How do I authorize?
History and Background
Why the names Max and MSP?
Where did Max/MSP come from?
Max was first developed for the Macintosh in the mid-1980s at IRCAM by Miller Puckette. In 1989, IRCAM started work on a real-time synthesizer card for the NeXT computer produced by Ariel called the IRCAM Signal Processing Workstation (ISPW). Puckette ported Max to the NeXT and ISPW and added a set of objects to do audio on the card. Max combined with the audio was known as Max/FTS and was widely used at IRCAM and about 30 other centers and individual studios around the world. A single card with two processors was about $12,000, not including the computer.
Max was first released commercially by Opcode Systems, Inc. in 1990. It was chosen as Software Innovation of the Year by the readers of Keyboard Magazine in 1991. Since 1999 it has been published and supported by Cycling ’74.
In 1996, Miller Puckette, now at the University of California San Diego, began developing a new program, Pd or Pure Data, aimed at the new generation of powerful microprocessors. The goals of Pd are different than Max/FTS, but it shares the ability to do real-time signal processing by connecting objects together. Initially developed on the SGI platform, Pd now runs on Windows, Linux, and Mac OSX. Shortly after Pd was started, David Zicarelli decided to add audio processing for Power PC computers to the existing Opcode Max environment. Max/MSP is the result. It uses the Pd signal processing infrastructure, and adds features inspired by Max/FTS but not yet implemented in Pd, along with new innovations and user-interface enhancements appropriate for the Opcode Max environment.
How does Max/MSP compare to other audio programs currently available?
We can divide the currently available programs into three categories: synthesizers modeled on MIDI gear, sound editors and processors, and what could be called audio rendering environments.
Native Instrument’s Kontakt and MOTU’s MachFive are examples of the first category. Max/MSP is clearly harder to use than these programs, which could be described as software imitations of hardware samplers. Max/MSP lets you play back samples, just as these programs do, but it is not optimized for that function. Instead it is aimed at people who are not satisfied with MIDI-style playback as a way of realizing their music, so it emphasizes real-time control and endless customization. Another comparison to make is that due to the use of specialized and computationally unchallenging algorithms, dedicated synthesizers probably have more “voices” than a completely flexible architecture such as Max/MSP. But if these “voices” are not the sounds you want to hear, that probably doesn’t matter.
Max/MSP is not an audio editing program. It does all its processing in real time, and when you use it, you build a dynamic process–an instrument if you will–whereas an audio editing program is designed to make a static recording stored on your hard disk. You can certainly use the two together, taking hard-disk audio files and using them as source material for an Max/MSP real-time process, or interacting with an Max/MSP process and recording it, then processing the result further in an audio editing program.
MIT’s CSound and the open source SuperCollider are programs that let you specify synthesis and signal processing algorithms using a text-based language. We could think of these programs as audio rendering environments because the computer is used to realize a description of a sound or process. The main difference between Max/MSP and these programs is ease and immediacy of use. We think Max/MSP is easier to learn than text-based programs because it offers immediate feedback and because it can be easier to conceptualize a signal processing algorithm in a graphical form than as text. It is also arguably easier to extend Max/MSP with new audio device plug-ins, abstractions and C-language signal processing externals. Both SuperCollider and CSound can be extended, but you may need to compile a new version of the entire program in order to add new capabilities. Max/MSP users have written well over a hundred signal processing external objects to date.
Max/MSP Macintosh-specific FAQ
Leopard Support
Why is “Loading CFM externals disabled” on my Intel Mac? Can I install support for these externals?
If you are running Max/MSP 4.6 on an Intel Mac, you may have discovered an error message that says “Loading of CFM externals disabled”. This means that you are trying to use older third-party externals in your patch that have not been updated for Universal Binary compatibility. Because Max/MSP is a UB application, you will not be able to run older “CFM” externals. You will need to look for Universal Binary or Intel native updates for these objects. These can often be found on the developer’s personal website, maxobjects.com, or on the Max/MSP forum.
If you are using a PowerPC Mac, you may install support for CFM externals by running the installer located inside of the Max/MSP application bundle. We provide this compatibility as a convenience to PowerPC users, however due to various changes in the application itself and the locations of various libraries, you may still need an updated external. As always, you will need to contact the developer for information and support for third-party externals.
What are the main differences between OS 9 and OS X versions of Max/MSP?
Here is a brief summary of the major differences:
- OS X doesn’t use OMS (Opcode MIDI System) — the OMS objects are no longer in the 4.2 distribution. Instead, OS X handles MIDI functions using its own built-in Core MIDI; it’s very much like OMS, but also includes built-in virtual sources and destinations for communicating MIDI between Max and other applications.
- The Sound Manager and the use of ASIO drivers have been replaced by OS X’s built-in Core Audio, which handles audio interfacing for both built-in audio and third-party audio hardware. This means that if you’re using any external hardware that used ASIO drivers, you’ll need to check the manufacturer’s website to download and install Core Audio equivalents to use your hardware with OS X.
- External objects are now located in the folder /Library/Application Support/Cycling ’74, shared by all copies of Max/MSP: You can drop a folder into this folder and it will be included in the Max “search path” the next time you launch the application.
- Building standalone applications uses a new Max/MSP object and a simpler one-step process: Just add a copy of the new standalone object to your patch, use its Inspector to specify the options for your application, and choose Build Collective / Application from the File menu.
- There is no direct support for CD audio in Max/MSP 4.2 — the cd and cd~ objects have been removed. Use the MSP sfplay~ object to open CD tracks as audio files instead. It’s more powerful than cd or cd~, and lets you do things like playing CD tracks backwards or at different speeds.
- There is no MIDI enable/disable button in the Max 4.2 patcher window, and the lock/unlock button is the “pill” on the right side of the title bar.
- Max 4.2 can handle OS X files that have no OS 9 “type/creator” information, provided that they have the proper filename extension — for example, files ending in .pat are Max binary files and files ending in .txt are treated as text files (Note: filenames that have those extension can be used successfully as subpatch names without including the extension in the OS X version, but not under OS 9 (version 4.1)).
How do the OS 9 and OS X versions of Max/MSP compare in terms of speed?
Will my old patches from OS 9 work in the OS X version?
It will depend on the external objects you use in your patch. If you’re using objects that are in the OS 9 distribution but not in the OS X version (such as any OMS objects), you’ll have to replace them with their OS X equivalents.
If you are using third-party external objects (objects that are not part of the standard Max/MSP distribution), the OS 9 versions may not work under OS X, and may need to be replaced with OS X equivalents.
How will I know whether a third-party OS 9 object doesn’t run under OS X?
How can I find out if OS X versions of third-party objects are available?
I made a standalone application/collective for OS 9. Will I need to recompile it to run under OS X?
If I make a patch in OS X will it work on OS 9?
What Max/MSP 4.1 objects are not in the OS X version?
Does the OS X version take advantage of multiple processors?
Max/MSP doesn’t break audio tasks up and distribute them across multiple processors — if you only consider the audio part of Max/MSP, there is no additional benefit to using multiple processors. Since OS X is a “threaded” OS, some applications (e.g., Logic Audio) make use of multiple processors by running some application code (e.g., MIDI and UI tasks) as one thread on one processor, and audio on another processor. While Max/MSP doesn’t explicitly control how OS X distributes these threads across processors, there are some things you can do to realize some benefit from multiple processor systems.
There are three parts of Max/MSP that can potentially run in their own threads. Audio code and UI tasks run in their own threads, so it is possible that OS X can move the audio to the second processor while the UI remains on the first. The Max/MSP scheduler can be set so that it either runs in its own thread, or run in either the audio or UI task threads using the DSP Status window (found in the Options menu):
- If “Max Scheduler in Overdrive” is off, the scheduler will run in the same thread as UI tasks.
- If “Max Scheduler in Overdrive” is on AND “Scheduler in Audio Interrupt” is on, the scheduler will run in the same thread as the audio code.
- If “Max Scheduler in Overdrive” is on and “Scheduler in Audio Interrupt” is off, the scheduler will run in its own thread.
You can use these settings to optimize the use of multiple processors, depending on what kind of UI and scheduling tasks your patch requires.
If you’re running Jitter, it’s important to know that Jitter processing typically takes place in the UI thread, and it seems that some Quicktime codecs support the explicit use of multiple processors to decompress frames.
Will one install work for both OSs on a dual boot system?
Max/MSP Windows-specific FAQ
Is Max for Windows the same as the Mac version?
Am I able to exchange files between the Windows and Macintosh versions?
What do all the file extensions mean?
What kind of audio support does Max/MSP have?
What soundcards work with Max/MSP?
All standard internal soundcards, and all other soundcards which support MME, DirectSound and ASIO drivers. If for some reason your soundcard is not working, even though it works with your other Audio Applications, please drop us a line or call, we want to hear about it.
Special Notes about soundcards.
- RME HDSP cards have MME and DirectSound drivers, but do not operate stably using current versions of these drivers. The HDSP system is optimized for ASIO driver support, and we recommend using this ASIO driver within Max/MSP.
- Laptop computers using the SoundMAX system should always use the MME driver, despite its relatively high latency. DirectSound and ASIO drivers are not directly available for this hardware, and will use emulation layers that will add more latency than already present.
Are DirectX plugins supported?
Can I use Windows Max/MSP to design plug-ins for Pluggo?
Will Max support Windows 95? 98? 2000? NT?
What processing speed is recommended?
How much room do I need on my hard drive for Max/MSP?
What’s all this about Quicktime, do I really need it?
Why won’t my SDII files work?
What is the denormal problem and how does Max/MSP get around it?
Developing Pluggo Plugins
How do I develop my own plug-ins?
Is it hard to develop my own plug-ins?
If you have experience with Max and MSP, we think developing plug-ins will be very straightforward. Designing a good user interfaces for any software is always a challenge, so if you’re not satisfied with the sequencer’s default interface or the pluggo egg sliders, you might spend a lot of time tweaking. If you don’t have experience with Max and MSP, they are deep programs but the basic programming concept is very simple. There are over 40 interactive tutorials that come with Max, and over 25 that come with MSP. Thousands of other people around the world have learned the software and are better people for it.
Finally, we believe that the plug-ins already included with pluggo should serve as an inspiration for what is possible to do. Most of them are far more idiosyncratic than what you’ll find from other commercial developers. We believe that it’s possible to use the plug-in development tools in a very personal context, in which you express certain ideas you have about sound and musical organization within the plug-in itself. Or perhaps you’ll make a plug-in that you simply think of as a piece of music. If that sort of thing interests you, the Max/MSP system is the way to go…it opens a space that simply doesn’t exist if you try to program DSP algorithms in C and connect interfaces to them.
Max has a standalone application generator that developers can use without royalties. What about plug-in developers?
Pluggo runs on both Windows and Macintosh systems. Does this mean that I can create plug-ins that will run on both Windows machines and Mac using Max/MSP?
Do I have to do anything special to develop plug-ins for different host applications?
Max/MSP Operation and Compatibility
Where is the processing done?
Why can’t I download a patch onto my DSP card?
Does Max/MSP take advantage of multiprocessors?
Max/MSP doesn’t break audio tasks up and distribute them across multiple processors — if you only consider the audio part of Max/MSP, there is no additional benefit to using multiple processors. Since OS X and Windows XP are “threaded” OSs, some applications (e.g., Logic Audio) make use of multiple processors by running some application code (e.g., MIDI and UI tasks) as one thread on one processor, and audio on another processor. While Max/MSP doesn’t explicitly control how OS X distributes these threads across processors, there are some things you can do to realize some benefit from multiple processor systems.
There are three parts of Max/MSP that can potentially run in their own threads. Audio code and UI tasks run in their own threads, so it is possible that OS X or XP can move the audio to the second processor while the UI remains on the first. The Max/MSP scheduler can be set so that it either runs in its own thread, or run in either the audio or UI task threads using the DSP Status window (found in the Options menu):
- If “Max Scheduler in Overdrive” is off, the scheduler will run in the same thread as UI tasks.
- If “Max Scheduler in Overdrive” is on AND “Scheduler in Audio Interrupt” is on, the scheduler will run in the same thread as the audio code.
- If “Max Scheduler in Overdrive” is on and “Scheduler in Audio Interrupt” is off, the scheduler will run in its own thread.
You can use these settings to optimize the use of multiple processors, depending on what kind of UI and scheduling tasks your patch requires.
If you’re running Jitter, it’s important to know that Jitter processing typically takes place in the UI thread, and it seems that some QuickTime codecs support the explicit use of multiple processors to decompress frames.
What kind of performance can you get?
Because Max/MSP is a real-time program, the speed of your processor imposes a hard limit on what you can do. If you are serious about doing audio signal processing on your computer, you want the fastest machine you can buy. With a real-time program, running out of processing capacity means that the sound begins to distort, or your computer is extremely unresponsive, or both. We have seen dramatic improvements in processor speed recently, but once you start using Max/MSP, you may want even more.
We allow you to download Max/MSP and try it on your own computer because we don’t want to misrepresent its performance. Its value to you is inherently tied to what it can do on the computer you own. If you try it and subsequently want to upgrade your computer or get a new one, well it’s refreshing, since most people think that Photoshop is the only reason to buy a fast computer. You’ll know otherwise.
Can I use a DSP algorithm I develop with Max/MSP in another audio program such as Cubase or Digital Performer or Pro Tools?
Can I pipe a software synth into Max/MSP?
Does Max/MSP support plug-ins for other audio programs?
What are the advantages of using an audio interface card with Max/MSP?
There are several advantages. The first is audio quality. Most I/O cards available on the market are 24-bit, while the OS 9 Sound Manager and OS X Core Audio is 16-bit. Since Max/MSP’s internal processing uses 32-bit floating point numbers, there is definitely a loss in output resolution at the DAC. Most cards use digital inputs and outputs, eliminating CPU interference that reduces the signal-to-noise ratio obtainable from analog outputs that are touching the computer hardware.
Another advantage is latency. The design of the Sound Manager and the Macintosh audio hardware makes it difficult to achieve suitable latency performance. Using an audio card that Max/MSP supports directly allows you to bypass the Sound Manager completely.
Max/MSP 4.1 for OS 9 supports ASIO-compatible audio cards and interfaces; virtually all products advertised as Mac-compatible will work with ASIO.
Max/MSP 4.2 for OS X supports Core Audio. You’ll need a Core Audio driver for your hardware to use it with OS X.
All version of Windows Max/MSP support ASIO, directX and MME drivers, as well as ReWire.
Does Max/MSP work with Digidesign’s Pro Tools hardware?
Yes, it does. If you want to use ProTools hardware such as an Mbox or Digi 001 with OS 9, you’ll need to put the Digidesign DirectIO ASIO driver in your ASIO drivers folder. If you’re using OS X, you’ll need the Digidesign CoreAudio driver.
On Windows, Max/MSP uses the Digidesign ASIO driver.
What type of sound files does Max/MSP support? Can I record what I do in Max/MSP to a file?
Max/MSP reads and writes AIFF, Sound Designer II, WAVE, NeXT, and raw data files, and lets you import any audio file format supported by QuickTime. You can connect one or more audio signals to a hard-disk recording object in Max/MSP and record whatever you are synthesizing or processing. The file can contain up to 16 channels, and may be saved in a variety of sample formats from 8 to 64 bits. Additionally the buffer~ object can import the audio track from anything that is supported by QuickTime (e.g. .mp3, .mov, .avi, etc.).
I see that Max/MSP has delay line objects. How long can I make a delay?
Max/MSP Technical Questions
How do you keep MSP from loading when Max starts up, if you don’t want to use it for that session?
I have a Max/MSP patch that makes a nice sound when I play a MIDI note. How do I make it polyphonic?
On my somewhat ancient machine, I get frequent clicks and dropouts when recording using sfrecord~. What can I do?
If I make a patch with feedback (where an object’s output is eventually routed back to its input), there is no audio output. How can I make some feedback, man?
Your oscillators aren’t accurate. Most of the time they never reach exactly 1. Why not?
What’s the best version of the Macintosh and Windows OS to use with Max/MSP?
Is there any way that I can use QuickTime Instruments with Max/MSP or use something like a softsynth without using VST?
Beginner’s FAQ
I want to look at a patch someone posted to the list, but all I see is this text stuff. How do I turn this into a patch?
Sending Max/MSP patches as text is often the most reliable and convenient way to transport them via email and even using jump drives. Often, patches saved in binary form will get corrupted in the process of transporting them. For this reason, it is customary in the Max community to post patches as text.
To convert a text into a patch:
- Select the text you wish to copy from the email/forum.
- Open Max/MSP
- Select File->New->Patcher
- Paste. Voila!
See also: “WhatsNewInMax455″, pg. 13
I’m having trouble with Max/MSP and need some help. How can I get the assistance I need?
- Check the documentation. Often, your questions will be answered by a quick search through the PDF files.
- If you are having problems with general functionality, please send an email to support@cycling74.com.
- If you are looking for advice about a project, a troublesome patch, or other miscellaneous topics, chances are it has been covered on the forums. Doing a search of the forum archives will usually turn up a variety of answers to any question. If you don’t find what you’re looking for, post your question to the forum.
I would like to post my question to the forum. Any suggestions?
- Before posting a question, it is advised that you search the forum archives and product documentation first. This will help you to avoid asking a question that has been answered many times before.
- Try to be as clear and detailed as possible. Usually, including an example patch that demonstrates the question is very helpful. By taking the time to formulate your question, you will greatly increase your chances of getting it answered.
- Be courteous and respectful of the community. As with any online forum, it is advisable to spend some time “lurking” before jumping into discussions.
- If you are still having doubts, check out How To Ask Questions the Smart Way by Eric S. Raymond and Rick Moen.
I’ve got this great idea for a patch, but don’t know where to start. Where can I find some helpful patches I can borrow ideas from?
- The Forum Archives – Throughout the years, a ton of really useful patches have been posted to the list, and are usually accompanied by some thought-provoking discussion. The searchable forum archives are an amazing resource for Max users.
- The Max/MSP “examples” folder – Often overlooked, this folder is packed with clever patches and demonstrations of more advanced techniques.
- Cycling ’74 Articles – We strive to add new and useful content here for users of all skill levels. Check back regularly for new additions.