# Max (programari)

Max, també conegut com a Max/MSP/Jitter, és un llenguatge de programació visual per a música i multimèdia desenvolupat i mantingut per la companyia de programari Cycling '74 amb seu a San Francisco. Al llarg dels seus més de trenta anys d'història, ha estat utilitzat per compositors, intèrprets, dissenyadors de programari, investigadors i artistes per crear enregistraments, performances i instal·lacions.
El programa Max és modular, ja que la majoria de rutines existeixen com a biblioteques compartides. Una interfície de programació d'aplicacions (API) permet el desenvolupament de rutines noves (anomenades objectes externs) per part de tercers. Per tant, Max té una gran base d'usuaris de programadors no afiliats a Cycling '74 que milloren el programari amb extensions comercials i no comercials del programa. A causa d'aquest disseny extensible, que representa alhora l'estructura del programa i la seva interfície gràfica d'usuari (GUI), Max ha estat descrit com la llengua franca per al desenvolupament de programari interactiu de música.

## Història

Anys 80: Miller Puckette va començar a treballar a Max el 1985, a l'Institut de Recerca i Coordinació Acústica / Música (IRCAM) de París. Originalment anomenada The Patcher, aquesta primera versió proporcionava als compositors una interfície gràfica per crear partitures de música interactiva per ordinador al Macintosh. En aquest moment del seu desenvolupament, Max no va poder realitzar la seva pròpia síntesi de so en temps real en programari, sinó que va enviar missatges de control a sintetitzadors i samplers de maquinari externs mitjançant MIDI o un protocol similar. El seu primer ús àmpliament reconegut en la composició va ser per a Pluton, una obra per a piano i ordinador de Philippe Manoury del 1988; el programari sincronitzava un ordinador amb un piano i controlava un Sogitec 4X per al processament d'àudio.
El 1989, IRCAM va desenvolupar Max / FTS ("Faster Than Sound"), una versió de Max portada a l'estació de treball de processament de senyal IRCAM (ISPW) per a NeXT. També conegut com "Audio Max", seria un precursor de les extensions d'àudio MSP de Max, afegint la possibilitat de fer síntesi en temps real mitjançant una placa de processador de senyal digital de maquinari intern (DSP). El mateix any, IRCAM va llicenciar el programari a Opcode Systems.
Anys 90: Opcode va llançar una versió comercial anomenada Max el 1990, desenvolupada i ampliada per David Zicarelli. No obstant això, el 1997, Opcode estava pensant en cancel·lar-lo. En lloc d'això, Zicarelli va adquirir els drets de publicació i va fundar una nova empresa, Cycling '74, per continuar el desenvolupament comercial. El moment va ser afortunat, ja que Opcode va ser adquirit per Gibson Guitar el 1998 i va acabar les operacions el 1999.
El desenvolupament intern de l'IRCAM Max també estava acabant; l'última versió que es va produir va ser jMax, descendent directe de Max/FTS desenvolupat el 1998 per Silicon Graphics (SGI) i posteriorment per a sistemes Linux. Va utilitzar Java per a la seva interfície gràfica i C per al seu backend en temps real, i finalment es va llançar com a programari de codi obert.
Mentrestant, Puckette havia llançat independentment una eina de composició de codi obert completament redissenyada anomenada Pure Data (Pd) el 1996, que, tot i algunes diferències subjacents d'enginyeria respecte de les versions de l'IRCAM, va continuar en la mateixa tradició. La primera versió de Max de Cycling 74, el 1997, es va derivar en part del treball de Puckette sobre Pure Data. Anomenat Max/MSP ("Max Signal Processing", o les inicials Miller Smith Puckette), continua sent el més notable de les nombroses extensions i encarnacions de Max: va fer que Max fos capaç de manipular senyals d'àudio digitals en temps real sense maquinari DSP dedicat. Això significava que els compositors podien crear els seus propis complexos sintetitzadors i processadors d'efectes utilitzant només un ordinador d'ús general com el Macintosh PowerBook G3 .
El 1999, el col·lectiu Netochka Nezvanova va llançar NATO.0 + 55 + 3d, un conjunt d'externes que van afegir un control de vídeo en temps real extensiu a Max.
Anys 2000: tot i que l'OTAN.0 + 55 + 3d es va fer cada vegada més popular entre els artistes multimèdia, el seu desenvolupament es va aturar bruscament el 2001. SoftVNS, un altre conjunt d'extensions per al processament visual de Max, va ser llançat el 2002 per l'artista canadenc de mitjans David Rokeby. Cycling '74 va llançar el seu propi conjunt d'extensions de vídeo, Jitter, al costat de Max 4 el 2003, afegint funcions de vídeo en temps real, gràfics OpenGL i processament de matriu. Max 4 també va ser la primera versió que es va executar a Windows. Max 5, llançat el 2008, va redissenyar la GUI de pegat per primera vegada en la història comercial de Max.
Anys 2010: el 2011, Max 6 va afegir un nou motor d'àudio compatible amb sistemes operatius de 64 bits, integració amb el programari seqüenciador Ableton Live i una extensió anomenada Gen, que pot compilar pegats Max optimitzats per obtenir un rendiment superior. Max 7 es va llançar el 2014 i es va centrar en les millores de la representació 3D.
El 6 de juny de 2017, Ableton va anunciar la compra de Cycling '74, amb la continuació de la publicació de Max per Cycling '74 i David Zicarelli restant a la companyia.
El 25 de setembre de 2018 es va llançar Max 8, la versió principal més recent del programari. Algunes de les noves funcions inclouen MC, una nova forma de treballar amb diversos canals, compatibilitat amb JavaScript amb Node for Max i Vizzie 2.

