Luc's work with SuperCollider often involves server side programming, either by creating synth definitions or directly writing his own Ugens. The Ugens he writes can be seen as recursive functions, which are basically called once per sample, with specific parameters and arguments. The idea behind WRECK is to create a small DSP language that can simplify the process of writing SuperCollider Ugens by abstracting some common functionalities and defining a compact syntax to describe them. Through the LLVM library, C++ files are then generated and externals can be compiled for the SuperCollider server, in the form of UGens.


In the process of tayloring WRECK to his own practice, it is interesting to observe how Luc "abstracts" his own approach to sound synthesis and composition, and how this is then formalized to an idyosincratic language that is closely related to the way he thinks, and creates, sound processes.

{function: contextual, keywords: [_, formalization, abstraction, wreck]}

A Small DSP Language

warning, may become loud very suddenly

---
meta: true
persons: [HHR, POZ, DP, JR]
keywords: [Sound Language, DSP Language, WRECK, Supercollider, functional language]
---

{hhr, 190424} what I find peculiar about this short demonstration is the complexity of the sound and the brevity of the code that produces it, with no direct link from reading the few lines of code to an (accurate) assumption about the sound that we are going to hear. This brevity somehow reminds me of James McCartney's new language 'sapf' (mentioned in initial conversations).


{function: comment, group: wreck}

Syntax for a process definition

as of 25 apr 2019

function body

proc mysin3(x) =

       sin(x) * 0.5, (x + 0.05)

name

argument

continuation function

(substitutes argument in the next iteration)