9 min read

What I learned trying to swap one name in a festival anthem

Keep an EDM festival anthem exactly as it is and change one word, the name shouted over the drop, to a friend's. Pure AI, no recording. In June 2026, with models that write whole songs and clone voices on demand, this should be a one-evening job. It was not.

A friend’s name needed to land in the chorus of an EDM festival anthem. You know the format: a Dutch big-room track built around an F1 driver’s name, shouted over the drop. The job was to keep the record exactly as it is and change one word, the name, to my friend’s. Pure AI. No recording myself, no hiring a singer.

It’s June 2026. Music models write entire songs from a text prompt. Voice cloning is a commodity. Swapping one name in an existing chorus is a strictly smaller problem than the things these tools demo every week. So this is a one-evening project. I want to walk through why it wasn’t, because the gap between “the tools can almost do this” and “the tools can do this” is the whole story of working at the bleeding edge right now.

#The task is smaller than it sounds, and harder

Take an existing recording. Keep the melody, the instrumental, the mix, the vibe. Replace one proper noun in a shouted, vocoded, crowd-chant vocal. That last clause is the trap. Most of what shipped in 2026 generates new songs from scratch. I didn’t want a new song. I wanted this song, minus one name, plus another.

For the record, this was a one-off for one friend, not a track I’d release. The clips below are short excerpts, here so you can hear the failures instead of taking my word for them. The one name you can clearly make out, in the spliced take, is a stand-in, not my friend’s. Cutting a full release over a commercial master is a rights problem I get to skip, because the release was never the point. The technical problem is the one I cared about.

The source. The original name, shouted over the drop, is the one word I needed to replace.

#The June 2026 landscape, fast

The market splits cleanly on this one task. 1 Most of the 2026 headline models are the wrong tool: they write a whole new track, and I already have a track.

ToolWhat it isDoes this task?
LeVo, SongGeneration, ACE-StepOpen-weights song generatorsNo. They write new songs from a prompt. Brilliant, irrelevant.
Suno v5.5Commercial covers + section-replaceOnly on tracks Suno itself generated, not an arbitrary commercial master.
Lyria 3 Pro (Vertex)Commercial prompt-to-songGenerates, but over-refuses proper nouns in vocals. More below.
YingMusicOpen-source diffusion melody-editorThe one built for exactly this: a melody clip plus edited lyrics, no manual alignment.

YingMusic came out of an academic lab and a games company in March 2026, around seven hundred million parameters, clean 44.1 kHz stereo, no syllable-aligning by hand. On paper it is the tool. Six months ago it did not exist.

#The part the demo videos skip

I cloned it onto an M4 Max and started paying the tax nobody films. The model ships CUDA-first; getting it onto Apple’s GPU was four small patches, none of them hard:

# 1. route the model to Apple's GPU (the branch the repo didn't have)
def get_device():
    if torch.cuda.is_available():
        return "cuda:0"
    if torch.backends.mps.is_available():
        return "mps"
    return "cpu"

# 2. a CUDA-only quantization dep that has no business on a Mac
#    requirements.txt: bitsandbytes==0.48.1; sys_platform != "darwin"

# 3. pin the audio decoder to the build that matches PyTorch 2.6's ABI
#    requirements.txt: torchcodec==0.10.0

# 4. point phonemizer at the espeak dylib it can't find on macOS
os.environ.setdefault(
    "PHONEMIZER_ESPEAK_LIBRARY",
    "/opt/homebrew/.../libespeak-ng.dylib",
)

None of that is hard. All of it is the part the demo videos skip. Forty-five minutes of yak-shaving stood between “git clone” and the first sound, and in my experience that’s the rule at the bleeding edge, not the exception.

#The failure that actually matters

YingMusic ran. It produced clean audio: the melody intact, the timbre convincing, the mix sitting right. And it could not say the name. The word came out as a mushy approximation, the consonants smeared, the syllables merged into a vowel-shaped blur.

YingMusic, default settings. Melody and timbre intact. The name dissolves into a vowel.

So I did what you do and probed it. Fourteen variants. I swept the guidance strength from 3 to 9 and the diffusion steps from 32 to 96. I changed seeds. I respelled the name phonetically with the stress marked. I swapped in deliberately plain English names from 3 to 5 syllables, to rule out the target name simply being awkward in the mouth. Every single one came out mushy.

Guidance pushed to 9, one of fourteen variants. Same smear, every time.

It nailed everything but the one piece of detail that was the entire job.

