ICLC 2025 Catalogue

Coypu - gnawing music on-the-fly with Pharo

Domenico Cipriani (Lucretio), Sebastian Jordan MontaƱo, Nahuel Palumbo

Was presented at:

Abstract

Coypu is a Pharo package for programming music on-the-fly acting as a client for an external audio generator server or for an internal DSP created with the Phausto library. Pharo is a fully open-source dynamic and reflective pure object-oriented language, based on Smalltalk-80, which includes an immersive integrated development environment.

Coypu was initially developed to pair with Symbolic Sound Kyma, as a full-stack Smalltalk sound-design and live-coding environment, it was soon extended to interact with OSC servers such as ChucK, PureData, and SuperCollider, and later expanded with MIDI capabilities. During the past year, we added an API to provide a quick connection to the SuperDirt audio engine, featuring a 'String-Oriented' syntax heavily inspired by Tidal Cycles for creating what we call Sequencers.

The primary purpose of developing Coypu is to provide a pure object-oriented language designed to cultivate creative coding literacy. We believe the Smalltalk-inspired approach to constructivist learning is a gateway for newcomers, and individuals with little or no programming experience. At the same time, being both reflective and modifiable, Coypu offers unlimited possibilities to advanced users.

It offers an engaging entry point not only to more concise and expressive functional and procedural programming languages but also to the world of computational systems, algorithms, and general purpose programming.