Introducción a CLAM

709 views

Published on

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
709
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción a CLAM

  1. 1. Introducción a CLAM, el framework para audio y música Hernán Ordiales <h@ordia.com.ar> http://h.ordia.com.ar Consultor IT Independiente Octubre, 2010 V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  2. 2. Introducción CLAM: ¿Qué es? Un framework multiplataforma para hacer investigación y desarrollo sobre audio y música. Libreria C++, orientada a objetos. Propone un metamodelo conceptual de trabajo y variadas herramientas para el análisis, procesamiento y síntesis de señales de audio. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  3. 3. CLAM Características principales Enfoque en el procesamiento en tiempo real. Prototipado rápido de aplicaciones. Diferentes backends de audio: JACK, PortAudio, LADSPA, VST, etc. Multiplataforma (Linux, Mac, Windows). Amplio uso de XML para intercambio estándar de datos. 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
  4. 4. CLAM Otras características Modelos de análisis/sintesis: STFT (Fourier). Sinusoides + Residuos (SMS: Spectral Modeling Synthesis). 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. Uso de un lenguaje interpretado como Python para bindings, scripts de automatización e interacción con el NetworkEditor (en desarrollo). Software Libre (licenciado bajo GPL). V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  5. 5. CLAM Aplicaciones más importantes NetworkEditor (herramienta gráfica de patching) Prototyper (prototipos de aplicaciones visuales) Annotator (visualización y extracción de audio) Chordata (extracción de acordes de canciones). Otras (discontinuadas y 3rd party): SMSTools, Voice2MIDI, Salto, SDIFDisplay, Spectral Delay, etc. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  6. 6. NetworkEditor NetworkEditor: ¿Para que sirve? Editor de redes CLAM. Prototipar. Redes para procesamiento en tiempo real o fuera de línea. Exportar redes a XML o plugins. Monitorear los datos en tiempo/frecuencia por medio de los processings de monitoreo. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  7. 7. NetworkEditor “Crear cadenas de procesamiento complejas, seleccionando objetos de procesamiento de la lista de la izquierda y conectandolos entre si en el canvas.” Algunos processings disponibles: Análisis/Síntesis. Generadores (osciladores, ruido, etc). Entrada/Salida. Visualización/monitoreo (osciloscopios, picos, tonos, etc). Operaciones aritméticas. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  8. 8. NetworkEditor CLAM Processings Se componen de: Función interna de procesamiento. Configuración. 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
  9. 9. NetworkEditor Ejemplo: Processing SMS Análisis V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  10. 10. NetworkEditor V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  11. 11. Prototyper Prototyper Red CLAM en XML (NetworkEditor) Interfaz gráfica en XML (QtDesingner) Prototipo = Network.xml + UI.xml + AudioBackend V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  12. 12. Prototyper Ejemplo V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  13. 13. Prototyper Prototipando una distorsión V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  14. 14. Annotator Annotator Herramienta para investigación en Music Information Retrieval (MIR) V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  15. 15. Annotator Supervisar y corregir algoritmos de extracción automáticos. Segmentación de notas, acordes, estructura, características de bajo nivel. Facilitar anotaciones manuales. Descripciones almacenadas en XML. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  16. 16. Processings / Plugins Processings propios Utilidad: poder insertarlos en cadenas de procesamiento. Programación: Usando objetos o accediendo a los vectores (bajo nivel). Opción de carga dinámica (plugins). Ejemplos de código y explicación paso a paso en la documentación. Posibilidad de utilizar generadores de código base: scripts, GUI o AP-Gen. Estructura general de un processing: V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  17. 17. Processings / Plugins Definición de un processing con PCodeGenerator/AP-Gen: Ejemplo de mixer. 2 entradas y una salida mono. 1 control. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  18. 18. Conclusiones ¿Cuando o para que conviene usar CLAM? Como entorno integrado de desarrollo de aplicaciones o plugins de audio. Sobre todo gráficas y de tiempo real. Investigación: MIR, nuevos algoritmos. Provee herramientas útiles. Librería fuertemente orientada a objetos. Prototipado. Alternativa a prototipar con Matlab o similar. Programación visual / patches. Aplicaciones multiplataforma. ¿Cuando no conviene? Uso básico de la libreria. Casos en que no valga la pena agregar CLAM como dependencia. Software privativo. Aunque aún serviría para el prototipado. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  19. 19. Conclusiones Comparación con otros frameworks y aplicaciones Más orientado a la investigación que a la creación de música (aunque sirve igual!). 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 otros proyectos 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’). 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
  20. 20. Conclusiones ¿Por donde empezar? ¿Dónde conseguirlo? http://clam-project.org Leer: “Approaching CLAM, where to start”. FAQ y wiki en general (/wiki). Suscribirse a la lista de correo de usuarios y/o desarrolladores. V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  21. 21. Fin ¿Preguntas? V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes
  22. 22. Fin Gracias por venir! V Jornadas Teatro Acústico 2010 - Universidad Nacional de Quilmes

×