Saltearse al contenido

Glosario Técnico y Léxico Operativo de Max/MSP

Este glosario condensa la terminología matemática, acústica y de ciencias de la computación que sustenta el entorno de Max/MSP. Cada término se presenta bajo el estándar de 4 bloques de rigor operativo: su definición formal, su criticidad en tiempo real en vivo, la confusión típica que suele inducir a error y los objetos nativos donde se implementa.


1. Paradigma Dataflow, Control y Scheduler

Bang

Ontología de Ejecución
Definición Operativa

El mensaje atómico más fundamental de Max. Representa un impulso de ejecución desprovisto de valor numérico intrínseco; su único significado computacional es la orden inmediata: "calcula ahora y emite tu estado actual".

En Vivo y Concierto

Cualquier disparo rítmico o cambio de compás depende de la propagación limpia de un bang. Generar ráfagas descontroladas de bangs satura la cola de eventos y degrada la precisión del tempo.

Confusión Típica

No equivale al número 1 ni a un estado booleano true. Un número 1 transporta un dato; un bang es un suceso temporal puro.

Objetos & Lecciones

button, bang, metro, trigger. Ver Módulo 1.1.

Scheduler Thread (Hilo del Planificador)

Control / Timing
Definición Operativa

Hilo de ejecución de prioridad media-alta encargado de despachar eventos discretos, temporizadores (metro), mensajes de control y tareas programadas en la cola temporal en milisegundos.

En Vivo y Concierto

Si se activan algoritmos bloqueantes o parsing de texto masivo en este hilo, el tempo fluctúa y se introduce jitter temporal en eventos rítmicos y MIDI.

Confusión Típica

No confundir con el Audio Thread. El Scheduler mide el tiempo en milisegundos lógicos; el Audio Thread opera a sample-rate continuo (48 kHz) mediante interrupciones de hardware.

Objetos & Lecciones

metro, pipe, delay, clocker. Ver Módulo 1.1.

Priority Inversion & Low-Priority Queue

Concurrencia / Hilos
Definición Operativa

Mecanismo de protección arquitectónica que desvía operaciones pesadas (dibujado en pantalla, guardado en disco, peticiones HTTP) del hilo de alta prioridad a la cola de baja prioridad (Main GUI Thread), evitando que bloqueen el reloj rítmico.

En Vivo y Concierto

Esencial cuando se capturan datos de sensores o video: si se envían miles de mensajes de control sin regular, la interfaz gráfica colapsa el Scheduler a menos que se use qmetro o deferlow.

Confusión Típica

defer retrasa el mensaje al hilo principal solo si estamos en el Scheduler; deferlow siempre encola el mensaje al final absoluto de la cola de eventos sin importar el origen.

Objetos & Lecciones

qmetro, defer, deferlow, speedlim. Ver Módulo 1.1 y 1.2.

Overdrive

Arquitectura
Definición Operativa

Modo del motor de Max que otorga al Scheduler Thread prioridad de temporización de interrupción por hardware por encima del hilo de la interfaz gráfica de usuario (GUI).

En Vivo y Concierto

Debe estar siempre activado en directo. Garantiza que mover ventanas o renderizar pantallas no desincronice secuencias MIDI o metrónomos.

Confusión Típica

No acelera la CPU ni optimiza el cálculo; simplemente altera la jerarquía de despacho de los hilos del sistema operativo.

Objetos & Lecciones

Configuración en Audio Status y objeto overdrive. Ver Módulo 0.1.

Inlet Caliente vs. Frío (Hot / Cold Inlet)

Semántica Dataflow
Definición Operativa

Convención del paradigma de mensajes de Max. Un Hot Inlet (generalmente el izquierdo) procesa el dato recibido y dispara inmediatamente el cálculo y salida del objeto; un Cold Inlet únicamente actualiza el estado interno sin disparar emisión.

En Vivo y Concierto

Ignorar esta semántica provoca orden de ejecución errático, computaciones con parámetros desactualizados y bucles infinitos no deseados.

Confusión Típica

En el mundo MSP (señal ~), los inlets no son "fríos" ni "calientes": todos los inlets reciben vectores de señal continuos simultáneamente cada $N$ muestras.

Objetos & Lecciones

+, pack, trigger (t), float (f). Ver Módulo 1.1.

Orden Derecha a Izquierda (Right-to-Left Rule)

Semántica Dataflow
Definición Operativa

Regla determinista del evaluador de Max: cuando múltiples patch cords emergen de un mismo outlet hacia varios inlets, o cuando varios objetos son disparados, los mensajes se transmiten en estricto orden de posición espacial (de derecha a izquierda, y de abajo hacia arriba).

En Vivo y Concierto

Confiar en la posición visual de los objetos en el patcher es frágil. Ante cualquier movimiento accidental de cables, el algoritmo se altera.

Confusión Típica

La regla de oro del ingeniero profesional es: nunca depender de la posición espacial. Se debe forzar el orden de despacho explícitamente mediante el objeto trigger (t).

