Changelog
Notable changes to the API and to the Braccato packages. Braccato entries are pulled from each package's changelog when this site is built.
API
- Added the QQ provider at
/qq/getLyrics, which returns QRC with word-level timing. - Cached and negatively cached entries now match within a small duration tolerance, so
ddoes not have to be exact. - Introduced API keys for fresh fetches. Cached responses stay free and need no key.
- Added the
d(duration) parameter to improve matching.
@braccato/core
1.16.14
-
Keep lines from piling on top of each other when the view scrolls far, such as clicking an older line, seeking, opening lyrics mid-song, or returning from a manual scroll. Natural line-to-line advances keep the theme's stagger exactly.
1.16.13
-
A host that drives the clock without player snapshots, such as an audio element looping a range shorter than half a second, no longer leaves upcoming lines sweeping from the clock before each pass.
1.16.12
-
A host that keeps playing through a seek, such as a looped audio element, no longer leaves the next line sweeping from the clock before the jump.
1.16.11
-
Clicking a line or Alt-clicking a word now seeks to where it plays when lyric offsets or trims are set, instead of to its unshifted time.
1.16.10
-
Underline the hovered word again while Alt is held when the letter wave is on.
Full changelog for @braccato/core
@braccato/parsers
0.4.0
-
LRC and enhanced LRC now get instrumental lines on the same terms as TTML. Blank and music-note lines no longer render as empty rows: they end the line before them, and a silence longer than
instrumentalGapMs(now an option onparseLRC) becomes an instrumental, including the intro and the outro. A closing word timestamp in enhanced LRC ends the line there instead of opening an empty part.
0.3.2
-
Add @braccato/highlight, and expose format detection as @braccato/parsers/format
0.3.1
-
LRC reads songwriters from timed credit lines such as
作词:orWritten by:, in plain and enhanced LRC, and keeps credit lines out of the parsed lyrics the way QRC does. Both parsers now recognise Traditional Chinese roles and joined or tagged roles such as作曲/编曲,作詞・作曲andRap作词, and no longer take a sung line ending in a role noun for a credit.
0.3.0
-
Read songwriters from TTML, LRC and QRC files with
parser.metadata(), pass them through every provider assongwriters, and close the lyrics view with a "Written by" line that brightens and takes the scroll focus once the song ends.
0.2.3
-
Keep the parentheses around LySy background vocals instead of dropping them, so background text renders the way the source wrote it.
Full changelog for @braccato/parsers
@braccato/highlight
0.3.1
-
Dim background vocals in the editor, where they can no longer be italic, so they still stand apart from the main lyrics. The new
--bh-bgText-editorproperty sets their colour (defaultrgba(255, 255, 255, 0.65)).
0.3.0
-
The editor overlay now wraps exactly like its textarea: each layer line is one text node coloured through the CSS Custom Highlight API instead of a span per token, so edits no longer land a line away from the colours. Background vocals and comments lose their italics in the editor, and one-line documents cost more paint per keystroke.
0.2.2
-
Keep the editor overlay on the textarea's rows while editing a scrolled document. Chrome's scroll anchoring moved the overlay up a row whenever an edit removed a row near the top of the view, but the textarea did not move, so the colours showed one or more lines above the caret and the text under the caret looked like a different line.
0.2.1
-
Keep the editor overlay's colours on the textarea's text in long, wrapped documents. A unitless
line-heightsuch as1.7is now copied as written instead of as its resolved pixel value, which Chrome rounds to a slightly different row height, so the colours no longer creep down by a fraction of a pixel per row (about 5 px by line 160 at 12px/1.7). When a page shows the textarea's scrollbar, the overlay now leaves the same space for it, so both wrap at the same width; previously every line that wrapped differently pushed the colours down another row.
0.2.0
-
tokenizenow returns the tokens the built-in renderers draw: adjacent tokens of the same type are joined into one, so a renderer of your own reproduceshighlightIntoexactly with no merging step. Code that relied on the finer split (for example a separatetexttoken for each newline, or]and[as twopuncttokens) sees fewer, longer tokens. The editor handle gainssetFormat(format?), which changes the format of a live editor without re-attaching, so the textarea keeps its undo history. The editor now copies its options at attach time; later writes to the options object are ignored.
Full changelog for @braccato/highlight
@braccato/provider-blyrics
0.2.2
-
Read songwriters from TTML, LRC and QRC files with
parser.metadata(), pass them through every provider assongwriters, and close the lyrics view with a "Written by" line that brightens and takes the scroll focus once the song ends.
Full changelog for @braccato/provider-blyrics
@braccato/rics
0.1.3
-
Add a
bugsfield to the package manifest so npm links to the issue tracker.