22
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 a CLAM

Embed Size (px)

DESCRIPTION

Presentación del framework multiplataforma para hacer investigación y desarrollo sobre audio y música. CLAM, además de su librería C++, ofrece un metamodelo conceptual de trabajo y variadas herramientas para el análisis, procesamiento y síntesis de señales de audio. Entre sus aplicaciones más importantes, se encuentran el NetworkEditor (herramienta gráfica de patching) y el Annotator (visualización y extracción de audio). Una de sus características más relevantes consiste en la posibilidad de construir aplicaciones visualmente y desarrollar prototipos sin la necesidad de escribir código fuente. Permite trabajar con plugins propios y de otros estándares, como LADSPA y VST. Es Software Libre y cuenta con una extensa y diversa comunidad de usuarios y desarrolladores alrededor del mundo.

Citation preview

Page 1: Introducción a CLAM

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

Page 2: Introducción a CLAM

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

Page 3: Introducción a CLAM

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

Page 4: Introducción a CLAM

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

Page 5: Introducción a CLAM

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

Page 6: Introducción a CLAM

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

Page 7: Introducción a CLAM

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

Page 8: Introducción a CLAM

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

Page 9: Introducción a CLAM

NetworkEditor

Ejemplo: Processing SMS Análisis

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 10: Introducción a CLAM

NetworkEditor

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 11: Introducción a CLAM

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

Page 12: Introducción a CLAM

Prototyper

Ejemplo

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 13: Introducción a CLAM

Prototyper

Prototipando una distorsión

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 14: Introducción a CLAM

Annotator

Annotator

Herramienta para investigación en Music Information Retrieval (MIR)

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 15: Introducción a CLAM

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

Page 16: Introducción a CLAM

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

Page 17: Introducción a CLAM

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

Page 18: Introducción a CLAM

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

Page 19: Introducción a CLAM

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

Page 20: Introducción a CLAM

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

Page 21: Introducción a CLAM

Fin

¿Preguntas?

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

Page 22: Introducción a CLAM

Fin

Gracias por venir!

V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes