package musicxmltestsuite.tests.base;
import static com.xenoage.utils.collections.CollectionUtils.alist;
import static com.xenoage.utils.math.Fraction.fr;
import static com.xenoage.zong.core.music.Pitch.pi;
import static com.xenoage.zong.core.music.beam.Beam.beamFromChordsUnchecked;
import static musicxmltestsuite.tests.utils.Utils.ch;
import static musicxmltestsuite.tests.utils.Utils.gr;
import com.xenoage.zong.commands.core.music.beam.BeamAdd;
import com.xenoage.zong.core.music.chord.Chord;
public interface Base24a
extends Base {
@Override default String getFileName() {
return "24a-GraceNotes.xml";
}
Chord[] expectedChords = getExpectedChords();
static Chord[] getExpectedChords() {
//[b]eamed chords [s]tart and [e]nd
Chord b1s, b1e, b2s, b2e;
Chord[] expectedChords = new Chord[] {
//measure 0
gr(fr(1, 16), false, pi('D', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
b1s = gr(fr(1, 16), false, pi('E', 0, 5)),
b1e = gr(fr(1, 16), false, pi('D', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
gr(fr(1, 16), false, pi('D', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
gr(fr(1, 8), false, pi('D', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
//measure 1
gr(fr(1, 16), true, pi('D', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
b2s = gr(fr(1, 16), false, pi('E', 0, 5)),
b2e = gr(fr(1, 16), false, pi('D', 0, 5)),
ch(fr(2, 4), pi('C', 0, 5)),
gr(fr(1, 16), true, pi('D', 0, 5)),
ch(fr(1, 8), pi('C', 0, 5)),
gr(fr(1, 16), true, pi('D', 0, 5)),
ch(fr(1, 8), pi('C', 0, 5)),
gr(fr(1, 16), false, pi('E', 0, 5)),
//measure 2
gr(fr(1, 16), false, pi('E', 0, 5)),
ch(fr(1, 4), pi('F', 0, 4), pi('C', 0, 5)),
gr(fr(1, 4), false, pi('D', 1, 5)),
ch(fr(1, 4), pi('C', 0, 5)),
gr(fr(1, 4), false, pi('D', -1, 5)),
gr(fr(1, 4), false, pi('A', -1, 4)),
ch(fr(1, 4), pi('C', 0, 5)),
ch(fr(1, 4), pi('C', 0, 5))
};
new BeamAdd(beamFromChordsUnchecked(alist(b1s, b1e))).execute();
new BeamAdd(beamFromChordsUnchecked(alist(b2s, b2e))).execute();
return expectedChords;
}
}