Table of Contents

Class FadeSection

Namespace
Nyra.Entities
Assembly
Nyra.dll

One fade of a FadingOptions chain.

public sealed record FadeSection : IEquatable<FadeSection>
Inheritance
FadeSection
Implements
Inherited Members

Properties

Curve

Fade curve by name, case-sensitive.

[JsonPropertyName("curve")]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
[JsonConverter(typeof(FadeCurveConverter))]
public string? Curve { get; init; }

Property Value

string

Remarks

Allowed curves per type: volume takes linear, exponential, logarithmic or s-curve, tape takes linear, exponential or sinusoidal, and both takes only the shared linear and exponential.

Scratch reuses this field as a style instead: wash, backspin, baby, start, stop or random on trackStart, and wash, backspin, baby or stop on the other running fades. Seek and resume always run start and never read this field.

A null curve is stored as "linear". For scratch that runs as a plain ramp on trackStart and as wash on the other stages, and an empty string reaches the random default. The explicit linear is written because an omitted member would fall into the server's own default instead.

DurationMilliseconds

Fade duration in milliseconds, 0 disables this fade.

[JsonPropertyName("duration")]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
[JsonConverter(typeof(FadeDurationConverter))]
public int? DurationMilliseconds { get; init; }

Property Value

int?

Remarks

A null still writes an explicit zero, an omitted member would fall into the server's own default handling instead, the explicit form is the one both behaved with.

A duration a co-client stored outside the int32 range clamps to the nearest bound on read, a non-finite one reads as null, the echo of another client's write must not kill the session read.

Type

What the fade changes, null fades the volume.

[JsonPropertyName("type")]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
[JsonConverter(typeof(FadeTypeConverter))]
public FadeType? Type { get; init; }

Property Value

FadeType?

Remarks

A null still writes an explicit volume, an omitted member would fall into the server's own default and merge.