/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package geneticmusic.fitness;
import geneticmusic.melodyRules.RithmContinuity;
import geneticmusic.melodyRules.MelodyContinuity;
import geneticmusic.melodyRules.InScaleRule;
import geneticmusic.domain.Alteration;
import geneticmusic.domain.Note;
import geneticmusic.domain.Pitch;
import jm.constants.Durations;
import jm.constants.Scales;
/**
*
* @author Davide Nunes
*/
public class MelodyFitnessFunction extends AbstractCompositionFitness{
public MelodyFitnessFunction(){
super();
}
@Override
protected void configRules(){
//Normalized rules
Note tonic = new Note(Pitch.C, 5, Alteration.N, 4);
InScaleRule inScale = new InScaleRule(Scales.MAJOR_SCALE, tonic, 0.5);
MelodyContinuity melodyContinuity = new MelodyContinuity(0.5);
RithmContinuity rithmVariety = new RithmContinuity(0.5);
// RegisterFilterRule octaveFilter = new RegisterFilterRule(0.5);
//
// MelodicConsistency melodyContinuity = new MelodicConsistency(0.5);
// StructureRegularity compassReg = new StructureRegularity(0);
//
//--------------------------------------------------------
//rythmic variety rule
//PauseRegulationRule pauseReg = new PauseRegulationRule();
//add the rules
rules.add(inScale);
rules.add(melodyContinuity);
// rules.add(compassReg);
// rules.add(densityRule);
rules.add(rithmVariety);
// //rules.add(pauseReg);
// rules.add(octaveFilter);
// rules.add(melodyContinuity);
// rules.add(compassReg);
// rules.add(restsAfterShort);
}
}