
A local music studio that keeps the project: fh-seq
Generate a song online and you get a file. Want to change eight bars of the chorus? Generate again and hope. fh-seq is a prototype of the opposite: a song is a project you can rework, piece by piece, with every attempt kept. Everything runs on open-source engines on your own machine.
What you get. Full renders, repaint of any time range, global retakes, separated stems, a clip shot by shot, and a history where A/B is one click. It also fills the ambience bank of Purrd: twenty instrumental tracks in one call.
1. The engines, each in its own box
| Engine | What it does |
|---|---|
| HeartMuLa | full renders, best quality |
| ACE-Step | fast renders, repaint of a range, retake |
| Demucs | separation into stems |
| ComfyUI | the video clip |
Each engine lives in its own Python environment: their PyTorch and CUDA versions conflict, and isolating them is deliberate. Each engine declares what it can do (generate, repaint, retake); the page adapts. Adding an engine is one file and one line.
./fh-seq install # idempotent; everything under runtime/, several GB on first run
./fh-seq run # the app and its ComfyUI, on the machine itself
./fh-seq status # which engines are present
Two cards are assumed: the music model on one, its audio codec on the other. Variables move them if you have only one.
2. Working a song
- Write the sections and lyrics, set the style tags, generate.
- Listen; drag over a region of the waveform and repaint it, with the variance you choose. Or retake for a variation of the whole.
- Every attempt joins the tree; compare two in one click.
- Separate the version you keep into stems, then mute or balance them.
- For the clip: one shot per section, edit each visual prompt, render shot by shot in ComfyUI, assemble.
Traps
Size the storage. The engine writes 32-bit stereo WAV: three minutes weigh 69 MB, and twenty tracks for fifteen styles would weigh 20 GB. Convert to Opus before storing a bank.
It is a prototype: some screens are rough. The structure (project, tree, stems) is what is worth copying.
Found this useful? Tell us what to measure next.