30 augmentedSeventhChord,
31 diminishedSeventhChord,
32 halfDiminishedSeventhChord,
33 minorMajorSeventhChord,
40 minorDominantNinthChord,
41 augmentedMajorNinthChord,
42 augmentedDominantNinthChord,
43 halfDiminishedNinthChord,
44 halfDiminishedMinorNinthChord,
46 diminishedMinorNinthChord,
50 Chord (ChordType type = majorTriad);
58 ChordType getType()
const {
return type; }
59 bool isValid()
const {
return type != invalidChord; }
158 static const int scaleRootGlobalTrack;
159 static const int scaleRootChordTrack;
169 void validateChordLengths();
178 bool isValid() {
return chordName.
get().isNotEmpty(); }
193 void setRoot (
int root);
194 void setChord (
int root, Chord::ChordType);
196 bool isRomanNumeral()
const;
201 int getRootNote (
int key,
const Scale& scale);
212 int getChordProgressionLength()
const;
214 void setChordProgression (
juce::ValueTree v);
216 juce::StringArray getChordProgressionChordNames (
bool simplified) const;
222 void removeIndexFromProgression (
int idx);
223 void removeRangeFromProgression (
int start,
int end);
224 void clearProgression();
225 void insertChordIntoProgression (
int idx,
juce::String chordName);
226 void insertChordIntoProgression (
int idx,
juce::String chordName,
juce::String pitches);
227 void moveChordInProgression (
int srcIdx,
int dstIdx);
228 void duplicateChordInProgression (
int idx);
230 void playGuideChord (
int idx) const;
264 void generatePattern();
269 bool getAutoUpdate();
270 void setAutoUpdate (
bool on);
271 void refreshPatternIfNeeded();
273 void editFinishedLoading();
278 const int maxChords = 64;
280 struct ProgressionList;
283 void valueTreeChanged()
override {}
292 void generateArpPattern();
293 void generateChordPattern();
294 void generateBassPattern();
295 void generateMelodyPattern();
299 HashCode hashNotes (
MidiList&,
int version);
307 struct AutoUpdateManager;