pub struct EngineConfig {Show 21 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 room_volume_m3: Option<f64>,
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).
room_volume_m3: Option<f64>Room volume in m³, for the Schroeder frequency.
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