AudioGraphBuilder.plc() method

Packet-loss concealment: fills timeline gaps in the input with synthesized audio so a dropout (a dropped SDI frame, a lost packet run) is broadly inaudible up to ~40 ms and inoffensive beyond.

strategy (default "plc"): signal-adaptive — tonal content continues at its own pitch, noise-like content extends as shaped noise, both attenuated to silence by ~100 ms. "replicate" is the legacy GapFiller echo; "silence" fades out and back in (debug).

Gaps longer than maxGapMs (default 500) are an outage: nothing is manufactured — the (smaller) hole passes through and the audio fades back in on return. latencyMs (default 0) holds audio back so the silence strategy can fade out the pre-gap tail retrospectively, at the cost of that much latency.

When a name is given, concealment events (concealed_ms, voiced) are emitted on the measurement firehose under that tap name.

Signature:

plc(input: AudioNode, opts?: {
        strategy?: "plc" | "replicate" | "silence";
        maxGapMs?: number;
        latencyMs?: number;
        name?: string;
    }): AudioNode;

Parameters

Parameter Type Description

input

AudioNode

opts

{ strategy?: "plc" | "replicate" | "silence"; maxGapMs?: number; latencyMs?: number; name?: string; }

(Optional)

Returns: