Table of Contents

Interface IOperator

Namespace
Sigil.Sound
Assembly
Sigil.Sound.dll

The low-level contract for a running piece of DSP: a compiled, stateful instance produced from a Sigil.Sound.Sound for one Sigil.Sound.RenderContext.

public interface IOperator

Remarks

Sigil.Sound.IOperator.RenderBlock(System.Span{Sigil.Sound.StereoFrame}) runs on the audio thread and MUST be real-time safe:

  • no managed allocations (allocate scratch buffers in the constructor, sized to Sigil.Sound.RenderContext.BlockSize),
  • no locks that could cause priority inversion,
  • no blocking I/O or anything else with unbounded latency.

Each call continues where the previous one stopped; operators keep their own position.

Methods

RenderBlock(Span<StereoFrame>)

Renders the next block.Length frames, overwriting block. block.Length is at most Sigil.Sound.RenderContext.BlockSize.

void RenderBlock(Span<StereoFrame> block)

Parameters

block Span<StereoFrame>