My read of the failure, and it’s a read, not a proof: YingMusic was trained on clean, sustained singing, and a festival chant is shouted, heavily processed, half-sung, well outside that. Maybe the model generalizes badly past its distribution. Maybe it’s the phoneme conditioning, or the decoder choking on a vocal style it never saw. I swept the knobs but I didn’t isolate the cause, so I won’t pretend I know which it is. What I can say is the failure was identical across all fourteen runs: the melody and timbre came out right and the consonants came out wrong. It blurred the one piece of detail that was the entire job.

#The pivot, and why it sounded wrong

If the singing model won’t say the word, build the word and paste it in. So I pivoted to a splice pipeline. Separate the vocal stem with Demucs, find every chant in it with librosa’s onset detection, and generate the name with Google’s Chirp 3 HD, the cleanest neutral cloud voice I had. Time-stretch each clip to fit its slot, pitch it up a few semitones, run it through a bandpass and a soft-clipper for some festival grit, and drop it into the gaps.

The master splits at Demucs into an instrumental stem and a vocal stem. The vocal stem goes through librosa onset detection to find the chant slots. Separately, the replacement name is synthesized by Chirp 3 HD, then time-stretched, pitched, bandpassed and clipped into name clips. The slots and the clips meet at the splice, which is remixed with the instrumental stem into the festival edit.

✓ the name is clear ✗ prosody reads as narration, not chant

The splice pipeline I hand-built. Every stage did its job. The merge at the bottom is where it fell down: clear words, wrong instrument.

It worked, in the sense that you could hear the name clearly. It failed in the sense that it sounded like a podcast guest reading the name over a house track. The voice wasn’t the weak link; Chirp 3 HD is about as good as neutral TTS gets. Neutral was the weak link. Read-speech prosody has the wrong texture for a shouted crowd vocal, and no amount of EQ, distortion, or pitch-shifting moved it from narrator to drop. Clear words, wrong instrument.

The splice pipeline. The name finally comes through clean, and the voice reads it like a line of dialogue, not a chant.

#The refusal

For completeness I tried Lyria 3 Pro, generating the whole thing from a described prompt. The content filter rejected it: sensitive words. I stripped the references to real artists and festivals. Still rejected. I stripped everything down to a generic genre description and the bare name. Rejected. I removed the name itself, and it generated happily.

#The honest verdict

Three tiers of the stack, each wrong in its own way:

Stack levelToolWhy it failed
General-purpose cloudLyria 3 ProOver-refuses: blocks proper nouns in vocals as a class
General-purpose open sourceYingMusicUnder-articulates the name, out-of-distribution consonants
Specialized commercialSuno cover + replaceActually does the job, at ten dollars a month

The lesson wasn’t “open source isn’t ready” or “cloud is too locked down.” It was that picking the right level of the stack mattered more than picking the most powerful tool, and for this task the right level was a paid product I’d been too stubborn to start with.

#How close it actually is

Here’s why I don’t read this as a failure. YingMusic didn’t exist six months ago. The path to run diffusion audio models on Apple silicon matured this year. Teaching the model the shouted-chant texture it’s missing is plausibly a weekend of compute, with one honest catch: the hard part isn’t the training, it’s sourcing and force-aligning a few hours of clean festival-vocal data, the same alignment problem that ate the splice path. And the pipeline I hand-built — separate the stem, detect the onsets, synthesize the word, splice and mix — is the kind of thing that tends to fold into a single model once someone bothers. I’d bet on that inside a year or two. The caveat is that “just assemble the pieces” is exactly the false-easy this evening disproved. Assembly is the hard part, and I have a podcast-guest-over-a-house-track to prove it.

Music generation hasn’t had its GPT-3 moment, the one where the thing that took an expert a weekend becomes a text box anyone can use. But you can see all the precursors from here. I went in to swap one name and came out with a pretty clear map of where the edge is, which is the actual return on an evening spent at it. Bleeding edge isn’t the same as ready. It’s just close enough to be worth the cuts.

Notes

  1. The model survey here reflects the open-source and commercial music tools available as of June 2026. The one built for this task, YingMusic, is on GitHub at ASLP-lab/YingMusic-Singer-Plus. Stem separation was handled by Demucs (facebookresearch/demucs).
  2. Google publishes the boundaries the Lyria filter enforces in its Generative AI Prohibited Use Policy. The proper-noun-in-vocals behavior is the policy applied conservatively, not a documented rule of its own, which is exactly why it surprised me mid-task.