usdb_syncer icon indicating copy to clipboard operation
usdb_syncer copied to clipboard

Adapt linebreak calculation to YASS (instead of USDX)?

Open bohning opened this issue 10 months ago • 0 comments

DoubleDee74 proposed to change the linebreak calculation of the Syncer to mimic that of YASS instead of USDX.

Code snippet:

inout[0] = TonA.startBeat + TonA.length
inout[1] = TonB.startBeat

getCommonPageBreak() gibt dann den Abstand zwischen A und B zurück. Wenn dann der Abstand größer als 0 ist, dann wird der Start-Punkt des PageBreaks auf inout[0] gesetzt.

public static int getCommonPageBreak(int inout[], double bpm) {
    int pause = inout[1] - inout[0];
    if (pause < 0) {
        return -1;
    }

        // Hier wird die Pause zwischen den beiden Tönen in Sekunden berechnet
    double psec = pause * 60 / (4 * bpm);

        // Wenn die Pause länger als 2 Sek dauert, dann wird der Umbruch hinter dem Ende des ersten 
       // Tones eine Taktlänge, bei mehr als 4 Sek zwei Taktlängen gesetzt
    if (psec >= 4) {
        int gap = (int) (2 * 4 * bpm / 60);
        inout[0] = inout[0] + gap;
        return 4;
    } else if (psec >= 2) {
        int gap = (int) (4 * bpm / 60);
        inout[0] = inout[0] + gap;
        return 2;
    }
        // Falls die Pause kürzer als 2 Sek ist, ist man noch nicht rausgesprungen, sondern setzt dann
        // den Umbruch vor den Start des zweiten Tones. Und zwar 2, 3 oder 4 Beats davor.
    if (pause == 0 || pause == 1) {
        return 0;
    } else if (pause >= 2 && pause <= 8) {
        inout[0] = inout[1] - 2;
        return 8;
    } else if (pause >= 9 && pause <= 12) {
        inout[0] = inout[1] - 3;
        return 12;
    } else if (pause >= 13 && pause <= 16) {
        inout[0] = inout[1] - 4;
                return 16;
    }
        // Wenn die Pause kürzer als 2 Sek ist aber noch länger als 16 Schläge, dann wird der Umbruch
        // einfach 10 Schläge hinter dem Ende des ersten Tones gesetzt.
    inout[0] = inout[0] + 10;

    return 18;
}

bohning avatar Apr 01 '24 18:04 bohning