Module: MTK::Lang::Intervals

Extended by:
PseudoConstants
Defined in:
lib/mtk/lang/intervals.rb

Overview

Defines a constant for Core::Intervals up to an octave using diatonic naming conventions

Naming conventions

P#: perfect interval
M#: major interval
m#: minor interval
TT: tritone
a#: augmented interval
d#: diminished interval

These can be thought of like constants, but in order to support the lower case names, it was necessary to define them as “pseudo constant” methods. Like constants, these methods are available either through the module (MTK::Lang::Intervals::m2) or via mixin (include MTK::Lang::Intervals; m2). They are listed under the “Instance Attribute Summary” of this page.

Constant Summary collapse

INTERVALS =

All “psuedo constants” defined in this module

[P1, d2, m2, a1, M2, d3, m3, a2, M3, d4, P4, a3, TT, a4, d5, P5, d6, m6, a5, M6, d7, m7, a6, M7, d8, P8, a7].freeze
INTERVAL_NAMES =

The names of all “psuedo constants” defined in this module

MTK::Core::Interval::ALL_NAMES

Instance Attribute Summary collapse

Method Summary

Methods included from PseudoConstants

define_constant

Instance Attribute Details

#a1MTK::Core::Interval (readonly)

augmented unison: 1 semitones

Returns:

See Also:



45
# File 'lib/mtk/lang/intervals.rb', line 45

define_interval 'a1', MTK::Core::Interval[1], 'augmented unison', 1

#a2MTK::Core::Interval (readonly)

augmented second: 3 semitones

Returns:

See Also:



59
# File 'lib/mtk/lang/intervals.rb', line 59

define_interval 'a2', MTK::Core::Interval[3], 'augmented second', 3

#a3MTK::Core::Interval (readonly)

augmented third: 5 semitones

Returns:

See Also:



73
# File 'lib/mtk/lang/intervals.rb', line 73

define_interval 'a3', MTK::Core::Interval[5], 'augmented third', 5

#a4MTK::Core::Interval (readonly)

augmented fourth: 6 semitones

Returns:

See Also:



82
# File 'lib/mtk/lang/intervals.rb', line 82

define_interval 'a4', MTK::Core::Interval[6], 'augmented fourth', 6

#a5MTK::Core::Interval (readonly)

augmented fifth: 8 semitones

Returns:

See Also:



100
# File 'lib/mtk/lang/intervals.rb', line 100

define_interval 'a5', MTK::Core::Interval[8], 'augmented fifth', 8

#a6MTK::Core::Interval (readonly)

augmented sixth: 10 semitones

Returns:

See Also:



114
# File 'lib/mtk/lang/intervals.rb', line 114

define_interval 'a6', MTK::Core::Interval[10], 'augmented sixth', 10

#a7MTK::Core::Interval (readonly)

augmented seventh: 12 semitones

Returns:

See Also:



128
# File 'lib/mtk/lang/intervals.rb', line 128

define_interval 'a7', MTK::Core::Interval[12], 'augmented seventh', 12

#d2MTK::Core::Interval (readonly)

diminished second: 0 semitones

Returns:

See Also:



38
# File 'lib/mtk/lang/intervals.rb', line 38

define_interval 'd2', MTK::Core::Interval[0], 'diminished second', 0

#d3MTK::Core::Interval (readonly)

diminished third: 2 semitones

Returns:

See Also:



52
# File 'lib/mtk/lang/intervals.rb', line 52

define_interval 'd3', MTK::Core::Interval[2], 'diminished third', 2

#d4MTK::Core::Interval (readonly)

diminished fourth: 4 semitones

Returns:

See Also:



66
# File 'lib/mtk/lang/intervals.rb', line 66

define_interval 'd4', MTK::Core::Interval[4], 'diminished fourth', 4

#d5MTK::Core::Interval (readonly)

diminished fifth: 6 semitones

Returns:

See Also:



86
# File 'lib/mtk/lang/intervals.rb', line 86

define_interval 'd5', MTK::Core::Interval[6], 'diminished fifth', 6

