예제 #1
0
 public void ChordProgressionMinorOrDiminishedOnlyTest()
 {
     for (var i = 0; i < 50; i++)
     {
         Console.WriteLine(ChordProgressionGenerator.ChordProgression(MinorOrDiminshedFilter));
     }
 }
예제 #2
0
 public void ChordProgressionTest()
 {
     for (var i = 0; i < 50; i++)
     {
         Console.WriteLine(ChordProgressionGenerator.ChordProgression(n => n));
     }
 }
예제 #3
0
        public void SectionTest()
        {
            var time    = TimeSignature.CommonTime;
            var section = new SongSection(new SongInfo(time, 4), SectionType.None, ChordProgressionGenerator.ChordProgression(n => n));

            var totalBeats = section.Measures * time.BeatCount;

            Console.WriteLine("Total beats: {0}", totalBeats);
            for (var beat = 0; beat < totalBeats; beat++)
            {
                var chordHere = section.Chords.FirstOrDefault(c => c.Item1 == beat);
                Console.WriteLine("{0} {1} - {2}", beat % time.BeatCount == 0 ? "-" : " ", beat, chordHere?.Item2);
            }
        }
예제 #4
0
        private static List <ChordProgression> GetDistinctChordProgressions(ParameterList parameters, int amount)
        {
            var progressions = new List <ChordProgression>();

            while (progressions.Count < amount)
            {
                var prog = ChordProgressionGenerator.ChordProgression(parameters.ChordProgressionFilter);
                if (progressions.All(p => !Equals(p, prog)))
                {
                    progressions.Add(prog);
                }
            }
            return(progressions);
        }
예제 #5
0
        public void SoloLeadTest()
        {
            var section = new SongSection(new SongInfo(TimeSignature.CommonTime, 4), SectionType.None, ChordProgressionGenerator.ChordProgression(n => n));
            var lead    = section.Lead;

            foreach (var note in lead)
            {
                Console.WriteLine(note);
            }
        }