Skip to main content

ToneStack

Struct ToneStack 

Source
pub struct ToneStack { /* private fields */ }
Expand description

Represents the tone stack with atomic bass, middle, and treble parameters for audio equalization.

The tone stack provides controls for adjusting low (bass), mid-range (middle), and high (treble) frequencies. It uses [AtomicF32] for lock-free updates, enabling low-latency parameter changes from the UI thread while the audio processing thread reads them without interruption.

All parameters are validated to be between 0.0 and 1.0 (inclusive); attempting to set a value outside this range will panic.

Implementations§

Source§

impl ToneStack

Source

pub fn new() -> Self

Creates a new ToneStack with default parameter values.

Bass, middle, and treble are initialized to 1.0.

Source

pub fn bass(&self) -> Arc<AtomicF32>

Returns a cloned Arc to the atomic bass value.

Allows independent threads to share and read/write the bass parameter without contention.

Source

pub fn middle(&self) -> Arc<AtomicF32>

Returns a cloned Arc to the atomic middle value.

Allows independent threads to share and read/write the middle parameter without contention.

Source

pub fn treble(&self) -> Arc<AtomicF32>

Returns a cloned Arc to the atomic treble value.

Allows independent threads to share and read/write the treble parameter without contention.

Source

pub fn set_bass(&self, bass: f32)

Sets the bass level for the tone stack.

The bass value is atomically updated and will be read by the audio processing thread on the next sample cycle.

§Arguments
  • bass - The new bass value. Must be between 0.0 and 1.0 (inclusive).
§Panics

Panics if bass is negative or greater than 1.0.

Source

pub fn set_middle(&self, middle: f32)

Sets the middle level for the tone stack.

The middle value is atomically updated and will be read by the audio processing thread on the next sample cycle.

§Arguments
  • middle - The new middle value. Must be between 0.0 and 1.0 (inclusive).
§Panics

Panics if middle is negative or greater than 1.0.

Source

pub fn set_treble(&self, treble: f32)

Sets the treble level for the tone stack.

The treble value is atomically updated and will be read by the audio processing thread on the next sample cycle.

§Arguments
  • treble - The new treble value. Must be between 0.0 and 1.0 (inclusive).
§Panics

Panics if treble is negative or greater than 1.0.

Trait Implementations§

Source§

impl Default for ToneStack

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<&ToneStack> for ToneStackDto

Source§

fn from(tone_stack: &ToneStack) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,