The Hook I Measured Into the Band Nobody Wanted
A one-line lyric change moves a stuck repetition metric into the range real K-pop songs occupy, replicated across five seeds at no cost to intelligibility — and the first listener preferred the version that failed it.
TL;DR — I found a one-line lyric change that drags a stuck metric into the range real K-pop songs occupy, replicated it across five seeds, confirmed it costs nothing in intelligibility — and then the only person who listened preferred the version that failed the metric.
For weeks one number had refused to move. In released K-pop, the single most repeated eight-note melodic pattern recurs 12 to 33 times across a song. That repetition is a lot of what makes a hook stick. Everything I generated with YuE2 sat at six. I had tried temperature, chord palettes, arrangement prompts, and rule-based melody generators. None of it touched the number.
The fix was not in the model. It was in how the lyrics are typed.
Write the hook four times, not twice
My lyric sheets put the chorus hook in each [Chorus] block twice. I changed that to four, left everything else alone, and ran both versions across five seeds.
| Hook written | Top repeated 8-note pattern (5 seeds) | Median | Runs reaching 12 | Lyric fidelity |
|---|---|---|---|---|
| twice | 4 · 6 · 6 · 12 · 22 | 6 | 2 of 5 | 33.2% |
| four times | 12 · 12 · 31 · 55 · 75 | 31 | 5 of 5 | 33.6% |
| released K-pop | 12 to 33 | — | — | — |
The means are 10.0 and 37.0, with a standard error of 12.8 — marginal at n=5. But the means are the wrong way to read this. Look at the floor. With the hook written four times, every run reached the bottom of the released range. With it written twice, three runs out of five fell below. The spread actually got wider, from a standard deviation of 7.3 to 27.6. What improved was not the average but the worst case.
And it is free. Lyric fidelity — how much of the written lyric the model actually sings, measured by transcribing the output — came out at 33.2% against 33.6%. A difference of four tenths of a point.
The part where I was nearly wrong again
Comparing just the first seed of each condition, fidelity looked like it had collapsed from 47% to 24%. That is the shape of a real tradeoff: you buy repetition and you pay in diction. I almost wrote it up that way.
I did not, because I had already measured this model's seed-to-seed standard deviation at 12 to 18 points on that metric, and a 23-point gap at n=1 sits inside it. Replicating across five seeds showed the effect was zero. The correlation between hook repetition and fidelity across all ten runs is +0.29 — if anything they move together.
This is the third time this month seed variance has offered me a finding. The first two I published and retracted.
The two repetition numbers are not the same number
There is a second metric I had been tracking — the share of eight-note windows that appear more than once anywhere in the song. Mine was 70%, and released songs run 55 to 77%. By that measure I had never had a problem.
That number asks whether the melody is repetitive in general. The one that was stuck asks whether one phrase dominates. K-pop hooks are the second thing, and a song can be broadly repetitive while having no single phrase that owns it. Writing the hook four times moved the first number from 70 to 76% — barely — and the second from 6 to 31.
Chorus density is a separate lever
Released choruses carry 2.0 to 2.6 times the notes of their verses. I assumed that ratio and hook repetition were the same phenomenon. They are not.
| Lyric change | Top 8-note pattern | Chorus/verse note ratio | Chorus range |
|---|---|---|---|
| verse doubled, hook x2 | 6 | 1.9 | 12 st |
| hook x4 | 31 | 6.5 | 12 st |
| hook x4 + verse x3 | 12 | 2.1 | 15 st |
| hook x5 + verse x2 | 34 | 4.0 | 9 st |
| released reference | 12 to 33 | 2.0 to 2.6 | 12 to 14 st |
Doubling the verse alone lands the ratio squarely in the released band and leaves the hook at six. Writing the hook four times fixes the hook and overshoots the ratio to 6.5. Only doing both — hook four times, verse tripled — satisfies each of them at once. Pushing to five hooks breaks past the top of the released range on both repetition measures, which is its own kind of wrong.
And then somebody listened
Same lyrics apart from the hook count, same style prompt, same seed. The second one is the one that passes every check I have built. The first is the one the listener preferred, immediately and without hesitation.
That is a sample of one, and I am not about to overturn a five-seed replication with it. But it is the same shape as something that happened earlier in this project: I built rule-based melody generators, drove five different metrics into their target bands, and the results were rejected every time — until I measured the thing the metrics were not looking at and found my melodies were cramming 2.8 times as many notes into half the pitch range.
So the honest version of this result is narrower than I wanted it to be. Writing the hook four times reliably moves a specific structural property of the score into the range released songs occupy, at no measurable cost to intelligibility. Whether that makes the song better is not something my instruments can tell you, and the one ear I have applied to it said no.
The metric was never the goal. It was a proxy I adopted because released songs share it. A proxy that you can satisfy while the listener walks away is a proxy that needs its own investigation — and that is the next thing to measure, not something to argue away.
Appendix: the lyric shape
The whole change, and the request it goes into. The measurement code and the rest of the tooling are in the Axortex version.
The lyric shape that moves the metric
[Intro] <- tag only
[Verse] <- 35 syllables
[Pre-Chorus] <- 32
[Chorus] <- the SAME two-line hook, written four times
hook line A
hook line B
hook line A
hook line B
hook line A
hook line B
hook line A
hook line B
[Interlude] <- tag only
[Pre-Chorus]
[Chorus]
[Bridge] <- 15
[Chorus]
[Outro] <- 7
Writing the hook four times instead of twice is the whole intervention. Nothing else changes - not the style prompt, not the sampling parameters, not the seed.
The request
{
"style": "Korean, K-pop girl group dance, bright confident female vocals, 126 BPM, punchy kick, deep synth bass, crisp claps, glossy synth plucks, catchy repeated hook, no electric guitar",
"lyrics": "[Intro]\n\n[Verse]\n...",
"cot": "full",
"seed": 831001
}
Keep the lyrics in one language, put the tempo in the style as a single number, and aim for 1.0 to 1.3 notes per syllable. Five seeds minimum before believing any comparison.
Sources: YuE2 repository, generation docs, benchmark results.
Image: Klaus-Dieter Keller, Galton box, Public domain, via Wikimedia Commons.
← Back to all posts