Aceradio/README.md
2026-03-04 18:55:12 +01:00

2.9 KiB

Music Generator GUI

A Qt-based graphical user interface for generating music using acestep.cpp.

Features

  • Song List Management: Add, edit, and remove songs with captions and optional lyrics
  • Playback Controls: Play, skip, and shuffle functionality
  • Settings Tab: Customize the JSON template for AceStep generation parameters
  • Progress Tracking: Visual progress bar during music generation
  • Seamless Playback: Automatically generates and plays the next song when current one finishes

Requirements

  • Qt 5 or Qt 6 (with Core, Gui, Widgets, and Multimedia modules)
  • CMake 3.14+
  • acestep.cpp properly built with models downloaded

Building

Build acestep.cpp first:

cd acestep.cpp
git submodule update --init
mkdir build && cd build
cmake .. -DGGML_BLAS=ON  # or other backend options
cmake --build . --config Release -j$(nproc)
./models.sh  # Download models (requires ~7.7 GB free space)

Build the GUI application:

cd ..
mkdir build && cd build
cmake ..
cmake --build . --config Release -j$(nproc)

Usage

  1. Add Songs: Click "Add Song" to create new song entries with captions and optional lyrics
  2. Edit Songs: Select a song and click "Edit Song" to modify it
  3. Remove Songs: Select a song and click "Remove Song" to delete it
  4. Play Music: Click "Play" to start generating and playing music from the selected song or first song in the list
  5. Skip Songs: Click "Skip" to move to the next song immediately
  6. Shuffle Mode: Toggle "Shuffle" to play songs in random order
  7. Settings: Click "Settings" in the menu bar to edit the JSON template for generation parameters

Settings (JSON Template)

The JSON template allows you to customize AceStep generation parameters:

{
    "inference_steps": 8,
    "shift": 3.0,
    "vocal_language": "en",
    "lm_temperature": 0.85,
    "lm_cfg_scale": 2.0,
    "lm_top_p": 0.9
}

Available fields:

  • caption (required, will be overridden by song entry)
  • lyrics (optional, can be empty to let LLM generate)
  • instrumental (boolean)
  • bpm (integer)
  • duration (float in seconds)
  • keyscale (string like "C major")
  • timesignature (string like "4/4")
  • vocal_language (string like "en", "fr", etc.)
  • seed (integer for reproducibility)
  • lm_temperature, lm_cfg_scale, lm_top_p, lm_top_k (LM generation parameters)
  • lm_negative_prompt (string)
  • audio_codes (string, for advanced users)
  • inference_steps (integer)
  • guidance_scale (float)
  • shift (float)

Notes

  • The first time you generate a song, it may take several minutes as the models load into memory
  • Generated WAV files are created in your system's temporary directory and played immediately
  • Shuffle mode uses simple random selection without replacement within a playback session
  • Skip button works even during generation - it will wait for current generation to finish then play next song