Introducción a CLAM, el framework para audio y música
Hernán Ordiales<[email protected]>
http://h.ordia.com.ar
Consultor IT Independiente
Octubre, 2010
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Introducción
CLAM: ¿Qué es?
I Un framework multiplataforma para hacer investigación y desarrollosobre audio y música.
I Libreria C++, orientada a objetos.
I Propone un metamodelo conceptual de trabajo y variadasherramientas para el análisis, procesamiento y síntesis de señales deaudio.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
CLAM
Características principales
I Enfoque en el procesamiento en tiempo real.
I Prototipado rápido de aplicaciones.
I Diferentes backends de audio: JACK, PortAudio, LADSPA, VST, etc.
I Multiplataforma (Linux, Mac, Windows).
I Amplio uso de XML para intercambio estándar de datos.
I Permite trabajar con plugins propios y de otros estándares (Ej:LADSPA, VST). Interacción con FAUST.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
CLAM
Otras características
I Modelos de análisis/sintesis:STFT (Fourier).Sinusoides + Residuos (SMS: Spectral Modeling Synthesis).
I A nivel código:Escrito en C++ orientado a objetos.Uso y desarrollo de patrones de diseño.Testing automatizado.Amplia documentación y ejemplos.
I Uso de un lenguaje interpretado como Python para bindings, scriptsde automatización e interacción con el NetworkEditor (en desarrollo).
I Software Libre (licenciado bajo GPL).
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
CLAM
Aplicaciones más importantes
I NetworkEditor (herramienta gráfica de patching)
I Prototyper (prototipos de aplicaciones visuales)
I Annotator (visualización y extracción de audio)
I Chordata (extracción de acordes de canciones).
I Otras (discontinuadas y 3rd party): SMSTools, Voice2MIDI, Salto,SDIFDisplay, Spectral Delay, etc.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
NetworkEditor
NetworkEditor: ¿Para que sirve?
I Editor de redes CLAM. Prototipar.
I Redes para procesamiento en tiempo real o fuera de línea.
I Exportar redes a XML o plugins.
I Monitorear los datos en tiempo/frecuencia por medio de losprocessings de monitoreo.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
NetworkEditor
“Crear cadenas de procesamiento complejas, seleccionando objetos deprocesamiento de la lista de la izquierda y conectandolos entre si en elcanvas.”
Algunos processings disponibles:I Análisis/Síntesis.I Generadores (osciladores,
ruido, etc).I Entrada/Salida.I Visualización/monitoreo
(osciloscopios, picos, tonos,etc).
I Operaciones aritméticas.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
NetworkEditor
CLAM ProcessingsSe componen de:
I Función interna de procesamiento.I Configuración.I Entrada/Salida tipada.
Puertos (horizontal): flujo de datos sincrónico. Ej: audio, espectro, etc.Controles (vertical): datos asincrónicos. Ej: on/off (bool), valor real(float), MIDI, etc.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
NetworkEditor
Ejemplo: Processing SMS Análisis
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
NetworkEditor
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Prototyper
Prototyper
I Red CLAM en XML (NetworkEditor)I Interfaz gráfica en XML (QtDesingner)I Prototipo = Network.xml + UI.xml + AudioBackend
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Prototyper
Ejemplo
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Prototyper
Prototipando una distorsión
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Annotator
Annotator
Herramienta para investigación en Music Information Retrieval (MIR)
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Annotator
I Supervisar y corregir algoritmos de extracción automáticos.Segmentación de notas, acordes, estructura, características de bajonivel.
I Facilitar anotaciones manuales.I Descripciones almacenadas en XML.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Processings / Plugins
Processings propios
I Utilidad: poder insertarlos encadenas de procesamiento.
I Programación: Usando objetoso accediendo a los vectores(bajo nivel).
I Opción de carga dinámica(plugins).
I Ejemplos de código yexplicación paso a paso en ladocumentación.
I Posibilidad de utilizargeneradores de código base:scripts, GUI o AP-Gen.
Estructura general de un processing:
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Processings / Plugins
Definición de un processing con PCodeGenerator/AP-Gen:
I Ejemplo de mixer.I 2 entradas y una salida
mono.I 1 control.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Conclusiones
¿Cuando o para que conviene usar CLAM?
I Como entorno integrado de desarrollo de aplicaciones o plugins deaudio.
Sobre todo gráficas y de tiempo real.I Investigación: MIR, nuevos algoritmos. Provee herramientas útiles.I Librería fuertemente orientada a objetos.I Prototipado.
Alternativa a prototipar con Matlab o similar.I Programación visual / patches.I Aplicaciones multiplataforma.
¿Cuando no conviene?Uso básico de la libreria. Casos en que no valga la pena agregar CLAMcomo dependencia.Software privativo. Aunque aún serviría para el prototipado.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Conclusiones
Comparación con otros frameworks y aplicaciones
I Más orientado a la investigación que a la creación de música(aunque sirve igual!).
I Su diseño e implementación esta fuertemente orientado a objetos.De todas formas permite el manejo tradicional del audio a bajo nivel.En general tiene un código más limpio y documentado que otrosproyectos de audio SoftwareLibre/OpenSource.Aunque se pueden hacer algunas cosas en python y de manera gráfica,los processings nuevos hay que programarlos en C++ (a lo sumo en’C’).
I Es de uso general. Existen alternativas en cuanto a frameworks,librerias y lenguajes para usos específicos.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Conclusiones
¿Por donde empezar?
¿Dónde conseguirlo? http://clam-project.org
I Leer: “Approaching CLAM, where to start”.
I FAQ y wiki en general (/wiki).
I Suscribirse a la lista de correo de usuarios y/o desarrolladores.
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Fin
¿Preguntas?
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Fin
Gracias por venir!
V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
Top Related