Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

DerekCorniello/8BitBeats

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
67 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 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
    • [p] Play/Pause, [r] Rewind, [s] Skip, [g] Generate, [q] Quit, [?] Toggle Help

🚀 Installation

  1. Clone the repository:
    git clone https://github.com/DerekCorniello/8BitBeats.git
    cd 8BitBeats
  2. Build the project:
    cargo build --release
  3. 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!

LinkedIn GitHub X

About

8BitBeats is a terminal-based 8-bit music generator that allows users to create, customize, and replay chiptune-style music.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.