Objetos & Lecciones

trigger (t b f i s), bang. Ver Módulo 1.1.


Garbage Collection Spikes & Delta Queue Jitter

Timing / Determinismo
Definición Operativa

Interrupción o fluctuación aperiódica (jitter) en la entrega temporal de eventos producida cuando el recolector de basura (Garbage Collector) de un motor de scripting en tiempo de ejecución (como V8 en Node for Max o SpiderMonkey en js) detiene el hilo para liberar memoria de objetos huérfanos.

En Vivo y Concierto

Genera micro-congelamientos audibles y desfasajes en pasajes de alta densidad rítmica. Entornos como Scheme For Max mitigan este problema acoplando un intérprete Lisp de tamaño acotado directamente a la Delta Queue de Max a nivel de milisegundo de hardware.

Confusión Típica

No es una sobrecarga de CPU por cálculos pesados; es una pausa no determinista e involuntaria del runtime al reciclar punteros de memoria dinámica no reutilizada.

Objetos & Lecciones

js, node.script, s4m. Ver Módulo 6.1 y Módulo 6.2.

Cánones RCMC de Vuza (Teselación Rítmica Regular)

Composición Algorítmica
Definición Operativa

Modelos rítmicos canónicos basados en la factorización formal de grupos cíclicos finitos $\mathbb{Z}_n = R \oplus S$. Permiten teselar el tiempo discreto de manera exhaustiva, de modo que la superposición de voces idénticas a diferentes desfases periódicos cubra cada pulso de la línea temporal sin vacíos ni colisiones.

En Vivo y Concierto

Sustenta estructuras polirrítmicas infinitas perfectamente balanceadas para secuenciadores y cajas de ritmo complejas, asegurando que no existan picos aperiódicos acumulativos ni solapamientos destructivos de energía de transitorios.

Confusión Típica

No es un canon polifónico tradicional con imitaciones armónicas libres; es una propiedad combinatoria estricta descubierta por Dan Vuza aplicable al diseño de particiones rítmicas auto-sostenidas.

Objetos & Lecciones

dict, zl.group, vuzalizer, bach. Ver Módulo 1.3 y Referencias Bibliográficas.

Diseño Conceptual & Concept Clashes (Daniel Jackson)

Arquitectura de Software
Definición Operativa

Paradigma de ingeniería propuesto por Daniel Jackson (MIT) en The Essence of Software que descompone un sistema computacional en conceptos autónomos formados por cuatro elementos: un propósito singular (specificity), un modelo de estado con invariantes, acciones atómicas y un principio operacional. Un Concept Clash ocurre cuando dos conceptos incompatibles o acoplados compiten por el mismo recurso o estado sin sincronización determinista.

En Vivo y Concierto

En parches complejos y dispositivos Max for Live, aplicar diseño conceptual previene colisiones catastróficas entre el hilo de audio de alta prioridad y la asincronía del modelo de objetos (LOM), garantizando que las abstracciones mantengan un contrato de ejecución limpio e inmune a comportamientos erráticos durante la performance.

Confusión Típica

Confundir un concepto con una clase o un objeto de Max. Un objeto de Max es una implementación sintáctica en C; un concepto es el modelo mental de propósito y comportamiento que gobierna la interacción modular del sistema.

Objetos & Lecciones

patcherargs, bpatcher, dict, live.object. Ver Módulo 4.1 y Referencias Bibliográficas.

Handshaking Serial & Histéresis de Schmitt

Physical Computing
Definición Operativa

Protocolo bidireccional de control de flujo (Call-and-Response) para comunicaciones serie por microcontroladores, combinado con acondicionamiento de entrada mediante doble umbral de histéresis (Schmitt Trigger) para descartar fluctuaciones inducidas por ruido electrostático en el conversor ADC.

En Vivo y Concierto

El sondeo por handshaking impide que un sensor mande paquetes a ráfaga libre y desborde el buffer circular del puerto serie; la histéresis elimina los disparos espurios (falsos bangs) causados por el rebote de contacto o vibraciones de escenario.

Confusión Típica

Creer que leer sensores a máxima tasa libre ($1000\text{ Hz}$) mejora la precisión; en realidad colapsa el Scheduler. La tasa debe gobernarse por sondeo coordinado y filtrado histérico de umbral.

Objetos & Lecciones

serial, speedlim, split, thresh. Ver Apéndice C.

2. DSP, Audio Digital y Motor MSP

Audio Thread (Hilo de Procesamiento de Señal)

DSP / C Engine
Definición Operativa

Hilo de máxima prioridad en el sistema operativo que calcula los vectores de audio muestra a muestra de forma ininterrumpida a la tasa $f_s$ del conversor DA.

En Vivo y Concierto

Cualquier operación bloqueante en este hilo (acceso a disco, reserva dinámica de memoria con malloc, locks de mutex) causa un Audio Dropout (clic / chasquido audible instantáneo).

Confusión Típica

