Csound o Nyquist

res
#1 por res el 01/12/2006
Buenas:

Pretendo migrar del Pure Data a un lenguaje de código (poco a poco) y me he encontrado con una enorme variedad. Preferiría no estar probando y probando para darme cuenta, más tarde, que me he equivocado, así que acudo a la sabiduría de este foro para buscar consejo.
En un principio tenía casi claro empezar con Csound (por la solera y la bibliografía que tiene), pero el tipo de programación que uso requiere variantes, en tiempo real y automáticas y leí por ahí que para realtime es mejor Nyquist. Ya que aprendo, sin embargo, preferiría aprender C que Lisp. Bueno, no sé, ya véis que estoy hecho un lío. Gracias de antemano por vuestras recomendaciones.
Subir
Abird
#2 por Abird el 02/12/2006
Hola res,
No soy programador, soy músico, por lo que lo que te pueda decir será siempre visto desde una óptica distinta. He tenido y tengo mucha curiosidad por los nuevos lenguajes, ya sean de código o tipo max/msp, puredata, reaktor, etc y he metido mis musicales narices en todos ellos de una manera mas o menos superficial. Si acaso he profundizado más en Reaktor. Lo que he sacado en claro es que trabajar con estos lenguajes requieren cambiar la forma de hacer música y en lo que son muy útiles en general, es en generar algorritmos que hacen la música por si solos. Aquí es donde yo les veo la ventaja.
Sobre los dos que comentas, el Csound es un lenguaje cerrado que, efectivamente, no posibilita cambios en tiempo real. El Nyquist parece ser que si, pero es un lenguaje enrevesado, con poca documentación y muy sectario. Prácticamente es una universidad, no recuerdo ahora cual, la que sigue adelante con el, pero sin mucha divulgación. Por este foro suele pasarse avelino, que tiene un post reciente además y que es un experto en programación en C, según puedes ver en sus tutoriales.
Te animo a preguntarle.
Un saludo
Subir
res
#3 por res el 04/12/2006
Gracias, abird. Si, ya veo que lo del nyquist tiene poco futuro y he empezado a hacer los primeros pinitos con csound (via Cecilia). Sobre lo que comentas de cambiar la forma de hacer música, precisamente creo que es la vía de investigación más lógica (la de la nueva música) para aquellos que realmente quieren que las computadoras sean un nuevo instrumento, y no unos simples sustitutos(más baratos) de otros. Claro que, sobre gustos, ya se sabe...
Subir
Robakun
#4 por Robakun el 04/12/2006
Nyquist NO es en tiempo real, y ahora lo encuentras asociado a audacity (el editor). Es fácil de aprender y bueno para explicar cosas, en un instituto por ejemplo. Está teniendo más adeptos gracias al editor.

Csound sí usa el tiempo real, así como interfaces gráficas (botones, faders, etc). Te recomiendo de versión 5 o superior, y la interfaz gráfica blue, que en mi opinión es mucho más robusto que cecilia. Si usas windows, prueba con lettuce, te ayudará mucho a escribir csound.

C puede ser recomendable o desaconsejable según lo que quieras hacer. Igual que aprender lisp.

Si te interesa el "tiempo-real" puredata es muy bueno no? aunque "de texto", chuck o supercollider. Mira audicle o miniaudicle (entornos para chuck) , son de muy reciente creación
Subir
res
#5 por res el 04/12/2006
Has dado en el clavo Robakun, pues tenía la esperanza de aumentar mis posibilidades con los programas de texto , reducir los tiempos de programación conectando cables y reducir, también, la carga de cpu. Pero lo cierto es que llevo años con PD y aún no tengo muy claro que realmente sea una ventaja dejarlo. Miraré lo de Chuck y Supercollider.
Gracias
Subir
Robakun
#6 por Robakun el 14/01/2007
Siempre puedes editar los archivos pd con el editor de texto, y ya tienes un lenguaje de texto :D, ¿por cierto sabrías escribir algo así?. Cada vez me sorprenden más las cosas que se puede hacer con pure data. Eso sí, hay muchos grupos de desarrolladores dispersos y poca documentación general, ¿no es así?. ¿no te parece un poco caotico en ese sentido?
Subir
avelino
#7 por avelino el 16/01/2007
Yo sólo he coqueteado un poco con CSound y desde mi punto de vista es un lenguaje muy completo y no está orientado al tiempo real, aunque ya hay extensiones que si lo permiten. Si utilizas un lenguaje de propósito general como C, Java, Python, Perl, etc... para sonido debes primero aprender a programar en ese lenguaje (sintaxis, estructuras de datos, etc) de forma general y, cuando ya tengas el lenguaje controlado, utilizar alguna de las múltiples librerías para acceder a audio y MIDI que poseen todos los lenguajes.

Lo bueno que tienen los lenguajes específicos para música es que obtienes resultados rápidamente y que poseen estructuras y mecanismos que permiten implementar algunos tópicos de la programación musical de forma rápida y sencilla, lo malo que tienen es que precisamente debido a ésto, no dan tanta libertad a la hora de implementar algoritmos y, por supuesto, requieren más máquina al ser, por lo general, lenguajes interpretados o pseudointerpretados.

