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.
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í:
O una definición de una función genérica, que sume dos pares de números
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.
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:
o también
Un ejemplo de función sencilla definida para tocar, n notas al azar entre c4 y c5, es esta:
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.
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.
Escribe un comentario o lo que quieras sobre Nyquist (lenguaje de programación) (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)