10. Buffer Processing
One of the core features of bellplay~ is the ability to dynamically and flexibly apply chains of DSP algorithms to our buffers.
One of the core features of bellplay~ is the ability to dynamically and flexibly apply chains of DSP algorithms to our buffers.
This example demonstrates how to align the envelopes of different audio samples based on their peak amplitude times.
Sometimes it can be more useful or desirable to apply processing to the entire output, instead of processing each buffer individually.
This example synthesizes a Shepard-Risset glissando using bellplay~.
This tutorial demonstrates a very simple but consequential feature in bellplay~ — namely, the ability to reuse rendered buffers multiple times to further refine and sculpt the final output into complex and intricate sounds.
bellplay~ supports importing MIDI files (.mid or .midi) into our scripts, each described as a list of events.
This tutorial shows how to build k-dimensional trees to efficiently perform feature-based search on buffers.
This example demonstrates how to use BPFs to continuously change the pitch of different oscillators.
An example of using time-varying resampling to generate a polyphonic texture.
An example of JI-based retuning of MIDI events.
Randomness is frequently used in algorithmic music to introduce variation and unpredictability. However, in many compositional workflows, reproducibility is just as important. In bellplay\~, there are two types of random functions: