summaryrefslogtreecommitdiff
path: root/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c')
-rw-r--r--Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c38
1 files changed, 33 insertions, 5 deletions
diff --git a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
index 0350d71f41c..1f9b915a7e4 100644
--- a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
+++ b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
@@ -2,7 +2,7 @@
* Gregorio is a program that translates gabc files to GregorioTeX
* This file contains functions for writing GregorioTeX from Gregorio structures.
*
- * Copyright (C) 2008-2018 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2019 The Gregorio Project (see CONTRIBUTORS.md)
*
* This file is part of Gregorio.
*
@@ -136,6 +136,7 @@ SHAPE(QuilismaPes);
SHAPE(QuilismaPesQuadratum);
SHAPE(QuilismaPesQuadratumLongqueue);
SHAPE(QuilismaPesQuadratumOpenqueue);
+SHAPE(StansPunctumInclinatum);
SHAPE(Salicus);
SHAPE(SalicusFlexus);
SHAPE(SalicusLongqueue);
@@ -599,6 +600,9 @@ static const char *determine_note_glyph_name(const gregorio_note *const note,
case S_PUNCTUM_INCLINATUM_ASCENDENS:
*type = AT_PUNCTUM_INCLINATUM;
return SHAPE_AscendensPunctumInclinatum;
+ case S_PUNCTUM_INCLINATUM_STANS:
+ *type = AT_PUNCTUM_INCLINATUM;
+ return SHAPE_StansPunctumInclinatum;
case S_PUNCTUM_INCLINATUM_DESCENDENS:
*type = AT_PUNCTUM_INCLINATUM;
return SHAPE_DescendensPunctumInclinatum;
@@ -1683,6 +1687,12 @@ static void write_bar(FILE *f, const gregorio_score *const score,
case B_DIVISIO_MAIOR_DOTTED:
fprintf(f, "DivisioMaiorDotted");
break;
+ case B_DIVISIO_MINIMIS:
+ fprintf(f, "DivisioMinimis");
+ break;
+ case B_DIVISIO_MINIMIS_HIGH:
+ fprintf(f, "DivisioMinimisHigh");
+ break;
default:
/* not reachable unless there's a programming error */
/* LCOV_EXCL_START */
@@ -1708,9 +1718,17 @@ static void write_bar(FILE *f, const gregorio_score *const score,
break;
}
switch (type) {
+ case B_DIVISIO_MINIMIS_HIGH:
+ ++ far_pitch_adjustment;
+ /* fall through */
+
case B_VIRGULA_HIGH:
case B_DIVISIO_MINIMA_HIGH:
- far_pitch_adjustment = 2;
+ ++ far_pitch_adjustment;
+ /* fall through */
+
+ case B_DIVISIO_MINIMIS:
+ ++ far_pitch_adjustment;
/* fall through */
case B_VIRGULA:
@@ -1967,6 +1985,7 @@ static void write_punctum_mora(FILE *f, const gregorio_glyph *glyph,
}
switch (current_note->u.note.shape) {
case S_PUNCTUM_INCLINATUM_ASCENDENS:
+ case S_PUNCTUM_INCLINATUM_STANS:
case S_PUNCTUM_INCLINATUM_DESCENDENS:
case S_PUNCTUM_INCLINATUM_DEMINUTUS:
punctum_inclinatum = 1;
@@ -2057,7 +2076,7 @@ static __inline int get_punctum_inclinatum_space_case(
switch (note->u.note.shape) {
case S_PUNCTUM_INCLINATUM_ASCENDENS:
if (note->previous) {
- /* means that it is the first note of the puncta inclinata
+ /* means that it is not the first note of the puncta inclinata
* sequence */
temp = note->previous->u.note.pitch - note->u.note.pitch;
/* negative values = ascending ambitus */
@@ -2079,9 +2098,16 @@ static __inline int get_punctum_inclinatum_space_case(
}
}
break;
+ case S_PUNCTUM_INCLINATUM_STANS:
+ if (note->previous) {
+ /* means that it is not the first note of the puncta inclinata
+ * sequence */
+ return 26;
+ }
+ break;
case S_PUNCTUM_INCLINATUM_DESCENDENS:
if (note->previous) {
- /* means that it is the first note of the puncta inclinata
+ /* means that it is not the first note of the puncta inclinata
* sequence */
temp = note->previous->u.note.pitch - note->u.note.pitch;
/* negative values = ascending ambitus */
@@ -2105,7 +2131,7 @@ static __inline int get_punctum_inclinatum_space_case(
break;
case S_PUNCTUM_INCLINATUM_DEMINUTUS:
if (note->previous) {
- /* means that it is the first note of the puncta inclinata
+ /* means that it is not the first note of the puncta inclinata
* sequence */
temp = note->previous->u.note.pitch - note->u.note.pitch;
if (temp < -2) {
@@ -2588,6 +2614,8 @@ static int gregoriotex_syllable_first_type(gregorio_syllable *syllable)
case B_VIRGULA_HIGH:
result = 10;
break;
+ case B_DIVISIO_MINIMIS:
+ case B_DIVISIO_MINIMIS_HIGH:
case B_DIVISIO_MINIMA:
case B_DIVISIO_MINIMA_HIGH:
result = 11;