Crate fundsp

Source
Expand description

FunDSP is an audio processing and synthesis library.

See README.md in crate root folder for an overview. For a list of changes, see CHANGES.md in the same folder.

The central abstractions are located in the audionode and audiounit modules. The combinator module defines the graph operators.

Re-exports§

pub use numeric_array;
pub use numeric_array::typenum;
pub use funutd;
pub use thingbuf;
pub use wide;

Modules§

adsr
Attack-Decay-Sustain-Release Envelope
audionode
The central AudioNode abstraction and basic components.
audiounit
The dynamical AudioUnit abstraction and utilities.
biquad
Biquad filters with optional nonlinearities by Jatin Chowdhury.
biquad_bank
Bank of parallel biquad filters with SIMD acceleration.
buffer
SIMD accelerated audio buffers for block processing.
combinator
AudioNode wrapper An and operators, methods and traits.
delay
Delay components.
denormal
Denormal prevention.
dynamics
Audio dynamics related components.
envelope
Subsampled control node.
feedback
Feedback components.
fft
Interface to microfft.
filter
Various filters.
fir
FIR filters.
follow
Parameter smoothing filter.
gen
Sound generators using the Dna system. WIP.
granular
Granular synthesizer. WIP.
hacker
64/32-bit prelude (64-bit internal state with 32-bit interface).
hacker32
32-bit prelude.
math
Math functions and utilities and procedural generation tools.
moog
Moog ladder filter.
net
Network of audio units connected together.
noise
Noise components.
oscillator
Oscillator components.
oversample
Oversampling.
pan
Panning functionality.
prelude
Generic prelude.
read
Symphonia integration for reading audio files.
realnet
Real-time friendly backend for Net.
realseq
Realtime safe backend for Sequencer.
resample
Cubic variable speed resampler.
resynth
Frequency domain resynthesis.
reverb
Reverberation related code.
rez
Resonant two-pole filter by Paul Kellett.
ring
Ring buffer component.
sequencer
The sequencer unit mixes together scheduled audio units with sample accurate timing.
setting
Setting system.
shape
Waveshaping components.
shared
Shared atomic controls and other atomic stuff.
signal
Signal flow analysis components.
slot
Slot for an audio unit that can be updated with a crossfade in real time.
snoop
The snoop node shares audio data with a frontend thread.
sound
FunDSP Sound Library. WIP.
svf
Andrew Simper’s state variable filters.
system
Dynamical system component.
vertex
Vertex structure for Net.
wave
Multichannel wave abstraction.
wavetable
Bandlimited wavetable synthesizer.
write
WAV file writing.

Constants§

DEFAULT_SR
Default sample rate is 44.1 kHz.
MAX_BUFFER_LOG
Binary logarithm of maximum buffer size.
MAX_BUFFER_SIZE
Maximum buffer size for block processing is 64 samples.
SIMD_C
Left shift for converting from channel number to SIMD index.
SIMD_LEN
The length of a buffer in SIMD elements.
SIMD_M
“SIMD mask”, SIMD_N minus one.
SIMD_N
Blocks are explicitly SIMD accelerated. This is the length of a SIMD element in f32 samples.
SIMD_S
Right shift for converting from samples to SIMD elements.

Traits§

Concat
Defines GenericSequences which can be joined together, forming a larger array.
Float
Float abstraction.
GenericSequence
Defines some sequence with an associated length and iteration capabilities.
Int
Integer abstraction.
Num
Number abstraction.
Real
Refined float abstraction.

Functions§

convert
Generic floating point conversion function.
full_simd_items
Convert amount from samples to full SIMD elements.
simd_items
Convert amount from samples to (full or partial) SIMD elements.

Type Aliases§

F32x
Blocks are explicitly SIMD accelerated. This is the type of a SIMD element containing successive f32 samples.
I32x
The 32-bit signed integer SIMD element corresponding to F32x.
U32x
The 32-bit unsigned integer SIMD element corresponding to F32x.