public ChordListGenerator(ChordType chordType) { CompleteDeg = false; this.ct = chordType; chordList = new List <Chord>(); chordLnDeg123467 = new List <LnDeg>(); chordLnDeg5 = new List <LnDeg>(); MusicKeyInfo mki = new MusicKeyInfo(ct.musicKey, ct.keyRelation); for (int i = 0; i < 7; ++i) { chordLnDeg123467.Add(new LnDeg(mki.GetLnFromDegree(i), i + 1)); } if (ct.is準固有) { // 準固有和音 chordLnDeg123467[2] = new LnDeg(chordLnDeg123467[2].LetterName.Flat(), 3); chordLnDeg123467[5] = new LnDeg(chordLnDeg123467[5].LetterName.Flat(), 6); } chordLnDeg5.Add(chordLnDeg123467[4]); // 根音 V chordLnDeg5.Add(chordLnDeg123467[6]); // 第3音 VII chordLnDeg5.Add(chordLnDeg123467[1]); // 第5音 II chordLnDeg5.Add(chordLnDeg123467[3]); // 第7音 IV chordLnDeg5.Add(chordLnDeg123467[5]); // 第9音 VI if (ct.Is内部調は短調()) { if (ct.has固有VII) { // 短調で短調固有のVIIを持つ。 } else { // 短調固有のVIIではなく和声的VIIを持つ。第3音(VIIの音)を半音上げる。 chordLnDeg5[1] = new LnDeg(chordLnDeg123467[6].LetterName.Sharp(), 7); } } if (ct.addedTone == AddedToneType.SixFour && ct.chordDegree == CD.IV && ct.Is内部調は短調()) { // 短調のIV付加4-6の和音の場合 付加第4音(VIIの音)を半音上げる。 chordLnDeg123467[6] = new LnDeg(chordLnDeg123467[6].LetterName.Sharp(), 7); } if (ct.alteration == AlterationType.Lowered) { switch (ct.chordDegree) { case CD.V: // V_V 下方変位 第5音(II)がフラットになる chordLnDeg5[2] = new LnDeg(chordLnDeg123467[1].LetterName.Flat(), 2); CompleteDeg = true; break; default: System.Diagnostics.Debug.Assert(false); break; } } if (ct.alteration == AlterationType.Naples) { switch (ct.chordDegree) { case CD.II: // II ナポリの和音 根音(II)がフラットになる chordLnDeg123467[1] = new LnDeg(chordLnDeg123467[1].LetterName.Flat(), 2); break; default: System.Diagnostics.Debug.Assert(false); break; } } if (ct.alteration == AlterationType.Dorian) { switch (ct.chordDegree) { case CD.IV: // IV ドリアの和音 第3音(VI)がシャープになる chordLnDeg123467[5] = new LnDeg(chordLnDeg123467[5].LetterName.Sharp(), 6); break; default: System.Diagnostics.Debug.Assert(false); break; } } if (ct.alteration == AlterationType.Raised) { switch (ct.chordDegree) { case CD.V: case CD.V_V: // V上方変位 第5音がシャープになる(III巻p.224) chordLnDeg5[2] = new LnDeg(chordLnDeg123467[1].LetterName.Sharp(), 2); CompleteDeg = true; break; case CD.IV: // IV+6, IV+46の和音 第6音(II)がシャープになる(III巻p.226) chordLnDeg123467[1] = new LnDeg(chordLnDeg123467[1].LetterName.Sharp(), 2); break; default: System.Diagnostics.Debug.Assert(false); break; } } }
public LnDegInversion(LnDeg ld, Inversion inversion) { this.ld = ld; this.inversion = inversion; }
/// <summary> /// C#4.0になったらデフォルト引数でまとめる。 /// </summary> public LnDegInversion(LN ln) { this.ld = new LnDeg(ln, 0); this.inversion = Inversion.Unspecified; }
public LnDegInversion(LN ln, int degree, Inversion inversion) { this.ld = new LnDeg(ln, degree); this.inversion = inversion; }