What's bellplay~?
bellplay~ is a standalone application for algorithmic audio composition and sound design. It's designed to enable fast prototyping of sounds through code, combining a wide range tools for synthesis, sampling, analysis, processing and more, in a unified workflow.
At its core, bellplay~ works with buffers—structured containers of audio data and metadata. The workflow is straightforward:
- Generate sounds through synthesis or sampling.
- Transcribe buffers to arrange them in time with precise control over timing, gain, panning, and more.
- Render the buffers into a final audio output.
A simple example
Here's how you can create a granular texture with just a few lines of bell code:

## create short buffer with triangle wave
$grain = tri(@frequency 440 @duration 100);
## scatter 100 grains randomly
for $n in 0...99 do transcribe(
@buffer $grain ## buffer to transcribe
@onset $n * 60 ## every 60ms
@gain rand(0.1, 0.25) ## random gain
@detune choose(0 2 4 5 7 9 11) * 100 ## random detuning in cents
@pan rand() ## random position
);
## render final output and apply reverb
render(@play 1 @process freeverb())
Features
Script-based environment
A simple framework for algorithmic audio generation via bell scripts.
Audio and symbolic music integration
Combine music notation and audio in a unified working environment.
Music information retrieval
Extract audio features to guide processing and synthesis tasks.
Machine learning tools
Use machine learning tools to power your scripts.
