Max , también conocido como Max/MSP/Jitter , es un lenguaje de programación visual para música y multimedia desarrollado y mantenido por la empresa de software Cycling '74 , con sede en San Francisco . A lo largo de sus más de treinta años de historia, lo han utilizado compositores, intérpretes, diseñadores de software, investigadores y artistas para crear grabaciones, interpretaciones e instalaciones. [2]
El programa Max es modular, y la mayoría de las rutinas existen como bibliotecas compartidas . Una interfaz de programación de aplicaciones (API) permite el desarrollo por parte de terceros de nuevas rutinas (denominadas objetos externos ). Por lo tanto, Max tiene una gran base de usuarios de programadores no afiliados a Cycling '74 que mejoran el software con extensiones comerciales y no comerciales del programa. Debido a este diseño extensible , que representa simultáneamente tanto la estructura del programa como su interfaz gráfica de usuario (GUI), Max ha sido descrito como la lengua franca para el desarrollo de software de interpretación musical interactiva. [3]
Década de 1980: Miller Puckette comenzó a trabajar en Max en 1985, en el Institut de Recherche et Coordination Acoustique/Musique (IRCAM) en París . [4] [5] Originalmente llamada The Patcher , esta primera versión proporcionó a los compositores una interfaz gráfica para crear partituras musicales interactivas por computadora en Macintosh . En este punto de su desarrollo, Max no podía realizar su propia síntesis de sonido en tiempo real en software, sino que enviaba mensajes de control a sintetizadores y samplers de hardware externos utilizando MIDI o un protocolo similar . [6] Su primer uso ampliamente reconocido en la composición fue para Pluton , una pieza para piano y computadora de 1988 de Philippe Manoury ; el software sincronizaba una computadora con un piano y controlaba un Sogitec 4X para el procesamiento de audio. [7]
En 1989, IRCAM desarrolló Max/FTS ("Faster Than Sound"), una versión de Max trasladada a la estación de trabajo de procesamiento de señales IRCAM (ISPW) para NeXT . También conocida como "Audio Max", resultaría ser una precursora de las extensiones de audio MSP de Max, añadiendo la capacidad de hacer síntesis en tiempo real utilizando una placa de procesador de señal digital (DSP) de hardware interno. [8] [9] El mismo año, IRCAM licenció el software a Opcode Systems . [10]
Década de 1990: Opcode lanzó una versión comercial llamada Max en 1990, desarrollada y ampliada por David Zicarelli . Sin embargo, en 1997, Opcode estaba considerando cancelarla. En su lugar, Zicarelli adquirió los derechos de publicación y fundó una nueva empresa, Cycling '74, para continuar con el desarrollo comercial. [11] [12] [13] El momento fue afortunado, ya que Opcode fue adquirida por Gibson Guitar en 1998 y finalizó sus operaciones en 1999. [14]
El desarrollo interno de Max en IRCAM también estaba llegando a su fin; la última versión producida allí fue jMax , un descendiente directo de Max/FTS desarrollado en 1998 para Silicon Graphics (SGI) y más tarde para sistemas Linux . Utilizaba Java para su interfaz gráfica y C para su backend en tiempo real, y finalmente se lanzó como software de código abierto .
Mientras tanto, Puckette había lanzado de forma independiente una herramienta de composición de código abierto completamente rediseñada llamada Pure Data (Pd) en 1996, que, a pesar de algunas diferencias de ingeniería subyacentes con las versiones IRCAM, continuaba con la misma tradición. El primer lanzamiento de Max de Cycling '74, en 1997, se derivó en parte del trabajo de Puckette en Pure Data. Llamado Max/MSP ("Max Signal Processing", o las iniciales Miller Smith Puckette), sigue siendo la más notable de las muchas extensiones y encarnaciones de Max: hizo que Max fuera capaz de manipular señales de audio digital en tiempo real sin hardware DSP dedicado. Esto significaba que los compositores ahora podían crear sus propios sintetizadores complejos y procesadores de efectos utilizando solo una computadora de propósito general como Macintosh PowerBook G3 .
En 1999, el colectivo Netochka Nezvanova lanzó NATO.0+55+3d , un conjunto de componentes externos que agregaron un amplio control de video en tiempo real a Max.
Década de 2000: Aunque NATO.0+55+3d se hizo cada vez más popular entre los artistas multimedia, su desarrollo se detuvo abruptamente en 2001. SoftVNS , otro conjunto de extensiones para el procesamiento visual en Max, fue lanzado en 2002 por el artista multimedia canadiense David Rokeby . Cycling '74 lanzó su propio conjunto de extensiones de video, Jitter , junto con Max 4 en 2003, agregando video en tiempo real, gráficos OpenGL y capacidades de procesamiento de matriz . Max 4 también fue la primera versión en ejecutarse en Windows . Max 5, lanzado en 2008, rediseñó la GUI de parches por primera vez en la historia comercial de Max.
Década de 2010: En 2011, Max 6 agregó un nuevo motor de audio compatible con sistemas operativos de 64 bits, integración con el software secuenciador Ableton Live y una extensión llamada Gen, que puede compilar parches Max optimizados para un mayor rendimiento. [15] Max 7 se lanzó en 2014 y se centró en mejoras de renderizado 3D. [16]
El 6 de junio de 2017, Ableton anunció la compra de Cycling '74, y Max continuó siendo publicado por Cycling '74 y David Zicarelli permaneció en la compañía. [17]
El 25 de septiembre de 2018 se lanzó Max 8, la versión principal más reciente del software. [18] Algunas de las nuevas características incluyen MC, una nueva forma de trabajar con múltiples canales, compatibilidad con JavaScript con Node para Max y Vizzie 2. [19]
Max debe su nombre al compositor Max Mathews , y puede considerarse un descendiente de su lenguaje MUSIC , aunque su naturaleza gráfica oculta ese hecho. [20] Como la mayoría de los lenguajes MUSIC-N , Max distingue entre dos niveles de tiempo: el de un programador de eventos y el del DSP (esto corresponde a la distinción entre procesos de velocidad k y velocidad a en Csound , y velocidad de control frente a velocidad de audio en SuperCollider ).
El lenguaje básico de Max y sus programas hermanos es el de un sistema de flujo de datos: los programas Max (llamados parches ) se crean organizando y conectando bloques de construcción de objetos dentro de un parche o lienzo visual. Estos objetos actúan como programas autónomos (en realidad, son bibliotecas vinculadas dinámicamente), cada uno de los cuales puede recibir entradas (a través de una o más entradas visuales ), generar salidas (a través de salidas visuales ) o ambas. Los objetos pasan mensajes desde sus salidas a las entradas de los objetos conectados.
Max admite seis tipos básicos de datos atómicos que se pueden transmitir como mensajes de un objeto a otro: int, float, list, symbol, bang y signal (para conexiones de audio MSP). Existen varias estructuras de datos más complejas dentro del programa para manejar matrices numéricas ( datos de tabla ), tablas hash (datos de coll ), información XML ( datos de pattr ) y diccionarios basados en JSON ( datos de dict ). Una estructura de datos MSP ( buffer~ ) puede contener información de audio digital dentro de la memoria del programa. Además, el paquete Jitter agrega una estructura de datos escalable y multidimensional para manejar grandes conjuntos de números para almacenar video y otros conjuntos de datos ( datos de matriz ).
Max se aprende típicamente mediante la adquisición de un vocabulario de objetos y cómo funcionan dentro de un parcheador; por ejemplo, el objeto metro funciona como un metrónomo simple, y el objeto aleatorio genera números enteros aleatorios. La mayoría de los objetos no son gráficos, consisten solo en el nombre de un objeto y varios argumentos-atributos (en esencia propiedades de clase) escritos en un cuadro de objeto . Otros objetos son gráficos, incluyendo controles deslizantes, cuadros de números, diales, editores de tablas, menús desplegables, botones y otros objetos para ejecutar el programa de forma interactiva. Max/MSP/Jitter viene con alrededor de 600 de estos objetos como paquete estándar; los desarrolladores externos pueden escribir extensiones al programa como parcheadores Max (por ejemplo, encapsulando parte de la funcionalidad de un parcheador en un subprograma que es en sí mismo un parche Max), o como objetos escritos en C , C++ , Java o JavaScript .
El orden de ejecución de los mensajes que recorren el gráfico de objetos está definido por la organización visual de los objetos en el propio parcheador. Como resultado de este principio de organización, Max es inusual en el sentido de que la lógica del programa y la interfaz que se presenta al usuario suelen estar relacionadas, aunque las versiones más nuevas de Max ofrecen varias tecnologías para un diseño de GUI más estándar.
Los documentos de Max (llamados parcheadores) se pueden agrupar en aplicaciones independientes y distribuirse de forma gratuita o venderse comercialmente. Además, Max se puede utilizar para crear software de complementos de audio y MIDI para Ableton Live a través de la extensión Max for Live.
Con la creciente integración de las computadoras portátiles en las interpretaciones musicales en vivo (en música electrónica y en otros ámbitos), Max/MSP y Max/Jitter han recibido atención como un entorno de desarrollo disponible para aquellos que se toman en serio la interpretación de música y video con computadoras portátiles. Los programas que comparten los conceptos de programación visual de Max ahora se usan comúnmente para la síntesis y procesamiento de audio y video en tiempo real.
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ) {{cite journal}}
: Requiere citar revista |journal=
( ayuda )