- Real-time bytebeat playback with play/pause and tempo control
- Modular audio effects system (FFT, extensible plugins)
- Customizable UI themes (Dracula, Gruvbox, Solarized, etc.)
- Built-in library system for sharing and discovering tracks
- Fully client-side — no server required for basic usage
- Lightweight and fast, designed for experimentation and creativity
ℹ️ All submissions must be sent as a pull request to this repository. Any submission placed on this repository will be ignored and immediately closed.
Due to GitHub Pages issues, all hardcoded/static URLs in the code must be changed to relative paths. This issue will be fixed soon.
WavePlay supports contributions in three categories:
Create a JSON file describing your collection:
{
"name": "My Bytebeat Library",
"description": "A collection of experimental bytebeat tracks.",
"tracks": [
{
"name": "Beat #1",
"author": "you",
"links": [
{
"name": "Original",
"url": "?d=WAVEPLAY_ENCODED_DATA"
}
]
}
]
}- Upload your JSON file to a GitHub repository
- Open a pull request to the WavePlay repository
- Include the full raw URL to your JSON file
⚠️ Once merged, libraries are immutable due to hash verification. Changes require a new submission.
Effects extend WavePlay’s visual/audio pipeline.
- Clone the repo and run WavePlay locally
- Create a new file in
js/effects
export class NameEffect {
constructor(canvas, { getProperty } = {}) {}
resize(width, height) {}
init() {}
onThemeUpdate() {}
update() {
const fft = this.getProperty?.("fftData");
}
destroy() {}
}Open a pull request with your new effect file.
Themes control the visual styling of WavePlay.
- Clone and run the project locally
- Create a new file in
js/themes
export const NameTheme = {
"--color-0": "#282a36",
"--color-1": "#44475a",
"--color-2": "#6272a4",
"--color-3": "#f8f8f2",
"--color-4": "#6272a4",
"--color-5": "#8be9fd",
"--color-8": "#bd93f9",
"--color-9": "#ff79c6",
"--color-11": "#ff5555",
"--color-14": "#50fa7b",
"--color-15": "#1f232a",
"--font-stack": `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,
"--transition-smooth": "all 0.25s cubic-bezier(0.4, 0, 0.2, 1)"
};Submit a pull request with your theme file.
- Keep changes focused and modular
- Follow existing code style and structure
- Test locally before submitting a PR
- Provide clear descriptions for changes
WavePlay is a community driven project focused on shared creativity through bytebeat, effects, and themes.
Its purpose is to grow a rich, evolving ecosystem of user contributed content. The community is the core of the project, everything exists to make contributing, sharing, and exploring new creations as seamless as possible.
WavePlay's source code is free for personal and commercial use under the MIT License. You can use, modify, and integrate it into your engine or tools. Forking and contribution is heavily encouraged!
