Struct Panning Gains
pub struct PanningGains { /* private fields */ }Expand description
Immutable CONTROL-prepared actual f64 coefficients. Pan is -1..1. The seven curves are linear, balanced, sine, sine^1.5, sine², square-root and power^.75. UnityCenter scales by the rounded reciprocal of the ideal center gain, making both center channels unity and boosting endpoints up to 2. No clipping, input scan or limiter. Endpoints/center are explicit; mirrored pans swap identical actual gains. Trigonometry and powers occur here, never in per-frame processing.
use ravet_signal::{PanningGains, PanningLaw, PanningNormalization, StereoPanner};
let left = PanningGains::new(-1., PanningLaw::Sine,
PanningNormalization::UnityEndpoints).unwrap();
let right = PanningGains::new(1., PanningLaw::Sine,
PanningNormalization::UnityEndpoints).unwrap();
let mut panner = StereoPanner::new(left, 2, 64).unwrap();
panner.set_target(right);
assert_eq!(panner.process_mono_sample(1.), [0.5, 0.5]);
assert_eq!(panner.process_mono_sample(1.), [0., 1.]);Implementations§
§impl PanningGains
impl PanningGains
pub fn new( pan: f64, law: PanningLaw, normalization: PanningNormalization, ) -> Result<Self, PanningError>
pub fn pan(&self) -> f64
pub fn law(&self) -> PanningLaw
pub fn normalization(&self) -> PanningNormalization
pub fn gains(&self) -> [f64; 2]
pub fn left(&self) -> f64
pub fn right(&self) -> f64
pub fn endpoint_gain(&self) -> f64
pub fn endpoint_gain(&self) -> f64
Theoretical endpoint maximum, not a floating execution error certificate.
pub fn quantize_f32(&self) -> PanningGains32
pub fn quantize_f32(&self) -> PanningGains32
Explicit coefficient rounding. Requested pan/curve metadata is retained; actual native f32 gains need not satisfy an ideal power equality exactly.
Trait Implementations§
§impl Clone for PanningGains
impl Clone for PanningGains
§fn clone(&self) -> PanningGains
fn clone(&self) -> PanningGains
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for PanningGains
§impl Debug for PanningGains
impl Debug for PanningGains
§impl PartialEq for PanningGains
impl PartialEq for PanningGains
impl StructuralPartialEq for PanningGains
Auto Trait Implementations§
impl Freeze for PanningGains
impl RefUnwindSafe for PanningGains
impl Send for PanningGains
impl Sync for PanningGains
impl Unpin for PanningGains
impl UnsafeUnpin for PanningGains
impl UnwindSafe for PanningGains
Blanket Implementations§
§impl<T> BorrowMut<T> for T
impl<T> BorrowMut<T> for T
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more