No puede pausarse para esperar un mensaje de control. Si no termina a tiempo antes de que el buffer DAC se vacíe, se produce un buffer under-run destructivo.

Objetos & Lecciones

dspstate~, perform64, dac~. Ver Módulo 3.1.

I/O Vector Size vs. Signal Vector Size

Buffers / Hardware
Definición Operativa

El I/O Vector Size (iovs) es el tamaño del buffer que intercambia el driver de audio con la tarjeta física (determina la latencia analógica). El Signal Vector Size (sigvs) es el número de muestras que los objetos de Max computan internamente en cada iteración del bucle perform64.

En Vivo y Concierto

Reducir el iovs (ej. de 512 a 64 muestras) disminuye la latencia de monitoreo a menos de 3 ms, pero eleva la carga de interrupciones de la CPU de forma exponencial.

Confusión Típica

El Signal Vector Size jamás puede ser mayor que el I/O Vector Size (debe ser un submúltiplo exacto: $sigvs \le iovs$).

Objetos & Lecciones

Ventana Audio Status, adstatus, dspstate~. Ver Módulo 3.1.

Detección de Cruce por Cero (Zero-Crossing)

Edición de Audio / Granulación
Definición Operativa

Punto en una forma de onda donde la amplitud de la señal pasa exactamente por el valor cero ($y[t] = 0$) al transitar de signo positivo a negativo o viceversa.

En Vivo y Concierto

Cortar, loopear o reiniciar la lectura de un buffer fuera de un cruce por cero genera una discontinuidad escalonada instantánea, produciendo un "clic" o chasquido de alta frecuencia en los altavoces.

Confusión Típica

No sustituye a las curvas de fundido cruzado (*crossfades*). En audio polifónico o señales estéreo, el cruce por cero de un canal rara vez coincide con el del otro canal.

Objetos & Lecciones

groove~, play~, wave~, zerox~. Ver Módulo 3.8.

Interpolación Band-Limited

Muestreo & Wavetables
Definición Operativa

Método de reconstrucción de muestras fraccionarias basado en la función Sinc o polinomios de Hermite/Spline cúbico que garantiza que no se inyecte energía por encima del límite de Nyquist al alterar la velocidad de reproducción.

En Vivo y Concierto

Al hacer transposición hacia arriba (*pitch shifting*) de muestras o wavetables, la interpolación lineal barata genera aliasing abrasivo; la interpolación cúbica preserva la pureza tímbrica del oscilador.

Confusión Típica

No incrementa la frecuencia de muestreo física, sino la precisión inter-muestra calculada en el acumulador de fase.

Objetos & Lecciones

2d.wave~, lookup~, cycle~, polyblep. Ver Módulo 3.2.

Aliasing (Plegamiento Espectral)

Teoría de Señales
Definición Operativa

Artefacto no lineal que ocurre cuando una señal analógica o sintetizada genera componentes con frecuencias superiores al límite de Nyquist ($f_N = f_s / 2$). Esos armónicos se reflejan hacia abajo como frecuencias espurias inarmónicas: $f_{alias} = |f_s - f|$.

En Vivo y Concierto

En síntesis por modulación de frecuencia (FM) profunda, distorsión no lineal o síntesis de pulsos duros, el aliasing genera un "barro" metálico disonante que destruye la claridad acústica de la mezcla.

Confusión Típica

No se puede eliminar con un filtro pasa-bajos convencional después de que ya ocurrió en el dominio digital: las frecuencias ya se plegaron sobre el espectro audible. Se previene con sobremuestreo (oversampling) o algoritmos anti-aliasing (BLEP / PolyBLEP).

Objetos & Lecciones

poly~ con atributo @down/@up, gen~. Ver Módulo 3.1 y 3.2.

Denormal Numbers (Números Denormalizados)

Punto Flotante / CPU
Definición Operativa

Números en punto flotante IEEE 754 infinitesimalmente cercanos a cero ($< 10^{-38}$ en 32-bit). Cuando un filtro IIR o reverb decae en silencio infinito, la CPU entra en microcódigo para calcularlos, disparando el uso de procesador del 3% al 90%.

En Vivo y Concierto

Puede congelar repentinamente el parche de audio en pasajes de silencio absoluto (dropouts invisibles que ocurren cuando la música para).

Confusión Típica

No se soluciona silenciando la salida. Se resuelve inyectando ruido ultra-bajo de dither analógico o activando los flags de hardware Flush-to-Zero (FTZ) y Denormals-Are-Zero (DAZ).

Objetos & Lecciones

biquad~, teeth~, gen~. Ver Módulo 3.6.


Virtual Analog (VA) & Zero-Delay Feedback (ZDF)

DSP / Modelado Físico
Definición Operativa

Metodología de diseño de filtros y circuitos no lineales que resuelve los lazos de retroalimentación instantáneos del dominio analógico sin introducir el retardo parásito unitario ($z^{-1}$) inherente a la discretización digital clásica, resolviendo analíticamente la ecuación algebraica implícita o mediante iteraciones de Newton-Raphson.

