The chord providing the chord tones, as a chord symbol, chord
data, or a Chord.
A key of NAMED_SCALES, or an alias of one; a world scale is outside chord-scale theory, as in avoidNotes.
Set resolvesTo to the chord this one resolves to.
The available-tension pitch classes, sorted ascending in [0, 11].
If scaleName is not a built-in scale, as avoidNotes does.
import { makeChord, availableTensions } from '@libraz/libcantus';
availableTensions(makeChord(0, 'maj7'), 'ionian'); // [2, 9] — color tones over Cmaj7
availableTensions(makeChord(7, 'dom7'), 'phrygianDominant', { resolvesTo: makeChord(0, 'min') });
// [3, 8] — the b13 and b9 the resolution to C minor makes available
List a scale's available tensions over a chord.
Available tensions are scale tones that are neither chord tones nor avoid notes, i.e. the usable color tones (typically the 9/11/13 region). The scale is rooted on the chord root. If the scale does not contain the chord, there are no available tensions.
A tension's availability also depends on what the chord is doing. Pass
resolvesToto say which chord this one resolves to: a dominant seventh resolving down a fifth to a minor tonic takes its flat ninth, sharp ninth and flat thirteenth, which read on their own would each be an avoid note. Only scale tones are ever added, so the result stays within the scale.