Lines starting with # render bold and a touch brighter (a title, not
just a dim note); ( and [ annotation lines stay dim. Export matches.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Clicking into a colored word brightens its whole rhyme family (dark
ink on lit chips) and draws a soft rounded bracket in the left gutter
spanning the family's lines — rhyme and alliteration each get their
own bracket, gated to their toggle. No dimming of the rest; additive.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
garbage/javascript were joining dollar/scholar's AA-x group via the
attach path, which lacked the coda-class guard the bucket path has.
Now a bare V-x key attaches only when the token's coda nests with the
group's — same rule both paths. syrup/burden was the same looseness
(ER-schwa, mismatched coda) and now correctly splits; the real
stir-up/were-up perfect phrase matches stay.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Python diss put pink on five different families: 18 families, 12
colors, and the assignment kept grabbing low indices so one hue piled
up. Now 16 colors (added cyan, amber, lavender, emerald) and each
family takes the globally least-used non-adjacent color, so hues
spread evenly — no color repeats more than twice on a dense page.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Slant/multi attachment, multi buckets, and unequal-length containment
fusion now require members within ~6-8 lines. "All Me" was chaining
Baby/Mercedes/loan/being/Daddy into one teal family across 110 lines;
vowel assonance is local evidence, not global. Perfect rhymes and
equal-key fusion stay global (a real rhyme carries any distance).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
At 85% fill the off-white text washed out; the focused family's
glyphs flip to dark (like the primary button) with a touch of weight.
Possible because the highlight layer owns glyph color.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The full color field stays put; the family under the caret glows
~1.8x (capped at 60%). Additive, not subtractive.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The spotlight exposed forever/question/extra/sequential as one EH-x
family. Three fixes:
- phrases obey refrain muting (the «Forever ever» carpet)
- bare V-x buckets subdivide by nesting final-coda classes, so
placement (NT) keeps creation (N) but forever (.) releases
sequential (L); phrases ride the main cluster
- single-vowel suffix fusion requires member coda sets to nest
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Click into any colored word and every other family dims to a whisper
(22% of normal); the caret's rhyme thread stays lit across the whole
draft. Caret anywhere else restores the full field. No toggle — it
follows where you are. Smallest covering token wins (word over
phrase), recomputed after each analysis since gids shift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
r9/r10/r11 were a pale pink, a second teal, and a second orange — now
rose, indigo, and chartreuse. Color assignment stops being gid % 12:
each family picks the first hue not worn by families on its own or
neighboring lines, so similar colors never sit next to each other.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Internals 19% (phrases 14%), ends stay 34%, export matches. On long
documents the overlay layers get a tail spacer equalizing their
scroll height with the editor's, so deep scroll positions can't clamp
and slide the colors off the visible text.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The caret-line readout already gives syllables on demand; a number on
every line was furniture.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Share covers it (Notes, Files, anywhere), and drag-drop import remains
the way back in. Toolbar: Copy · Save PNG · Share + toggles.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apple offers no content-accepting Notes URL scheme; the native share
sheet is the real path — Notes, Messages, Mail, one tap. Button only
appears where navigator.share exists (Safari, iOS, Android).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two sub-tabs under the lookup input: Explore (associations, describes,
synonyms — the meaning side) and Wordplay (rhymes, near, multis — the
sound side). Readout and history shared; switching repaints from the
cached entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What the word summons (Datamuse rel_trg): rain -> showers, monsoon,
shine, hail. The theme-building lens, first in the entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Multis: dictionary search by vowel skeleton — single words and
two-word combos matching the target's run from its stressed anchor
(charisma -> little/women/business; vacation plans -> information
back). Perfect rhymes excluded; phrases supported as targets; new
"multis" row in the rhymes section. Indexes warm at boot.
- Counts toggle: syllables per line in dim digits at the editor's
right edge, wrap-safe and live; carried into the PNG export.
- Suffix fusion: multi families whose vowel keys are end-aligned
containments merge (back pocket / rap profit / off it / still in
office = one Em chain), with trailing schwas stripped before
comparison; the longest end token now owns the scheme slot.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grey wrap targeted a renderer shape that no longer exists and
silently no-opped; it now applies at the real line-append point, and
the editor selection rule is un-nested for parser safety.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Same-vowel perfect families fuse when both live at line ends:
blood/mud + thugs/drugs (+does/love/enough) read as Kanye's one AH
chain; mid-line families keep their codas distinct
- Annotation lines (#, [, ( starts) render in a dim ink — the
highlight layer now owns the glyph color (textarea text is
transparent over it), in the editor and the PNG export
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(justify greed) now lights up with need/breed as internal rhyme; the
ending slot stays with the last word outside parens, so (yeah) tails
still can't set the scheme. The old all-or-nothing exclusion is gone.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Third extractor: the knowledge panel's standalone "Lyrics" header
through the Source:/Songwriters: footer — everything after (result
snippets, videos, People-also-search-for) drops. Requires both
markers, so a poem with a "Lyrics" line passes through whole.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Google's lyrics box ships U+2028/U+2029 between lines, which a
textarea collapses — verses arrived as one giant line. All line-
separator flavors (CR, CRLF, LS, PS, NEL, VT, FF) normalize to \n,
and the Lyrics/Songwriters/Musixmatch furniture strips with the rest.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Second extractor alongside the Genius one: quoted-title headers up
top plus a Thanks-to/Writer(s)/licensed-by footer mark the envelope;
both header and footer evidence are required, so quoted lines in your
own writing never trigger it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The more… expanders are gone — describes, rhymes, and synonyms render
in full and the entry just scrolls. Smart paste inserts through the
undo-aware path so Cmd+Z cleanly un-pastes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A full select-all paste (nav, bio, Q&A, credits, translations) now
reduces to the block between the first [Section] header and the
Embed/About footer, with "You might also like" recommendation inserts
dropped through to the next section. Lyrics-only pastes — with or
without [tags] — pass through untouched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Curly apostrophes broke phonetic tokenization (don't -> don + t);
pasted and dropped-in text now normalizes quotes/nbsp and drops
Genius-style cruft lines (Contributors, "... Lyrics" headers,
Translations, You might also like, Source:, Embed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
One lookup renders the whole entry — phonetic readout as a plain
header (card chrome and dismiss gone), describes, rhymes by syllable
(+near), synonyms always fully expanded — with collapsed sections
behind "more…", a clickable history trail, and lookups firing as you
type (Go button and mode seg removed).
Multi-word lookups work: phrases read straight through for the
phonetic readout, rhyme on their final word (labeled), and hit
WordNet compounds for synonyms (new york -> Empire State).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
four/door and inch/hinge were pure mirrors of «four-inch»/«door
hinge» yet their word fills painted over the orange-family phrase
color. A word group living entirely inside one family's phrases now
dissolves, so the phrase color paints the whole compound.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Identical words/phrases no longer form a color group on their own — a
group colors only once a differing word rhymes into it. Repeated
endings still share a scheme letter (refrains scan), and a repeated
unrhymed ending no longer flags as "unanswered".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMU's unstressed "this" (DH IH0 S) has no stressed vowel, so its
rhyming part included the onset and founded a consonant-led key the
coda-nest fuse couldn't parse — repeated "this" fell out of the
wrist/assist/shit chain in full songs. Rimes now always start at a
vowel.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Single-vowel perfect families whose coda classes nest fuse into one
chain: wrist (IH S T) hubs this (IH S) and shit (IH T), which ride
as slant satellites — Logic's hook reads as one color
- Final s/z voicing neutralizes in coda classes and weak-ending keys:
vamonos rhymes dominoes
- The drafts bar wraps instead of scrolling, so many drafts stay
visible
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Beats: every pattern gets an 808 bass line (pitch-glide sine, per-
style note movement), trap/halftime get layered claps, lo-fi/jazz get
open hats, hats humanize velocity. Two new styles (Halftime, Dembow),
a tap-tempo button, and a four-dot beat indicator synced to the bar.
Cadence: flexible monosyllables (x) read as stressed, so contours
differing only in flex positions join one flow family.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Line-height returns to 1.9 by default; the roomy 2.35 line box (and
its tall caret) only applies while the rhythm dots need the space.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The rhythm layer now keeps dots over the unchanged prefix of an
edited line (same logic as the rhyme fills) instead of blanking the
whole line until re-analysis.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two starred ideas, zero new chrome:
- Rhythm dots take a shared color when 2+ lines have the identical
stress contour (5+ syllables) — flow rhymes, visible
- Line-endings with no rhyme partner get a faint gray fill in the
rhyme layer: the open loops that show where to strike next
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drafts escape localStorage — a Save .txt button downloads the current
draft (named after its first line), and dropping text files anywhere
on the page turns each into a new draft tab.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
First in the toggle row, on by default; the export honors it. Rhythm
dots and alliteration underlines are independent layers, so any
combination works (e.g. rhythm-only for a clean flow view).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rhyme/synonym chips already in your draft get a gold tick
- Word card shows WordNet sense count (3+) — double-entendre fuel
- "alliteration" toggle underlines words sharing an initial sound
(locally clustered, 3+ words), in the editor and the PNG export:
fills = tail sound, underlines = head sound
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Inline (parentheticals) are delivery, not text — they no longer rhyme
or steal the line-ending slot ("...bunch (yeah)" rhymes on bunch).
The readout leads with "bar 3/16" for the caret's place in its verse.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
WYSIWYG: PNG line spacing widens to fit, dots centered under each
word in ink, same notation as the editor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sheet music for rapping — the label should say what it feels like,
not what linguists call it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>