Saltearse al contenido

Apéndice E: Inteligencia Artificial y Machine Learning en Max (`FluCoMa` y `nn~`)

La integración del Machine Learning (ML) y el Deep Learning (DL) en Max/MSP transformó radicalmente la música interactiva, la síntesis sonora y el diseño de instrumentos digitales. Ya no estamos limitados a reglas heurísticas lineales escritas a mano (if/else o mapeos rígidos con scale); ahora podemos entrenar redes neuronales que aprenden relaciones complejas entre gestos humanos y síntesis sonora, segmentar corpus de audio gigantescos y ejecutar modelos generativos en tiempo real.

En este apéndice analizamos los dos frameworks más revolucionarios del campo: FluCoMa y nn~ (IRCAM).


1. FluCoMa (Fluid Corpus Manipulation): Machine Learning Creativo

Desarrollado por la Universidad de Huddersfield, FluCoMa provee un conjunto masivo de objetos en C++ para análisis de señal, descomposición espectral y algoritmos de Machine Learning estadístico y neuronal:

graph TD
    AudioCorpus["Corpus de Audio / Muestras"] --> FeatureExtract["Extracción de Descriptores (Loudness, Pitch, MFCC, SpectralShape)"]
    FeatureExtract --> DataScaling["Normalización de Datos: fluid.robustscale~"]
    DataScaling --> DimReduction["Reducción Dimensional: PCA / UMAP / t-SNE"]
    DimReduction --> Clustering["Clustering (K-Means / KD-Tree)"]
    Clustering --> RealTimeQuery["Búsqueda por K-Nearest Neighbors (KNN)"]
    RealTimeQuery --> GranularSynth["Síntesis Concatenativa / Resíntesis en Tiempo Real"]

1.1. Los Tres Pilares de FluCoMa

  1. Descomposición Espectral:
    • fluid.transientslice~: Separación de transitorios percusivos del cuerpo armónico continuo mediante análisis de energía residual.
    • fluid.sines~: Extracción sinusoidal aditiva.
    • fluid.nmf~: Factorización de Matrices No Negativas para desmezclar instrumentos superpuestos en un mismo archivo de audio.
  2. Espacios Tímbricos y Descriptores:
    • fluid.mfcc~: Coeficientes Cepstrales en las Frecuencias de Mel (la “huella dactilar” del timbre acústico).
    • fluid.spectralshape~: Centroide espectral, dispersión, asimetría y brillo.
  3. Modelos Estadísticos y Redes Neuronales:
    • fluid.kdtree~: Indexación espacial multidimensional para búsquedas ultra-rápidas en sub-milisegundos.
    • fluid.mlpclassifier~ y fluid.mlpregressor~: Redes Neuronales Multicapa (Perceptrón Multicapa - MLP) entrenables directamente en Max sin depender de Python.

2. Deep Learning en el Audio Thread: nn~ de IRCAM y Modelos RAVE

Mientras que FluCoMa opera con descriptores y redes densas, nn~ (creado por Antoine Caillon y Philippe Esling en el IRCAM) resuelve el problema del Deep Learning acústico con PyTorch.

+-------------------------------------------------------------+
| nn~ / RAVE Architecture |
| |
| [Audio Input (Mic/Guitarra)] (48 kHz) |
| | |
| v (Latencia < 5 ms, LibTorch C++) |
| [nn~ rave_model.ts] |
| | |
| +---> Encoder: Mapeo a Espacio Latente (z-vector) |
| | | |
| | v (Manipulación algorítmica en Max) |
| +---> Decoder: Resíntesis Neuronal Generativa |
| | |
| v |
| [Audio Output (Timbre Híbrido Re-sintetizado)] |
+-------------------------------------------------------------+

2.1. ¿Cómo funciona RAVE (Realtime Audio Variational autoEncoder)?

  • RAVE comprime una señal de audio compleja a un vector latente de baja dimensión (por ejemplo, 16 números continuos) y reconstruye la señal en tiempo real.
  • Permite transferencia de estilo tímbrico en vivo: podés cantar frente a un micrófono y hacer que nn~ sintetice el timbre exacto de un violonchelo, un motor a reacción o un sintetizador analógico legendario, preservando la dinámica y afinación del intérprete humano.

3. Laboratorio Práctico: Mapeo Gestual Neuronal (MLP Regressor)

En el parche lab_apendice_e_machine_learning.maxpat:

  • Simulamos un regresor de red neuronal que aprende a interpolar 4 parámetros de un sintetizador FM complejo a partir de una posición bidimensional (X,Y)(X, Y) en un pad táctil.
  • Se ilustra el ciclo canónico: Grabación de Ejemplos de Entrenamiento \rightarrow Ajuste de Pesos (Train) \rightarrow Inferencia en Tiempo Real.