You are on page 1of 8

2o Congreso Internacional de Acústica UNTREF

Septiembre 2010, Argentina

SOFTWARE LIBRE Y PRODUCCIÓN MUSICAL
GABRIEL NICOLÁS GONZÁLEZ FERREIRA1, GUSTAVO EDUARDO CARR2
1

Administrador de Sistemas GNU/Linux aprobado por RD. N° 136/04 Artículo 2°, refrentada por O.C.A. N°334/05 Facultad de Ingeniería. Universidad Nacional de Mar del Plata, Argentina. gabrielinuz@gmail.com 2 Instituto de Investigación en Ciencia y Tecnología de Materiales (INTEMA), Universidad Nacional de Mar del Plata. Provincia de Buenos Aires, Argentina. gecarr@fi.mdp.edu.ar

Resumen – Se investigó en las posibilidades de utilización de software libre para creación y procesamiento de audio en tiempo real. Se realizó una introducción a la instalación y uso de distintas distribuciones GNU/Linux. Se describieron las configuraciones necesarias para el trabajo en producción musical con un sistema operativo informático GNU/Linux logrando el mejor aprovechamiento del hardware indicado (procesamiento en tiempo real de los dispositivos de audio). Además se enumeraron aplicaciones profesionales utilizadas para este cometido, (estación digital de trabajo de audio, secuenciadores, samplers, plugins de efectos, sintetizadores virtuales, software de masterización), desde la generación de sonidos hasta la post-producción y masterización digital de audio. Por último se presentó uno de los más poderosos, versátiles y conocidos lenguajes gráficos para la creación de aplicaciones multimedia y científicas: Pure Data. Mediante este software se expanden las posibilidades hacia la producción audiovisual y de tecnologías de la información utilizando sistemas operativos GNU/Linux de alta confiabilidad y estabilidad en tiempo real.

1. INTRODUCCIÓN En el presente trabajo se investigó acerca de la posibilidad de utilizar software libre para la producción musica y procesamiento de señales en tiempo real tanto para ser aplicado tanto en el arte como en la investigación científica. Esta investigación del estado del arte de las opciones fue impulsada por la necesidad de independencia de los usuarios de paquetes comerciales costosos y de licencias privativas, en busca de un beneficio común por parte del conjunto de usuarios, artistas e investigadores científicos. Antes que nada debemos saber que el software libre es aquél que permite: 0. Usar el computador con cualquier propósito. 1. Estudiar como funciona el mismo y modificarlo (adaptarlo a las necesidades del usuario). 2. Distribuir copias del software para ser compartidas y difundidas (está permitido cobrar o no por la distribución y/o empaquetado). 3. Mejorar el software y publicar las modificaciones para beneficio de la comunidad . En este trabajo, se denomina como “Distribución del Sistema GNU/Linux” al sistema operativo que cada individuo u empresa puede armar para uso comercial

o no más el conjunto de software seleccionado para desarrollar sus actividades. El objetivo particular de este trabajo es mostrar como cualquier distribución del Sistema Operativo GNULinux puede configurarse para trabajar con audio en tiempo real, con “tiempo real”, es decir, a acceder a los procesos relacionados con el audio, sin latencia. Un ejemplo de latencia es el tiempo o retraso que se da entre el disparo de una nota en un teclado o controlador y salida del sonido producido por un sintetizador virtual a través de los dispositivos de audio del equipamiento. La latencia también puede ser detectada, por ejemplo, cuando la señal de audio de un micrófono conectado a una computadora atraviesa varios procesadores de efectos, los cuales realizan una infinidad de cálculos, hasta que llega a la salida de la placa de sonido. Tanto en Microsoft Windows como Mac OSX se precisan controladores especiales para aprovechar el proceso DSP de las placas de sonido profesionales y no obtener latencia. En GNU/Linux existe la ventaja de que no se precisan drivers ni controladores especiales sino que el sistema se configura para este propósito, desde el corazón mismo que se denomina: kernel, permitiendo así mayor control y rendimiento y no dependiendo de que los fabricantes de los dispositivos de sonido provean a los usuarios de drivers de baja latencia.
1

