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 IOperatorRemarks
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
blockSpan<StereoFrame>