home/ atoms/ sc-dialect-constraint-system

Building constrained sub-languages inside SuperCollider creates composition environments with intentional expressive limits

Chapter 23 explores creating musical dialects — restricted languages or systems within SC. Examples include: VagueList (a list with vague/probabilistic indexing), parameter coupling functions that prevent independent control of related parameters, and emulations of historical machines (ENIAC, POKEY chip). The key insight is that constraints and dependencies between parameters define a musical character: coupling pulse-width to frequency, or using only 8 discrete amplitude levels, shapes the vocabulary of possible sounds. SC’s extensibility (custom Classes, UGen wrappers, overriding methods) makes it a platform for language-within-language design.

Examples

{ var f = { |a, b| [a.min(1 - b), b.min(1 - a)] }; var freq = f.value(MouseX.kr, MouseY.kr) * 400 + 500; SinOsc.ar(freq) * 0.1 }.play // coupled constraint: a+b never exceeds 1

Assessment

Design a restricted SC environment where all pitches are drawn from a fixed set of 7 just-intonation ratios and all durations are multiples of a single cell duration. Implement it as a class with a play method. Describe what new musical possibilities the constraint opens.

“// Figure 23.2: Two ways of constraining parameters ( { var f = { | a, b | [a.min(1 - b), b.min(1 - a)] }; var freq = f.value(MouseX.kr, MouseY.kr) * 400 + 500;”
corpus · the-supercollider-book-official-code-examples-scbookcode-gpl · chunk 99