pub struct VoicingRule {Show 18 fields
pub shape: VoicingShape,
pub max_span: Option<u8>,
pub min_span: Option<u8>,
pub max_gap: Option<u8>,
pub min_gap: Option<u8>,
pub step: Option<u8>,
pub step_tolerance: Option<u8>,
pub min_notes: Option<u8>,
pub max_notes: Option<u8>,
pub min_pitch_classes: Option<u8>,
pub lowest: Option<u8>,
pub below: Option<u8>,
pub max_below: Option<u8>,
pub drop: Vec<u8>,
pub bass: Option<BassTone>,
pub degrees: Vec<u8>,
pub max_leap: Option<u8>,
pub floors: Vec<Floor>,
}Expand description
The parameters of a voicing rule. shape names the test; the numbers
that shape uses are set and the rest are absent.
Fields§
§shape: VoicingShapeThe test the evaluator runs.
max_span: Option<u8>The widest span from the lowest to the highest tone.
min_span: Option<u8>The narrowest span.
max_gap: Option<u8>The widest gap between adjacent tones.
min_gap: Option<u8>The narrowest gap between adjacent tones.
step: Option<u8>The interval between adjacent tones.
step_tolerance: Option<u8>How far a step may differ from step.
min_notes: Option<u8>The fewest notes.
max_notes: Option<u8>The most notes.
min_pitch_classes: Option<u8>The fewest distinct pitch classes.
lowest: Option<u8>No tone below this pitch.
below: Option<u8>With max_below: the pitch under which tones are counted.
max_below: Option<u8>The most tones under below.
drop: Vec<u8>Voices counted from the top that move down an octave.
bass: Option<BassTone>The chord tone in the bass.
degrees: Vec<u8>Chord degrees from the bottom up.
max_leap: Option<u8>The largest leap of an upper voice between chords.
floors: Vec<Floor>The lowest pitch of the lower note of each interval.
Trait Implementations§
Source§impl Clone for VoicingRule
impl Clone for VoicingRule
Source§impl Debug for VoicingRule
impl Debug for VoicingRule
Source§impl<'de> Deserialize<'de> for VoicingRule
impl<'de> Deserialize<'de> for VoicingRule
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for VoicingRule
Source§impl PartialEq for VoicingRule
impl PartialEq for VoicingRule
Source§impl Serialize for VoicingRule
impl Serialize for VoicingRule
impl StructuralPartialEq for VoicingRule
Auto Trait Implementations§
impl Freeze for VoicingRule
impl RefUnwindSafe for VoicingRule
impl Send for VoicingRule
impl Sync for VoicingRule
impl Unpin for VoicingRule
impl UnsafeUnpin for VoicingRule
impl UnwindSafe for VoicingRule
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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