Skip to Main Content

We have described the presence or absence of certain traits related to these goals in established music languages in Table 1. In some cases we consider a specific subset or mode of a music language that is geared towards ugens and sample-level processing, such as ChucK Chugens (Salazar and Wang 2012), Csound user-defined opcodes (Lazzarini et al. 2016) and Max gen. The table is not intended to be exhaustive or indicative of the relative merit of various music languages, but rather their flavor of signal processing and capabilities relevant to the stated goal. Most of the included environments are open-source projects, with the exception of Max. This we included owing to its ubiquity. Reaktor, by Native Instruments, is another example of a commercial program offering programming capabilities, including sample-level signal processing.

Table 1.

Selected DSP Features in Music Languages

LanguageVisual interfaceUnit-delay feedbackMultirate DSPDiscrete eventsAlgorithmic circuitsOptimizing compiler
ChucK (Chugen)   ✓ ✓  
Csound (UDO)  **   ✓  
Faust  ✓    ✓ 
Max ✓  ✓   
Max (with gen✓ ✓    ✓ 
Nyquist   ✓ ✓ ✓  
Pure Data ✓  ✓   
PWGL ✓     
SuperCollider   ✓ ✓  
Veneer/Kronos ✓ ✓ ✓  ✓ ✓ 
xtlang  ✓  ✓ ✓  
LanguageVisual interfaceUnit-delay feedbackMultirate DSPDiscrete eventsAlgorithmic circuitsOptimizing compiler
ChucK (Chugen)   ✓ ✓  
Csound (UDO)  **   ✓  
Faust  ✓    ✓ 
Max ✓  ✓   
Max (with gen✓ ✓    ✓ 
Nyquist   ✓ ✓ ✓  
Pure Data ✓  ✓   
PWGL ✓     
SuperCollider   ✓ ✓  
Veneer/Kronos ✓ ✓ ✓  ✓ ✓ 
xtlang  ✓  ✓ ✓  

*Available when block size is set to 1, with significant performance degradation.

**Control rate must be set to audio rate for the user-defined opcode.

Experimental research feature.

Can receive events but not schedule new events.

Special construct for parallel expansion.

Just-in-Time only, optimization limited by hot-swapping design.

Close Modal

or Create an Account

Close Modal
Close Modal