pub struct Interval { /* private fields */ }Expand description
Signed chromatic interval between two pitches.
semitones > 0 = ascending, < 0 = descending, 0 = unison.
Implementations§
Source§impl Interval
impl Interval
Sourcepub fn between(a: &Pitch, b: &Pitch) -> Self
pub fn between(a: &Pitch, b: &Pitch) -> Self
Interval from pitch a to pitch b (positive = ascending).
Sourcepub fn abs_semitones(&self) -> u16
pub fn abs_semitones(&self) -> u16
Absolute (unsigned) semitone distance.
Sourcepub fn is_ascending(&self) -> bool
pub fn is_ascending(&self) -> bool
True when b was higher than a in Interval::between.
Sourcepub fn simple_number(&self) -> u8
pub fn simple_number(&self) -> u8
Interval number within an octave (1 = unison, 2 = second … 8 = octave).
Compound intervals (> octave) return the simple equivalent (e.g. a ninth → 2).
Sourcepub fn quality(&self) -> IntervalQuality
pub fn quality(&self) -> IntervalQuality
Quality of the simple interval.
The tritone (6 semitones) is treated as Augmented (A4).
Trait Implementations§
impl Copy for Interval
Source§impl<'de> Deserialize<'de> for Interval
impl<'de> Deserialize<'de> for Interval
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>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Interval
Auto Trait Implementations§
impl Freeze for Interval
impl RefUnwindSafe for Interval
impl Send for Interval
impl Sync for Interval
impl Unpin for Interval
impl UnsafeUnpin for Interval
impl UnwindSafe for Interval
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
Mutably borrows from an owned value. Read more