En Vivo y Concierto

Permite modular la resonancia y el corte hasta el punto de auto-oscilación extrema sin que el filtro explote en coeficientes inestables ni altere catastróficamente su frecuencia de corte ante variaciones rápidas de LFO.

Confusión Típica

Creer que un filtro digital tradicional en biquad~ equivale a un filtro ladder analógico; el filtro IIR estándar añade un retardo de una muestra en el lazo que destruye el comportamiento acústico de la resonancia no lineal analógica.

Objetos & Lecciones

gen~, codebox, history. Ver Módulo 5.3.

Transformada Bilineal & Frequency Pre-Warping

Matemática DSP
Definición Operativa

Técnica de mapeo conforme que transforma funciones de transferencia analógicas continuas $H(s)$ en filtros digitales discretos $H(z)$ mediante la sustitución $s = \frac{2}{T}\frac{1 - z^{-1}}{1 + z^{-1}}$. Debido a la compresión no lineal del eje frecuencial $(\omega = \frac{2}{T} \arctan(\frac{\Omega T}{2}))$, el Pre-Warping pre-distorsiona la frecuencia analógica de diseño ($\omega_a = \frac{2}{T}\tan(\frac{\omega_d T}{2})$) para que el corte digital coincida con precisión absoluta.

En Vivo y Concierto

Evita el corrimiento espectral y la compresión plástica del sonido en las frecuencias altas cuando se diseñan ecualizadores de precisión quirúrgica o filtros resonantes cerca del límite de Nyquist.

Confusión Típica

Ignorar el pre-warping provoca que un filtro ajustado teóricamente a $12\text{ kHz}$ termine resonando en $9.8\text{ kHz}$ cuando opera a $44.1\text{ kHz}$, descalibrando afinaciones y armónicos de sintetizadores.

Objetos & Lecciones

filtergraph~, biquad~, gen~. Ver Módulo 3.6 y Referencias Bibliográficas.

Parameter Smoothing & Zipper Noise

DSP / Acondicionamiento
Definición Operativa

El Zipper Noise es un artefacto acústico generado por pasos en escalera (discontinuidades instantáneas de amplitud o frecuencia) cuando un parámetro de control discreto a baja tasa modula una señal de audio. El Parameter Smoothing aplica un filtro pasa-bajos de un polo ($1$-pole, $y[n] = x[n]\cdot \alpha + y[n-1]\cdot(1-\alpha)$) para interpolar exponencialmente cada muestra.

En Vivo y Concierto

Erradica los molestos chasquidos y estallidos percusivos al mover faders de volumen, barridos de corte de filtro o controles de ganancia durante una presentación ante sistemas de PA de alta potencia.

Confusión Típica

Conectar una salida de control discreta directamente al factor multiplicador de *~ sin usar line~ o slide~ para amortiguar la transición muestra a muestra.

Objetos & Lecciones

line~, slide~, rampsmooth~, slide en gen~. Ver Módulo 3.5.

Sincronización de Fase de Kuramoto

Dinámica No Lineal / Síntesis
Definición Operativa

Modelo matemático que describe la transición de orden en una población de osciladores acoplados no lineales con frecuencias naturales dispersas: $\frac{d\theta_i}{dt} = \omega_i + \frac{K}{N}\sum_{j=1}^{N}\sin(\theta_j - \theta_i)$. Al superar un umbral crítico de acoplamiento $K_c$, los osciladores convergen espontáneamente a un ritmo común.

En Vivo y Concierto

Permite construir motores rítmicos y polifónicos generativos con comportamiento biológico y orgánico, donde los pulsos no están sincronizados mecánicamente a un metrónomo rígido sino que "respiran" y se alinean como bandadas de aves o luciérnagas.

Confusión Típica

No es una modulación por modulación de frecuencia cruzada (FM compleja caótica); es una auto-organización de fase colectiva que conserva frecuencias estables con balance emergente.

Objetos & Lecciones

gen~, kuroscillator, cycle~, phasor~. Ver Módulo 5.3 y Referencias Bibliográficas.

3. Gen~ y Computación a Nivel de Muestra

Single-Sample Delay (Retardo de Muestra Única)

Gen~ / DSP Recurrente
Definición Operativa

Operación elemental de retardo $z^{-1}$ que permite almacenar el valor de una muestra en el instante $t-1$ para reutilizarlo en el cálculo de la muestra actual $t_0$, resolviendo bucles algebraicos de retroalimentación.

En Vivo y Concierto

En el mundo MSP tradicional, un bucle de feedback tiene una latencia mínima forzada de un vector entero ($sigvs$, típicamente 64 muestras). En gen~, el operador history reduce esta latencia a exactamente 1 muestra ($20.8\,\mu\text{s}$ a 48 kHz), permitiendo modelado físico y filtros auto-oscilantes reales.

Confusión Típica

