title: Nyquist (lenguaje de programación)
text: # Nyquist (lenguaje de programación)
  
  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.
  
  # Nyquist (lenguaje de programación)
  ## 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í:
  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.
  
  # Nyquist (lenguaje de programación)
  ## 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:
  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.
  
  # Nyquist (lenguaje de programación)
  ## 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.
  
  # Nyquist (lenguaje de programación)
  ## Enlaces
  
  * Nyquist Software (en inglés)
  * Nyquist para Linux (en inglés)
  * Manual de Nyquist (en inglés)
  * Tutorial de Nyquist en Audacity (en inglés)
  * Tutorial de Nyquist/Audacity en español
  * Tutoriales e instrumentos
  * Datos: Q1788197