Articulo de referencia

Datos puros

Pure Data ( Pd ) es un lenguaje de programación visual desarrollado por Miller Puckette en la década de 1990 para la creación de música interactiva por ordenador y obras multime...

Pure Data ( Pd ) es un lenguaje de programación visual desarrollado por Miller Puckette en la década de 1990 para la creación de música interactiva por ordenador y obras multimedia . Si bien Puckette es el autor principal del programa, Pd es un proyecto de código abierto con una amplia comunidad de desarrolladores que trabajan en nuevas extensiones. Se distribuye bajo la licencia BSD-3-Clause y funciona en Linux , macOS , iOS , Android y Windows . Existen versiones para FreeBSD e IRIX .

Pd es muy similar en alcance y diseño al programa Max original de Puckette , desarrollado durante su estancia en IRCAM , y es, hasta cierto punto, interoperable con Max/MSP, el sucesor comercial del lenguaje Max. Se puede hablar de ellos en conjunto como miembros de la familia de lenguajes Patcher [ 2 ] .

Con la incorporación del entorno gráfico GEM (Graphics Environment for Multimedia ) externo, y otros externos diseñados para funcionar con él (como Pure Data Packet / PiDiP para Linux, Mac OS X ), framestein para Windows, GridFlow (como procesamiento de matrices n-dimensionales, para Linux, Mac OS X , Windows), es posible crear y manipular vídeo, gráficos OpenGL , imágenes, etc., en tiempo real con amplias posibilidades de interactividad con audio, sensores externos, etc.

Pd está diseñado para facilitar la colaboración en directo a través de redes o Internet, permitiendo que músicos conectados mediante LAN o incluso en distintas partes del mundo creen música juntos en tiempo real. Pd utiliza FUDI como protocolo de red.

Similitudes con Max

Pure Data y Max son ejemplos de lenguajes de programación de flujo de datos . Estos lenguajes modelan un programa como un grafo dirigido de los datos que fluyen entre las operaciones. En Pure Data y Max, las funciones u "objetos" se enlazan o "conectan" en un entorno gráfico que modela el flujo del control y el audio. Sin embargo, a diferencia de la versión original de Max, Pd siempre se diseñó para realizar el procesamiento de audio y de la frecuencia de control en la unidad central de procesamiento (CPU) del host, en lugar de descargar la síntesis de sonido y el procesamiento de señales a una tarjeta de procesador de señal digital (DSP) (como la Ariel ISPW que se usaba para Max/FTS). El código de Pd constituye la base de las extensiones MSP de David Zicarelli al lenguaje Max para realizar el procesamiento de audio por software. [ 3 ]

Al igual que Max, Pd cuenta con una base de código modular compuesta por objetos externos que sirven como bloques de construcción para los programas escritos en el software. Esto permite una extensibilidad ilimitada del programa mediante una API pública y anima a los desarrolladores a añadir sus propias rutinas de control y audio en C , o, con la ayuda de otros objetos externos, en Python , Scheme , Lua , Tcl y muchos otros lenguajes. Sin embargo, Pd también es un lenguaje de programación. Las unidades de código modulares y reutilizables escritas de forma nativa en Pd, denominadas "parches" o "abstracciones", se utilizan como programas independientes y se comparten libremente entre la comunidad de usuarios de Pd, sin necesidad de conocimientos de programación adicionales para utilizar Pd eficazmente.

Características del idioma

Objetos de Pure Data. Las cadenas de texto a la derecha de los cuadros son comentarios.

Al igual que Max, Pd es un lenguaje de programación de flujo de datos. Como ocurre con la mayoría del software DSP , existen dos velocidades principales de transmisión de datos: la frecuencia de muestreo (audio) , generalmente de 44 100 muestras por segundo, y la frecuencia de control, de 1 bloque cada 64 muestras. Los mensajes de control y las señales de audio suelen fluir desde la parte superior de la pantalla hacia la inferior entre los "objetos" conectados mediante entradas y salidas.