No es una línea de retardo de audio perceptiva (como delay~ o tapin~/tapout~), sino una variable de estado de retroalimentación en memoria de registros.

Objetos & Lecciones

history (dentro de gen~). Ver Módulo 5.1.

Wavefolding (Plegamiento de Onda: Wrap & Fold)

Gen~ / No Linealidad
Definición Operativa

Transformación no lineal de modelado acústico (típica de la síntesis West Coast de Buchla) donde la señal, al superar un umbral de saturación, en lugar de recortarse bruscamente (clipping), invierte su dirección reflejándose hacia el centro.

En Vivo y Concierto

Genera armónicos ricos y orgánicos a partir de ondas simples (senoides o triángulos) sin la crudeza estática de un clipper digital.

Confusión Típica

clip trunca tajantemente los picos produciendo ondas cuadradas; fold refleja la señal de ida y vuelta; wrap restablece el valor al inicio de la fase (aserrín).

Objetos & Lecciones

fold, wrap, clip en Gen~. Ver Módulo 5.3.

GenExpr

Sintaxis / Compilador
Definición Operativa

Lenguaje textual formal de programación estructurada que opera dentro del objeto codebox en Gen~. Se compila en tiempo real (JIT) a código máquina y admite bucles for, condicionales if/else, y funciones matemáticas sin costo de parcheo gráfico.

En Vivo y Concierto

Permite condensar algoritmos de filtros no lineales o iteraciones complejas que requerirían cientos de cables en un bloque conciso y optimizado para instrucciones vectoriales de CPU.

Confusión Típica

No es JavaScript ni C++. Aunque comparte similitudes sintácticas con C, no admite punteros libres, llamadas a funciones del sistema operativo ni reservas dinámicas de memoria.

Objetos & Lecciones

codebox (dentro de gen~). Ver Módulo 5.2.

Aritmética de Punto Fijo (Fixpoint Phasor)

Gen~ / Optimización Numérica
Definición Operativa

Representación numérica que utiliza enteros binarios de 32 o 64 bits para simular fracciones decimales mediante un factor de escala fijo, aprovechando el desbordamiento natural (*integer overflow*) para crear acumuladores de fase circulares sin condicionales.

En Vivo y Concierto

Elimina las ramas de condición if (phase >= 1.0) phase -= 1.0; en el procesador, permitiendo que osciladores y LFOs en gen~ alcancen una velocidad de cálculo inigualable con jitter de fase nulo.

Confusión Típica

No sacrifica la afinación: un acumulador entero de 32 bits a 48 kHz ofrece una resolución de frecuencia de $48000 / 2^{32} \approx 0.000011\,\text{Hz}$.

Objetos & Lecciones

phasor, accum, rate en Gen~. Ver Módulo 5.1.


4. Arquitectura de Bajo Nivel y C SDK

Función perform64

Max C SDK
Definición Operativa

Firma de función en lenguaje C canónica del Max SDK moderno (64 bits) encargada de procesar un vector de muestras de audio: void my_object_perform64(t_my_object *x, t_object *dsp64, double **ins, long numins, double **outs, long numouts, long sampleframes, long flags, void *userparam).

En Vivo y Concierto

Es el corazón del Audio Thread. Toda la lógica de procesamiento DSP debe completarse antes de salir de esta función. Está terminantemente prohibido imprimir en consola (post()) o bloquear el hilo dentro de su cuerpo.

Confusión Típica

Reemplaza a la función heredada de 32 bits perform. Opera estrictamente con punteros de precisión doble (double*, 64-bit float).

Objetos & Lecciones

Cabecera z_dsp.h, Max SDK, Min-DevKit. Ver Módulo 6.3.

Estructura t_pxobject

C API / MSP Engine
Definición Operativa

Estructura base de C que debe incluirse como primer miembro en cualquier objeto externo que procese señales de audio MSP (Pox Object). Extiende a t_object agregando descriptores para el Audio Thread y registro de métodos DSP.

En Vivo y Concierto

Permite que Max gestione automáticamente la desconexión segura del objeto de la cadena de procesamiento de audio cuando el motor DSP se apaga o reinicia.

Confusión Típica

Si un objeto solo maneja mensajes de control y números, basta con usar t_object; si procesa señales de audio (~), es obligatorio heredar de t_pxobject.

Objetos & Lecciones

z_dsp.h, dsp_setup(), dsp_free(). Ver Módulo 6.3.

Estructura t_atom

Memoria / C API
Definición Operativa

Unión etiquetada fundamental en C utilizada por el núcleo de Max para almacenar cualquier dato elemental homogéneo: enteros (A_LONG), decimales (A_FLOAT), cadenas o selectores (A_SYM) y referencias a objetos (A_OBJ).

En Vivo y Concierto

El paso de listas en Max (mensajes entre objetos) consiste en enviar un arreglo contiguo de punteros t_atom* junto con un contador long argc.

Confusión Típica

Un atom no almacena buffers de señal de audio (las señales MSP viajan como arreglos puros de double* sin envoltorios de atom para máxima velocidad SIMD).

