A JavaScript toolkit for building browser-based synthesizers with WebAudio API, featuring MIDI controller support and a batteries-included approach.
Beep.js is a JavaScript toolkit for building browser-based synthesizers using the WebAudio API. It provides a structured way to create musical notes, voices, triggers, and instruments, enabling interactive audio experiences directly in the browser. The toolkit simplifies audio programming with a batteries-included approach, allowing developers to start making sound with minimal code.
Web developers and hobbyists interested in browser-based audio synthesis, music programming, or creating interactive sound applications without deep audio engineering knowledge.
Developers choose Beep.js for its immediate usability—creating a synthesizer with one line of code—combined with extensive customization options for notes, voices, and triggers. Its built-in MIDI controller support and score playback features make it a versatile tool for prototyping and building musical interfaces.
Beep is a JavaScript toolkit for building browser-based synthesizers.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
One line of code like `synth = new Beep.Instrument()` creates a playable synthesizer with DOM elements and event listeners, enabling rapid prototyping.
Supports MIDI controller keyboards via the Web MIDI API in Chrome, allowing real-time input from external devices with minimal setup.
Notes can be defined with properties like frequency, MIDI number, and octave, and support tunings such as just intonation and equal temperament through the Note class.
Allows deep customization of voices through oscillator types and gain settings, as shown in the Trigger section with examples of multiple voices per note.
Includes score composition and playback capabilities using arrays of delays, trigger IDs, and durations, enabling melody and harmony creation without external tools.
MIDI functionality is Chrome-specific (requires Chrome 42+ with manual enablement in older versions), and Web Audio API compatibility may vary across browsers.
The README admits it only supports western tunings, with no mention of non-western scales, limiting its use for global or experimental music projects.
The project notes that naming conventions could use tightening and more explanation is needed, indicating potential instability or incomplete features.
Focuses on oscillators and gain nodes but lacks built-in audio effects (e.g., filters, delay), requiring additional work for complex sound design.