2.9 KiB
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
- Add Songs: Click "Add Song" to create new song entries with captions and optional lyrics
- Edit Songs: Select a song and click "Edit Song" to modify it
- Remove Songs: Select a song and click "Remove Song" to delete it
- Play Music: Click "Play" to start generating and playing music from the selected song or first song in the list
- Skip Songs: Click "Skip" to move to the next song immediately
- Shuffle Mode: Toggle "Shuffle" to play songs in random order
- 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