## Llenguatge

Max rep el nom del compositor Max Mathews i es pot considerar descendent del seu llenguatge MUSIC, tot i que la seva naturalesa gràfica dissimula aquest fet. Com la majoria dels llenguatges MUSIC-N, Max distingeix entre dos nivells de temps: el d'un planificador d' esdeveniments i el del DSP (això correspon a la distinció entre processos de velocitat k i velocitat a Csound, i velocitat de control vs. àudio en SuperCollider).
El llenguatge bàsic de Max i els seus programes germans és el d'un sistema de flux de dades: els programes Max (anomenats pegats) es realitzen mitjançant l'organització i la connexió de blocs d' objectes dins d'un pegat o llenç visual. Aquests objectes actuen com a programes autònoms (en realitat, són biblioteques enllaçades dinàmicament), cadascun dels quals pot rebre entrada (a través d'una o més entrades visuals), generar sortida (a través de sortides visuals) o ambdues coses. Els objectes transmeten missatges des dels seus punts de venda a les entrades d'objectes connectats.
Max admet sis tipus de dades atòmiques bàsiques que es poden transmetre com a missatges d'objecte en objecte: int, float, llista, símbol, bang i senyal (per a connexions d'àudio MSP). Existeixen diverses estructures de dades més complexes dins del programa per gestionar matrius numèrics (dades de taula), taules de hash (dades coll), informació XML (dades pattr) i diccionaris basats en JSON (dades dict). Una estructura de dades MSP (buffer ~) pot contenir informació d'àudio digital dins de la memòria del programa. A més, el paquet Jitter afegeix una estructura de dades multidimensionals i escalables per gestionar grans conjunts de números per emmagatzemar vídeo i altres conjunts de dades (dades de matriu).
Normalment, Max s’aprèn adquirint un vocabulari d'objectes i com funcionen dins d'un parche; per exemple, les funcions d'objecte metro com un simple metrònom, i l'objecte a l'atzar genera enters aleatoris. La majoria d'objectes no són gràfics, només consisteixen en el nom d'un objecte i diversos arguments-atributs (en essència, propietats de classe) introduïts en una caixa d'objectes. Altres objectes són gràfics, inclosos els lliscadors, quadres numèrics, marcadors, editors de taules, menús desplegables, botons i altres objectes per executar el programa de manera interactiva. Max/MSP/Jitter inclou aproximadament 600 d'aquests objectes com a paquet estàndard; les extensions del programa poden ser escrites per desenvolupadors de tercers com a patchers Max (per exemple, encapsulant algunes de les funcionalitats d'un patch en un subprograma que és un patch Max) o com a objectes escrits en C, C ++, Java, o JavaScript.
L'ordre d'execució dels missatges que travessen el gràfic d'objectes es defineix per l'organització visual dels objectes al propi pedaç. Com a resultat d'aquest principi d'organització, Max és inusual ja que la lògica del programa i la interfície tal com es presenten a l'usuari solen estar relacionades, tot i que les versions més recents de Max proporcionen diverses tecnologies per al disseny de GUI més estàndard.
Els documents màxims (anomenats patchers) es poden agrupar en aplicacions autònomes i distribuir-los gratuïtament o vendre’s comercialment. A més, Max es pot utilitzar per crear programari de plugins d'àudio i MIDI per a Ableton Live mitjançant l'extensió Max for Live.
Amb la integració augmentada dels ordinadors portàtils en la música en directe (en música electrònica i en altres llocs), Max/MSP i Max/Jitter han rebut atenció com a entorn de desenvolupament disponible per a aquells que es dediquen seriosament al rendiment de música / vídeo portàtil. Els programes que comparteixen els conceptes de programació visual de Max ara s’utilitzen habitualment per a la síntesi i processament d'àudio i vídeo en temps real.

