Table of Contents

Class LrcMetadata

Namespace
ModernLrc.Model
Assembly
ModernLrc.dll

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

string

Artist

Track artist (ar).

public string? Artist { get; init; }

Property Value

string

Author

File author / encoder (au).

public string? Author { get; init; }

Property Value

string

CreatedBy

Created-by attribution (by).

public string? CreatedBy { get; init; }

Property Value

string

Empty

Singleton empty metadata.

public static LrcMetadata Empty { get; }

Property Value

LrcMetadata

Length

Track length (length:mm:ss) when known.

public TimeSpan? Length { get; init; }

Property Value

TimeSpan?

Lyricist

Lyricist (lr).

public string? Lyricist { get; init; }

Property Value

string

Offset

Document timing offset (offset:±N milliseconds). Zero by default.

public TimeSpan Offset { get; init; }

Property Value

TimeSpan

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

EquatableArray<LrcTag>

Title

Track title (ti).

public string? Title { get; init; }

Property Value

string

Tool

Authoring tool (re or tool; last-wins across both keys).

public string? Tool { get; init; }

Property Value

string

Version

Format version (ve).

public string? Version { get; init; }

Property Value

string