pub struct EngineConfig {Show 29 fields
pub mains: Vec<String>,
pub subs: Vec<String>,
pub groups: Vec<(String, Vec<String>)>,
pub target: TargetCurve,
pub xo: Vec<(String, f64)>,
pub main_position: u32,
pub taps: usize,
pub lift_ms: f64,
pub max_boost_db: f64,
pub peq_bands: Option<usize>,
pub max_latency_ms: Option<f64>,
pub rc_range: (f64, Option<f64>),
pub rc_bands: Vec<(f64, f64)>,
pub low_protect: bool,
pub input_hp_hz: Option<f64>,
pub lf_align: bool,
pub mode_decay: bool,
pub hf_phase: bool,
pub room_volume_m3: Option<f64>,
pub rc_hi_basis: RcHiBasis,
pub rc_hi_transition: u8,
pub phase_frac: f64,
pub sub_manual: Vec<(String, SubManual)>,
pub sub_main_delay_ms: f64,
pub bundle_layouts: Vec<(String, BundleLayout)>,
pub infra_boost_max_db: f64,
pub xo_peq_on: bool,
pub xo_peq_lo_hz: f64,
pub xo_peq_hi_hz: f64,
}Expand description
The resolved design settings: the engine constructor’s surface.
Fields§
§mains: Vec<String>Main roles, in configuration group order.
subs: Vec<String>Sub roles, in configuration order.
groups: Vec<(String, Vec<String>)>Configuration groups and their roles, in order (SpeakerConfig.groups()).
target: TargetCurveTarget curve (a copy taken when the computation starts).
xo: Vec<(String, f64)>Crossover in Hz per main group, in upstream dictionary order.
main_position: u32Reference (listening) position.
taps: usizeChannel FIR taps; 0 means PEQ only.
lift_ms: f64Excess-phase lift in ms, before the FIR-length cap.
max_boost_db: f64Boost ceiling in dB for RC, and the cap of the XO and bus PEQ boosts.
peq_bands: Option<usize>Input PEQ bands; None means 16.
max_latency_ms: Option<f64>Total filter latency budget in ms; None means lift + 15.
rc_range: (f64, Option<f64>)RC range (low Hz, high Hz); a missing high bound means automatic
(Schroeder frequency, at most 500 Hz).
rc_bands: Vec<(f64, f64)>Additional manually bounded correction bands (ADR 0024).
low_protect: boolProtect measured low-frequency rolloff (ADR 0022), off by default.
input_hp_hz: Option<f64>Common input high-pass in Hz, applied only after design (ADR 0031).
lf_align: boolCommon LF arrival for the mains (ADR 0025), off by default.
mode_decay: boolPole-replacing cuts for long modes (ADR 0025), off by default.
hf_phase: boolUnwind constant FIR phase above the correction bands (ADR 0030).
room_volume_m3: Option<f64>Room volume in m³, for the Schroeder frequency.
rc_hi_basis: RcHiBasisAutomatic upper-limit evidence; ignored for a manual RC range.
rc_hi_transition: u8Schroeder transition multiplier: 1, 2 or 4.
phase_frac: f64Octave fraction of the excess-phase smoothing (6, or 24 in linear mode).
sub_manual: Vec<(String, SubManual)>Manual sub settings by role, in the order the settings hold them.
sub_main_delay_ms: f64Main output delay added when fixed subs are present, in ms.
bundle_layouts: Vec<(String, BundleLayout)>Bundle layouts by bundle name, in the order the settings hold them.
infra_boost_max_db: f64Ceiling in dB of the two-way infra sub level match.
xo_peq_on: boolWhether the main acoustic-XO PEQ runs.
xo_peq_lo_hz: f64Lower edge of the XO PEQ fitting range in Hz, 0 for automatic.
xo_peq_hi_hz: f64Upper edge of the XO PEQ fitting range in Hz, 0 for automatic.
Trait Implementations§
Source§impl Clone for EngineConfig
impl Clone for EngineConfig
Source§impl Debug for EngineConfig
impl Debug for EngineConfig
Source§impl PartialEq for EngineConfig
impl PartialEq for EngineConfig
impl StructuralPartialEq for EngineConfig
Auto Trait Implementations§
impl Freeze for EngineConfig
impl RefUnwindSafe for EngineConfig
impl Send for EngineConfig
impl Sync for EngineConfig
impl Unpin for EngineConfig
impl UnsafeUnpin for EngineConfig
impl UnwindSafe for EngineConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more