Search in sources :

Example 11 with Cursor

use of com.xenoage.zong.io.selection.Cursor in project Zong by Xenoage.

the class Base46e method getExpectedStaff.

static Staff getExpectedStaff() {
    Score score = ScoreFactory.create1Staff();
    Cursor cursor = new Cursor(score, mp0, true);
    cursor.write(new TimeSignature(TimeType.Companion.getTimeCommon()));
    // measure 0, voice 0
    cursor.write(chord(Companion.pi('C', 0, 5), Companion.fr(1, 4)));
    // measure 1, voice 0
    cursor.setMp(atElement(0, 1, 0, 0));
    cursor.write(chord(Companion.pi('C', 0, 5), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi('A', 0, 4), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi('F', 0, 4), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi('C', 0, 5), Companion.fr(1, 4)));
    // measure 1, voice 1
    cursor.setMp(atElement(0, 1, 1, 0));
    cursor.write(new Rest(Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi('C', 0, 4), Companion.fr(1, 4)));
    return score.getStaff(0);
}
Also used : Score(com.xenoage.zong.core.Score) Rest(com.xenoage.zong.core.music.rest.Rest) Cursor(com.xenoage.zong.io.selection.Cursor) TimeSignature(com.xenoage.zong.core.music.time.TimeSignature)

Example 12 with Cursor

use of com.xenoage.zong.io.selection.Cursor in project Zong by Xenoage.

the class VoicesBeatOffsetterTest method createTestScore3VoicesIncomplete.

private Score createTestScore3VoicesIncomplete() {
    Score score = new Score();
    score.getFormat().setInterlineSpace(2);
    Cursor cursor = new Cursor(score, mp0, true);
    cursor.write(new TimeSignature(Companion.getTime_4_4()));
    // 2: half note, 4: quarter note, 8: eighth note, 3: quarter triplet, x: missing (empty)
    // voice 1: | 4     4     4     8  xxx|   (staff 1)
    // voice 2: | 8  8  8  8  4     xxxxxx|   (staff 1)
    // voice 3: | 3   3   3   8  xxxxxxxxx|   (staff 2)
    // voice 1
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 4)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    // voice 2
    cursor.setMp(atElement(0, 0, 1, 0));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 4)));
    // voice 3
    cursor.setMp(atElement(0, 0, 2, 0));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 6)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 6)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 6)));
    cursor.write(chord(Companion.pi(0, 0, 0), Companion.fr(1, 8)));
    return score;
}
Also used : Score(com.xenoage.zong.core.Score) Cursor(com.xenoage.zong.io.selection.Cursor) TimeSignature(com.xenoage.zong.core.music.time.TimeSignature)

Example 13 with Cursor

use of com.xenoage.zong.io.selection.Cursor in project Zong by Xenoage.

the class DynamicsFinderTest method getAdvancedScore.

/**
 * See {@link #testAdvanced()}.
 */
private Score getAdvancedScore() {
    Score score = new Score();
    Wedge w;
    new PartAdd(score, new Part("", null, 2, null), 0, null).execute();
    new MeasureAdd(score, 5).execute();
    // time signature and repeats
    new ColumnElementWrite(new TimeSignature(TimeType.Companion.getTime_4_4()), score.getColumnHeader(0), null, null).execute();
    new ColumnElementWrite(Companion.barlineForwardRepeat(Regular), score.getColumnHeader(1), null, MeasureSide.Left).execute();
    new ColumnElementWrite(Companion.barlineBackwardRepeat(Regular, 1), score.getColumnHeader(2), null, MeasureSide.Right).execute();
    // staff 0
    new MeasureElementWrite(new Dynamic(mp), score.getMeasure(atMeasure(0, 0)), Companion.get_0()).execute();
    new MeasureElementWrite(new Dynamic(pp), score.getMeasure(atMeasure(0, 2)), Companion.get_0()).execute();
    new MeasureElementWrite(new Dynamic(f), score.getMeasure(atMeasure(0, 3)), Companion.get_1$2()).execute();
    new MeasureElementWrite(w = new Wedge(Crescendo), score.getMeasure(atMeasure(0, 3)), Companion.get_3$4()).execute();
    new MeasureElementWrite(new WedgeEnd(w), score.getMeasure(atMeasure(0, 4)), Companion.get_1$4()).execute();
    new MeasureElementWrite(new Dynamic(pp), score.getMeasure(atMeasure(0, 4)), Companion.get_1$2()).execute();
    // voice 0
    val cursor = new Cursor(score, mp0, true);
    cursor.write(new Rest(Companion.get_1()));
    cursor.write(new Rest(Companion.get_1()));
    cursor.write(new Rest(Companion.get_1()));
    cursor.write(new Rest(Companion.get_1()));
    // voice 1
    cursor.setMp(atElement(0, 0, 1, 0));
    cursor.write(new Rest(Companion.get_1$2()));
    val chord = chord(Companion.pi(0, 4), Companion.get_1$2());
    chord.addDirection(new Dynamic(mf));
    cursor.write(chord);
    cursor.write(new Rest(Companion.get_1()));
    cursor.write(new Rest(Companion.get_1()));
    cursor.setMp(atElement(0, 4, 1, 0));
    cursor.write(new Rest(Companion.get_1()));
    // staff 1
    new MeasureElementWrite(new Dynamic(ff), score.getMeasure(atMeasure(1, 0)), Companion.get_0()).execute();
    new MeasureElementWrite(w = new Wedge(Diminuendo), score.getMeasure(atMeasure(1, 0)), Companion.get_0()).execute();
    new MeasureElementWrite(new WedgeEnd(w), score.getMeasure(atMeasure(1, 2)), Companion.get_0()).execute();
    new MeasureElementWrite(new Dynamic(mp), score.getMeasure(atMeasure(1, 2)), Companion.get_0()).execute();
    new MeasureElementWrite(new Dynamic(p), score.getMeasure(atMeasure(1, 3)), Companion.get_0()).execute();
    return score;
}
Also used : lombok.val(lombok.val) Dynamic(com.xenoage.zong.core.music.direction.Dynamic) ColumnElementWrite(com.xenoage.zong.commands.core.music.ColumnElementWrite) Cursor(com.xenoage.zong.io.selection.Cursor) Wedge(com.xenoage.zong.core.music.direction.Wedge) TimeSignature(com.xenoage.zong.core.music.time.TimeSignature) Score(com.xenoage.zong.core.Score) MeasureAdd(com.xenoage.zong.commands.core.music.MeasureAdd) Rest(com.xenoage.zong.core.music.rest.Rest) Part(com.xenoage.zong.core.music.Part) PartAdd(com.xenoage.zong.commands.core.music.PartAdd) MeasureElementWrite(com.xenoage.zong.commands.core.music.MeasureElementWrite) WedgeEnd(com.xenoage.zong.core.music.direction.WedgeEnd)