## Referències

* ↑ «Max/MSP for average music junkies». .
* ↑ Place, T. «A modular standard for structuring patches in Max». Jamoma p. 143–146. In Proc. of the International Computer Music Conference 2006, 2006. Arxivat de l'original el 2011-07-26. [Consulta: 16 febrer 2011].
* ↑ «Synthetic Rehearsal: Training the Synthetic Performer». .
* ↑ Barry, Vercoe; Miller, Puckette «Synthetic Rehearsal: Training the Synthetic Performer». International Computer Music Conference Proceedings. ICMC, vol. 1985, 1985.
* ↑ Puckette, Miller S. «The Patcher». . ICMC, 11-08-1988.
* ↑ Puckette, Miller S. «Pd Repertory Project - History of Pluton». CRCA. Arxivat de l'original el 2004-07-07. [Consulta: 3 març 2012].
* ↑ «A brief history of MAX». IRCAM. Arxivat de l'original el 2009-06-03.
* ↑ «Max/MSP History - Where did Max/MSP come from?». Cycling74. Arxivat de l'original el 2009-06-09. [Consulta: 3 març 2012].
* ↑ The Contemporary Violin: Extended Performance Techniques By Patricia Strange, Allen Strange Accessed 10 setembre 2018
* ↑ Battino, David. The Art of Digital Music. Backbeat Books, 2005, p. 110. ISBN 0-87930-830-3.
* ↑ «About Us». Cycling74.com. [Consulta: 3 març 2012].
* ↑ «FAQ Max4». Cycling74.com. Arxivat de l'original el 2 de desembre 2009. [Consulta: 3 març 2012].
* ↑ «Harmony Central News». Arxivat de l'original el 2007-10-27. [Consulta: 23 agost 2018].
* ↑ «GEN - Extend the power of Max». Cycling74.com. Arxivat de l'original el 2014-10-28. [Consulta: 20 febrer 2021].
* ↑ «Max 7 is Patching Reimagined». Cycling '74, 2014.
* ↑ A conversation with David Zicarelli and Gerhard Behles, Peter Kirn - juny 6, 2017 Accessed 10 setembre 2018
* ↑ «Article: Max 8 is here | Cycling '74» (en anglès). cycling74.com. [Consulta: 13 gener 2019].
* ↑ «What's New in Max 8? | Cycling '74» (en anglès). cycling74.com. [Consulta: 13 gener 2019].

## Vegeu també

* Pure Data
* Llenguatge de programació visual
* Síntesi granular

## Enllaços externs

* Max - Lloc web oficial