Class LrcMetadata
Parsed document metadata: strongly-typed accessors for known ID tags (last-wins on conflict in source order) plus the verbatim RawTags collection containing every tag the parser encountered, in source order.
public sealed record LrcMetadata : IEquatable<LrcMetadata>
- Inheritance
-
LrcMetadata
- Implements
- Inherited Members
Remarks
Offset is stored verbatim from the [offset:N] tag
and is NOT applied at parse time — line timestamps in the document remain unchanged.
Use GetEffectiveTime(LrcDocument, LrcTimestamp) /
FindLineAt(LrcDocument, TimeSpan) to factor it in. This preserves
round-trip fidelity: re-writing the document emits the original
[offset:N] tag.
The tool tag (used by some authoring software) maps to the same
Tool property as re; last-wins across both keys.
Properties
Album
Album (al).
public string? Album { get; init; }
Property Value
Artist
Track artist (ar).
public string? Artist { get; init; }
Property Value
Author
File author / encoder (au).
public string? Author { get; init; }
Property Value
CreatedBy
Created-by attribution (by).
public string? CreatedBy { get; init; }
Property Value
Empty
Singleton empty metadata.
public static LrcMetadata Empty { get; }
Property Value
Length
Track length (length:mm:ss) when known.
public TimeSpan? Length { get; init; }
Property Value
Lyricist
Lyricist (lr).
public string? Lyricist { get; init; }
Property Value
Offset
Document timing offset (offset:±N milliseconds). Zero by default.
public TimeSpan Offset { get; init; }
Property Value
RawTags
All ID tags in source order. Includes both the "winning" entry for each strongly-typed accessor and any duplicates / unknown keys.
public EquatableArray<LrcTag> RawTags { get; init; }
Property Value
Title
Track title (ti).
public string? Title { get; init; }
Property Value
Tool
Authoring tool (re or tool; last-wins across both keys).
public string? Tool { get; init; }
Property Value
Version
Format version (ve).
public string? Version { get; init; }