Skip to main content

bellplay~

a symbolic framework for algorithmic audio in bell

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:

  1. Generate sounds through synthesis or sampling.
  2. Transcribe buffers to arrange them in time with precise control over timing, gain, panning, and more.
  3. 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:

grains.bell
## 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.

Made with bellplay~