Lo bueno que tienen los lenguajes de propósito general es que con ellos puedes hacer lo que quieras ya que controlas todos los pasos en la generación de la señal, además suelen ser más rápidos en la ejecución que los lenguajes específicos. Por contra tienes una curva de aprendizaje más dura que la de los lenguajes específicos y que a veces tienes que escribir mucho código para hacer cuatro cosas.

Yo siempre utilizo C para hacer mis cosillas por software y tengo hechos algunos tutoriales sobre síntesis musical por ordenador que pueden serte de ayuda si al final optas por utilizar un lenguaje de propósito general como C, Java, Python, etc.

http://avelino.gabiot.com
Subir
conexionismo
#8 por conexionismo el 17/01/2007
Buenas, soy res, pero no se porque no puedo entrar con mi contraseña en hispasonic.
Al final he decidido seguir con Pd precisamente por lo que dice avelino, ya que, a pesar de las ventajas de la programación "directa", el tiempo para aprender (que yo tengo) no es infinito. Además, es cierto, rubakun, se pueden hacer infinidad de cosas con puredata, y con paciencia, incluso puedes encontrar gente que haya implementado alguna idea que rondaba por la cabeza. El problema es que no tenemos ningún foro en España y como todo lo de la red, está disperso. Por cierto, se puede controlar todo (como si fuera un orquestra de csound), con qlist o texfile, así que algo parecido a un editor de texto sí que acabo teniendo. : )
Subir
avelino
#9 por avelino el 18/01/2007
Robakun me mandó un mensaje privado comentándome las bondades del tiempo real en CSound. Ciertamente no fue un lenguaje creado para el tiempo real, pero tampoco es menos cierto que en la nueva versión se han estandarizado (esa es la palabra clave) comandos de tiempo real que le han dado una gran potencia :-). Hacía tiempo que no le echava un vistazo al CSound. Gracias, Robakun ;-)

Yo siempre he sido un defensor total de los estándares, de la independencia de la plataforma y del opensource. En http://www.nosuch.com/tjt/plum.html se puede encontrar una lista bastante pormenorizada de los lenguajes de programación específicos para música.

La elección del lenguaje de programación para música a usar es una elección muy personal, aunque me gustaría remarcar dos cosas:

1) El hecho de que un lenguaje sea opensource garantiza la continuidad del mismo más allá de las empresas o personas que lo crearon.
2) El hecho de que los ficheros de datos que utilice sean ficheros de texto legibles o, al menos, estándares garantiza la portabilidad a otros lenguajes.

CSound lleva cumpliendo estos requisitos desde hace mucho tiempo. PD también es opensource, pero no se si los ficheros de datos que usa son legibles o no, aunque viniendo de donde viene (Universidad de California) es probable que sí lo sean :-).

Saludos.
Subir
Robakun
#10 por Robakun el 18/01/2007
gracias a tí por las explicaciones Avelino ;). Esos motivos que das son lo que me lleva a pensar que reaktor y cosas así no son buenas a la larga. Aunque deben ser estupendas para aprender.

Para actualizarse sobre Csound:

REALTIME csound examples

Una de las nuevas posibilidades del nuevo csound5 es que puedes escribir python dentro del código clásico.

ah, Escribir en C, para hacer música...tu es que eres de primera división :D
Subir
conexionismo
#11 por conexionismo el 21/01/2007
Precisamente Pd cumple con lo de la independencia de la plataforma (linux,windows,mac,unix...incluso para pda) y lo del opensource, pero el tema que me preocupaba era lo de standard, ya que, de esta forma, nunca te quedas colgado y puedes pasar de un idea a otra independientemente de estar sujeto a las limitaciones del programa. Por suerte pd es muy abierto y con mucha gente trabajando en él y, como gran pregunta, me gustaría saber si evolucionará y cómo lo hará. Por descontado que necesitamos todos esos programas para no inmiscuirnos en el camino de los señores de steinberg, NI, microsoft y demás "ponlepalosalasruedas" del desarrollo de la cultura.
Subir
wintermute
#12 por wintermute el 16/02/2007
pásate a Supercollider!

es un buen ejemplo de lenguaje orientado a objetos (permite implementar clases), basado en Smalltalk y con una sintaxis un tanto parecida a C++. Perfecto para trabajar a tiempo real con un rendimiento excelente. ¡¡Y es open source!! :D

Pure Data tb me gustó mucho, al ser visual es mas intuitivo y fácil de aprender al principio, pero a medida que los patches crecían no sabía donde ubicar los objetos en la pantalla y el patch se convertía en un galimatías ilegible. La encapsulación mediante clases implementada por supercollider me permite estructurar el código de forma mas limpia y reutilizable.
Subir
Hilos similares
Respuesta rápida

Regístrate o para poder postear en este hilo