コード例 #1
0
        public void ParseToNodeTest()
        {
            // Dm/a
            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[9] = true;
            notes[14] = true;
            notes[17] = true;

            Chord dMa = Chord.ParseToNode("Dm/a").Chord;

            Assert.AreEqual<TwoOctaveNoteArray>(notes, dMa.ChordNotes);

            // Am
            notes = new TwoOctaveNoteArray();

            notes[9] = true;
            notes[12] = true;
            notes[16] = true;

            Chord aM = Chord.ParseToNode("Am").Chord;

            Assert.AreEqual<TwoOctaveNoteArray>(notes, aM.ChordNotes);

            // E/g#
            notes = new TwoOctaveNoteArray();

            notes[8] = true;
            notes[11] = true;
            notes[16] = true;

            Chord eGsharp = Chord.ParseToNode("E/g#").Chord;

            Assert.AreEqual<TwoOctaveNoteArray>(notes, eGsharp.ChordNotes);
        }
コード例 #2
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        public static Chord Minor(string noteName)
        {
            int rootNoteAbsVal = Note.ParseAbsoluteValue(noteName);

            string chordName = noteName.ToUpper() + "m";

            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[rootNoteAbsVal] = true;
            notes[rootNoteAbsVal + 3] = true;
            notes[rootNoteAbsVal + 7] = true;

            return new Chord(chordName, notes);
        }
コード例 #3
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        //currently a mock
        public static ChordNode ParseToNode(string chordName)
        {
            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            switch (chordName)
            {
                // first inversion
                case "Dm/a":

                    // NB: next backfactoring we wanna make it look like this
                    // notes = Minor("D").FirstInversion(), Minor("D") should return an instance(non-static) chord object (this class)
                    // instanceChord.FirstInversion() should return a TwoOctaveNoteArray.

                    notes = MinorTwoOctaveFirstInversion(Note.ParseAbsoluteValue("D"));
                    break;

                case "Am":

                    //notes[9] = true;
                    //notes[12] = true;
                    //notes[16] = true;
                    notes = MinorTwoOctave(Note.ParseAbsoluteValue("A"));
                    break;

                // second inversion
                case "E/g#":

                    //notes[8] = true;
                    //notes[11] = true;
                    //notes[16] = true;
                    notes = MajorTwoOctaveSecondInversion(Note.ParseAbsoluteValue("E"));
                    break;

                default:

                    //light em all up
                    notes.SetAll(true);
                    break;
            }

            return new ChordNode(chordName, notes);
        }
コード例 #4
0
        public void MinorTest()
        {
            //c minor
            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[0] = true;
            notes[3] = true;
            notes[7] = true;

            Chord chord = Chord.Minor("C");

            Assert.AreEqual(notes, chord.ChordNotes);

            //e minor
            notes = new TwoOctaveNoteArray();

            notes[4] = true;
            notes[7] = true;
            notes[11] = true;

            chord = Chord.Minor("E");

            Assert.AreEqual(notes, chord.ChordNotes);
        }
コード例 #5
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        private static TwoOctaveNoteArray MinorTwoOctaveFirstInversion(int rootNote)
        {
            //pattern is -5, 0, 3

            //coax range
            while(rootNote - 5 < 0)
            {
                rootNote += 12;
            }

            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[rootNote - 5] = true;
            notes[rootNote] = true;
            notes[rootNote + 3] = true;

            return notes;
        }
コード例 #6
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
 public Chord(string chordName, TwoOctaveNoteArray notes)
 {
     ChordName = chordName;
     ChordNotes = notes;
 }
コード例 #7
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        private static TwoOctaveNoteArray MinorTwoOctave(int rootNote)
        {
            //pattern is 0, 3, 7

            //coax range
            while(rootNote < 0)
            {
                rootNote += 12;
            }

            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[rootNote] = true;
            notes[rootNote + 3] = true;
            notes[rootNote + 7] = true;

            return notes;
        }
コード例 #8
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        private static TwoOctaveNoteArray MajorTwoOctaveSecondInversion(int rootNote)
        {
            //pattern is -8, -5, 0

            //coax range
            while (rootNote - 8 < 0)
            {
                rootNote += 12;
            }

            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();

            notes[rootNote - 8] = true;
            notes[rootNote - 5] = true;
            notes[rootNote] = true;

            return notes;
        }
コード例 #9
0
ファイル: Chord.cs プロジェクト: BBuchholz/NineWorldsDeep
        public TwoOctaveNoteArray FirstInversion()
        {
            bool first = true;

            TwoOctaveNoteArray notes = new TwoOctaveNoteArray();
            return notes;
        }