Instantly create unique, royalty-free, retro-style procedural music with the click of a button.
BeatRX is an interactive, browser-based application for creating unique, procedural music inspired by the iconic sounds of 8-bit soundtracks. It's both an endless inspiration machine and a hands-on creative tool, designed for anyone from musicians seeking a creative spark to developers needing royalty-free background music.
All music generated by this application is dedicated to the Public Domain (CC0), meaning you are free to use it in any of your projects, commercial or non-commercial, without attribution.
- 🎵 Random Mode: Let the algorithm be your co-creator! Instantly generate coherent melodies and chord progressions based on music theory. Choose between a repeating 16-step
Loopor a continuously evolvingSong. Hit "Randomize Melody" anytime for a fresh idea. - ✍️ Manual Mode: Take full control with a classic 16-step sequencer. Click the grid to compose your own melodies, harmonies, and arpeggios, all accompanied by a steady drum beat.
- 🎹 Piano Mode: Play the piano freely by using your keyboard :).
- 📈 WaveFX Mode: A dedicated laboratory for generating and visualizing pure waveforms. Experiment with Sine, Square, Sawtooth, and Triangle waves with precise frequency control (1Hz - 15000Hz) and real-time visualization.
- The generator isn't just random; it understands scales (like C Major, G Major) and common chord progressions (
I-IV-V7-I) to ensure the music it creates is always harmonious and melodic.
- Tempo Slider: Adjust the speed from a slow
60 BPMto an energetic140 BPM. - Waveform Selector: Shape your sound by choosing between classic synth waveforms:
Sine,Square,Sawtooth,Triangleand other shapes. - Volume Control: Adjust the master volume or mute the sound entirely.
- Watch your creation in real-time with an oscilloscope-style Waveform Visualizer that draws the sound waves as they're produced.
- Light & Dark Modes: Switch between classic light and dark themes for comfortable viewing in any environment.
- Branded Mode: A special high-contrast theme featuring a unique red/pink color palette for a bold visual experience.
- Added New Sounds: Introduced new palettes like Synthwave, Acid, and FM Bells.
- Added New Rhythms: Added an Arpeggiator toggle and a "Randomize Drums" button.
- Improved Chiptune: Notes are now longer and sustained for a more classic sound.
- Fixed: Resolved major stability issues and crashes when switching sounds.
- Misc: Slightly changed name.
- Added New Piano Mode: Introduced Piano Mode with it's visuals and controls.
- "Shrinked" main generator UI. Removed some useless labels.
- New WaveFX Mode: Added a dedicated mode for pure waveform generation and visualization.
- Frequency Fine-Tuning: Added precise -1/+1 Hz controls for the frequency slider in WaveFX mode.
- Branded Theme: Implemented a new "Branded" theme with a distinct red/pink color scheme.
- UI Improvements: Refactored header layout for better responsiveness and fixed button styling consistency.
- Musicians & Producers: Break through creative blocks with an endless stream of new melodic ideas and starting points for your next track.
- Game Developers: Quickly generate royalty-free, retro-style background music and loops for your games.
- Content Creators: Need some unique, worry-free background music for your videos or streams? Generate it here.
- Hobbyists & Tinkerers: Explore the fascinating intersection of code and music, and have fun creating cool tunes!
BeatRX is built with a modern web stack:
- React & TypeScript for the user interface.
- Tone.js for the powerful Web Audio engine and music theory tools.
- Tailwind CSS for fast and responsive styling.
- Vite as the development and build tool.
To run this project locally:
- Clone the repository:
git clone https://github.com/thecapibara/beat-rx.git
- Navigate to the project directory:
cd beat-rx - Install dependencies:
npm install
- Start the development server:
npm run dev
The source code for this project is licensed under the MIT License. You can find the full license text in the LICENSE file.
