Skip to main content

AcousticConfig

Struct AcousticConfig 

Source
pub struct AcousticConfig {
Show 19 fields pub max_rate: f64, pub wow_rev_seconds: f64, pub flutter_hz: f64, pub acoustic_enabled: bool, pub surface_enabled: bool, pub stylus_tracing_limit: f64, pub high_frequency_acceleration_limit: f64, pub texture_scale: f64, pub contact_gain: f64, pub dust_gain: f64, pub impulse_gain: f64, pub wear_gain: f64, pub source_texture_gain: f64, pub soft_clip: bool, pub cartridge_velocity_gain: bool, pub riaa_speed_tilt: bool, pub riaa_voicing_rate: f64, pub vinyl_voicing: f64, pub vinyl_voicing_curve: u32,
}

Fields§

§max_rate: f64§wow_rev_seconds: f64§flutter_hz: f64§acoustic_enabled: bool§surface_enabled: bool§stylus_tracing_limit: f64

Soft cartridge tracing limit derived from source curvature and travel velocity. This preserves the existing speed-dependent stylus model.

§high_frequency_acceleration_limit: f64

Stereo-linked upper-band programme acceleration limiter. 0 bypasses it exactly; 1 applies the full soft-knee reduction.

§texture_scale: f64

Scales the scratch-excited friction terms as a master: contact noise (with its acceleration lift), needle-drop impulse noise, and the slope/curvature source texture. 1 is the historical level, bit for bit. Dust, groove position noise and wear crackle are untouched by it.

§contact_gain: f64

Per-component levels on the surface bed and the source texture, each 1 at the historical level so a default changes no sample. They trim what texture_scale carries as a master, and each has its own slider in ACOUSTICS: the contact roar, the dust flecks, the needle-drop impulse, the wear crackle, and the texture the source’s own shape makes.

§dust_gain: f64§impulse_gain: f64§wear_gain: f64§source_texture_gain: f64§soft_clip: bool

Replaces the final hard clamp with a tanh saturator. false keeps the historical digital clamp, bit for bit. tanh has unity slope at silence, so small signals render identically and only would-be-clipped peaks fold over — the mechanical saturation a real groove has and a clamp does not.

§cartridge_velocity_gain: bool

A magnetic cartridge is a velocity transducer: its output is proportional to how fast the groove passes the stylus, so playing at rate r yields r * m(r*t). The rate factor is the whole law. It is exactly 1 at nominal speed, and it reaches silence continuously at rest, which is why a stopped record is silent — no stop knee needed.

§riaa_speed_tilt: bool

The speed-dependent half of the phono chain: a groove cut with RIAA pre-emphasis and replayed off speed no longer cancels the preamp’s fixed de-emphasis. See [RiaaSpeedTilt]. Physically the partner of cartridge_velocity_gain; the two are meant to run together.

§riaa_voicing_rate: f64

A fixed, deliberate mismatch of the RIAA pair: the same pre-emphasis / de-emphasis residue as [RiaaSpeedTilt], but held at a constant, caller-chosen rate rather than following the record. 1.0 is exactly the standard curve and is bit-exact transparent. Above 1.0 it trades top end for body — the warmth a matched cut and playback cannot otherwise produce. Off by default; a seed, not a calibrated hardware profile.

§vinyl_voicing: f64

Opt-in vinyl voicing amount in [0, 1]: blends a fixed seed curve (a low-end preamp shelf plus cartridge/arm top-end loss) over the transparent master. 0 is bypassed bit-exactly. The full amount is a clearly audible warmth, not a subtle shelf. See [VinylVoicingFilter].

§vinyl_voicing_curve: u32

Which [VINYL_VOICING_CURVES] shape vinyl_voicing blends: 0 coil load, 1 tip mass, 2 curve drift. Out-of-range values are rejected.

Trait Implementations§

Source§

impl Clone for AcousticConfig

Source§

fn clone(&self) -> AcousticConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AcousticConfig

Source§

impl Debug for AcousticConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AcousticConfig

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for AcousticConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

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
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more