org.6. Un kernel real-time. la los autores encontraron mejores resultados a través de la instalación y configuración de las herramientas desde cero.tar.Se realizó la determinación de los pasos genarales para configurar un sistema GNU/Linux optimizado para el trabajo con audio y MIDI. 2. eligiendo la última versión estable.4-rt14). Luego se descarga el “parche” para tiempo real (Patch RT).bz #gunzip patch-2.gz /usr/src/ Desde ese directorio.31. Esto se puede hacer con el gestor de paquetes Synaptic o con el comando: aptitude search linux-image 2. es un kernel modificado que permite al usuario acceder y manipular procesos o tareas del sistema. La indicación de usuario root es un signo # en el prompt de la consola): $ sudo su Luego de introducimos la contraseña.bz) y el patch (en formato . desde el siguiente sitio: http://www.kernel.6. comunicación del hardware con el software.31. se abre una consola y como usuario root se copian los archivos descargados al directorio /usr/src: #cp /home/usuario/Desktop/linux-2.31.gz Se crea un enlace simbólico al directorio que permitirá trabajar directamente sobre éste y no en el directorio mismo: # ln -s /usr/src/linux-2.6. ya que son claves en en el procesamiento de audio en tiempo real. INSTALACIÓN O COMPILACIÓN DEL KERNEL REALTIME El kernel o núcleo es la parte de más bajo nivel del sistema operativo (o sea.tar. manejo de procesos.1 Instalación de un kernel empaquetado Lo más sencillo en este paso de configuración es instalar un kernel precompilado desde una terminal o consola de texto (también se puede usar software manejador de paquetes instalables como es el el gestor de paquetes Synaptic) en distribuciones derivadas de Debian como Ubuntu se tipea en un terminal: sudo aptitude install linux-image-2.4 / patch 2. se tipea: # aptitude install kernel-package libncurses5-dev Suponiendo que se descargó el código fuente del kernel (en formato tar.4 /usr/src/linux Desde el directorio apropiada se aplica la modificación para tiempo real (real-time patch) al código fuente del kernel: # cd /usr/src/linux/ 2 Figura 1: captura de una consola donde se ve el nombre de usuario y el nombre del host. por eso se utiliza el comando “sudo” para obtener permisos y poder instalar el kernel .6.31. Este núcleo es muy estable en GNU/Linux y altamente configurable como en ningún otro sistema operativo.6.31. Se realizó un análisis del funcionamiento de herramientas de audio especializadas.bz /usr/src/ #cp /home/usuario/Desktop/patch-2.4-rt14.33-rt Se describen los siguientes pasos para compilar un kernel realtime [1] Primero se deben descargar el código fuente del kernel desde www.2 Compilación de un kernel realtime en un paquete instalable .6. se descomprimen el kernel y el patch: #cd /usr/src #tar jxvf linux-2.31. eligiendo el número de versión que coincida con la fuente del kernel que se descargó anteriormente (ej: kernel 2. el signo $ indica que el usuario no tiene permisos de administrador.31. administración del hardware. Existen distribuciones pre-armadas para este fin.gz) en el escritorio. sin embargo. en base a una de las distribuciones GNU/Linux más conocidas. 2.4. para poder otorgarles alta prioridad a estos. La versión del kernel puede cambiar. así que antes es conveniente hacer una búsqueda de el paquete linuximage y elegir el que se tenga por sufijo “-rt”. tales como direcciones de hardware (IRQ) y el reloj de temporización del kernel. También se deben instalar unos paquetes para poder realizar la compilación (usando el comando “sudo su” o “su” simplemente para hacerlo en modo de administrador o “root” y poder realizar todos los pasos con los permisos necesarios.kernel.6. la más cercana al código máquina) y es la encargada de las tareas básicas del sistema como el control de memoria.4.org/pub/linux/kernel/projects/rt/ .6.4-rt14.

