pub struct Interval(pub u8);Expand description
A pitch difference, measured in half-steps/semitones.
Tuple Fields§
§0: u8Implementations§
Source§impl Interval
impl Interval
Sourcepub fn is_simple(&self) -> bool
pub fn is_simple(&self) -> bool
Returns true if this is a simple interval (up to one octave).
assert!(Interval::P5.is_simple());Sourcepub fn to_simple(self) -> Interval
pub fn to_simple(self) -> Interval
Return the simple interval counterpart.
Note: This function will reduce Interval::Octave to Interval::P1.
assert_eq!(Interval::m9.to_simple(), Interval::m2);Sourcepub fn is_compound(&self) -> bool
pub fn is_compound(&self) -> bool
Returns true if this is a compound interval (larger than one octave).
assert!(Interval::m9.is_compound());Sourcepub fn to_compound(self) -> Interval
pub fn to_compound(self) -> Interval
Return the compound interval counterpart (added octave). Does nothing if the interval is already compound.
assert_eq!(Interval::m2.to_compound(), Interval::m9);Trait Implementations§
Source§impl Add<Interval> for Note
impl Add<Interval> for Note
Source§impl Add<Interval> for PitchClass
impl Add<Interval> for PitchClass
Source§fn add(self, rhs: Interval) -> <PitchClass as Add<Interval>>::Output
fn add(self, rhs: Interval) -> <PitchClass as Add<Interval>>::Output
Returns the pitch class a given interval above this.
use redact_composer_musical::{Interval as I, NoteName::{C, G}, PitchClass};
assert_eq!(PitchClass::from(C) + I::P5, PitchClass::from(G));
assert_eq!(PitchClass::from(C) + I::Octave, PitchClass::from(C));Source§type Output = PitchClass
type Output = PitchClass
The resulting type after applying the
+ operator.Source§impl AddAssign<Interval> for Note
impl AddAssign<Interval> for Note
Source§fn add_assign(&mut self, rhs: Interval)
fn add_assign(&mut self, rhs: Interval)
Performs the
+= operation. Read moreSource§impl AddAssign<Interval> for PitchClass
impl AddAssign<Interval> for PitchClass
Source§fn add_assign(&mut self, rhs: Interval)
fn add_assign(&mut self, rhs: Interval)
Performs the
+= operation. Read moreSource§impl AddAssign for Interval
impl AddAssign for Interval
Source§fn add_assign(&mut self, rhs: Interval)
fn add_assign(&mut self, rhs: Interval)
Performs the
+= operation. Read moreSource§impl<'de> Deserialize<'de> for Interval
impl<'de> Deserialize<'de> for Interval
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Interval, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Interval, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Element for Interval
impl Element for Interval
Source§fn wrapped_element(&self) -> Option<&(dyn Element + 'static)>
fn wrapped_element(&self) -> Option<&(dyn Element + 'static)>
None.
Source§impl Ord for Interval
impl Ord for Interval
Source§impl PartialOrd for Interval
impl PartialOrd for Interval
Source§impl Serialize for Interval
impl Serialize for Interval
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl Sub<Interval> for Note
impl Sub<Interval> for Note
Source§impl Sub<Interval> for PitchClass
impl Sub<Interval> for PitchClass
Source§fn sub(self, rhs: Interval) -> <PitchClass as Sub<Interval>>::Output
fn sub(self, rhs: Interval) -> <PitchClass as Sub<Interval>>::Output
Returns the pitch class a given interval below this.
use redact_composer_musical::{Interval as I, NoteName::{C, F}, PitchClass};
assert_eq!(PitchClass::from(C) - I::P5, PitchClass::from(F));
assert_eq!(PitchClass::from(C) - I::Octave, PitchClass::from(C));Source§type Output = PitchClass
type Output = PitchClass
The resulting type after applying the
- operator.Source§impl SubAssign<Interval> for Note
impl SubAssign<Interval> for Note
Source§fn sub_assign(&mut self, rhs: Interval)
fn sub_assign(&mut self, rhs: Interval)
Performs the
-= operation. Read moreSource§impl SubAssign<Interval> for PitchClass
impl SubAssign<Interval> for PitchClass
Source§fn sub_assign(&mut self, rhs: Interval)
fn sub_assign(&mut self, rhs: Interval)
Performs the
-= operation. Read moreimpl Copy for Interval
impl Eq for Interval
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 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