Returns
| "major"
| "ionian"
| "naturalMinor"
| "aeolian"
| "harmonicMinor"
| "melodicMinor"
| "dorian"
| "phrygian"
| "lydian"
| "mixolydian"
| "locrian"
| "lydianDominant"
| "mixolydianB13"
| "locrianNatural2"
| "altered"
| "phrygianDominant"
| "majorPentatonic"
| "minorPentatonic"
| "blues"
| "wholeTone"
| "octatonicHalfWhole"
| "octatonicWholeHalf"
| "chromatic"
| "miyakoBushi"
| "ritsu"
| "minyo"
| "ryukyu"
| "ajam"
| "nahawand"
| "kurd"
| "hijaz"
| "hijazkar"
| "bilaval"
| "khamaj"
| "kafi"
| "asavari"
| "bhairavi"
| "bhairav"
| "kalyan"
| "marwa"
| "purvi"
| "todi"
| undefined
The canonical name, or undefined for an unknown one.
The canonical name a scale name stands for, or undefined when it names no built-in scale.
A canonical name resolves to itself; an entry of SCALE_ALIASES resolves to the name it is an alias of. The lookup goes through
Object.hasOwnfor the same reason namedScaleMask does.