rualark / MGen

MGen: Windows PC C++ music generation and analysis laboratory, playing into MIDI port and exporting MIDI
http://arkhipenko.weebly.com
GNU Affero General Public License v3.0
45 stars 11 forks source link

CA3: Allow suspension resolution ornament with leap to harmonic note #2633

Closed rualark closed 5 years ago

rualark commented 5 years ago

У Галлона также есть правило, разрешающее аккордовый тон со скачком между задержанием и задерживаемой нотой. Я пока его удалил, т.к. мы это запрещаем. Если можно, нужно разрешить скачок на аккордовую ноту. Длина скачка больше октавы уже запрещена.

image

rualark commented 5 years ago

Currently in GetMinimumMsh sus is always marked non-chord tone if it has space for resolution:

    if (sus[v][ls]) {
        // Mark sus start
        msh[v][s] = pSusStart;
        // If sus has space for resolution, mark it non-chord
        if (fli2[v][ls] < mea_end) {
            msh[v][sus[v][ls]] = pAux;
        }
        // If sus does not have space for resolution, mark it as chord tone
        else {
            msh[v][sus[v][ls]] = pSusHarm;
        }
    }

This means that a leap from sus will not make it harmonic if it has space for resolution.

rualark commented 5 years ago

Actually, all that is needed to enable leaps is just to increase allowed leaps before and after ornament:

From:

1;296;;;50;Harmony;Suspension;Suspension resolution ornament;leap to resolution;0;;Leap from resolution ornament to resolution is longer than M3;12;;1;;;Sus.;0;0;1;;;;;; 1;295;;;50;Harmony;Suspension;Suspension resolution ornament;leap from sus;0;;Leap from suspension to resolution ornament is longer than M3;12;;1;;;Sus.;0;0;1;;;;;;

To:

1;296;;;50;Harmony;Suspension;Suspension resolution ornament;leap to resolution;0;;Leap from resolution ornament to resolution is longer than 8ve;12;;1;;;Sus.;0;0;1;;;;;; 1;295;;;50;Harmony;Suspension;Suspension resolution ornament;leap from sus;0;;Leap from suspension to resolution ornament is longer than 8ve;12;;1;;;Sus.;0;0;1;;;;;;