Class: Scale

Environment: Siren
Superclass: Object
Category: Music-PitchScales
Instance variables: root notes
Class variables: AllNotes

accessing

allNotes

noteAfter: aNote
aNote can be a pitchClass, a pitch (ODNote) or even a PlayableNote.
coputation takes into accont circularity and is approximative wrt aNote
alterations

noteBefore: aNote
aNote can be a pitchClass, a pitch (ODNote) or even a PlayableNote.
coputation takes into accont circularity and is approximative wrt aNote
alterations

notes

root

root: value

scale tone chords

arpeggioFrom: startNote poly: n interval: int
yields n notes from startNote by intervals of int

chordFromNotes: l

following: noteDepart by: x
rend la x ieme note a partir de noteDepart dans mes notes

generateChordsPoly: n
generate the list of 7 scale tone chords from my notes with polyphony n

generateChordsPoly: n inOctave: oct
generate the list of 7 scale tone chords from my notes with polyphony n

indexDe: uneNote

scaleToneTriads
N C majorScale scaleToneTriads
(NeapolitanMinor root: N D ) scaleToneTriads

octave-dependent notes

ascendingFromOctave: o
first note is in octave o. others follow (and may shift octave!)

asPitchesInOctave: o

closestPitchClassTo: aPc

decendingFromOctave: o
first note is in octave o. others follow (and may shift octave!)

diatonicNotesFrom: dep to: arr
assumes a and b belong to the scale.
N re minorScale diatonicNotesFrom: (N do sharp octave: 3) to: (N re octave: 4)

octave: o

computing notes

computeNotes
intervalList depends on the type of the scale. It is redefined in each
subclass of Scale

intervalList
yields the list of interval. Redefined in subclasses

leadingNote
N la minorScale leadingNote

reverseNotes
first is root, others following descending order

tonic
N re minorScale tonic

printing

printOn: s

storeOn: s

degres

degreDeAccord: unAccord

degreeOfNote: aNote

transpose

transposeOf: anInterval

testing

= g

containsAllOfTheseNotes: listOfNotes

containsNote: n

isMajor

isMinor

isValid

querying

flatNotesInSignature
Warning: doubles sharps are not sharps!

numberOfFlats
Attention les doubles bemols ne sont pas des bemols!

numberOfSharps
Attention les doubles dieses ne sont pas des dieses!

sharpNotesInSignature
Warning: doubles sharps are not sharps!

comparing

hash

Paleo

costForPitch: n

enharmonicScale

pitchClassFor: p
N C majorScale pitchClassFor: N A

MetaClass: Scale class

creation

askScale
self askScale

root: aNote

standardScales

warn: s

examples

example
N la flat majorScale notes -> #(Lab Sib Do Reb Mib Fa Sol )
N do harmonicMinorScale notes -> #(Do Re Mib Fa Sol Lab Si )
N re majorScale numberOfSharps -> 2

N do majorScale generateChordsPoly: 4 ->
OrderedCollection ([Do #maj7 ] [Re #min 7 ] [Mi #min 7 ] [Fa #maj7 ] [Sol 7 ] [La #min 7 ] [Si #halfDim7 ] )

N do majorScale generateChordsPoly: 6
-> OrderedCollection (Do #maj7 9 11 Re #min 7 9 11 Mi #min 7 #dim9 11 Fa #maj7 9 #aug11 Sol 7 9 11 La #min 7 9 11 Si #min #dim5 7 #dim9 11 )

N do majorScale generateChordsPoly: 7
-> OrderedCollection (Do #maj7 9 11 13 Re #min 7 9 11 13 Mi #min 7 #dim9 11 #dim13 Fa #maj7 9 #aug11 13 Sol 7 9 11 13 La #min 7 9 11 #dim13 Si #min #dim5 7 #dim9 11 #dim13 )

N re HarmonicMinorScale generateChordsPoly: 3

N do majorScale degreDeAccord: (FPChord new fromString: 'Fa min 7')
-> 4

interval list

intervalList

Paleo class initialize

initialize