Objetos & Lecciones

atom_getfloat(), atom_getlong(), ext_obex.h. Ver Módulo 6.3.

Vectorización SIMD (Single Instruction, Multiple Data)

Hardware / Optimización
Definición Operativa

Capacidad de los procesadores modernos (instrucciones AVX2, AVX-512, ARM Neon) para ejecutar una misma operación matemática sobre 4 u 8 muestras de audio en punto flotante simultáneamente en un único ciclo de reloj.

En Vivo y Concierto

La vectorización permite que un parche procese 64 canales de audio con filtros y reverberación convolutiva consumiendo una fracción mínima de CPU.

Confusión Típica

El compilador solo puede auto-vectorizar bucles de audio si los punteros no tienen solapamiento de memoria (*aliasing de punteros*) y se declaran con el modificador restrict.

Objetos & Lecciones

Min-DevKit, perform64, CMake flags. Ver Módulo 6.3 y Apéndice D.


Min-DevKit & RAII en C++17

Arquitectura C++ / SDK
Definición Operativa

Framework moderno de abstracción basado en C++17 para la creación de objetos externos de Max. Reemplaza la manipulación manual de punteros y estructuras opacas de la API clásica de C (t_object, sysmem_newptr) por semántica de objetos tipados, gestión de recursos por vida útil (Resource Acquisition Is Initialization - RAII), lambdas y metaprogramación declarativa.

En Vivo y Concierto

Garantiza ausencia total de fugas de memoria (memory leaks) y desreferencias de punteros nulos durante la ejecución continuada en vivo de parches con alta rotación de instancias dinámicas o inicializaciones dinámicas.

Confusión Típica

Creer que Min-DevKit introduce sobrecarga o latencia frente al C SDK puro; al basarse en templates y funciones en línea (inlining), el compilador C++ optimiza el código hasta generar instrucciones de máquina equivalentes o superiores en rendimiento.

Objetos & Lecciones

Clases min::object, min::inlet, min::outlet, min::attribute. Ver Apéndice D.

5. Computación Visual y Matrices (Jitter)

Matriz Jitter (jit.matrix)

Jitter / GPU
Definición Operativa

Estructura de datos multidimensional de memoria contigua caracterizada por 4 parámetros fijos: nombre, plano (canales de datos como ARGB), tipo de dato (char, long, float32, float64) y dimensiones espaciales ($X \times Y \times Z$).

En Vivo y Concierto

Copiar matrices de video pesadas de CPU a GPU cuadro a cuadro satura el bus PCI Express. Para alta tasa de cuadros (60 fps), se procesa directamente en la textura de video de la GPU mediante texturas OpenGL (jit.gl.texture).

Confusión Típica

No transporta video como un flujo codificado h.264 comprimido, sino como arreglos de píxeles o tensores numéricos crudos accesibles celda a celda.

Objetos & Lecciones

jit.matrix, jit.gl.texture, jit.world. Ver Apéndice A.

Disposición Planar vs. Interleaved

Memoria de Video
Definición Operativa

Forma en que se ordenan los canales cromáticos en memoria: Interleaved almacena cada píxel completo en secuencia contigua ($R_0, G_0, B_0, R_1, G_1, B_1$); Planar almacena toda la capa roja completa, seguida por toda la verde y luego la azul ($R_0...R_N, G_0...G_N, B_0...B_N$).

En Vivo y Concierto

Jitter utiliza arquitectura planar por planos indexados (Plano 0: Alfa, Plano 1: Rojo, Plano 2: Verde, Plano 3: Azul). Esto permite aislar y procesar un canal cromático sin tocar los demás.

Confusión Típica

El plano 0 en Jitter suele ser el canal Alfa o de transparencia, no el Rojo. Olvidar esto descoloca las operaciones cromáticas.

Objetos & Lecciones

jit.pack, jit.unpack, jit.matrix. Ver Apéndice A.

Texture Sharing GPU (Spout / Syphon)

Interoperabilidad / Video
Definición Operativa

Protocolo de memoria de video compartida a nivel de hardware (Spout en Windows / Syphon en macOS) que permite intercambiar texturas de alta resolución (4K/60fps) entre diferentes aplicaciones en tiempo real con latencia cero.

En Vivo y Concierto

Permite delegar la síntesis y reactividad sonora a Max/MSP mientras TouchDesigner, Resolume o Notch renderizan la escenografía visual masiva sin penalizar la CPU.

Confusión Típica

No viaja por red local ni utiliza ancho de banda Ethernet (como NDI); requiere que ambos programas corran en la misma máquina física con la misma GPU.

Objetos & Lecciones

jit.gl.spoutsender, jit.gl.spoutreceiver, jit.gl.syphonserver. Ver Apéndice B.


6. Audio Espacial e Inteligencia Artificial

Formato B Ambisonics (B-Format FuMa / Ambix)

Espacialización 3D
Definición Operativa