Pd admite cuatro tipos básicos de entidades de texto: mensajes, objetos, átomos y comentarios. Los átomos son la unidad de datos más básica en Pd y consisten en un número de coma flotante , un símbolo o un puntero a una estructura de datos (en Pd, todos los números se almacenan como números de coma flotante de 32 bits). Los mensajes se componen de uno o más átomos y proporcionan instrucciones a los objetos. Un tipo especial de mensaje con contenido nulo, llamado " bang" , se utiliza para iniciar eventos e insertar datos en el flujo, de forma similar a pulsar un botón.

Los objetos nativos de Pd abarcan desde operadores matemáticos , lógicos y de bits básicos , presentes en muchos lenguajes de programación, hasta funciones DSP generales y especializadas a velocidad de audio (designadas por el símbolo de tilde (~)), como osciladores de tabla de ondas , la transformada rápida de Fourier (fft~) y una variedad de filtros estándar . Los datos se pueden cargar desde un archivo, leer desde una tarjeta de audio, MIDI , mediante Open Sound Control (OSC) a través de una conexión FireWire , USB o de red, o generarse sobre la marcha y almacenarse en tablas, que luego se pueden leer y usar como señales de audio o datos de control.

Estructuras de datos

Una de las innovaciones clave de Pd con respecto a sus predecesores ha sido la introducción de estructuras de datos gráficas. Estas se pueden utilizar de muchas maneras, desde componer partituras musicales y secuenciar eventos, hasta crear elementos visuales que acompañen a los parches de Pd o incluso ampliar la interfaz gráfica de usuario de Pd .

Haciendo honor al nombre de Pd, las estructuras de datos permiten a los usuarios de Pd crear representaciones gráficas de datos musicales, tanto estáticas como dinámicas o animadas, de complejidad arbitraria. Al igual que las estructuras de C , las estructuras de Pd se componen de cualquier combinación de números de coma flotante, símbolos y datos de matrices que pueden usarse como parámetros para describir la apariencia visual de la estructura de datos o, a la inversa, para controlar mensajes y señales de audio en un parche de Pd. En palabras de Puckette:

Pd está diseñado para ofrecer un entorno extremadamente flexible para describir estructuras de datos y su representación gráfica. La idea principal es permitir al usuario visualizar cualquier tipo de datos, asociándolos a la pantalla como desee. Para ello, Pd introduce una estructura de datos gráfica, similar a las del lenguaje de programación C, pero con la posibilidad de añadir formas y colores a los datos, de modo que el usuario pueda visualizarlos y/o editarlos. Los datos pueden editarse desde cero, importarse desde archivos, generarse algorítmicamente o derivarse del análisis de sonidos u otros flujos de datos.

— Miller Puckette [ 4 ]

Partitura para "Soledad" de Hans-Christoph Steiner , creada utilizando las estructuras de datos de Pd.

Limitaciones de idioma

Aunque Pd es un lenguaje potente, presenta ciertas limitaciones en la implementación de conceptos orientados a objetos. [ 5 ] Por ejemplo, resulta muy difícil crear procesos masivamente paralelos, ya que instanciar y manipular grandes listas de objetos (generación, etc.) es imposible debido a la falta de una función constructora. Además, los arrays y otras entidades de Pd son susceptibles a colisiones de espacios de nombres, puesto que pasar el ID de instancia del parche supone un paso adicional y, en ocasiones, resulta difícil.

Proyectos que utilizan datos puros

Pure Data se ha utilizado como base para varios proyectos, como lenguaje de prototipado y motor de sonido. La interfaz de tabla llamada Reactable [ 6 ] y la aplicación abandonada para iPhone RjDj incorporan Pd como motor de sonido.

Pd ha sido utilizado para la creación de prototipos de audio para videojuegos por varios diseñadores de audio. Por ejemplo, EAPd es la versión interna de Pd que se utiliza en Electronic Arts (EA). También se ha integrado en EA Spore . [ 7 ]

Pd también se ha utilizado para actuaciones en red, en la Biblioteca de Recursos en Red para la Improvisación Colaborativa (NRCI). [ 8 ]

