is

Scale# is

A collection of functions that returns a Boolean about various features regarding the scale

Methods

# (static) deep() → {Boolean}

Returns true if the scale a deep scale

Source:
See:
  • Clough, J., et al. (1999). "Scales, sets, and interval cycles: A taxonomy." Music Theory Spectrum 21(1): 74-104.
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major scale
scale.is.deep() //returns true

# (static) distributionally_even() → {Boolean}

Returns true if the scale is distributionally even

Source:
See:
  • Clough, J., et al. (1999). "Scales, sets, and interval cycles: A taxonomy." Music Theory Spectrum 21(1): 74-104.
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major scale
scale.is.distributionally_even() //returns true

# (static) in_lower_edos(cache) → {Boolean}

Returns a list of (lower-order) EDOs if the scale can be represented in them.

For instance 12-EDO [0,3,6,9] also exists in in 4-EDO as [0,1,2,3]. Therefore the function will return [4]

Parameters:
Name Type Description
cache Boolean

When true, the result will be cached for faster retrieval in subsequent calls.

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,3,6,9]) //fully diminished chord
scale.is.in_lower_edos() //returns [4]

# (static) invertible(cacheopt) → {Boolean}

Returns true if the scale is invertible and false if it isn't

Parameters:
Name Type Attributes Description
cache Boolean <optional>

when true, the result will be cached for future retrieval

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.invertible() //returns false

# (static) maximally_even() → {Boolean}

Returns true if the scale is maximally even

Source:
See:
  • Clough, J., et al. (1999). "Scales, sets, and interval cycles: A taxonomy." Music Theory Spectrum 21(1): 74-104.
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major scale
scale.is.maximally_even() //returns true

# (static) mode_of(scales) → {Boolean}

Checks if the scale is a mode / rotation of another scale

To check again multiple scale see Scale.is.one_of

Parameters:
Name Type Description
scales Array.<Number>

a collection of scales (or necklaces)

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.mode_of([0,2,3,5,7,9,10]) //returns true

# (static) MOLT() → {Boolean}

Checks if the scale is a mode of limited transpositions

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,6,8,10]) //whole-tones
scale.is.MOLT() //returns true

# (static) myhill_property() → {Boolean}

Returns true if the scale has the Myhill property

Source:
See:
  • Scale#get.myhill_property
  • Clough, J., et al. (1999). "Scales, sets, and interval cycles: A taxonomy." Music Theory Spectrum 21(1): 74-104.
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major scale
scale.is.myhill_property() //returns true

# (static) normal_order() → {Boolean}

Returns True if the scale is in normal order and False if it isn't

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.normal_order() //returns false

# (static) one_of(scales) → {Boolean}

Checks if the scale (as a whole!) is one of the scales given in a list of scales (or in one of their modes)

Parameters:
Name Type Description
scales Array.<Array.<Number>>

a collection of scales (more accurately, necklaces)

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.one_of([[0,2,3,5,7,9,10],[0,1,2,3,4,5,6,7,8,9]]) //returns true

# (static) prime_form() → {Boolean}

Returns True if the scale is in prime form and False if it isn't.

(Notice, the prime form calculation conforms to Rahn's prime form rather than Forte's)
Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.prime_form() //returns false

# (static) sharper() → {Boolean}

Returns True if the scale is sharper than another scale (if on average it has higher pitches).

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
//Is the major sharper than lydian?
scale.is.sharper([0,2,4,6,7,9,11]) //returns false

//Is the major sharper than itself?
scale.is.sharper([0,2,4,5,7,9,11]) //returns false

//Is the major sharper than mixolydian?
scale.is.sharper([0,2,4,5,7,9,10]) //returns true

# (static) subset(scales, include_modesopt) → {Boolean}

Returns true if the scale is a subset of one of multiple scales provided.

Parameters:
Name Type Attributes Default Description
scales Array.<Number> | Array.<Array.<Number>>

another scale, or a collection of scales

include_modes Boolean <optional>
true

When true, the function will return true also when the scale is a subset of one of the modes of the scales in question. When false, the scale must appear verbatim to return true

Source:
Returns:
Type
Boolean
Example
let edo = new EDO(12) //define context
let scale = edo.scale([0,2,4,5,7,9,11]) //major
scale.is.subset([[0,2,4,5],[7,9,11]]) //returns false