package material.stem.length;
import static com.xenoage.utils.collections.CollectionUtils.alist;
import static com.xenoage.zong.core.music.chord.StemDirection.Down;
import static com.xenoage.zong.core.music.chord.StemDirection.Up;
import static material.stem.length.Example.example;
import java.util.List;
import lombok.Getter;
import material.RossSuite;
/**
* Examples from Ross, Chapter 3, Section 1
* (p. 86 ff.)
*
* @author Andreas Wenger
*/
public class RossStemLength
implements RossSuite<Example> {
@Getter List<Example> examples = alist(
//normal length
example("p86 r1 1", 0, Up, 3.5),
example("p86 r1 2", 4, Down, 3.5),
example("p86 r2 1", 9, Down, 3.5),
//shortened outside of staff
example("p86 r3 1", 5, Up, 2.5),
example("p86 r3 2", 6, Up, 2.5),
example("p86 r3 3", 7, Up, 2.5),
example("p86 r3 4", 8, Up, 2.5),
example("p86 r3 5", 9, Up, 2.5),
example("p86 r3 6", 2, Down, 2.5),
example("p86 r3 7", 1, Down, 2.5),
example("p86 r3 8", 0, Down, 2.5),
example("p86 r3 9", -1, Down, 2.5),
example("p86 r3 10", -2, Down, 2.5),
//special cases
example("p86 r6 1", 4, Up, 3),
example("p86 r6 1", 3, Down, 3),
//lengthened to middle line
example("p86 r7 1", 12, Down, 4).toMiddleLine(),
example("p86 r7 2", 14, Down, 5).toMiddleLine(),
example("p86 r7 3", 15, Down, 5.5).toMiddleLine(),
example("p86 r7 4", 17, Down, 6.5).toMiddleLine(),
example("p86 r7 5", -4, Up, 4).toMiddleLine(),
example("p86 r7 5", -6, Up, 5).toMiddleLine(),
example("p86 r7 5", -7, Up, 5.5).toMiddleLine(),
example("p86 r7 5", -9, Up, 6.5).toMiddleLine()
);
}