Nyquist (lenguaje de programación)

Nyquist (lenguaje de programación)
Para otros usos de este término, véase Nyquist.

Nyquist es un lenguaje de programación para composición y síntesis de sonido. Desciende del lenguaje Fuge, creado por Chris Fraley. Uno de los desarrolladores posteriores de Fugue , Roger Dannenberg, implementó Nyquist como extensión sonora, del intérprente de Xlisp de David Michael Betz.

Como dialecto de Lisp, incluye todas las bendiciones y dificultades de la programación funcional. Siendo una característica relevante, que incluye el control del tiempo en la semántica misma del lenguaje. Además, es extensible mediante la programación orientada a objeto, implementeada en Xlisp.

Actualmente funciona en las plataformas de Unix/linux, MacOS y Windows.

Contenido

Rudimentos de Xlisp

Xlisp es una variante eXperimental de common lisp. El autor se propuso añadir la potencia de la programación orientada a objetos, en el entorno lisp, corriendo en una máquina pequeña. Excepto en algunos detalles sintácticos, lo aprendido en Xlisp, puede extenderse a Common Lisp.

El entorno de Nyquist, es en concreto un intérprete de xlisp, ya que aquel es una extensión de este. Una simple suma de variables, típica de los tutoriales de cualquier lenguaje de programación, quedariá así:

   >;esto es una etiqueta no tenida en cuenta
   >(setf a 5)
   5
   >(setf b 3)
   3
   >(+ a b)
   8

O una definición de una función genérica, que sume dos pares de números

   >(defun suma-par (a b) (+ a b))
   SUMA-PAR
   >(suma-par 5 3)
   8

En general, la programación en Lisp, y en concreto en Nyquist, es muy intuitiva, y permite muchos grados de abstracción, propiciando proyectos de cierta complejidad en programas sencillos y legibles. Si bien no puede obviarse, la dificutad visual del manejo de paréntesis.

Proceso de sonido y composición

Dentro de Nyquist, los procesos y sonidos son usados en contexto de listas de lisp. Por ejemplo, para hacer sonar un oscilador con la frecuencia de la nota c4, no hay más que escribir:

   >(play (osc c4))

o también

   >(setf mi-sonido (osc c4))
   MI-SONIDO
   >(play mi-sonido)

Un ejemplo de función sencilla definida para tocar, n notas al azar entre c4 y c5, es esta:

   ;definimos la función n-notas
   (defun n-notas (n)
      (seqrep (i n)
           (osc (+ 60 (random 12)))))
   ;llamamos a la función para que toque 10 notas
   (play (n-notas 10))

Sin embargo el grado de complejidad no se queda evidentemente aquí, sino que recorre desde el proceso de sonido en bajo nivel, hasta el uso de distintas primitivas específicas de síntesis sonora. La plasticidad de lisp, lo hace un entorno especialmente versátil.

Nyquist en Audacity

Audacity es un editor de sonidos tan ligero como potente. Entre sus opciones está precisamente, la posibilidad de programar en una versión especial del lenguaje Nyquist. Para comprobarlo, vaya al menú efecto, tras crear una pista de audio y seleccionar una porción de tiempo. Allí seleccione "Comando Nyquist...", lo cual le permitirá programar en Nyquist, dentro del entorno de Audacity. (Para probar los ejemplos anteriores, omita la función play)

Otra característica muy interesante de la relación Nyquist-Audacity es la posibilidad de desarrollar plugins con interfaz visual, de manera rápida y sencilla.

Enlaces


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Nyquist — es un lenguaje de programación para composición y síntesis de sonido. Desciende del lenguaje Fuge, creado por Chris Fraley. Uno de los desarrolladores posteriores de Fugue , Roger Dannenberg, implementó Nyquist como extensión sonora, del… …   Enciclopedia Universal

  • Nyquist — puede hacer referencia a: Harry Nyquist, un físico de nacionalidad estadounidense que contribuyó enormemente a la teoría de la información. Christian Nyquist, un instrumentista estadounidense. Jeffrey Nyquist, escritor Ruido de Johnson Nyquist… …   Wikipedia Español

  • Lisp — Información general Paradigma multiparadigma: orientado a objetos, funcional, declarativo Apareció en 1958 Diseñado por John McCarthy …   Wikipedia Español

  • VisSim — [[Archivo: |220px]] Desarrollador(es) http://www.vissim.com Información general …   Wikipedia Español

  • Adquisición de datos — La adquisición de datos o adquisición de señales, consiste en la toma de muestras del mundo real (sistema analógico) para generar datos que puedan ser manipulados por un ordenador u otras electrónicas (sistema digital). Consiste, en tomar un… …   Wikipedia Español

  • Procesador digital de señal — Saltar a navegación, búsqueda Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hardware y un software optimizados… …   Wikipedia Español

  • ISDB-T — Sistemas de televisión digital terreste. Los países que usan ISDB se muestran en verde. ISDB (Integrated Services Digital Broadcasting) o Transmisión Digital de Servicios Integrados es un conjunto de normas creado por Japón para las transmisiones …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”