Ejemplos de código

  1. El primer parche imprime "hola mundo" en la pantalla.
  2. El segundo parche aplica reverberación a la señal entrante del canal 1 y luego la emite en los canales 1 y 2.
  3. El último parche, más complejo, filtra el ruido blanco a 9000  Hz (con un factor Q de 20) y luego lo hace aparecer y desaparecer gradualmente cada segundo durante medio segundo. En Pd, el tiempo se mide en milisegundos, por lo que el '1000' representa un segundo y el '500', medio segundo.

Véase también

Notas

  1. ^ a b "Software de Miller Puckette" . Miller Puckette . Consultado el 14 de enero de 2022 .
  2. ^ Puckette, M. (1988). El patcher. En Actas de la Conferencia Internacional de Música por Computadora.
  3. ^ "Preguntas frecuentes: Max 4 - Ciclismo '74" . Consultado el 5 de enero de 2017 .
  4. ^ Documentación de Pd Capítulo 2 — 2.9. Estructuras de datos
  5. ^ "Posibilidades#2: Capa de audio" . 2 de marzo de 2010. Consultado el 5 de enero de 2017 .
  6. ^ Jordá, Sergi; Kaltenbrunner, Martín; Geiger, Gunter; Bencina, Ross (2005). "ICMC2005: La ReacTable" (PDF) . Grupo de Tecnología Musical/IUA, Universitat Pompeu Fabra.
  7. ^ Kosak, Dave (20 de febrero de 2008). "Gamespy: El ritmo continúa: Música dinámica en Spore" . GameSpy . IGN Entertainment, Inc.
  8. ^ "Recursos en red para la improvisación colaborativa (NRCI)" . Centro de Investigación Informática en Música y Acústica . Departamento de Música, Universidad de Stanford.

Referencias

  • Danks, M. (1996). El entorno gráfico para max. En: Actas de la Conferencia Internacional de Música por Computadora, pp. 67–70. Asociación Internacional de Música por Computadora.
  • Danks, M. (1997). Procesamiento de imágenes y vídeo en tiempo real en Gem. En: Actas de la Conferencia Internacional de Música por Ordenador, pp. 220–223. Asociación Internacional de Música por Ordenador.
  • Puckette, MS (1996) Pure Data . Actas de la Conferencia Internacional de Música por Computadora. San Francisco: Asociación Internacional de Música por Computadora, págs. 269–272.
  • Puckette, MS (1997). Datos puros. En: Actas de la Conferencia Internacional de Música por Computadora, pp. 224–227. Asociación Internacional de Música por Computadora.

Lecturas adicionales

  • Puckette, Miller Smith (2007). Teoría y técnica de la música electrónica . World Scientific , Singapur. ISBN 978-981-270-541-9.
  • Kreidler, Johannes (2009). Loadbang: programación de música electrónica en datos puros . Wolke Verlag, Hofheim . ISBN 978-3-936000-57-3.
  • Pd~graz, ed. (2006). Haga clic en Datos puros . Wolke Verlag, Hofheim . ISBN 978-3-936000-37-5.
  • Farnell, Andy J (2010). Diseño de sonido . The MIT Press . ISBN 978-0-262-01441-0.
  • Brinkmann, Peter (2012). Creación de aplicaciones musicales: síntesis de audio en tiempo real en Android e iOS . O'Reilly Media . ISBN 978-1-4493-1490-3.
  • Barkl, Michael (2012). Composición: Datos puros como instrumento metacomposicional . ISBN 978-3-8383-1647-5.
  • Barkl, Michael (2018). Datos puros como instrumento metacomposicional: Composiciones Volumen 1. ISBN 978-3-659-88634-8.
  • Barkl, Michael (2018). Datos puros como instrumento metacomposicional: Composiciones Volumen 2. ISBN 978-3-659-96899-0.
  • Matsumura, Sei (2012). Libro de recetas de Pd ―Pure Dataではじめるサウンドプログラミング. ISBN 978-4-86100-780-4.
  • Habibdoost, Mansoor (2013). Método elemental Pd (en farsi): PDF y parches (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست) .
  • Sitio web oficialEdita esto en Wikidata
Obtenido de " https://en.wikipedia.org/w/index.php?title=Pure_Data&oldid=1333190285 "