/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package geneticmusic.rulesInConstruction;
import geneticmusic.fitness.CompositionRule;
import geneticmusic.domain.Note;
import geneticmusic.domain.Pitch;
import org.jgap.Gene;
import org.jgap.IChromosome;
/**
*
* @author daviden
*/
public class PausesAfterShortNotes implements CompositionRule{
@Override
public double evaluate(IChromosome ic) {
double result = 0.0;
Gene [] genes = ic.getGenes();
for (int i = 0; i < genes.length - 1; i++) {
Note currentNote = (Note) genes[i].getAllele();
Note nextNote = (Note) genes[i + 1].getAllele();
if(nextNote.getPitch().equals(Pitch.R) &&
!currentNote.getPitch().equals(Pitch.R) &&
currentNote.getDuration() > 8)
result = -10.0;
}
return result;
}
}