pub struct PitchClass(/* private fields */);Expand description
A mod-12 pitch class, where C = 0 and values increase by semitone to B = 11.
Pitch classes are octave-agnostic: every C, regardless of register, shares the
pitch class C. The inner u8 is always in the range 0..12.
§Examples
use sim_lib_pitch_core::PitchClass;
assert_eq!(PitchClass::C.transpose(7), PitchClass::G);
assert_eq!(PitchClass::E.interval_class(PitchClass::C), 4);Implementations§
Source§impl PitchClass
impl PitchClass
Sourcepub const C: PitchClass
pub const C: PitchClass
The pitch class C (0).
Sourcepub const CS: PitchClass
pub const CS: PitchClass
The pitch class C-sharp / D-flat (1).
Sourcepub const D: PitchClass
pub const D: PitchClass
The pitch class D (2).
Sourcepub const DS: PitchClass
pub const DS: PitchClass
The pitch class D-sharp / E-flat (3).
Sourcepub const E: PitchClass
pub const E: PitchClass
The pitch class E (4).
Sourcepub const F: PitchClass
pub const F: PitchClass
The pitch class F (5).
Sourcepub const FS: PitchClass
pub const FS: PitchClass
The pitch class F-sharp / G-flat (6).
Sourcepub const G: PitchClass
pub const G: PitchClass
The pitch class G (7).
Sourcepub const GS: PitchClass
pub const GS: PitchClass
The pitch class G-sharp / A-flat (8).
Sourcepub const A: PitchClass
pub const A: PitchClass
The pitch class A (9).
Sourcepub const AS: PitchClass
pub const AS: PitchClass
The pitch class A-sharp / B-flat (10).
Sourcepub const B: PitchClass
pub const B: PitchClass
The pitch class B (11).
Sourcepub fn new(value: u8) -> Result<PitchClass, PitchError>
pub fn new(value: u8) -> Result<PitchClass, PitchError>
Constructs a pitch class from a raw value, rejecting values of 12 or more.
Sourcepub fn transpose(self, semitones: i32) -> PitchClass
pub fn transpose(self, semitones: i32) -> PitchClass
Returns this pitch class shifted up by semitones (or down if negative),
wrapping within the mod-12 octave.
Sourcepub fn invert(self, axis: PitchClass) -> PitchClass
pub fn invert(self, axis: PitchClass) -> PitchClass
Returns the inversion of this pitch class about axis, wrapping within the
mod-12 octave.
Sourcepub fn interval_class(self, other: PitchClass) -> u8
pub fn interval_class(self, other: PitchClass) -> u8
Returns the interval class (0..=6) between this pitch class and other,
the smaller of the ascending and descending distances.
Sourcepub fn canonical_name(self) -> &'static str
pub fn canonical_name(self) -> &'static str
Returns the canonical sharp-spelled name of this pitch class (for example
"C#" for pitch class 1).
Trait Implementations§
Source§impl Clone for PitchClass
impl Clone for PitchClass
Source§fn clone(&self) -> PitchClass
fn clone(&self) -> PitchClass
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more