Example 14 with Cursor

use of com.xenoage.zong.io.selection.Cursor in project Zong by Xenoage.

the class BeamIteratorTest method createTestScore.

/**
 * Test score with 2 staves and 4 measures. In measure 0, there is a beam in
 * staff 0 in voice 1. In measure 2, there is a beam spanning over two staves.
 * In measure 3, there is a beam in staff 1 in voice 0.
 */
public static Score createTestScore() {
    Score score = new Score();
    Cursor cursor = new Cursor(score, MP.mp0, true);
    // first beam
    cursor.setMp(atElement(0, 0, 1, 0));
    cursor.openBeam();
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.closeBeam();
    // second beam
    cursor.setMp(atElement(0, 2, 0, 0));
    cursor.openBeam();
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.setMp(atElement(1, 2, 0, 0));
    cursor.write(new Rest(Companion.get_1$8()));
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.closeBeam();
    // third beam
    cursor.setMp(atElement(1, 3, 0, 0));
    cursor.openBeam();
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.write(chord(Companion.pi(Companion.getC(), 4), Companion.get_1$8()));
    cursor.closeBeam();
    return score;
}
Also used : Score(com.xenoage.zong.core.Score) Rest(com.xenoage.zong.core.music.rest.Rest) Cursor(com.xenoage.zong.io.selection.Cursor)

Example 15 with Cursor

use of com.xenoage.zong.io.selection.Cursor in project Zong by Xenoage.

the class MeasureElementIteratorTest method createTestScore.

/**
 * Test score with 4 staves and 4 measures. In staves 1 and 3, the measures 1 and 3 have each
 * three words with text "staff x, measure y, element z" on beats 1/4 and 2/4
 */
public static Score createTestScore() {
    Score score = new Score();
    Cursor cursor = new Cursor(score, MP.mp0, true);
    for (int staff : new int[] { 1, 3 }) {
        for (int measure : new int[] { 1, 3 }) {
            cursor.setMp(atElement(staff, measure, 0, 0));
            for (int element : range(2)) {
                cursor.write(new Rest(Companion.fr(1, 4)));
                cursor.write((MeasureElement) new Words(new UnformattedText("staff " + staff + ", measure " + measure + ", element " + element)));
            }
        }
    }
    return score;
}
Also used : Score(com.xenoage.zong.core.Score) Rest(com.xenoage.zong.core.music.rest.Rest) Words(com.xenoage.zong.core.music.direction.Words) UnformattedText(com.xenoage.zong.core.text.UnformattedText) Cursor(com.xenoage.zong.io.selection.Cursor)

Aggregations

Score (com.xenoage.zong.core.Score)15 Cursor (com.xenoage.zong.io.selection.Cursor)15 TimeSignature (com.xenoage.zong.core.music.time.TimeSignature)12 Rest (com.xenoage.zong.core.music.rest.Rest)8 PartAdd (com.xenoage.zong.commands.core.music.PartAdd)3 Part (com.xenoage.zong.core.music.Part)3 Dynamic (com.xenoage.zong.core.music.direction.Dynamic)3 TraditionalKey (com.xenoage.zong.core.music.key.TraditionalKey)3 MeasureAdd (com.xenoage.zong.commands.core.music.MeasureAdd)2 MeasureElementWrite (com.xenoage.zong.commands.core.music.MeasureElementWrite)2 Pitch (com.xenoage.zong.core.music.Pitch)2 Chord (com.xenoage.zong.core.music.chord.Chord)2 Clef (com.xenoage.zong.core.music.clef.Clef)2 Words (com.xenoage.zong.core.music.direction.Words)2 lombok.val (lombok.val)2 FontInfo (com.xenoage.utils.font.FontInfo)1 Fraction (com.xenoage.utils.math.Fraction)1 ColumnElementWrite (com.xenoage.zong.commands.core.music.ColumnElementWrite)1 ColumnHeader (com.xenoage.zong.core.header.ColumnHeader)1 Instrument (com.xenoage.zong.core.instrument.Instrument)1