1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Built-in audio nodes.
//!
//! Nodes are organized into three categories:
//!
//! ## Sources ([`source`])
//!
//! Generate audio with no audio inputs:
//! - [`Sine`] - Sine wave oscillator with frequency/amplitude control
//! - [`SamplePlayer`] - Play pre-decoded audio samples
//! - [`ResamplingSource`] - Read from ring buffer with sample rate conversion (internal use)
//!
//! ## Effects ([`effect`])
//!
//! Process audio (inputs → outputs):
//! - [`Gain`] - Volume control with smoothing
//! - [`Mixer`] - Sum multiple inputs together
//! - [`SlewLimiter`] - Smooth rapid changes (for control signals)
//!
//! ## Sinks ([`sink`])
//!
//! Consume audio with no audio outputs:
//! - [`CpalSink`] - Output to system audio device (requires `cpal_sink` feature)
//! - [`RtrbSink`] - Write to ring buffer (internal use for sub-graphs)
//!
//! # Message Types
//!
//! Most nodes have associated message types for runtime parameter control:
//! - [`SineMessage`] - Control [`Sine`] frequency and amplitude
//! - [`PlayerMessage`] - Control [`SamplePlayer`] playback (play/pause/seek)
//! - [`GainMessage`] - Control [`Gain`] level
//! - [`SlewLimiterMessage`] - Control [`SlewLimiter`] rate
//!
//! Nodes without parameters (like [`Mixer`]) use `()` as their message type.
// Re-export common types at the top level for convenience
pub use ;
pub use ;
pub use RtrbSink;
pub use CpalSink;