deb con el comando make-kpkg: # make-kpkg --append-to-version=-soundebian-rt --initrd kernel_image kernel_headers donde: --append-to-version: es el nombre de la versión tendrá el kernel (ej: 2. Es importante recalcar que no es necesario compilar el kernel. en realidad una por cada núcleo del microprocesador. se compilará el kernel. Kernel hacking > Tracers: Desactivado. la opción más rápida es usar uno precompilado. se puede desactivar la siguiente opción. la siguiente opción viene activada por defecto. Finalmente se sale del programa pulsando sobre “Exit” y se guarda el fichero aceptando la pregunta. se ejecuta el menú de configuración. donde es necesario cambiar algunos valores: # make menuconfig Si al kernel se le aplicó el parche RT aparecerá la siguiente opción a seleccionar: Processor type and features > Preemption Mode: Real Time Se debe modificar la frecuencia a la que trabaja el reloj del kernel. este proceso puede durar horas y depende de la velocidad del procesador.. Se debe deshabilitar sí o sí para tener un rendimiento óptimo en el sistema. Una vez terminado el proceso se pueden instalar los paquetes: # dpkg -i *. Luego de ejecutar este comando. Además.6. se explican los pasos para que cada usuario elija el nivel de personalización de su sistema. así como una tarea timer y una hrtimer. Es muy importante recordar tildar las opciones del driver Alsa y el modelo del chip del dispositivo de audio. • Se compila el nuevo kernel y se generan los paquetes .4-rt14 Una vez aplicado el parche. ASIGNAR PRIORIDAD A LAS TAREAS TIMER Y A LAS IRQ [2] El parche para tiempo real en el kernel compilado hace disponible varias tareas IRQ.31. ya que este módulo está deprecado (fuera de interés de uso y actualización por los desarrolladores): OSS (Device Drivers > Sound) Es muy importante activar los módulos ALSA (Advanced Linux Sound Architecture) dedicados al USB-Audio (Device Drivers > Sound). por ejemplo en el caso del producto serie Delta de la marca M-Audio: ICE1712 [Envy24]. de lo contrario dará una advertencia en la carga del Kernel. se puede ejecutar el siguiente comando antes de compilar para reducir el tiempo aprovechando mejor los núcleos (declara una variable con el número de procesadores de que se disponga): # export CONCURRENCY_LEVEL=`expr $(cat /proc/cpuinfo |grep -i ‘MHz’|wc -l) + 1` Para mas información. Hay muchas opciones para desactivar y optimizar el kernel pero depende absolutamente del hardware de cada computadora y del conocimiento que se tenga de él y de que se conozca el nombre exacto del módulo que el kernel le asigna. que es el encargado de interrumpir al cpu para que pueda decidir atender o no otro proceso: Processor type and features > Timer frequency: 1000 Hz Se elige el tipo de microprocesador. según el caso: Processor type and features > Processor Family: Pentium4 En los Kernels más recientes.deb Para equipos con mas de un procesador.31.img que le indica al kernel que módulos debe levantar al inicio y donde se ubican estos módulos (en caso de funcionar siempre se pueden generar a mano con el comando:updateinitramfs -c -k número de versión del kernel) kernel_image: indica que compile la imágen del kernel. --initrd: genera un archivo initrd. De todas maneras y para un funcionamiento óptimo. 3. Pueden visualizarse con el comando: # ps -e| grep irq 3 .# make-kpkg clean # patch -p1 <. se puede visitar la seccińo FAQ del Kernel donde se amplían los conceptos básicos para conocer mas en detalle qué es cada opción que se modifica.6.5-soundebian-rt). kernel_headers: indica que compile los headers del kernel./patch-2.

