public Chord(NonChordTypeEnum nonChordType) { Scale = -1; MajMin = false; NonChordType = nonChordType; }
public Chord(string absoluteChordName) { int p = 0; switch (absoluteChordName[p]) { case 'N': Scale = -1; MajMin = false; NonChordType = NonChordTypeEnum.NonChord; return; case 'X': Scale = -1; MajMin = false; NonChordType = NonChordTypeEnum.XMark; return; case '?': Scale = -1; MajMin = false; NonChordType = NonChordTypeEnum.QMark; return; case 'C': Scale = 0; break; case 'D': Scale = 2; break; case 'E': Scale = 4; break; case 'F': Scale = 5; break; case 'G': Scale = 7; break; case 'A': Scale = 9; break; case 'B': Scale = 11; break; } ++p; if (absoluteChordName[p] == '#') { ++Scale; ++p; if (Scale == 12) { Scale = 0; } } else if (absoluteChordName[p] == 'b') { --Scale; ++p; if (Scale == -1) { Scale = 11; } } if (absoluteChordName[p] == 'm') { MajMin = absoluteChordName.Length > p + 3 && (absoluteChordName.Substring(p, 3) == "maj"); } else { MajMin = true; } }
public Chord() { Scale = -1; MajMin = false; NonChordType = NonChordTypeEnum.NonChord; }