Los generadores de unidades (o ugens ) son las unidades formales básicas en muchos lenguajes de programación de música por computadora al estilo MUSIC-N . A veces se les llama códigos de operación (particularmente en Csound ), aunque esta expresión no es precisa porque no son instrucciones a nivel de máquina.
Los generadores de unidades forman los componentes básicos para diseñar algoritmos de procesamiento de señales y síntesis en software. Por ejemplo, un generador de unidades simple llamado OSC podría generar una forma de onda sinusoidal de una frecuencia específica (dada como entrada o argumento a la función o clase que representa el generador de unidades). ENV podría ser un generador de unidades que delinee una función de punto de interrupción. Por lo tanto, ENV podría usarse para impulsar la envolvente de amplitud del oscilador OSC a través de la ecuación OSC * ENV. Los generadores de unidades a menudo usan matrices predefinidas de valores para sus funciones (que están llenas de formas de onda u otras formas llamando a una función generadora específica).
La teoría del generador de unidades de síntesis de sonido fue desarrollada e implementada por primera vez por Max Mathews y sus colegas en Bell Labs en la década de 1950.
Ejemplo de código
En el lenguaje SuperCollider , el método .ar en la clase SinOsc es un UGen que genera una onda sinusoidal . El siguiente ejemplo crea una onda sinusoidal a una frecuencia de 440, fase 0 y amplitud de 0,5.
SinOsc.ar (440, 0, 0,5);