Tipos de herramientas para automatizar la manipulación de audio "similar a una cinta" [cerrado]

[A cualquiera que reconozca que la siguiente configuración se deriva descaradamente de la musique concrète y la música de Cage: disculpas por las groseras simplificaciones]

Configuración: tengo un proyecto en el que necesito leer mediante programación muestras de audio, posiblemente manipular sus funciones (aplicar envolventes, invertir, reverberación, acelerar/disminuir, etc.) y combinarlas en secuencias.

Básicamente, necesito controlar mediante programación los efectos que tendría disponibles en una herramienta como Audacity o sus equivalentes.

Pregunta: ¿Qué tipos de herramientas podría considerar para lograr esto? He analizado brevemente el supercolisionador y los datos puros (= leí un par de tutoriales), pero parecen estar orientados principalmente a la síntesis de sonido, aunque es posible leer muestras de archivos. La orientación de la síntesis de sonido también parece introducir mucha complejidad innecesaria para un proyecto tan simple como el mío. Además, los datos puros (y sus hermanos) están orientados visualmente y, si es posible, preferiría un entorno basado en texto.

¿Quizás hay bibliotecas de manipulación de sonido que permitirían el acceso a efectos "similares a Audacity" desde un lenguaje de programación estándar (una herramienta que sería como un "enlace de Audacity" para el lenguaje X, a falta de un término mejor)?

¿Necesita alguna capacidad en tiempo real, o es todo una cuestión de hacer procesamiento fuera de línea?
Esta pregunta está fuera de tema aquí porque hemos decidido no discutir recomendaciones para hardware o software. En su lugar, puede intentarlo en softwarerecs.stackexchange.com.
Stefano: ¿estaría satisfecho con las recomendaciones para un tipo de herramienta, en lugar de herramientas específicas?
@topomorto: Solo necesito procesamiento fuera de línea. Además, las sugerencias sobre la clase de herramientas recomendadas son bienvenidas. de hecho, son incluso más bienvenidas que las sugerencias sobre herramientas específicas. Básicamente necesito saber dónde buscar
He editado la pregunta para que quede claro; espero que la edición esté bien. (Las preguntas que solicitan sugerencias para herramientas específicas están fuera de tema aquí, pero espero que, tal como están redactadas ahora, estén bien).

Respuestas (1)

Una forma de hacerlo sería simplemente usar un lenguaje de programación de propósito general (casi cualquiera sirve) para leer las muestras de audio, realizar cualquier procesamiento y escribir la pieza en el disco. Leer y escribir en formato WAV es bastante sencillo, incluso si necesita analizarlo usted mismo. Algunas de las manipulaciones que mencionas (aplicar envolventes, ralentizar el audio) son muy fáciles de codificar; La reverberación de convolución es bastante fácil. Acelerar el audio puede ser un poco más difícil, ya que debe hacerlo de una manera que evite el aliasing . http://musicdsp.org/ es un recurso para algoritmos de audio que puede implementar usted mismo.

Por supuesto, es posible que prefiera obtener una biblioteca de audio de terceros para que haga parte del trabajo por usted para que no tenga que hacer todo este trabajo de bajo nivel. La elección de estos dependerá del idioma que esté utilizando.

Otra opción sería un lenguaje que tenga un buen soporte de audio integrado en sus bibliotecas estándar ; por ejemplo, JavaScript es bastante capaz con audio si lo usa en un navegador compatible con Web Audio API . Esta API es compatible con todas las cosas que ha mencionado, e incluso podría hacer que sucedan algunas cosas interactivas interesantes en el navegador web (¡y, por supuesto, poner sus trabajos interactivos en la web!).

Luego llegamos a los lenguajes de programación de audio dedicados , que a menudo son dialectos de los lenguajes de programación generales con soporte de biblioteca de audio incorporado como estándar. Uno del que vi una gran demostración recientemente es Sonic PI (que usa supercolisionador debajo del capó) y está orientado a la codificación en vivo, aunque puede renderizar su trabajo en el disco con la misma facilidad. Esta sería una de mis recomendaciones personales para un punto de partida sencillo, aunque no soy un experto en eso.

También puede considerar usar algunas herramientas de audio de línea de comandos y escribir un archivo de secuencia de comandos por lotes/PowerShell/otro para impulsarlos a realizar algún procesamiento. Sox es un ejemplo, y la banda elástica también es una pequeña herramienta interesante.

Gracias. Eso es exactamente lo que estaba buscando: una taxonomía de tipos de toot disponibles (con los términos correctos para habilitar la búsqueda).