Max, also known asMax/MSP/Jitter, is avisual programming language formusic andmultimedia developed and maintained bySan Francisco-based software companyCycling '74. Over its more than thirty-year history, it has been used bycomposers, performers,software designers, researchers, and artists to create recordings, performances, and installations.[2]
![]() | |
Developer(s) | Cycling '74 |
---|---|
Stable release | 9.0.5[1] ![]() |
Written in | C,C++ (onJUCE platform) |
Operating system | Microsoft Windows,macOS |
Type | Music andmultimedia development |
License | Proprietary |
Website | cycling74 |
The Max program is modular, with most routines existing asshared libraries. Anapplication programming interface (API) allows third-party development of new routines (namedexternal objects). Thus, Max has a large user base of programmers unaffiliated with Cycling '74 who enhance the software with commercial and non-commercialextensions to the program. Because of thisextensible design, which simultaneously represents both theprogram's structure and itsgraphical user interface (GUI), Max has been described as thelingua franca for developing interactive music performance software.[3]
History
edit1980s
editMiller Puckette began work on Max in 1985, at theInstitut de Recherche et Coordination Acoustique/Musique (IRCAM) inParis.[4][5] Originally calledThe Patcher, this first version provided composers with a graphical interface for creating interactivecomputer music scores on theMacintosh. At this point in its development Max couldn't perform its own real-time sound synthesis in software, but instead sent control messages to external hardware synthesizers and samplers usingMIDI or a similarprotocol.[6] Its earliest widely recognized use in composition was forPluton, a 1988 piano and computer piece byPhilippe Manoury; the software synchronized a computer to a piano and controlled aSogitec 4X for audio processing.[7]
In 1989, IRCAM developedMax/FTS ("Faster Than Sound"), a version of Max ported to theIRCAM Signal Processing Workstation (ISPW) for theNeXT. Also known as "Audio Max", it would prove a forerunner to Max's MSP audio extensions, adding the ability to do real-time synthesis using an internal hardwaredigital signal processor (DSP) board.[8][9] In 1989, IRCAM worked with Joel Chadabe and Ben Austin of Intelligent Computer Music Systems to license the software for commercial sales in the United States. With the 1990 bankruptcy of Intelligent Computer Music Systems, both theMax Software and Ben Austin moved toOpcode Systems, which became the publisher of record forMax.[10]
1990s
editAlthough Opcode launched its commercial version namedMax in 1990, developed and extended byDavid Zicarelli, the product was becoming a poor fit for Opcode, which was squarely towards commercial music production. Thus Zicarelli in 1997 acquired the publishing rights and founded a new company, Cycling '74, to continue commercial development.[11][12][13] The timing was fortunate, as Opcode was acquired byGibson Guitar in 1998 and ended operations in 1999.[14]
IRCAM's in-house Max development was also winding down; the last version produced there wasjMax, a direct descendant of Max/FTS developed in 1998 forSilicon Graphics (SGI) and later forLinux systems. It used Java for its graphical interface and C for its real-time backend, and was eventually released asopen-source software.
Meanwhile, Puckette had independently released a fully redesigned open-source composition tool namedPure Data (Pd) in 1996, which, despite some underlying engineering differences from the IRCAM versions, continued in the same tradition. Cycling '74's first Max release, in 1997, was derived partly from Puckette's work on Pure Data. CalledMax/MSP ("Max Signal Processing", or the initials Miller Smith Puckette), it remains the most notable of Max's many extensions and incarnations: it made Max capable of manipulating real-timedigital audio signals without dedicated DSP hardware. This meant that composers could now create their own complex synthesizers and effects processors using only a general-purpose computer like the MacintoshPowerBook G3.
In 1999, theNetochka Nezvanova collective releasedNATO.0+55+3d, a suite of externals that added extensive real-time video control to Max.
2000s
editThough NATO.0+55+3d became increasingly popular among multimedia artists, its development stopped abruptly in 2001.SoftVNS, another set of extensions for visual processing in Max, was released in 2002 by Canadian media artistDavid Rokeby. Cycling '74 released their own set of video extensions,Jitter, alongside Max 4 in 2003, adding real-time video,OpenGL graphics, andmatrix processing capabilities. Max 4 was also the first version to run onWindows. Max 5, released in 2008, redesigned the patching GUI for the first time in Max's commercial history.
2010s
editIn 2011, Max 6 added a new audio engine compatible with 64-bit operating systems, integration withAbleton Live sequencer software, and an extension called Gen, which can compile optimized Max patches for higher performance.[15] Max 7 was released in 2014 and focused on 3D rendering improvements.[16]
On June 6, 2017,Ableton announced its purchase of Cycling '74, with Max continuing to be published by Cycling '74 and David Zicarelli remaining with the company.[17]
On September 25, 2018, Max 8 was released.[18] Some of the new features include MC, a new way to work with multiple channels, JavaScript support with Node for Max, and Vizzie 2.[19]
2020s
editOn October 29, 2024, Max 9, the most recent major version of the software, was released.
Language
editThis sectiondoes notcite anysources. Please helpimprove this section byadding citations to reliable sources. Unsourced material may be challenged andremoved.(January 2015) (Learn how and when to remove this message) |
Max is named after composerMax Mathews, and can be considered a descendant of hisMUSIC language, though its graphical nature disguises that fact.[20] Like mostMUSIC-N languages, Max distinguishes between two levels of time: that of anevent scheduler, and that of the DSP (this corresponds to the distinction between k-rate and a-rate processes inCsound, and control rate vs. audio rate inSuperCollider).
The basic language of Max and its sibling programs is that of a data-flow system: Max programs (namedpatches) are made by arranging and connecting building-blocks ofobjects within apatcher, or visual canvas. These objects act as self-contained programs (in reality, they are dynamically linked libraries), each of which may receive input (through one or more visualinlets), generate output (through visualoutlets), or both. Objects pass messages from their outlets to the inlets of connected objects.
Max supports six basic atomic data types that can be transmitted as messages from object to object: int, float, list, symbol, bang, and signal (for MSP audio connections). Several more complex data structures exist within the program for handling numeric arrays (table data), hash tables (coll data), XML information (pattr data), and JSON-based dictionaries (dict data). An MSP data structure (buffer~) can hold digital audio information within program memory. In addition, the Jitter package adds a scalable, multi-dimensional data structure for handling large sets of numbers for storing video and other datasets (matrix data).
Max is typically learned through acquiring a vocabulary of objects and how they function within a patcher; for example, themetro object functions as a simple metronome, and therandom object generates random integers. Most objects are non-graphical, consisting only of an object's name and several arguments-attributes (in essence class properties) typed into anobject box. Other objects are graphical, including sliders, number boxes, dials, table editors, pull-down menus, buttons, and other objects for running the program interactively. Max/MSP/Jitter comes with about 600 of these objects as the standard package; extensions to the program can be written by third-party developers as Max patchers (e.g. by encapsulating some of the functionality of a patcher into a sub-program that is itself a Max patch), or as objects written inC,C++,Java, orJavaScript.
The order of execution for messages traversing through the graph of objects is defined by the visual organization of the objects in the patcher itself. As a result of this organizing principle, Max is unusual in that the program logic and the interface as presented to the user are typically related, though newer versions of Max provide several technologies for more standard GUI design.
Max documents (named patchers) can be bundled into stand-alone applications and distributed free or sold commercially. In addition, Max can be used to author audio and MIDIplugin software forAbleton Live through the Max for Live extension.
With the increased integration oflaptop computers into live music performance (inelectronic music and elsewhere), Max/MSP and Max/Jitter have received attention as a development environment available to those serious about laptop music/video performance. Programs sharing Max's visual programming concepts are now commonly used for real-time audio and video synthesis and processing.
See also
editReferences
edit- ^. 4 March 2025https://cycling74.com/releases/max/9.0.5. Retrieved18 April 2025.
{{cite web}}
:Missing or empty|title=
(help) - ^"Max/MSP for average music junkies".Hopes&Fears. Retrieved2018-09-16.
- ^Place, T.; Lossius, T. (2006)."A modular standard for structuring patches in Max"(PDF).Jamoma. New Orleans, US: In Proc. of the International Computer Music Conference 2006. pp. 143–146. Archived fromthe original(PDF) on 2011-07-26. Retrieved2011-02-16.
- ^"Synthetic Rehearsal: Training the Synthetic Performer"(PDF). Archived fromthe original(PDF) on August 15, 2020. Retrieved2008-08-22.
{{cite journal}}
:Cite journal requires|journal=
(help) - ^Barry, Vercoe; Miller, Puckette (1985)."Synthetic Rehearsal: Training the Synthetic Performer".International Computer Music Conference Proceedings.1985. ICMC. Retrieved2018-09-19.
- ^Puckette, Miller S. (11 August 1988)."The Patcher"(PDF). ICMC. Retrieved2018-08-22.
{{cite journal}}
:Cite journal requires|journal=
(help) - ^Puckette, Miller S."Pd Repertory Project - History ofPluton". CRCA. Archived fromthe original on 2004-07-07. RetrievedMarch 3, 2012.
- ^"A brief history of MAX". IRCAM. Archived fromthe original on 2009-06-03.
- ^"Max/MSP History - Where did Max/MSP come from?". Cycling74. Archived fromthe original on 2009-06-09. RetrievedMarch 3, 2012.
- ^The Contemporary Violin: Extended Performance Techniques By Patricia Strange, Allen Strange Accessed 10 September 2018
- ^Battino, David; Richards, Kelli (2005).The Art of Digital Music. Backbeat Books. p. 110.ISBN 0-87930-830-3.
- ^"About Us". Cycling74.com. RetrievedMarch 3, 2012.
- ^"FAQ Max4". Cycling74.com. RetrievedMarch 3, 2012.
- ^"Harmony Central News". Archived fromthe original on 2007-10-27. Retrieved2018-08-23.
- ^"GEN - Extend the power of Max". Cycling74.com.
- ^"Max 7 is Patching Reimagined". Cycling '74. 2014.
- ^A conversation with David Zicarelli and Gerhard Behles, Peter Kirn - June 6, 2017 Accessed 10 September 2018
- ^"Article: Max 8 is here | Cycling '74".cycling74.com. Retrieved2019-01-13.
- ^"What's New in Max 8? | Cycling '74".cycling74.com. Retrieved2019-01-13.
- ^Puckette, Miller."Max at Seventeen".msp.ucsd.edu. Retrieved2023-06-23.