inheritance tree
InScaleMixinForChord
class definition
[abstract class] Mixin class, indented to extend the Chord class (a class with attribute pitchClasses). InScaleMixinForChord has much similarity with class InChordMixinForNote respectively InScaleMixinForNote -- see doc there for details (this documentation only explains the differences to InChordMixinForNote).
Compared with InChordMixinForNote/InScaleMixinForNote, the present class InScaleMixinForChord defines the additional attribute 'chordPCsInScale' (a FS). The set chordPCsInScale includes all chord pitch classes which are also pitch classes of the scale related to the chord. inScaleB = 1 (i.e. true), in case _all_ chord pitch classes are also pitch classes of the related scale.
Nevertheless, the FS chordPCsInScale can be useful to apply further constraints which control the relation between the chord and the related scale even in case inScaleB=0 (i.e. some chord pitch class is no scale pitch class). For instance, degreeToPC could be used to access a specific pitch class of chord (e.g. its third). By constraining a neutral accidental and by constraining that this pitch class is included in chordPCsInScale, the user constraints, e.g., a diatonic third of the chord. [note: this is not so easy, cf. def. of ScaleDegreeMixinForChord which does something related for the chord's root]
NB: Contrary to InChordMixinForNote, InScaleMixinForChord does (currently?) not simplify the definition of CSPs involving 'non-existing' notes. Thus, instead of, e.g., setting InScaleB=1 you define something like, {FD.impl {CTT.isExisting MyChord} {MyChord isInChordR($)}}.
class InScaleMixinForChord (Inheritance-free)
feat !InScaleMixinForChordType
attr chordPCsInScale inScaleB relatedScaleBs scales
- getChordPCsInScale(X)
- getInScaleB(X)
- getInScaleBParameter(X)
- getRelatedScaleBs(X)
Returns a list of 0/1-integers returned by {Map {} }. and are the functions given to initInScaleMixinForNote.
- getScales(X)
Returns the list of candidate scale objects, i.e. the value returned by the proc set via the getScales init argument.
- initInScaleMixinForChord(...)
- isInScale(B)
see doc InChordMixinForNote, isInChord
end