public static double CalculateHarmoniousness(List <NeatPlayer> players)
        {
            var outputs = FitnessUtils.GetPitchOutput(players);
            var inputs  = FitnessUtils.GetPitchInput();

            int fitness = PERFECT_PITCH_SCORE;

            fitness -= OutOfKey(outputs) * 10;

            fitness -= BadPitch(outputs, inputs);

            fitness -= SameNote(outputs) * 50;

            fitness -= IdentityInput(inputs, outputs) * 15;
            fitness -= IdentityModules(outputs) * 10;

            fitness -= TooBigGap(outputs) * 10;

            //fitness -= DissonanceInput(inputs, outputs);
            //fitness -= DissonanceModules(outputs);

            fitness -= Chord(outputs, FitnessUtils.GetChords()) * 100;

            return(fitness);
        }
        public static double CalculateRegularity(List <NeatPlayer> players)
        {
            List <int>[] rests;
            double[][]   outputs;

            double[][] durations = FitnessUtils.GetRhythmOutput(players, out rests, out outputs);
            double[]   inputs    = FitnessUtils.GetRhythmInput();

            double fitness = PERFECT_RHYTHM_SCORE;

            fitness -= Math.Round(RhythmDifference(inputs, outputs));

            return(fitness);
        }