#d6MTK::Core::Interval (readonly)

diminished sixth: 7 semitones

Returns:

See Also:



93
# File 'lib/mtk/lang/intervals.rb', line 93

define_interval 'd6', MTK::Core::Interval[7], 'diminished sixth', 7

#d7MTK::Core::Interval (readonly)

diminished seventh: 9 semitones

Returns:

See Also:



107
# File 'lib/mtk/lang/intervals.rb', line 107

define_interval 'd7', MTK::Core::Interval[9], 'diminished seventh', 9

#d8MTK::Core::Interval (readonly)

diminished octave: 11 semitones

Returns:

See Also:



121
# File 'lib/mtk/lang/intervals.rb', line 121

define_interval 'd8', MTK::Core::Interval[11], 'diminished octave', 11

#m2MTK::Core::Interval (readonly)

minor second: 1 semitones

Returns:

See Also:



42
# File 'lib/mtk/lang/intervals.rb', line 42

define_interval 'm2', MTK::Core::Interval[1], 'minor second', 1

#M2MTK::Core::Interval (readonly)

major second: 2 semitones

Returns:

See Also:



49
# File 'lib/mtk/lang/intervals.rb', line 49

define_interval 'M2', MTK::Core::Interval[2], 'major second', 2

#m3MTK::Core::Interval (readonly)

minor third: 3 semitones

Returns:

See Also:



56
# File 'lib/mtk/lang/intervals.rb', line 56

define_interval 'm3', MTK::Core::Interval[3], 'minor third', 3

#M3MTK::Core::Interval (readonly)

major third: 4 semitones

Returns:

See Also:



63
# File 'lib/mtk/lang/intervals.rb', line 63

define_interval 'M3', MTK::Core::Interval[4], 'major third', 4

#M6MTK::Core::Interval (readonly)

major sixth: 9 semitones

Returns:

See Also:



104
# File 'lib/mtk/lang/intervals.rb', line 104

define_interval 'M6', MTK::Core::Interval[9], 'major sixth', 9

#m6MTK::Core::Interval (readonly)

minor sixth: 8 semitones

Returns:

See Also:



97
# File 'lib/mtk/lang/intervals.rb', line 97

define_interval 'm6', MTK::Core::Interval[8], 'minor sixth', 8

#M7MTK::Core::Interval (readonly)

major seventh: 11 semitones

Returns:

See Also:



118
# File 'lib/mtk/lang/intervals.rb', line 118

define_interval 'M7', MTK::Core::Interval[11], 'major seventh', 11

#m7MTK::Core::Interval (readonly)

minor seventh: 10 semitones

Returns:

See Also:



111
# File 'lib/mtk/lang/intervals.rb', line 111

define_interval 'm7', MTK::Core::Interval[10], 'minor seventh', 10

#P1MTK::Core::Interval (readonly)

perfect unison: 0 semitones

Returns:

See Also:



35
# File 'lib/mtk/lang/intervals.rb', line 35

define_interval 'P1', MTK::Core::Interval[0], 'perfect unison', 0

#P4MTK::Core::Interval (readonly)

perfect fourth: 5 semitones

Returns:

See Also:



70
# File 'lib/mtk/lang/intervals.rb', line 70

define_interval 'P4', MTK::Core::Interval[5], 'perfect fourth', 5

#P5MTK::Core::Interval (readonly)

perfect fifth: 7 semitones

Returns:

See Also:



90
# File 'lib/mtk/lang/intervals.rb', line 90

define_interval 'P5', MTK::Core::Interval[7], 'perfect fifth', 7

#P8MTK::Core::Interval (readonly)

perfect octave: 12 semitones

Returns:

See Also:



125
# File 'lib/mtk/lang/intervals.rb', line 125

define_interval 'P8', MTK::Core::Interval[12], 'perfect octave', 12

#TTMTK::Core::Interval (readonly)

tritone: 6 semitones

Returns:

See Also:



78
# File 'lib/mtk/lang/intervals.rb', line 78

define_interval 'TT', MTK::Core::Interval[6], 'tritone', 6