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

Política de la lista de anuncios

Programar en Nyquist

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

Lo que distingue a Nyquist de Lisp es que fue diseñado para funcionar con audio, y tiene muchas primitivas y funciones integradas que sintetizan, analizan y manipulan sonido. En Audacity, esto hace que sea relativamente fácil crear efectos complejos con la paleta de funciones integrada de Nyquist.

En Nyquist una variable puede contener un sonido como si se tratase de un número o una cadena. Existen un amplio número de funciones que permiten ajustar, distorsionar y combinar sonidos de forma muy eficiente. Incluso es posible recortar un sonido y acceder individualmente a sus muestras, aunque esta cuestión excede de los objetivos del tutorial.

Para probar una expresión Nyquist en Audacity se puede utilizar la opción "Comando Nyquist" en el menú Efecto. Cualquier audio que estuviese seleccionado se insertará en la variable s, y la selección será reemplazada con el resultado de la expresión Nyquist que se introduzca. En la tercera parte puede encontrar más información sobe cómo crear un complemento de efecto utilizando Nyquist.

Sintetizar

Las funciones siguientes generan nuevos sonidos. Se pueden utilizar para crear complementos del tipo "Generar", aunque también se pueden combinar estos sonidos sintetizados con partes de audio ya existentes para producir efectos curiosos.

(noise)Genera ruido blanco
(const value [duration])Genera una señal constante (silencio)
(sine pitch [duration])Genera una onda sinusoidal en un tono y duración determinados.
El tono es un número de nota MIDI, con 60 para Do.
(hzosc hz)Genera una onda sinusoidal en una determinada frecuencia en Hz.
(osc-saw hz)Genera una onda de diente de sierra en una determinada frecuencia en Hz.
(osc-tri hz)Genera una onda de triángulo en una determinada frecuencia en Hz.
(osc-pulse hz bias)
(pluck pitch)

Envolventes

Nyquist tiene capacidad para trabajar con envolventes. Aplicando una envolvente a un sonido se puede controlar el comportamiento general de su amplitud. Una de las formas más simples de construir una envolvente es mediante la función env, que toma 7 valores que se suelen emplear en el diseño de notas musicales sintetizadas: Tiempo de ataque, tiempo de decaimiento, tiempo de liberación, nivel de ataque, nivel de decaimiento, nivel de sostenimiento y duración total.Veáse la figura:

Diagrama envolvente de Nyquist.

Para aplicar una envolvente a un sonido, sólo tiene que usar la función mult. De esta forma, si s es un sonido, este es el mismo sonido con una envolvente simple aplicada al mismo:

  (mult s (env 0.1 0.1 0.2 1.0 0.5 0.3 1.0))

Uno de los tipos más comunes de envolvente es una función lineal que puede ser construida con la función pwl. La función pwl utiliza una lista de parámetros que forman pares (tiempo, valor). Hay un par inicial implícito de (0,0) y otro valor final implícito de 0. Siempre debe haber un número singular de parámetros ya que el tiempo final no está implícito. Por ejemplo:

  ; symmetric rise to 0.7 (at time 1) and fall back to 0 (at time 2):
  (pwl 1.0 0.7 2.0)

Combinar sonidos

Junto a la posibilidad de multiplicar dos sonidos con la función mult se puede añadir dos sonidos o envolventes con la función add.

Filtros

Nyquist incluye algunos filtros ya implementados. Estos son algunos de los más comunes:

(lp sound cutoff)
(hp sound cutoff)Filtro de paso alto (Butterworth de primer orden): El recorte puede ser un valor de coma flotante o una señal (para filtrado de tiempo variable) e indica hertzios.
(comb sound hz decay)Aplica una combinación de filtros al sonido que enfatizan (con resonancias) frecuencias que son multiplos de un hertzio.
(alpass sound decay hz)Filtro de paso completo, creando un efecto de retardo sin las resonancias de un filtro combinado.
(notch2 sound hz)

Transformar y combinar sonidos.

Explicar todas las formas en que se puede transformar sonido con Nyquist excede los objetivos de este tutorial. Estas funciones no modifican los sonidos directamente, sino que varían el entorno de Nyquist. Para que esos cambios afecten a los sonidos se debe utilizar la función cue.

(stretch factor (cue sound))Modifica la longitud del sonido según el factor indicado.
(scale factor (cue sound))Modifica la amplitud del sonido según el factor indicado.
(loud dB (cue sound))Incrementa o reduce el volumen de un sonido según el número de decibelios.
(at t (cue sound))Inicia el sonido indicado en un instante determinado en segundos. Esto no sirve para añadir silencios al principio o al final, pero si se puede usar cuendo se combinan dos o más sonidos.
(seq (cue s1) (cue s2))Crea una secuencia del sonido s1 seguidos de s2.
(sim (cue s1) (cue s2))Combina dos sonidos para que puedan reproducirse simultáneamente.

Creación de complementos Nyquist