4 ms·
As a specialised music-programming language and audio server, Supercollider outclasses Smalltalk — and most, if not all, other music computing systems. As a hig
by escales 6y ago
As a specialised music-programming language and audio server, Supercollider outclasses Smalltalk — and most, if not all, other music computing systems. As a high-productivity general-purpose programming language, Smalltalk is considerably more sophisticated and capable.
Supercollider has two distinct components – a backend software synthesizer (audio server) and a frontend combining an IDE and an interpreted language which draws strongly on Smalltalk, but is written in a C-like syntax. The front and back ends (typically, but not always, running on the same machine) communicate using the lightweight OSC protocol. It is perfectly possible to use Smalltalk or indeed any other language as an alternative front end to Supercollider audio synthesis engine.
The Supercollider language (sclang) mirrors Smalltalk very closely in some respects, but also has major differences. As in Smalltalk, Supercollider has a metaclass structure and closures which are used to implement control structures. Supercollider makes extensive use of continuations to flexibly sequence musical materials, but is file-based rather than image-based. Smalltalk has far more sophisticated support for refactoring, debugging and programming. For example, it is possible to inspect, manipulate and restart using live objects in the stack after any exception. Smalltalk has a much simpler syntax, a rich IDE, and a wide variety of specialised tools for browsing, refactoring and inspection. In Smalltalk, the complete source code for the whole system is available at all times. Smalltalk has powerful and well documented tools for reflection and modifying the system or changing the model of computation (such as selectively modifying the doNotUnderstand method - though in fairness this is also technically possible in Supercollider). More generally, Smalltalk parsimoniously exploits a small number of principles with ruthless consistency and clarity, making it relatively easy to learn, understand, and if desired modify, any part of the system. Supercollider has a different aim, to provide the maximum power and flexibility for carrying out music purposes to the highest quality. This sometimes leads to trade-offs between clarity and power, and some frameworks whose details are hard to understand. In their contrasting ways, both are outstandingly engineered, seminal languages.
- mlang23 6y agoWow, thanks for such a detailed answer. I was actually only refering to sclang. I am well aware that the rest (scsynth, and OSC communication) is very much related to audio synthesis. What you tell about SmallTalk somehow reminds me of Common Lisp or even the stories you hear about Lisp Machines. THanks again for taking the time to write up such a verbose reply, I really appreciate that.