CLAM FAQ
- ¿Es CLAM lo que estoy buscando?
- ¿Cuáles deberían ser mis conocimientos para usar CLAM?
- ¿Qué puede hacer CLAM?
- ¿Por qué depende CLAM de tantas librerías externas?
- ¿CLAM es una librería o un entorno?
- ¿Existe algún otro entorno de trabajo similar?
- ¿Quién está detrás de CLAM?
- ¿Cómo debería acercarme a CLAM?
- ¿Cuál es el futuro de CLAM?
- ¿Qué pasa si uso CLAM en un sistema privativo?
¿Es CLAM lo que estoy buscando?
Esta es sin duda la pregunta del millón de dólares. Es difícil de estar seguro de si CLAM puede satisfacer tus necesidades hasta que realmente lo pruebes. Sin embargo, aquí hay algunas pistas que pueden ayudarte a decidir:
- CLAM puede usarse para el análisis y la síntesis de audio. Está hecho sobretodo para el análisis/síntesis espectral.
- Tiene características que lo hacen indicado para la recuperación de información musical.
- Se puede usar para construir aplicaciones eficientes que funcionen a tiempo real.
- En cualquier caso, deberías continuar leyendo el resto de las FAQ, así como cualquier otra documentación de CLAM que te pueda ayudar en la decisión.
¿Cuáles deberían ser mis conocimientos para usar CLAM?
CLAM se puede usar a diferentes niveles y para diferentes propósitos así que tus conocimientos pueden variar dependiendo de sus necesidades. En este sentido podemos distinguir al menos los tres niveles de utilización siguientes:
- Sólo quieres usar una aplicación precompilada como SMSTOOLS o NetworkEditor: En este caso sólo requiere que tengas algún conocimiento previo de procesado de señal para entender que es lo que pasa.
- Si quieres usar uno de los ejemplos proporcionados: Entonces tendrás que instalar CLAM y compilar el ejemplo en el que estés interesado. Instalarlo es bastante sencillo (mira las paginas de descarga de tu distribución). En cualquier caso, una vez tengas CLAM desplegado en el sistema, todo lo que tendrás que hacer es compilar el ejemplo.
- Quieres desarrollar tu propia aplicación: Aparte de los requerimientos anteriores necesitarás algún conocimiento en programación con C ++. Es cierto que algunas personas aprenden CLAM y C ++ al mismo tiempo pero no es la forma más adecuada de aprender un lenguaje como C ++.
- Quieres desarrollar CLAM: Todo lo que necesitas después del paso anterior es enviarnos tu código!
¿Qué puede hacer CLAM?
Aunque CLAM pueda usarse para muchos y diferentes objetivos, una buena manera de aprender lo puede hacer es repasar las funcionalidades ilustradas en los ejemplos disponibles. Según estos ejemplos se puede usar CLAM para:
- Leer y escribir archivos de varios canales de audio en prácticamente cualquier formato (wav, aiff, mp3, ogg...).
- Colocar filtros en el dominio de la frecuencia
- Realizar aplicaciones basadas en FFT.
- Calcular descriptores estadísticos sobre el sonido y sus rasgos espectrales
- Pasivar/Activar objetos en XML
- Usar utensilios gráficos para depurar objetos de datos
- Realizar aplicaciones basadas en el modelo LPC.
- Utilizar descomposiciones de una señal basadas en frames y volcar los datos a XML o SDIF.
- Conectar dinámicamente objetos de procesado simple para formar Redes.
- Utilizar el mecanismo de control basado en eventos para controlar el comportamiento de los objetos de procesado
- Crear composiciones estáticas de objetos de procesamiento
- Convertir archivos MIDI a XML.
- Realizar un sintetizador básico controlado por MIDI.
- Entrada y salida de mensajes MIDI al sistema.
- Implementar aplicaciones basadas en análisis espectral.
- Implementar aplicaciones basadas en análisis espectral.
- Realizar aplicaciones de análisis/síntesis incluyendo transformaciones e interfaz gráfica de usuario
- Crear aplicaciones de análisis/síntesis a tiempo real en el dominio espectral, controladas por un GUI
- Definir Redes de Procesamiento gráfica y dinámicamente para construir prototipos rápidos
- ...
¿Por qué depende CLAM de tantas librerías externas?
CLAM aspira a ofrecer todos los servicios necesarios para desarrollar una aplicación de audio y música. Esto implica muchas herramientas diferentes para dar respuesta a todos los posibles requisitos. Algunos de estas herramientas ya existen y, como no tiene sentido que los implementemos partiendo de cero,lo que hacemos es adaptarlos a la interfaz o " al modo de hacer las cosas " de CLAM. Dicho de otra manera, CLAM sería inconcebible sin el gran trabajo de todos aquellos que han implementado esas librerías.
¿CLAM es una biblioteca o un entorno de trabajo (framework)?
CLAM es un entorno de trabajo (framework) como lo ha definido Ralph E. Johnson. CLAM no sólo ofrece un conjunto de funcionalidades, sino que también proporciona un metamodelo conceptual o modo de hacer las cosas. Si estás interesado en esta discusion puedes leer la tesis de X. Amatriain.
¿Existe algún otro entorno de trabajo similar?
Hay varios entornos con objetivos similares a CLAM. Si sólo estás interesado en el análisis de audio y la extracción de atributos deberías conocer:
Si sólo estás interesado en síntesis de audio deberías conocer:
Y si buscas un entorno con ambas capacidades de análisis y síntesis mira:
En cualquier caso, CLAM presenta tanto diferencias conceptuales como prácticas con todos ellos. Si estás interesado en una presentación detallada de alternativas a CLAM, por favor, consulta la tesis de X. Amatriain.
¿Quién está detrás de CLAM?
CLAM actualmente está apoyada y desarrollada por algunos miembros del Grupo de Tecnología Musical en la Universitat Pompeu Fabra y de CREATE en la Universidad de Santa Barbara, California. Nuestro grupo se encuentra distribuido entre la soleada Barcelona y la también soleada Santa Barbara. El equipo está liderado por Xavier Amatriain desde California y Pau Arumi desde Barcelona. CLAM siempre ha tenido un núcleo estable de cuatro a 6 personas, aunque ninguno de nosotros pueda realmente trabajar ni a media jornada en ello
CLAM ha tenido el apoyo de proyectos públicos europeos como AGNULA o SIMAC y se usa en muchos de nuestros proyectos internos. En estos momentos recibe apoyo de la Generalitat de Catalunya.
¿Cómo debería acercarme a CLAM?
Hay diferentes modos de acercarse a CLAM, dependiendo de tus conocimiento previos. Nuestro modo habitual de introducir CLAM a neófitos es mostrándoles la “Introducción" y luego el "tutorial" de CLAM. Sin embargo, este tutorial es bastante largo e introduce otros conceptos a parte de CLAM (como el modelo espectral de sinusoides y ruido). En tu caso podría ser más fácil comenzar leyendo algunos ejemplos más simples. Tendrás que hacerlo de todos modos en algún momento.
¿Cuál es el futuro de CLAM?
CLAM debería ser pronto más estable una vez alcance su versión 1.0 . Lee el Mapa de Ruta de CLAM para aprender cuales son las previsiones. CLAM será usada internamente para garantizar más o menos su continuidad. Sin embargo esperamos que pronto pueda hacerse más "colaborativo" y podamos comenzar a aceptar contribuciones de usuarios externos.
¿Qué pasa si uso CLAM en un sistema privativo?
CLAM is GPL and therefore Free as defined by the Free Software Foundation. This means that you can use it with no restrictions as long as the result remains Free. If you want to use it from within a proprietary application then you should definitely talk to us. We use a double licensing scheme (ala FFTW) so CLAM can be (and as a matter of fact has already been) licensed for non-free usages.
![[CLAM]](../images/clamlogo.jpg)
![[MTG]](../images/mtglogo.png)