Sound As Pure Form: Music Language Inspired by Supercollider, APL, and Forth

https://news.ycombinator.com/rss Hits: 10
Summary

WHAT This program is called: "A tool for exploring sound as pure form." or "sound as pure form" or "sapf" It is an interpreter for a language for creating and transforming sound. The language is mostly functional, stack based and uses postfix notation similar to FORTH. It represents audio and control events using lazy, possibly infinite sequences. It intends to do for lazy sequences what APL does for arrays: provide very high level functions with pervasive automatic mapping, scanning, and reduction operators. This makes for a language where short programs can achieve results out of proportion to their size. Because nearly all of the programmer accessible data types are immutable, the language can easily run multiple threads without deadlock or corruption. WHY Other languages that inspired this one: APL, Joy[1], Haskell, Piccola[2], Nyquist[3], SuperCollider[4]. APL and FORTH (from which Joy derives) are both widely derided for being write-only languages. Nevertheless, there has yet to be a language of such concise expressive power as APL or its descendants. APL is powerful not because of its bizarre symbols or syntax, but due to the way it automatically maps operations over arrays and allows iterations at depth within arrays. This means one almost never needs to write a loop or think about operations one-at-a-time. Instead one can think about operations on whole structures. Here is a great quote from Alan Perlis[5] on APL, which that also reflects my interest in this way of programming : "What attracted me, then, to APL was a feeling that perhaps through APL one might begin to acquire some of the dimensions in programming that we revere in natural language — some of the pleasures of composition; of saying things elegantly; of being brief, poetic, artistic, that makes our natural languages so precious to us." The Joy language introduced concatenative functional programming. This generally means a stack based virtual machine, and a program consisting of words which ar...

First seen: 2025-06-22 03:44

Last seen: 2025-06-22 12:53