En cambio si el dispositivo de sonido es de tipo firewire habrá que levantar la prioridad de la tarea ohci1394. Es necesario aclarar que se hace uso de los métodos manuales para comprender como funciona cada proceso. que varía entre 0 y 99. 5. En el caso de no poder determinar cual es la IRQ de la placa de sonido es necesario emplear el siguiente comando: #cat /proc/asound/cards chrt: es el comando que asigna la prioridad de comunicación entre el kernel y el proceso. Las interrupciones (IRQ=Interrupt Request . pero actualmente muchos pasos están automatizados. se encuentran los números llamandos PID (Process ID – Identificadores de Proceso) de cada tarea. ya que el PID puede cambiar. sirq-hrtimer/0 y la IRQ del dispositivo de audio a ubicar. [4] En este caso.sh Y asimismo. Luego se le deben dar al programa permisos de ejecución: # chmod +x script-rt.Petición de Interrupción) son una forma de notificarle al microprocesador que hay algo que hacer. por ejemplo ehci_hcd:usbx o uhci_hcd:usbx. por eso interesa que tenga alta prioridad. Son de interés las tareas: sirq-timer/0. La tarea sirq-hrtimer (High Resolution Timer) es el temporizador introducido por Ingo Molnar[3] y otros.El inconveniente a la hora de asignar prioridades se presenta con cualquier dispositivo hardware. Con el comando lsusb se puede obtener el número de bus usb en la primera columna. por lo cual se puede utilizar el comando pgrep para buscar la línea IRQ/30 en los PID. en este caso es necesario elevar la prioridad del PID numero 5 y 20 como tareas timer. La tarea sirq-timer hace referencia al temporizador que se usa para controlar la ejecución de los procesos en el sistema. atiende la petición y luego vuelve a lo que estaba haciendo. crear un enlace simbólico en los niveles de inicio para que se ejecute al encender el equipo: # ln -s /etc/init. 4 . sin ellas no se podría tener un sistema multitarea.d/script-rt. hay que identificar número de bus.d/S99realtime Con esto ya queda configurado la base del sistema real time.sh Dentro se tipea lo siguiente: #!/bin/bash chrt -f -p 99 5 chrt -f -p 99 12 chrt -f -p 99 20 chrt -f -p 99 27 chrt -f -p 99 `pgrep IRQ/30` Luego se presiona ctrl-x para finalizar y luego s + <enter> para guardar los cambios. este interrumpe lo que está haciendo. 12. -p: el valor de la prioridad de ejecución. Este programa funciona de la siguiente manera: Figura 2: listado de procesos en una consola. necesario para nuevos kernels. Si el dispositivo es usb.d/script-rt. observando la primer columna de la Figura 2. 12 y 27 como tareas hrtimer y por último el PID 729 de la IRQ/30hda_intel (que es el dispositivo de audio integrado en el motherboard). donde 99 es Real Time. -f: SCHED_FIFO. ejemplos de esto son la existencia del paquete "rtirq-init" en distribuciones como Ubuntu que automatizan en alguna medida la asignación de prioridades [4]. A continuación se expone como escribir un pequeño programa (script) con el editor “nano” para asignar las prioridades: #nano /etc/init. 20. 27: son los PID de las tareas timer `pgrep IRQ/30`: es la búsqueda del PID del IRQ de la placa de sonido y debe estar escrito entre las comillas `` para mostrar el resultado del comando. que maneja con precisión las tareas en sistemas Real Time.sh /etc/rcS.

