2 stable releases
1.0.1 | May 31, 2025 |
---|---|
1.0.0 | May 29, 2025 |
#198 in Audio
265 downloads per month
150KB
2K
SLoC
đĩ 8BitBeats - 8-Bit Music Generator
đ Project Overview
8BitBeats is a terminal-based 8-bit music generator that allows you to create, customize, and replay chiptune-style music. Generate unique, reproducible tracks using a deterministic algorithm based on your inputs. Easily manage and replay tracks via track IDs.
đ¯ Features
- Random Music Generation: Generate unique 8-bit tracks with adjustable parameters.
- TUI Interface: Intuitive terminal UI for an engaging experience.
- Customizable Inputs:
- Scale (C, C#, D, ... B)
- Style (Pop, Rock, Jazz, etc.)
- BPM (Beats Per Minute)
- Length (duration in minutes)
- Optional seed for controlled randomness
- Reproducible Tracks:
- Each track is assigned a deterministic track ID
- Regenerate the same track by providing the same inputs or track ID
- Playback Controls:
- Play, Pause, Rewind, Skip, and Fast Forward
- Load tracks by ID and resume playback
- Keyboard Shortcuts:
- Navigate UI elements with arrow keys
- Play/Pause, [r] Rewind, [s] Skip, [g] Generate, [q] Quit, [?] Toggle Help
đ Installation
- Clone the repository:
git clone https://github.com/DerekCorniello/8BitBeats.git cd 8BitBeats
- Build the project:
cargo build --release
- Run the application:
cargo run --release
đšī¸ Usage
- Use the arrow keys to navigate between UI elements.
- Press [g] to generate a new track, [r] to rewind, [s] to skip, [p] to play/pause.
- Enter a track ID to replay a specific song.
- Press [?] to toggle the help menu.
- All controls are visible in the TUI help panel.
đž Reproducibility
- Every generated track is assigned a unique, deterministic ID based on your inputs (scale, style, bpm, length, seed).
- To replay a song, enter its track ID in the loader field and press Enter.
đ ī¸ Dependencies
See Cargo.toml
for a full list. Major dependencies include:
rodio
(audio playback)rand
(randomness)ratatui
,crossterm
(terminal UI)rust-music-theory
(music theory)crossbeam-channel
(threading)
đ License
This project is licensed under the MIT License. See LICENSE for details.
đ¤ Contributing
Pull requests, bug reports, and feature suggestions are welcome! Please open an issue or submit a PR on GitHub.
Connect with Me!
Dependencies
~10â42MB
~575K SLoC