Генераторы единиц (или ugens) являются основными формальными единицами во многих MUSIC-N -style языки программирования компьютерной музыки. Иногда их называют кодами операций (особенно в Csound ), хотя это выражение неточно, поскольку это не инструкции машинного уровня.
Генераторы блоков образуют строительные блоки для разработки программных алгоритмов синтеза и обработки сигналов . Например, простой единичный генератор под названием OSC может генерировать синусоидальную форму волны определенной частоты (заданной как вход или аргумент функции или класс, представляющий единичный генератор). ENV может быть модулем-генератором, определяющим функцию точки останова. Таким образом, ENV можно использовать для управления амплитудой огибающей генератора OSC с помощью уравнения OSC * ENV. Генераторы единиц часто используют предопределенные массивы значений для своих функций (которые заполняются сигналами или другими формами путем вызова определенной функции генератора).
Теория звукового синтеза с единичным генератором была впервые разработана и реализована Максом Мэтьюзом и его коллегами из Bell Labs в 1950-х годах.
В языке SuperCollider метод.ar в классе SinOsc представляет собой UGen, который генерирует синусоидальную волну .. В приведенном ниже примере создается синусоида с частотой 440, фазой 0 и амплитудой 0,5.
SinOsc.ar (440, 0, 0.5);