A JavaScript toolkit for beatmaking and sequencing using Web Audio, inspired by the classic MPC workflow.
Bap is a JavaScript toolkit for creating beats and musical sequences directly in the browser using the Web Audio API. It emulates the modular, sample-based workflow of classic hardware samplers like the Akai MPC, enabling programmatic composition and audio manipulation. The toolkit provides a structured API for organizing sounds into kits, slots, and layers, and sequencing them with precise timing.
Web developers and musicians who want to programmatically generate and manipulate audio in the browser, especially those familiar with or interested in hardware sampler workflows like the MPC. It is suited for creating interactive music applications, beat-making tools, and audio experiments.
Developers choose Bap for its MPC-inspired workflow that brings hardware sampler modularity to code, offering precise timing (96 ticks per beat) and a comprehensive set of built-in audio effects. Its structured yet flexible API encourages experimentation and live coding, making it unique for browser-based beat production.
A toolkit for making beats and composing sequences with Javascript and Web Audio
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Organizes audio into kits, slots, and layers, emulating hardware sampler workflows for structured yet flexible sound design, as shown in the API where kits can have infinite slots with layers.
Uses a bar.beat.tick position system with 96 ticks per beat, enabling detailed sequencing and expressive note parameters like duration and pitch for accurate playback control.
Includes modular effects like reverb, delay, compressor, and filters that can be chained, providing comprehensive sound manipulation without external dependencies, as documented in the effect nodes API.
Supports oscillators and audio samples with features like slicing, looping, and bitcrushing, allowing for diverse sound creation directly from code, evidenced by sample and oscillator object parameters.
The README admits that creating effect nodes on-the-fly performs poorly in Firefox, causing clipping on initial pattern runs, limiting reliability for dynamic audio applications.
The hierarchical system of kits, slots, layers, and patterns requires significant learning, especially for developers unfamiliar with MPC workflows, making it less accessible for quick prototyping.
With relatively low GitHub stars and forks, community resources and third-party extensions are sparse, which can hinder troubleshooting and advanced usage compared to more popular audio libraries.