Inital commit
This commit is contained in:
commit
d9190ed756
12 changed files with 1198 additions and 0 deletions
88
README.md
Normal file
88
README.md
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# 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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
Loading…
Add table
Add a link
Reference in a new issue