# Lyrics Generator > Original song lyrics with the craft made visible. A subject, a mood, a genre and a song > structure go in; a complete lyric comes back - verses, chorus, bridge - alongside the rhyme > scheme derived from the actual line endings, a syllable count for every line, the hook located > in the song, and what the bridge is doing that the verses are not. URL: https://lyrics-generator.skillsafe.ai/ API: https://lyrics-generator.skillsafe.ai/api.html Runs on: SkillSafe (https://skillsafe.ai/) Derived from: the boredhumans "lyrics generator" concept. ## What it does You give it a subject in your own words, pick a mood from ten and a genre from twelve, and either choose a song structure or type one (`v c v c b c` and `Verse, Chorus, Verse, Chorus, Bridge, Chorus` both parse). It writes the song and then shows its working. The working is not the model's word for it. Every claim the model makes about its own lyric is recomputed in the browser and printed next to it: - **Rhyme scheme** is derived from the actual line endings by an engine with three verdicts - rhymes, does not rhyme, and *cannot be verified* - rather than two. Lines it cannot check get letters of their own and are reported as unverified rather than guessed at. - **Syllables** are recounted per line by a three-tier counter: a curated dictionary, a set of words that legitimately count two ways and are reported as a RANGE, and a rule engine over vowel groups. Where the model's claim falls inside the range, that is agreement about an ambiguous word, not a conflict, and is not flagged. - **The hook** is looked for character for character in the sections. A hook that is not in the song is reported as such. - **The voice** is measured - words per line, end-stop rate, person, evaluative density - and compared with the four-field structural description the model gave. ## The constraint the whole app is built around **It never reproduces an existing song's words, in whole or in part, and never attributes any wording to a real artist.** Not a verse, not a couplet, not a hook, not a memorable half-line. Lyrics are short and dense, so even two lines can be a substantial part of a work. It also never presents output as being "in the style of" a named artist, because output framed that way can be mistaken for that person's actual words. Genre and era conventions are public and are what it writes to instead. Naming a real act as a production or arrangement reference, with no words attached, is allowed and is not the same thing. ## What is shipped as a corpus, and what is deliberately not An app that exists in order not to emit song lyrics does not ship a file of song lyrics. There are **no song lyrics in this bundle in any readable form**, and the offline test harness asserts it mechanically rather than taking anyone's word for it. - **515 song titles, in plain text.** A title is a short factual identifier for a work - the label you use to refer to the thing rather than the thing itself - so it can be shipped and, more usefully, printed back to you when your lyric collides with one. A finding you cannot see the other half of is an accusation rather than a finding. - **79 one-way hook fingerprints.** Some famous hooks are not the title of their song, and a title index cannot reach those. They are stored as FNV-1a hashes of short stem windows, computed at build time, sorted so even the order is lost. A collision can be reported; the words that collided cannot be recovered from the file by anyone, including this app. The title index carries more weight here than it would elsewhere for a reason particular to popular song: **the hook is usually the title**, so the likeliest single reproduction - landing on a famous title phrase as your own hook - is exactly the case the index sees. ## What the check can and cannot see - with the numbers **A clean result means no known collision was found. It is not evidence that a line is original and must not be read as one.** This is a membership test, not an originality test. Measured on a blind set of **465 well-known song titles** written by someone who had never seen the index, tiered by fame: | | caught | rate | | --- | --- | --- | | Titles the index **holds** | 244 / 244 | **100.0%** | | Titles the index does **not** hold | 1 / 221 | **0.5%** | The second number is the honest one. Broken out by fame tier, the held-out rate is 8.3% at tier 5 (near-universally known), and 0.0% at every tier below it. Coverage is the whole limit: a few hundred works against the tens of millions that exist, and a fingerprint only fires on a near-verbatim run - a line rebuilt around the same idea in different words passes every time. **The 221 held-out titles were deliberately not folded back into the index.** Doing so would move the number to 100% and destroy its meaning, which is the one thing this measurement exists to avoid. ## The other half of the check, which owes nothing to a corpus Separately from the index, every field of the reply - lyric lines and prose alike - is scanned for the *shape* of presenting words as somebody else's: quotation marks around a phrase, a writing credit, a signature, "as the old song goes", a derivation verb pointing at a kind of work, a denial that part of the reply is its own writing, or a real performer's name next to a word for wording. That half reads grammar rather than meaning, so it generalises where the index cannot. Measured on a separate blind corpus of 250 items written by an author who never saw the detector, split in half with one half used for tuning and the other never read until scoring: | | result | | --- | --- | | Violations caught (**held-out half**, n=60) | **86.7%** | | Violations caught (tuning half, n=60) | 96.7% | | Ordinary output wrongly flagged (n=90) | **0** | | Near-miss cases wrongly flagged (n=40) | **0** | The ten-point gap between the two halves is the honest cost of having tuned at all. What it still misses is an attribution phrased mildly enough to read as ordinary commentary. ## The rota problem, and why the arithmetic matters Given a glossary of craft devices and a song with N sections, the cheapest way to look varied is to use a different device in each section and cover the set. That produces a song whose sections look different and whose thought is identical - one idea in six costumes. The glossary holds **29 devices**, which is prime, and every structure has between four and nine sections. **No section count divides the glossary**, so covering it is not discouraged, it is arithmetically unavailable. Repeating a device is explicitly fine and is often the better song. Sameness is then measured where it actually hides: openings compared **two content words deep** (not two words - function words at the front of a lyric line are nearly free), plus a **frame** check for one grammatical construction running through most of the song while the opening words all differ, which an opening check scores as varied and is not. ## Moods, genres and the one rule each may break Every mood and every genre carries an `overrides` field naming exactly **one** house craft rule it is licensed to break, stated in the interface rather than hidden. A furious song may run one grammatical shape down a whole section because the repetition is the anger. A deadpan song's chorus may refuse to claim anything. A blues may repeat a line because the repeated line is the form. The precedence ladder is stated in the system prompt before the craft rules, not after: the two prohibitions outrank everything, then the output format, then the overrides, then the house rules. ## Free, without an account The lyric checker takes any lyric you paste - yours or one this app wrote - and gives you the syllable count per line, the rhyme scheme, the measured register and the same originality check. No sign-in, no credits, and nothing leaves the page. ## Cost and mechanics Metered. `gpt-terra` (currently `gpt-5.6-terra`), publisher markup 10%, no per-run price on top. The reserved hold is shown before you commit and prices the longest allowed reply; what you are actually charged is usually well below it and is shown when the run ends. Songs are saved to your SkillSafe account, readable only by you, with a per-run opt-out. A saved record keeps the lyric, the brief and one-way fingerprints of the lines - and deliberately keeps no column at all for the free-text steering fields you typed into "who is speaking" or "anything to avoid". ## The syllable counter's own accuracy Measured on two word lists written independently by authors who had not seen the implementation. The counter was improved using the first and then scored on the second, which contained 41 deliberate traps: **95.9%** on the list it was tuned against, **88.0%** on the list it had never seen. Four classes of miss - adjacent vowels in `ea`, `oa`, `ui` and `ue` - are reported rather than patched, because splitting them would trade three fixes for dozens of regressions.