8 ms de latencia. o Configuración. Para configurar el servidor se utiliza su GUI o interfaz gráfica llamada QjackCtl. si el equipo no posee la suficiente capacidad de procesamiento como para mantener el flujo de audio sin pérdidas (xruns). Y la más importante es el servidor de sonido en tiempo real JACK. la cual es necesario instalar: # aptitude install qjackctl Esta herramienta automáticamente instala el demonio jackd como dependencia y se encarga de preguntar al usuario si quiere asignar altas prioridades al grupo “audio”. para activarlo solo basta borrar el símbolo). memlock: es la máxima cantidad de memoria que un usuario del grupo audio puede bloquear para una tarea siendo ejecutada en tiempo real. Nice: es el mínimo de tiempo con que una tarea puede ser ejecutada. No Memory Lock (No bloquear memoria): Este parámetro permite que el rendimiento de la computadora mejore ya que el servidor no se apodera de la memoria. para audio y datos MIDI. esta opción hará que JACK trate de mantener las conexiones aunque no respondan. En distribuciones como Ubuntu es muy importante eliminar antes el servidor que viene instalado por defecto (actualmente Pulseaudio) que interfiere el buen funcionamiento de JACK: #aptitude purge pulseaudio JACK Audio Connection Kit o simplemente JACK es un servidor de sonido o demonio que provee conexión con baja latencia entre aplicaciones. Fue creado por Paul Davis y otros [5]. aunque sea en segundo plano). se pueden conectar los dispositivos software y hardware MIDI desde la solapa correspondiente. De manera predeterminada trabajará en 32 bit.conf : @audio . se trata de la predisposición de una tarea a liberar tiempo de CPU. Sample Rate (Frecuencia de muestreo): Es la Frecuencia de muestreo con que se desea que trabajen 5 . Verbose messages (Mensajes verbosos): Muestra una información mas detallada en los mensajes del servidor.. también se puede dejar por defecto. Force 16 bit (Forzar 16bit): Si se desea trabajar en 16 bits solamente y ahorrar espacio en disco se puede activar esta opción. Ahora se puede ejecutar la aplicación qjackctl desde consola o desde su acceso directo del menú “Sonido y video” existente en distribuciones amigables como Ubuntu.: Figura 3 : captura del panel de configuración de qjackctl Se detallan sus opciones de configuración... Driver MIDI (seq): Al activar este driver de secuenciador MIDI.. se puede utilizar 256 también liberando más el cpu consiguiendo 11.4 ms de latencia. Ignore H/W (Ignorar H/W): Ignorar el tamaño del buffer/período del hardware. esto significa que está comentado y no se aplicará lo que indica la línea.rtprio 95 @audio . QT. FLTK. Unlock Memory (Desbloquear memoria): No bloquear la memoria de las librerías comunes (GTK+. cuanto menos más baja es la latencia o mayor la velocidad de respuesta. Monitor (Monitorear): Provee los puertos para el monitoreo de la salida. Debería ser alta por encima de los 70. Frames Periods (Cuadros/Períodos): Son los cuadros o períodos de demora entre llamadas a procesos relacionados con el audio.4. Soft Mode (Modo Tolerante): Activando esta opción. Esto último recomendado en computadoras más antiguas. lo cual es indispensable. Es necesario configurar para su funcionamiento óptimo al que se accede presionando el botón Setup. INSTALACIÓN Y CONFIGURACIÓN DEL SERVIDOR DE SONIDO DE BAJA LATENCIA A partir de ahora lo que se necesita es instalar las herramientas necesarias para gestionar un sistema GNU/Linux Real Time. H/W Monitor (Monitoreo por Hardware): Habilita el monitoreo por hardware en los dispositivos que lo soporten. (Este valor como ven tiene un símbolo “#” delante. es útil cuando no se corre en tiempo real. con 128 se consigue 5. rtprio: es la máxima prioridad con que el usuario del grupo audio puede ejecutar una tarea o proceso (entendemos por proceso o tarea a un programa en ejecución. Priority (Prioridad): Determina la prioridad del scheduler (planificador del sistema operativo) para ejecutarse. las cuales se pueden optimizar según el equipo informático en que se utilice: Realtime (Tiempo real): Este parámetro deberá estar activado si se desea ejecutar el servidor de audio JACK en tiempo real.nice -19 donde: @audio: es el grupo de GNU/Linux al que pertenecen todos lo procesos relacionados con el audio. Esta configuración se basa en escribir los siguientes parámetros en el archivo de configuración que se ubica en el directorio /etc/security/limits. Wine).d/audio.memlock unlimited #@audio .