Representación matemática jerárquica de un campo sonoro espacial en primer orden descompuesto en 4 señales canónicas: componente omnidireccional $W$ (presión escalar) y componentes en figura de ocho $X, Y, Z$ (gradientes de velocidad en los ejes adelante/atrás, izquierda/derecha y arriba/abajo).

En Vivo y Concierto

Independiza la composición espacial de la disposición física de altavoces. Una obra mezclada en Ambisonics se decodifica en directo a 4, 8, 16 o 32 canales sin necesidad de volver a mezclar.

Confusión Típica

No confundir el orden clásico de ponderación Furse-Malham (FuMa, con factor de escala $1/\sqrt{2}$ en $W$) con el estándar contemporáneo ACN-SN3D (Ambix). Mezclar convenciones invierte las fases acústicas espaciales.

Objetos & Lecciones

spat5.pan~, spat5.hoa.*, mc.*. Ver Apéndice F.

Decodificación en Fase (In-Phase vs. Max-rE)

Acústica / Ambisonics
Definición Operativa

Criterios psicoacústicos de decodificación de armónicos esféricos. Max-rE maximiza el vector de energía para la zona central (*sweet spot*); In-Phase anula completamente la emisión en contrafase de altavoces opuestos, eliminando el filtrado en peine en salas grandes.

En Vivo y Concierto

En auditorios y conciertos masivos, la decodificación estándar genera interferencias destructivas si la audiencia está dispersa; conmutar a In-Phase asegura una imagen espacial homogénea en toda la platea.

Confusión Típica

In-Phase ensancha ligeramente la fuente percibida respecto a Max-rE, pero evita que los oyentes alejados del centro escuchen cancelaciones de fase molestas.

Objetos & Lecciones

spat5.hoa.decoder~, spat5.virtualspeakers~. Ver Apéndice F.

Latencia Causal vs. Lookahead Buffer

Machine Learning / Streaming
Definición Operativa

Un sistema de audio causal solo depende de muestras pasadas y presentes ($y[t] = f(x[t], x[t-1], ...)$) permitiendo latencia cero de predicción. Un modelo no causal requiere un buffer de *lookahead* acumulando audio futuro ($t+N$), introduciendo retraso inevitable.

En Vivo y Concierto

Para interacción instrumental reactiva en Max, solo son viables arquitecturas convolucionales causales o modelos recurrentes (RAVE, Silero VAD) donde la latencia sea estrictamente menor a 5-10 ms.

Confusión Típica

Un modelo con un RTFx excelente (ej. 50×) puede ser completamente inútil en un concierto si su arquitectura fue entrenada con convoluciones bidireccionales que exigen chunks fijos de 1 segundo.

Objetos & Lecciones

nn~, fluid.bufcompose~. Ver Apéndice E.

RTFx (Real-Time Factor / Factor de Tiempo Real)

Machine Learning / IA
Definición Operativa

Métrica de eficiencia computacional que relaciona la duración del fragmento de audio producido con el tiempo que el algoritmo o modelo neuronal tarda en computarlo: $\text{RTFx} = \frac{\text{Duración Audio}}{\text{Tiempo de Cómputo}}$.

En Vivo y Concierto

Si $\text{RTFx} \le 1.0$, el modelo no puede operar en tiempo real y causa fallos de búfer inmediatos. Para un concierto seguro en vivo en Max, se exige un margen de $\text{RTFx} > 2.5\times$.

Confusión Típica

Un RTFx alto no implica latencia cero: un modelo puede tener $\text{RTFx} = 10.0$ pero requerir una ventana de lookahead de 2 segundos para inferir (haciéndolo no causal e inviable para interacción instrumental en directo).

Objetos & Lecciones

nn~, fluid.bufnmf~, RAVE. Ver Apéndice E.


Higher Order Ambisonics (HOA) & ICST Ambisonics

Audio Espacial
Definición Operativa

Representación matemática del campo acústico tridimensional basada en el desarrollo en serie de Fourier en coordenadas esféricas mediante armónicos esféricos $Y_n^m(\theta, \phi)$ de orden $N \ge 2$. Requiere $(N + 1)^2$ canales de transmisión independientes e independiza la codificación posicional del arreglo físico de altavoces de reproducción.

En Vivo y Concierto

Permite expandir el sweet spot auditivo a audiencias completas en auditorios o cúpulas de proyección esférica, rotando el campo sonoro global en tiempo real mediante matrices ortogonales de Euler (Yaw, Pitch, Roll) sin distorsionar la geometría acústica.

Confusión Típica

Confundir Ambisonics de primer orden (4 canales FuMa/AmbiX: W, X, Y, Z) con HOA; el primer orden produce una localización difusa en recintos grandes, mientras que órdenes 3º ($16$ canales) o 5º ($36$ canales) entregan precisión de imagen casi holográfica.

Objetos & Lecciones

hoa.2d.encoder~, hoa.3d.scope~, icst.ambipack, icst.ambimonitor. Ver Apéndice F.

