Generate royalty-free instrumental background music from a text prompt, loop it seamlessly to the length of the video, and put it on the video - or mix it under the speech made by Text to Speech.

The music is made on your own computer by ACE-Step 1.5 Turbo (MIT license) running on the audio.cpp runtime - nothing is sent to an online service. The More submenu is shown while a video is loaded, and ffmpeg is required (you are offered to download it when it is missing).
.wav file.The window is not modal, so the main window stays usable while it is open; only one background music window can be open at a time. Cancel while generating or adding stops the work; otherwise the button reads Close.
Each preset fills in a prompt and a tempo that were tried to give music without vocals that loops cleanly:
Preset prompts are in English, since they are input for the model. They all end with a phrase that keeps the music unobtrusive and instrumental, for example “unobtrusive underscore for someone talking, instrumental, no vocals, steady tempo”. Keep a similar ending in your own prompts. Vocals, singing, choir, rap, distorted guitar, heavy drums and dark or horror moods are always asked to be left out.
| Option | Description | Default |
|---|---|---|
| Preset | A starting point for the prompt and tempo; editing the prompt afterwards is kept | Cooking / baking |
| Prompt | Description of the music: genre, instruments, mood | (from the preset) |
| Tempo (BPM) | Beats per minute, 40-200 | 120 |
| Generate (seconds) | How much music the model makes, 20-240. A longer video loops this clip; a short video only needs a little more than its own length, so less is generated | 60 |
| Seed | The random seed. The same prompt, tempo, length and seed give the same music | 42 |
| Random | Pick a new seed for each Generate (the seed used is shown in the Seed field, so a piece you like can be made again) | On |
| Output length | Shows the final length - the video’s length, as the music loops seamlessly | - |
| Music volume (%) | Level of the music, 0-200 | 100 |
| Remove existing audio tracks | The music replaces all the video’s audio | On |
| Original audio volume (%) | Shown when Remove existing audio tracks is off: level of the video’s own audio, which the music is mixed under | 100 |
All settings are remembered.
The model makes a clip of Generate (seconds). Subtitle Edit then finds a loop in it that is aligned to the bars of the measured tempo and repeats it to the full length, with a fade-out at the end, and normalizes the level. After generating, the result line shows the loop’s length, the measured tempo and how well the seam matches (“Loop: … at 120 BPM, seam match 94%”), or “Music ready: …” with the length when no loop is needed.
Add to video… asks for the output file (by default the video name with _music added, in the same format) and runs ffmpeg:
.webm output.When done, a file-saved prompt offers to open the containing folder or play the video.
In the Text to Speech window, check Add background music to mix generated music under the dubbed speech. The settings button next to it opens this window in a text to speech mode:
Generating takes a minute or two on a fast machine, including about 20 seconds to load the model; it is slower on the CPU.
| Key | Action |
|---|---|
| Escape | Cancel generating / close |
| F1 | Show help (default key, changeable) |