por lo cual ha sido extendido y enriquecido por una creciente comunidad de usuarios y desarrolladores [9]. A partir de valores mayores a 50ms se vuelve muy perceptible e incómoda. Output Chanels (Canales de Salida): Se pueden especificar manualmente la cantidad de canales de salida. Rosegarden: Secuenciador Midi-Audio con opción de edición de partituras. solo captura o solo reproducción. Se pueden instalar con el gestor de paquetes synaptic o con el comando aptitude en una consola como root. Mixx: Software para Djs. Periods/Buffer (Períodos/Buffer): Es el número de peeríodos con que se desea que trabaje el hardware. Actualmente. Output Device (Dispositivo de salida): Permite seleccionar el dispositivo de salida. 4. EL LENGUAJE DE PROGRAMACIÓN GRÁFICA PURE DATA (Pd) Y SUS MÚLTIPLES APLICACIONES El lenguaje Pure Data [6] es un sistema de programación gráfica en tiempo real desarrollado por Miller S. Zmölnig. Un aporte importante en este sentido fue hecho por Johannes M. Solfege: Entrenador auditivo. mayor velocidad de respuesta y por consiguiente. entre los cuales están los calf-plugins. 0 es lo ideal. Es un estudio de producción musical virtual. Mientras Max/MSP (para síntesis y análisis de audio) y Jitter (para aplicaciones de síntesis de video) son paquetes comerciales[8]. Zynaddsubfx: Sintetizador virtual. Port Maximum (Puertos Máximos): el máximo de puertos que podrá manejar JACK. con varios tipos de síntesis. Seq24: Secuenciador MIDI. 0 es lo ideal. Live: Software para Vjs. Hydrogen: Sampler profesional y máquina de ritmos. Pure Data es libre y abierto. Permite usar samples de la aplicación Gigastudio en GNU/Linux. Qsynth: Sampler de Sound Fonts. Nted o Musescore: Editor de Partituras profesional. Kdenlive y Cinelerra: Editor no lineal de video. qsampler y gigedit: Linuxsampler mediante la interface gráfica qsampler y la utilidad de edición gigedit. menor latencia. Input Device (Dispositivo de entrada): Nos permite seleccionar el dispositivo de entrada. En GNU/Linux se pueden obtener muy bajas latencias. Existe gran cantidad de estos plug-ins. Input Chanels (Canales de Entrada): Se pueden especificar manualmente la cantidad de canales de entrada. Audacity: Editor de audio multipista. Cuanto menor es este valor. Puckette [7] para la creación de instrumentos musicales virtuales. Zmölnig 6 Figura 4: captura de pantalla del panel de configuración de qjackctl. Timeout (Límite de tiempo): Establece el límite de tiempo a conectarse por los clientes en milisegundos. de los mejor diseñados. Linuxsampler. Interface: Permite seleccionar el dispositivo de sonido que utilicemos. LADSPA es un formato libre para los plug-ins de audio bajo GNU/Linux. con una gran simplicidad de manejo . 5. Graz. Tuxguitar: Editor profesional de tablaturas y partituras para bajo y guitarra. Lmms: “Linux Multimedia Estudio” Alternativa para los usuarios de Fruity Loops. Este software está escrito en base al sistema Max creado por el mismo autor en 1988. al haber ya seleccionado nuestra interface de audio se puede dejar en default. Plugins LADSPA: Linux Audio Developers Simple Plugin API.todas las aplicaciones conectadas al servidor JACK. basado en loops. Audio: Permite elegir entre las opciones full-duplex (grabación y reproducción simultánea). Output Latency (Latencia de Salida): Tiempo de retardo de la salida externa. del Institut für Elektronische Musik und Akustik. Latency (Latencia): Aquí se muestra la latencia obtenida con la configuración del servidor. INSTALACIÓN DE APLICACIONES PARA PRODUCCIÓN MUSICAL . Input Latency (Latencia de entrada): Tiempo de retardo de la entrada del dispostivo de audio. al brindar a la comunidad un documento con las instrucciones para la implementación en C/C++ de la creación de objetos para el lenguaje [11]. Dither (Suavizado): Permite elegir el tipo de suavizado o mejor conocido como dither en la conversión de audio. Austria [10]. de la siguiente manera: #aptitude install ardour Ardour: Es un DAW (Digital Audio Workstation Estación de trabajo de Audio Digital) programa multiplataforma de grabación de audio a disco duro.

