public Triad(JustNote baseNote, int[] theFormula, TriadMode mode = TriadMode.I, TriadInversion inv = TriadInversion.I) { TriadType = TriadTypes.TriadsTypes.First(f => f.Value[0] == theFormula[0] && f.Value[1] == theFormula[1] && f.Value[2] == theFormula[2]).Key.ToString(); ChordNotes[0] = baseNote; var tempNote = baseNote; for (int i = 1; i < 3; i++) { tempNote = JustNote.moveNoteBySemitones(tempNote, theFormula[i - 1]); ChordNotes[i] = tempNote; } Mode = mode; switch (Mode) { case TriadMode.I: break; case TriadMode.II: ChordNotes[1] = JustNote.moveNoteBySemitones(ChordNotes[1], 12); break; default: break; } this.InverseForward(inv); Inversion = inv; }
public Triad(JustNote baseNote, JustNote thirdNote, JustNote fifthNote, TriadMode mode, TriadInversion inv) { ChordNotes[0] = baseNote; ChordNotes[1] = thirdNote; ChordNotes[2] = fifthNote; Mode = mode; Inversion = inv; }
public void ChangeTheChordMode(TriadMode mode) { // TODO :: Make it changable from any mode to any mode }