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
AudioNodeabstraction and basic components. - audiounit
- The dynamical
AudioUnitabstraction 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
AudioNodewrapperAnand 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_Nminus one. - SIMD_N
- Blocks are explicitly SIMD accelerated. This is the length of a SIMD element in
f32samples. - 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.
- Generic
Sequence - 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.