Class:            OctaveDependentChord

Environment:      Siren
Superclass:         Siren.PitchClassChord
Category:         Music-PitchClasses
Instance variables:   notesByInterval

notesBytInterval provides a fast access to the chord notes
by the names of their intervals with the root. The calculation
is done once forever. On the contrary, for FPChord the
calculation is done all the times a note is required since
its rarely required.
Note that for all request (e.g. theFifth) the copy of the note is
answer). it is necessary in order to avoid some confusions. For instance,
the pitches (ODNotes) of an simple arpeggio on a chord ch may be
obtained by:
   o := OredredCollection new.
   o add: ch theTonic; add: ch theThird; ch theFifth; theTonic.
the first and last must be different objects in the case we will assign
them todifferents PlayableNotes.

saving

save
   

storeOn: s
   

mutations

asMelody
   

asPlayableObject
   

lapse: l
   

startBeat: s duration: d
   

startTime: s duration: d
   

accessing

addNote: c
   

notes: value
   

removeNote: c
   

alteration

octave: o
   

octaveFromNote: n
   set octave from new root or chord note

copy

copy
   

private-pact

closestDownTriadNoteTo: n
   ((FPChord newFromString: 'C maj7') @ 3) closestTriadNoteTo: N B flat @ 2

closestTriadNoteTo: n
   ((FPChord newFromString: 'C maj7') @ 3) closestTriadNoteTo: N B flat @ 2

closestUpTriadNoteTo: n
   ((PitchClassChord newFromString: 'C maj7') @ 3) closestTriadNoteTo: N B flat @ 2

containsLegalNote: n
   

downTriadNotes
   return all triad notes within 2 octaves in a particular order

triadDownNoteLeadingTo: n
   for the conflicting cases uses the priority given by the ordering
   of upAndDownTriadNotes

triadNoteLeadingTo: n
   for the conflicting cases uses two priority criteria: the proximity and
   the ordering given by triadNotesLeadingTo:

triadNotesLeadingTo: n
   answer the chord 'triad' notes (extend to 7?) within an octave,
    that are leading notes to the given note n

triadUpNoteLeadingTo: n
   for the conflicting cases uses the priority given by the ordering
   of upAndDownTriadNotes

upAndDownTriadNotes
   return all triad notes within 2 octaves in a particular order

upTriadNotes
   return all triad notes within 2 octaves in a particular order

initialize

initialize
   

resetNotes
   extend super class method for notesByIntevals

notes by intervals

computeNotesByInterval
   only for triad notes

notesByInterval
   

reallyTheFifth
   

reallyTheLowFifth
   

reallyTheLowOctave
   

reallyTheLowThird
   attention: do not cofound with 'root downThird interval

reallyTheOctave
   

reallyTheThird
   

reallyTheTonic
   

theFifth
   

theLowFifth
   

theLowOctave
   

theLowThird
   

theOctave
   

theThird
   

theTonic
   

As yet unclassified

theLowSeventh
   WARN: the calculatin of the seven is done in every request

FP

allPitchClasses
   

transposing

beTransposedOneStepDown
   

beTransposedOneStepUp
   

MetaClass:         OctaveDependentChord class

cation

newWithValues: anArray
   

readFromFile
   

readFromFile: fileName
   

root: r notes: n
   

examples

example
   

example1
   self example1

example2