está a cargo del mantenimiento de la extensión GEM para procesamiento de video [12]. y las conexiones: de audio y de control. 2005. escritura a disco.1KHz). Los elementos básicos del lenguaje son los átomos: objetos. Los objetos se conectan entre sí mediante cables de dos tipos: audio y control. pp. Rosario. sino también el video. Una de las más notables características de este software es la independencia del motor de control de programa del motor de cálculo de audio.soundebian. se concluye que es posible realizar actividades de creación. creado por HansChristoph Steiner[14]. el lenguaje maneja vectores bajo el nombre de “arreglos” o “listas”. así como también pulsadores e interruptores. Es necesario destacar la posibilidad de implementar software de investigación a partir de estos sistemas GNU/Linux por su estabilidad y confiabilidad. Editorial Magenta.com/2010/05/elscript-rtirq-en-ubuntustudio. dependiendo de si existe o no un gráfico asociado a él. Pduino se puede operar de manera bidireccional con el hardware libre Arduino [15. Incluso ha sido portado a diferentes plataformas móviles. originalmente escrita por Mark Danks y portada a GNU/Linux por Günther Geiger[13].html [5] Real-Time Linux Wiki.cycling74. Argentina. etc. etc.com. 6. Como compilar nuestro propio Kernel RT en deb.wikipedia. Revisión 10:37 hs . es decir. así como también puede hacerlo mediante OSC (Open Sound Control) a través de conexiones TCP-IP. Asimismo. composición y ejecución a través de redes. 16]. 26 de Octubre de 2009.kernel. realidad virtual. Pure Data posee también objetos gráficos como perillas y deslizadores. existen bibliotecas de objetos y extensiones para utilizar Pure Data en aplicaciones de audio. como Android. como cálculos. etc. [3] Wikipedia. modelado físico. Se presentaron las posibilidades y ventajas de la configuración de un sistema GNU/Linux en tiempo real. páginas web.info/ [7] http://crca. En la Figura 5 se puede apreciar el interior de un módulo de paneo equipotencial. robótica. punteros y/o texto. Utilizando la extensión .com/ 7 Figura 5: captura de pantalla de un programa de paneo equipotencial escrito en el lenguaje gráfico Pure Data. [2] González Ferreira Gabriel N. “Software Libre y producción musical”. Primeras Jornadas Regionales de Acústica AdAA 2009. http://rt. Http://en. http://www. Online encyclopedia.wiki.php/Main_Page [6] http://puredata. la robótica y la tecnología de la información con herramientas libres de alta estabilidad basadas en sistemas GNU/Linux en tiempo real. Otra de las características importantes del lenguaje es el encapsulamiento. siendo 1KHz para la de control y la de audio de acuerdo con los parámetros del hardware (por ej: 44. CONCLUSIONES Se realizó un relevamiento de los sistemas operativos libres de mayor popularidad y de las aplicaciones existentes para producción y procesamiento de audio en tiempo real con alta estabilidad. la posibilidad de creación de sub-patches o subrutinas que pueden ser invocadas en programas que los contienen. Noviembre 2009. iPhoneOS o Maemo. sea de audio o video. video.edu/~msp/ [8] http://www. así como también la instalación y uso de alternativas libres y gratuitas para la creación de música y aplicaciones de audio. Esto permite modificar la aplicación mientras se están procesando datos.org/wiki/Ingo_Molnár [4] http://semicorchux. Los objetos presentan entradas (inlets) y salidas (outlets) dependiendo de sus características. Volumen 1.) el cálculo de audio. ruteos. Los mensajes pueden contener números. De esta manera se logra una gran versatilidad y amplias posibilidades de aplicación. En la actualidad.org/index. mensajes y bangs.blogspot. Sitio web sobre Debian GNU/Linux aplicado a la producción musical. procesamiento de información e investigación científica no sólo dentro del campo del audio. Los bangs son impulsos transmitidos entre objetos que dan inicio o fin a procesos diversos de audio y/o control. Soundebian. En base a lo expuesto.ucsd. robótica. La diferencia entre estos “cables” es la tasa de muestreo de sus señales.ar/2009/10/comocompilar-nuestro-propio-kernel-rt-en-deb/. 73-78. REFERENCIAS [1] Segreto Esteban y González Ferreira Gabriel N. Existe un comando de teclado (Ctrl+E) que activa o desactiva el modo edición y otros diferentes que activan (Ctrl+/) o desactivan (Ctr+. extensibles a video. símbolos. El sistema se comunica con el hardware de audio y MIDI de manera nativa. 7. Los números son contenedores de enteros o puntos flotantes. números.

arduino.at/ [11] http://pdstatic.at/ [13] http://gem.at/Members/Geiger/ [14] http://at.ar/hans/cv.iem.html [15] http://www.pdf [12] http://gem.[9] http://puredata.hurleur.iem.com/ [10] http://iem.iem.arduino.or.cc/playground/Interfacing/ PD/ 8 .at/externals-HOWTO/pdexternals-HOWTO.cc/ [16] http://www.