Audacity: El programa libre para la edición y grabación de audio

Política de la lista de anuncios

Creación de complementos Nyquist

  1. Introducción a Nyquist y a la programación en Lisp
  2. Programar en Nyquist
  3. Creación de complementos Nyquist

Crear un complemento para Audacity con Nyquist es tan simple como crear un archivo de texto con la extensión ".ny" e insertar algún tipo de código Nyquist en su interior, añadiendo también algunos comentarios para indicar el tipo de complemento. Para terminar se coloca el archivo en la carpeta plug-ins de Audacity. A continuación se puede ver un complemento de ejemplo:

  ;nyquist plug-in
  ;version 1
  ;type process
  ;name "Fade In"
  ;action "Fading In..."
  (mult (ramp) s)

La primera línea de un complemento Nyquist deben ser exactamente igual que las del ejemplo y la segunda línea debe indicar el número de versión. Los complementos de la versión 2 y 3 cuentan con más widgets, pero los de la versión 3 no funcionan en Audacity 1.3.3 o superior. La línea siguiente es el tipo de complemento, que se explicará más tarde. A continuación aparece el nombre del complemento, que es lo que se mostrará en la barra de menú, y luego la "acción", que es lo que mostrará Audacity mientras esté ocupado procesando el complemento. Puede haber algunas líneas opcionales más. Se asume que cualquier línea que no comience con un punto y coma (;) será una sentencia Nyquist y será ejecutada.

Audacity puede utilizar tres tipos de complementos que pueden ser implementados en Nysquist:

  ;type generate
  ;type process
  ;type analyze

Esto se corresponde con los tres menus que pueden contener complementos: Generar, Efecto y Analizar. Los complementos del menú Generar están pensados para generar un nuevo sonido desde cero, los de Efecto modifican algún audio ya existente y los de Analizar procesan el audio pero no lo modifican (excepto en que pueden añadir etiquetas).

Para los complemento de tipo Efecto y Analizar, Audacity establece el entorno de Nyquist para que el audio que se haya seleccionado por parte del usuario esté disponible en la variable s. Todas las expresiones el el archivo del complemento se ejecutan en orden y el valor que devuelve la última expresión sustituirá a la selección de Audacity. Si la última expresión no devuelve un audio, Audacity devolverá un error.

Cuadros de diálogos de parámetros

Audacity permite mostrar cuadros de diálogo para recoger parámetros indicados por el usuario para los complemento. Aquí se muestra un ejemplo de un complemento que despliega un cuadro de diálogo:

  ;nyquist plug-in
  ;version 1
  ;type process
  ;name "Delay..."
  ;action "Performing Delay Effect..."
  ;info "Demo effect for Nyquist by Roger Dannenberg.\nThis effect 
     creates a fixed number of echos."  ; (should be all on one line)
  ;control decay "Decay amount" int "dB" 6 0 24
  ;control delay "Delay time" real "seconds" 0.5 0.0 5.0
  ;control count "Number of echos" int "times" 5 1 30

  (defun delays (s decay delay count)
    (if (= count 0) (cue s)
	   (sim (cue s)
        (loud decay (at delay (delays s decay delay (- count 1)))))))
  (stretch-abs 1 (delays s (- 0 decay) delay count))

Si Audacity encuentra al menos una línea de "control" se abrirá un cuadro de diálogo para consultar al usuario los valores necesarios. Cada parámetro consiste en un cuadro de texto o una barra. Cuando el usuario haya introducido cada valor estos se almacenarán en una variable Nyquist con el nombre especificado en la línea de "control". A continuación se muestra un cuadro de diálogo del efecto Delay en un Audacity ejecutándose en Linux:

Complemento Nyquist

Observe que la linea "info" se muestra en la parte superior del cuadro de diálogo, y que el "\n" se convierte en una nueva línea. Los parámetros de la línea de "control" afectan a la apariencia y las limitaciones del parámetro. Cada línea de control debe consistir exactamente en los siguientes 8 elementos, en orden:

  1. La palabra "control"
  2. El nombre del control: es el nombre de la variable Nyquist que se establecerá cuando el usuario manipule el cuadro de diálogo.
  3. La etiqueta a la izquierda del control
  4. El tipo del valor: tanto int (entero ) o real.
  5. La etiqueta a la derecha del valor (usualmente las unidades como "Hz" o "dB").
  6. El valor inicial o predeterminado del parámetro
  7. El valor mínimo del parámetro
  8. El valor máximo del parámetro

Etiquetas devueltas

En lugar de devolver audio, un complemento Nyquist puede devolver una lista de etiquetas. Una lista de etiquetas es simplemente una lista de pares tiempo/etiqueta, por ejemplo:

  ((0.0 "start") (30.0 "middle") (60.0 "end"))

Cuando un complemento devuelve una lista de este modo, Audacity genera una nueva pista de etiquetas y añade cada etiqueta en su posición. Este tipo de complemento suelen ser del tipo "Analizar".

Nuevo: Desde la versión 1.3.1 de Audacity se puede devolver tanto el instante inicial como el final:

  ((0.0 25.0 "start") (30.0 45.0 "middle") (60.0 75.0 "end"))

Las etiquetas en Audacity 1.3 se pueden solapar; el instante final de una puede estar después del final de la siguiente.

Procesar pistas estéreo

Nysquist representa las pistas estéreo como una matriz de sonidos (no una lista). Muchas de las funciones Nyquist trabajan automáticamente con estas matrices, pero no todas, así que a veces será necesario dividir una matriz de sonido estéreo o crear una. Aquí hay algunas funciones útiles para estas tareas:

(arrayp s)devuelve verdadero si s es una matriz
(aref s 0)el primer elemento de la matriz s, el canal izquierdo
(aref s 1)el segundo elemento de la matriz s, el canal derecho
(setf s (make-array 2))convierte s en una nueva matriz de longitud 2
(setf (aref s 0) left)convierte left el primer elemento de la matriz s
(setf (aref s 1) right)convierte right el segundo elemento de la matriz s

Para mejorar el resultado, si la entrada del complemento Nyquist es estéreo, pero la salida es un sonido mono, Audacity se encargará de copiarlo automáticamente a los dos canales.

Dónde continuar

Audacity incluye algunos complemento de ejemplo que le puede servir para analizarlos o modificarlos como punto de partida. La mejor manejar de aprender Nyquist es probarlo. Si encuentra algún problema corrigiendo errores, puede descargar la versión independiente de Nysquist ( en el enlace de la primera parte).

Si tiene problemas para hacer funcionar Nyquist, contacte con nosotros.

Si está creando complementos de efectos con Nyquist y le gustaría compartirlos con otras personas o si quiere comentar detalles sobre como conseguir determinados efectos con Nyquist, envíe un mensaje a la sección de Nyquist del foro o únase a la lista de correo de audacity-nyquist.

No olvide consultar el Manual de referencia de Nyquist 2.37 para conocer en profundidad como funciona Lisp y Nyquist.