Unit generator

Revision as of 22:13, 19 February 2025 by imported>WikiCleanerBot (v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation))
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Unit generators (or ugens) are the basic formal units in many MUSIC-N-style computer music programming languages.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> They are sometimes called opcodes (particularly in Csound),<ref>Template:Cite journal</ref> though this expression is not considered accurate in that these are not written directly as machine-level instructions.Template:Cn

Unit generators form the building blocks for designing synthesis and signal processing algorithms in software.<ref name=supercollider-ugen>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> The unit generator theory of sound synthesis was first developed and implemented by Max Mathews<ref>Template:Cite journal</ref> and his colleagues at Bell Labs in the 1950s.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

ExamplesEdit

A simple unit generator called OSC could generate a sinusoidal waveform of a specific frequency (given as an input or argument to the function or class that represents the unit generator). ENV could be a unit generator that delineates a breakpoint function. Thus ENV could be used to drive the amplitude envelope of the oscillator OSC through the equation OSC*ENV. Unit generators often use predefined arrays of values for their functions (which are filled with waveforms or other shapes by calling a specific generator function).

In the SuperCollider language, the .ar method in the SinOsc class<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> inherits methods from an overarching unit generator class (UGen)<ref name=supercollider-ugen /> that generates a sine wave. The example below makes a sine wave at frequency 440, phase 0, and amplitude 0.5.

SinOsc.ar(440, 0, 0.5);

See alsoEdit

ReferencesEdit

Template:Reflist

Template:Music-software-stub