Skip to main content

VitalModel

Struct VitalModel 

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

A decoded .vital preset.

Duplicate keys in one object keep the first position and the last value, as the JSON reader does.

Implementations§

Source§

impl VitalModel

Source

pub fn root(&self) -> &Map<String, Value>

The JSON tree as read, in file order.

Source§

impl VitalModel

Source

pub fn route( &mut self, source: &str, destination: &str, amount: f64, polarity: Option<RoutePolarity>, power: Option<f64>, ) -> Result<usize, FormatError>

Adds a route, or updates the slot that joins the same source and destination, so a route never fires twice. It writes the amount, the bipolar flag and, when given, the curve power. An update keeps the slot’s power when none is given, and always keeps its stereo and bypass flags. A new route starts them from their defaults: power 0, stereo and bypass off.

§Errors

A FormatError for an unknown source (it lists the 32 names), a destination outside the registry (it lists close names), an amount outside -1 to 1, a power outside -10 to 10, or a full matrix (it names the 64-slot limit).

Source

pub fn clear_route(&mut self, slot: usize) -> Result<(), FormatError>

Empties a slot and resets its five controls to their defaults.

§Errors

A FormatError for a slot outside 0 to 63.

Source

pub fn set_wavetable( &mut self, index: usize, table: &Wavetable, ) -> Result<(), FormatError>

Writes the wavetable of oscillator index (0 to 2), one Wave Source component with the keyframes sorted by position. The table asks the synth not to remove DC or normalise, so the frames stay as written.

§Errors

A FormatError for an index above 2, no keyframe, a position above 256 or used twice, a frame that is not 2048 samples, or a sample that is not finite.

Source

pub fn wavetable(&self, index: usize) -> Result<Wavetable, FormatError>

Reads back the Wave Source keyframes of oscillator index.

§Errors

A FormatError when the table is missing, holds another component first, or a wave_data text has the wrong length or is not base64. The length is checked before decoding.

Source

pub fn set_lfo_shape( &mut self, index: usize, shape: &LfoShape, ) -> Result<(), FormatError>

Writes the shape of LFO index (0 to 7).

§Errors

A FormatError for an index above 7, fewer than 2 or more than 100 points, a power count that differs from the point count, x that falls or leaves 0 to 1, y outside 0 to 1, or a value that is not finite.

Source

pub fn set_effect_on( &mut self, effect: EffectFamily, on: bool, ) -> Result<(), FormatError>

Switches an effect on or off.

§Errors

A FormatError if the model has no settings.

Source

pub fn set_effect_order( &mut self, order: &[EffectFamily; 9], ) -> Result<u32, FormatError>

Sets the order of the effect list, top to bottom, and returns its code.

§Errors

A FormatError when the list does not hold each effect once.

Source

pub fn set_macro_label( &mut self, number: usize, label: &str, ) -> Result<(), FormatError>

Sets the label of macro number (1 to 4).

§Errors

A FormatError for a number outside 1 to 4.

Trait Implementations§

Source§

impl Clone for VitalModel

Source§

fn clone(&self) -> Self

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 Debug for VitalModel

Source§

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

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

impl PartialEq for VitalModel

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PresetModel for VitalModel

Source§

fn header(&self) -> Header

The header fields.
Source§

fn get(&self, key: &str) -> Option<Stored>

The value of a control as the file holds it, or None when the key is absent. An explicit default is Some.
Source§

fn set(&mut self, key: &str, value: Stored) -> Result<(), FormatError>

Sets a control. Read more
Source§

fn reset(&mut self, key: &str)

Removes a control, or writes its default where the format needs one.
Source§

fn routes(&self) -> Vec<Option<Route>>

The modulation slots in order. An empty slot is None.
Source§

fn set_route( &mut self, slot: usize, route: Option<Route>, ) -> Result<(), FormatError>

Sets or clears a modulation slot. Read more
Source§

fn set_name(&mut self, name: &str) -> Result<(), FormatError>

Sets the preset name. Read more
Source§

fn set_author(&mut self, author: &str) -> Result<(), FormatError>

Sets the author. Read more
Source§

fn set_description(&mut self, description: &str) -> Result<(), FormatError>

Sets the description. Read more
Source§

fn set_tags(&mut self, tags: &[String]) -> Result<(), FormatError>

Sets the tags or the style. Read more
Source§

fn describe(&self, opts: &DescribeOptions) -> Description

The ordered tree that preset inspect prints.
Source§

fn unknown_keys(&self) -> Vec<String>

Keys in the file that the registry does not cover, as paths such as settings.custom_warps. They stay in the model and survive a write.
Source§

fn as_any(&self) -> &dyn Any

The model as Any, so its format can take it back for writing.
Source§

impl StructuralPartialEq for VitalModel

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> CloneAny for T
where T: Any + Clone,

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
§

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

§

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

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

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

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSend for T
where T: Any + Send,

§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.