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