@Override public final List<VoicingComparison> voicingComparisonList( VoicedChord previousChord, VoicedChord newChord) { List<Voicing> voicingList = qualities.forQuality(newChord.getQuality()); return strategy.voicingComparisonList(previousChord, newChord, voicingList); }
@Override public final List<VoicedChord> voice(VoicedChord startingChord, List<VoicedChord> chordList) { List<VoicedChord> result = new ArrayList<VoicedChord>(); result.add(startingChord); VoicedChord previousChord = startingChord; for (VoicedChord chord : chordList) { VoicedChord voicedChord = strategy.voice(previousChord, chord, qualities.getCongruentVoicings(chord.getVoicing())); result.add(voicedChord); previousChord = voicedChord; } return result; }