The scale name, or a key/scale to read the mask of.
True when functional harmony describes the scale.
import { supportsFunctionalHarmony, scaleByName } from '@libraz/libcantus';
supportsFunctionalHarmony('harmonicMinor'); // true
supportsFunctionalHarmony('bhairav'); // false
supportsFunctionalHarmony('hijaz'); // false — named, so read as a maqam
supportsFunctionalHarmony(scaleByName('hijaz', 0)); // true — its mask is the phrygian dominant
supportsFunctionalHarmony(scaleByName('ryukyu', 0)); // false — a mask no Western scale shares
Whether functional (Roman-numeral) analysis applies to a scale.
True for common-practice and modal scales, false for everything classed
'non-functional'— analysis that would otherwise read a raga as a chord progression can ask here first.The two ways of naming a scale are answered differently, exactly as scaleSystemOf answers them. A name carries its tradition, so
'hijaz'is false. AKeyScalecarries only a mask, and a mask shared with a Western scale is read the Western way — maqam Hijaz and the phrygian dominant are the same seven pitch classes, so that mask is modal and answers true. A mask that names no built-in scale answers true as well, which keeps a caller's own mask being analysed the way it always has been. Pass the name whenever the tradition is known and the answer should follow it.