Virtual Microphone Control (ViMiC) & Método de Fuentes Imagen

Acústica / Espacialización
Definición Operativa

Paradigma de síntesis de campo sonoro en salas cerradas que modela fuentes puntuales virtuales recibidas por una constelación de micrófonos virtuales con patrones de captación polares específicos (cardioide, omni, figura 8), calculando reflexiones tempranas exactas mediante el método de fuentes imagen en geometrías de paralelepípedo.

En Vivo y Concierto

Otorga profundidad tridimensional perceptual instantánea (eje Z de distancia) a fuentes de síntesis o instrumentos acústicos microfoneados en seco, sin el enmascaramiento farragoso y pérdida de inteligibilidad característicos de las reverberaciones convolutivas estándar.

Confusión Típica

No es un paneador envolvente por intensidad ni un retardo Haas estático; computa atenuación por distancia cuadrática inversa, absorción atmosférica en alta frecuencia y directividad angular por cada cápsula microfónica virtual.

Objetos & Lecciones

spat5.vimic~, spat5.early~, icst.spat. Ver Apéndice F.

PCA (Principal Component Analysis) en Mapeo Gestual

Inteligencia Artificial / Gestos
Definición Operativa

Procedimiento matemático de álgebra lineal que calcula la descomposición en valores singulares (SVD) de una matriz de covarianza para transformar un conjunto de variables de sensores correlacionadas en un nuevo sistema de coordenadas ortogonales (ejes principales o autovectores) no correlacionados, ordenados por varianza explicada.

En Vivo y Concierto

Permite tomar capturas de movimiento complejas (guantes con 10 flexómetros y acelerómetros 9-DOF) y proyectar los gestos expresivos en sólo 2 o 3 faders ortogonales de control de síntesis, eliminando redundancias y haciendo que el instrumento responda con fluidez corporal intuitiva.

Confusión Típica

No es un clasificador de gestos categórico (como un modelo k-NN o SVM); no etiqueta gestos, sino que comprime el espacio dimensional continuo preservando la máxima información dinámica.

Objetos & Lecciones

mnm.pca, fluid.pca~, mubu.pca. Ver Apéndice E y Módulo 2.2.

7. Ableton Live, Max for Live (M4L) y Live Object Model (LOM)

Live Object Model (LOM)

Arquitectura M4L / Host API
Definición Operativa

Árbol jerárquico orientado a objetos que expone la totalidad del estado y las acciones del DAW (pistas, clips, escenas, dispositivos, faders y transporte) como nodos navegables mediante rutas canónicas, observables mediante listeners y mutables por llamadas a funciones en C++ y Python.

En Vivo y Concierto

Permite construir secuenciadores algorítmicos generativos capaces de disparar clips en tiempo real, conmutar cadenas de mezcla y leer el BPM maestro para sincronizar eventos sin tocar el teclado ni el ratón.

Confusión Típica

No es un bus MIDI tradicional ni depende de mapeos CC fijos. Opera como una API directa de introspección sobre la memoria viva del proyecto de Ableton Live.

Objetos & Lecciones

live.path, live.observer, live.object, LiveAPI en JavaScript. Ver Apéndice H.

Device Freezing (Congelamiento de Dispositivo .amxd)

Distribución / Empaquetado
Definición Operativa

Proceso de serialización atómica que compila e incrusta dentro del contenedor binario .amxd todas las dependencias externas requeridas por el parche: subparches, abstracciones de usuario, archivos JavaScript (.js), tablas JSON y muestras de audio en RAM.

En Vivo y Concierto

Es la garantía indispensable para llevar un proyecto de estudio a una computadora de gira: evita el colapso por archivos faltantes, rutas relativas rotas o librerías que solo existían en la máquina de desarrollo original.

Confusión Típica

No congela el audio a disco como la función "Freeze Track" de los DAWs; lo que congela y sella es el código fuente y las dependencias del propio instrumento o efecto.

Objetos & Lecciones

Menú contextual Freeze Device en Max for Live. Ver Apéndice H.

Modulación en Audio Thread (live.remote~)

DSP / Control Híbrido
Definición Operativa

Mecanismo que inyecta una señal de audio flotante continua de 64 bits directamente en un parámetro expuesto de Ableton Live a la frecuencia de muestreo del DAC ($f_s$), puenteando la cola de mensajes de control del hilo de usuario.

En Vivo y Concierto

Permite modulación extrema por audiofrecuencia (LFOs a 50 Hz, envolventes percusivas hiper-rápidas) sin saturar la GUI ni degradar la pila de deshacer (Undo History) de Ableton Live.

Confusión Típica

Confundir modular un parámetro con live.remote~ frente a automatizarlo con set value vía live.object. El primero vive en el Audio Thread a costo cero de GUI; el segundo es un mensaje discreto que registra un punto en la línea de automatización.

Objetos & Lecciones

live.remote~, live.dial, phasor~. Ver Apéndice H.