Crate dsp_process

Crate dsp_process 

Source
Expand description

§Declarative processing primitives

§Traits

The major traits are Process/SplitProcess/Inplace/SplitInplace.

§Composition

Impls can be cascaded in (homogeneous) [C; N] arrays/[C] slices, and heterogeneous (C0, C1) tuples. They can be used as configuration-major or configuration-minor (through Minor) or in Adds on complementary allpasses and polyphase banks. Tuples, arrays, and Pairs, and Minor can be mixed and nested ad lib. For a given filter configuration C and state S pair the trait is usually implemented through Split<&'a C, &mut S> (created ad-hoc from by borrowing configuration and state) or Split<C, S> (owned configuration and state). Stateless filters should implement Process for &Self for composability through Split<Unsplit<&Self>, ()>. Configuration-less filters or filters that include their configuration should implement Process for Self and can be used in split configurations through Split<(), Unsplit<Self>>.

Structs§

Add
Summation
Buffer
Buffer input or output, or fixed delay line
Butterfly
Sum and difference
Channels
Multiple channels to be processed with the same configuration
Chunk
Chunked processing
ChunkIn
Chunked input
ChunkInOut
Chunked input and output
ChunkOut
Chunked output
Clamp
Clamp between min and max using Ord
Comb
Comb (derivative)
Decimator
Adapts a decimator to input chunk mode
Gain
Multiply by constant
Identity
Identity using Copy
Integrator
Integrator
Interpolator
Adapts an interpolator to output chunk mode
Major
Chain of major processors with intermediate buffer supporting block() processing from individual block()s
Map
Map Option and Result
Minor
Processor-minor, data-major
Mul
Product
Neg
Inversion using Neg.
Nyquist
Nyquist zero with gain 2
Offset
Addition of a constant
Parallel
Fan out parallel input to parallel processors
Rate
Decimate or zero stuff
Split
A stateful processor with split state
Sub
Difference
Transpose
Data block transposition wrapper
Unsplit
Stateless/stateful marker

Traits§

Inplace
Inplace processing
Process
Processing block
SplitInplace
Inplace processing with a split state
SplitProcess
Processing with split state

Type Aliases§

Pair
Parallel filter pair