principal
nivel superior
enviar artículo
buscar
administrar
acerca de ...
rdf
rss
main
|
Posted by angolero on Friday November 07, @05:39PM el 2008
from the dept.
Hola a todos y en particular a Ernersto me da gusto saber de ti, con respecto a tu pregunta sobre las dependencias, me parece que por ahora es una búsqueda sin sentido el tratar de instalarlas, como veras, el programa actual mío solo funciona en Windows, todo es por que utilice la librería estándar de Windows para programar los threads, así que mi primera prioridad consiste en mudarme hacia alguna librería de threads multiplataforma gpl.
Con respecto al comentario de Edgar, estuve hablando con el, sobre que había pasado con csound y mi código en c++, y le mencione que hace ya bastante tiempo había logrado compilar y llamar a csound desde un código c++. Algo así como un hola mundo, el punto es que yo no tengo idea sobre el como llamar a csound en general, ni idea de comando, banderas y demás, por no decir formatos de archivos ni nada, así que lo único que pudo hacer mi código es crear un mp3, es decir yo le pasaba el archivo de instrumentos y ritmos o algo así jojojo, y en base a eso me crea un archivo mp3, ahora bien, supongo que si supiera como decirle a csound que no creara el archivo sino que lo tocara en tiempo real estaríamos mucho mas cerca de lo que queríamos, en cuanto a la conjunción de csound con mi código.
Para lograr lo anterior, es necesario que me puedas decir como llamar a csound en línea de comandos, aunque tampoco tengo mucha idea de cómo llamar a csound para que valla creando en tiempo real las directrices para el archivo que valla a reproducir.
Por lo demás, espero tener pronto la vista en threads más genéricos con lo que pueda correr en Linux, y en ese momento te paso la lista de dependencias con mi código incluido para que puedas probarlo a ver si jala en tu sabor de Linux particular.
Con respecto a que a pasado esta semana, básicamente e andado viendo como correr algunos threads en Linux y Windows para poder escoger el mas adecuado, ya que como mencione antes andaba un poco oxidado y se me junto con algunos exámenes de la escuela, pero Allí vamos.
Saludos a todos y la vemos el viernes que sigue.
<
Reporte del 26 de sept. al día de hoy.
|
Reporte 7-XI-08
>
|
|
The Fine Print: The following comments
are owned by whoever posted them.
( Reply )
|
Re: reporte
by jergas on Saturday November 08, @01:01PM
|
hola,
cuando compartas tu codigo, ponlo en algun lado donde todos lo podamos ver, como svn, o, si no estas seguro que corre, adjunta el tarball a un reporte o post.
tambien creo que necesitamos un minimo de instrucciones sobre como se compila con gcc.
pon tambien las ligas de la documentacion de threads que estas usando. el ernesto ya puso las que el esta usando. por un lado, las quiero ver, y por otro, pienso que si cada uno ve algo sobre lo que el otro va a hacer de threads sera mas facil que hagan codigo compatible, o incluso podria ser que acabaran usando la misma infraestructura para los threads. ojo, no los estoy obligando a ponerse de acuerdo, pero seria deseable si se diera.
gracias
|
[
Reply to this ] |
Re: reporte
by ernesto on Monday November 10, @09:37AM
|
Hola Vian,
Ahora si más clara la cosa. Voy a ponerme a preparar la información que necesita Gunnar dado que también tiene cierta relevancia en cuanto a lo que me pides y así los destrabo a los dos. En cuanto termine con eso, te envío información más detallada y una versión de mi código simplificado y comentado con énfasis en el control de Csound. Cualquier otra cosa, aquí estoy.
Un abrazo,
Ernesto
|
[
Reply to this ] |
Re: reporte
by ernesto on Monday November 10, @11:34AM
|
Vian,
He aquí lo que le escribí a Gunnar. Aunque pienso que ya sabes casi todo esto, la sección "Mi código" contiene información sobre como funciona Csound desde Python. Esto si te puede ayudar. De todas maneras, me pongo a preparar específicamente lo que me pediste y lo que te prometí arriba.
1) Csound: Es el lenguaje que uso para programar mis algoritmos de síntesis y para generar y procesar señales de audio.
2) Python-Csound: Son los "language bindings" para poder controlar Csound desde Python.
El texto al que te remite Edgar es viejo. La versión actual está en el README.txt de la carpeta "birdcage" en Sourcefourge. Aunque la versión vieja está correcta (salvo por las versiones de las dependencias), en ella pongo demasiada configuración. Lo hice porque entonces no estaba seguro de que tipos de síntesis usaría (por ejemplo para síntesis subtractiva csound tendría que poder localizar archivos de análisis) o si iba a llamar código Python desde Csound.
La environment variable que pido se configure en "README" es hacia el folder de plugins. Los plugins son los generadores, modificadores y filtros que utiliza la api. Si ésta no puede encontrarlos, csound no puede compilar el servidor de audio.
Mi código:
Lo particular de mi código es que csound no corre dentro de Python. Con python se hace una instancia de Csound que corre a más bajo nivel. Después se compila una orchestra (el patch de sintetizadores y modificadores) y una score (las notas que tocará la orquesta). En este caso la score tiene las funciones que utilizarán mis osciladores y una ventana de diez horas (para mantener Csound corriendo). Después se habre un performance thread. Éste también corre a bajo nivel y es independiente de mi código Python (aunque, claro, controlado por Python). Finalmente se comienza la 'reproducción'; osea que Csound empieza a esperar strings de parámetros que convierte en audio. Todo esto (más un método para hacer una nota con el primer instrumento de la orquesta) está en Csound_Interface.py.
Por otro lado, en Background_sound.py hay un par de threads de Python que bombardean a Csound con strings de control.
Finalmente, esto es activado desde el módulo main_sequence.py de Pancho (línea 46).
Espero que esto sea útil.
Saludos,
Ernesto
Pd.- No tengo más que tu correo de la Peda. ¿Es el que checas más a menudo, o me facilitarías el bueno?
|
[
Reply to this ]
|
Re: reporte
by angolero on Friday November 14, @06:20PM
|
Hola Ernesto, gracias por responder, la cosa es la siguiente, en el caso de c++, el llamado a csound es similar, csound esta escrito en c o en c++ no se bien, y el chiste es que se usa una instancia de csound, desde el programa de uno, a la cual uno le pasa parámetros los cuales junto con archivos como orquestas o yo que se, csound ejecuta y lleva a cabo algún comportamiento, así que como yo no se que viaje con csound, pues solo pude hacer que mi csound creara un mp3 gracias a las banderas que le puse y los archivos que le dije que llamara ya ni recuerdo bien, pero me parece que fue el archivo score.
El principal problema es que no se bien como acceder a tu código, me pasas los comandos del subversión? Para checar que honda con python y csound en tu ejemplo, como sea ahora ando clavado con que mi programa funcione en Linux, asi que no se tiene tanta prisa.
Saludos.
|
[
Reply to this ]
|
Re: reporte
by ernesto on Saturday November 15, @06:51AM
|
Hola Vian,
Disculpa la tardanza. Me asaltó una tortícolis de la que no me acabo de recuperar. Como prometí, hice un hola mundo con comentarios específicos respecto a los comandos dirigidos a Csound. Este código corre en tiempo real así es que ahí está toda la información necesaria. Espero que con eso ya no queden dudas. El código lo puedes bajar de: Csound_para_Vian.py
Igual, por cualquier duda, sigo a tu disposición.
Por otro lado, estuve tratando de averiguar como usar Csound en tiempo real desde la línea de comando. Fuera de ejecutar un score en tiempo real, no encontré la manera. Si ésto aún te sirve, házmelo saber y seguiré investigando.
De cualquier manera, encontré documentación que puede ser útil. La publico en mi reporte (que estoy por subir porque estoy casi seguro que así lo querrá Edgar. Son una introducción al Csound Host API y Un "reference" del API.
Finalmente mi código está en la carpete "birdcage" de sourcefourge. Creo que tienes acceso a él, dado que estás en la lista de desarrolladores. De ser así solo tienes que darle "svn update ouroborus --non-interactive". Si necesitas hacer un checkout (si no tienes una working copy) tienes que decirle "svn checkout https://ouroborus.svn.sourcefourge.net/svnroot/ouroborus"
Mis módulos que interactúan con el código de Pancho son: Csound_Interface.py, y Background_sound.py. Background_sound es el módulo que utiliza threads, así que te puede ser relevante a corto plazo. Si lo quieres correr como main, sólo hace falta que decomentes la línea 9 (no olvides volver a comentarla, porque, de otra manera, si haces un commit, dejará de correr birdcage por culpa de ese módulo). Para ver como conecto estos módulos al código de Pancho, abre su módulo main_sequence.py. Lo que yo edité está envuelto entre comentarios que dicen "Ernesto's edit" y "End Ernesto's edit".
Creo que ya no tengo deudas contigo pero, si se me pasó algo, por favor avísame.
Un abrazo,
Ernesto
|
[
Reply to this ]
|
|
The Fine Print: The following
comments are owned by whoever posted them.
( Reply )
|
|