#[repr(u8)]pub enum ModeKind {
Show 19 variants
Ionian = 0,
Dorian = 1,
Phrygian = 2,
Lydian = 3,
Mixolydian = 4,
Aeolian = 5,
Locrian = 6,
LocrianNatural6 = 7,
IonianSharp5 = 8,
DorianSharp4 = 9,
PhrygianDominant = 10,
LydianSharp2 = 11,
Ultralocrian = 12,
DorianFlat2 = 13,
LydianAugmented = 14,
LydianDominant = 15,
MixolydianFlat6 = 16,
LocrianNatural2 = 17,
Altered = 18,
}Expand description
An enum representing a mode kind (type of mode).
Each mode kind has an explicit list of intervals that define the mode. These intervals are NOT derived by rotation - they are the authoritative definition. Parent scale information is included for documentation purposes only.
Variants§
Ionian = 0
Ionian mode (1st mode of major scale).
Dorian = 1
Dorian mode (2nd mode of major scale).
Phrygian = 2
Phrygian mode (3rd mode of major scale).
Lydian = 3
Lydian mode (4th mode of major scale).
Mixolydian = 4
Mixolydian mode (5th mode of major scale).
Aeolian = 5
Aeolian mode (6th mode of major scale).
Locrian = 6
Locrian mode (7th mode of major scale).
LocrianNatural6 = 7
Locrian ♮6 mode (2nd mode of harmonic minor).
IonianSharp5 = 8
Ionian ♯5 mode (3rd mode of harmonic minor).
DorianSharp4 = 9
Dorian ♯4 mode (4th mode of harmonic minor).
PhrygianDominant = 10
Phrygian Dominant mode (5th mode of harmonic minor).
LydianSharp2 = 11
Lydian ♯2 mode (6th mode of harmonic minor).
Ultralocrian = 12
Ultralocrian mode (7th mode of harmonic minor).
DorianFlat2 = 13
Dorian ♭2 mode (2nd mode of melodic minor).
LydianAugmented = 14
Lydian Augmented mode (3rd mode of melodic minor).
LydianDominant = 15
Lydian Dominant mode (4th mode of melodic minor).
MixolydianFlat6 = 16
Mixolydian ♭6 mode (5th mode of melodic minor).
LocrianNatural2 = 17
Locrian ♮2 mode (6th mode of melodic minor).
Altered = 18
Altered / Super Locrian mode (7th mode of melodic minor).
Implementations§
Source§impl ModeKind
impl ModeKind
Sourcepub fn parent_scale(&self) -> ScaleKind
pub fn parent_scale(&self) -> ScaleKind
Returns the parent scale kind for this mode (for documentation only).
This is metadata - the intervals are NOT derived from the parent.
Sourcepub fn parent_degree(&self) -> u8
pub fn parent_degree(&self) -> u8
Returns the degree of the parent scale that this mode starts on (for documentation only).
This is metadata - the intervals are NOT derived from the parent.
Trait Implementations§
impl Copy for ModeKind
Source§impl<'de> Deserialize<'de> for ModeKind
impl<'de> Deserialize<'de> for ModeKind
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 ModeKind
Source§impl HasDescription for ModeKind
impl HasDescription for ModeKind
Source§fn description(&self) -> &'static str
fn description(&self) -> &'static str
Source§impl HasIntervals for ModeKind
impl HasIntervals for ModeKind
Source§impl HasStaticName for ModeKind
impl HasStaticName for ModeKind
Source§fn static_name(&self) -> &'static str
fn static_name(&self) -> &'static str
Source§impl Ord for ModeKind
impl Ord for ModeKind
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for ModeKind
impl PartialOrd for ModeKind
impl StructuralPartialEq for ModeKind
Auto Trait Implementations§
impl Freeze for ModeKind
impl RefUnwindSafe for ModeKind
impl Send for ModeKind
impl Sync for ModeKind
impl Unpin for ModeKind
impl UnsafeUnpin for ModeKind
impl UnwindSafe for ModeKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.