2020.10.07

This commit is contained in:
Seymour Shlien
2020-10-07 12:47:54 -04:00
parent c0d3f540d5
commit 92af67ffd8
9 changed files with 46 additions and 7 deletions

View File

@@ -1,2 +1,2 @@
2020 October 06 2020 2020 October 07 2020

View File

@@ -13904,4 +13904,8 @@ structure gets corrupted during the switch. Event_voice was modified
so that any remaining data in voice 1 is released before the switch. so that any remaining data in voice 1 is released before the switch.
October 7 2020
James Allwright has introduced event_score_linebreak in parseabc.c,
yapstree.c, etc. which replaces the change made on December 09 2019.
Except for yapstree.c, event_score_linebreak does nothing.

View File

@@ -2,8 +2,8 @@ abcMIDI : abc <-> MIDI conversion utilities
midi2abc version 3.46 June 22 2020 midi2abc version 3.46 June 22 2020
abc2midi version 4.42 October 01 2020 abc2midi version 4.42 October 01 2020
abc2abc version 2.10 October 10 2020 abc2abc version 2.10 October 01 2020
yaps version 1.79 October 01 2020 yaps version 1.80 October 07 2020
abcmatch version 1.74 October 01 2020 abcmatch version 1.74 October 01 2020
midicopy version 1.36 June 04 2019 midicopy version 1.36 June 04 2019

View File

@@ -591,6 +591,11 @@ void event_linebreak()
addfeature(LINENUM, lineno, 0, 0); addfeature(LINENUM, lineno, 0, 0);
} }
/* a score linebreak character has been encountered */
void event_score_linebreak(char ch)
{
}
void event_startmusicline() void event_startmusicline()
/* starting to parse line of abc music */ /* starting to parse line of abc music */
{ {

View File

@@ -2608,6 +2608,10 @@ parsemusic (field)
decorators_passback[i] = 0; /* [SS] 2012-03-30 */ decorators_passback[i] = 0; /* [SS] 2012-03-30 */
} }
break; break;
case '$':
p = p + 1;
event_score_linebreak ('$'); /* [JA] 2020-10-07 */
break;
/* hidden rest */ /* hidden rest */
case 'x': case 'x':
{ {
@@ -2841,8 +2845,6 @@ parsemusic (field)
{ {
event_reserved (*p); event_reserved (*p);
} }
else if (fileprogram == ABC2MIDI && *p == '$') ; /* ignore [SS] 2019-12-9 */
/* $ sometimes used as a score linebreak character */
else else
{ {
sprintf (msg, "Unrecognized character: %c", *p); sprintf (msg, "Unrecognized character: %c", *p);

View File

@@ -83,6 +83,7 @@ extern void event_init(int argc, char *argv[], char **filename);
extern void event_text(char *s); extern void event_text(char *s);
extern void event_reserved(char p); extern void event_reserved(char p);
extern void event_tex(char *s); extern void event_tex(char *s);
extern void event_score_linebreak(char ch);
extern void event_linebreak(void); extern void event_linebreak(void);
extern void event_startmusicline(void); extern void event_startmusicline(void);
extern void event_endmusicline(char endchar); extern void event_endmusicline(char endchar);
@@ -152,6 +153,7 @@ extern void event_init();
extern void event_text(); extern void event_text();
extern void event_reserved(); extern void event_reserved();
extern void event_tex(); extern void event_tex();
extern void event_score_linebreak();
extern void event_linebreak(); extern void event_linebreak();
extern void event_startmusicline(); extern void event_startmusicline();
extern void event_endmusicline(); extern void event_endmusicline();

View File

@@ -1787,6 +1787,11 @@ void event_linebreak()
addfeature(LINENUM, lineno, 0, 0); addfeature(LINENUM, lineno, 0, 0);
} }
/* a score linebreak character has been encountered */
void event_score_linebreak(char ch)
{
}
void event_startmusicline() void event_startmusicline()
/* starting to parse line of abc music */ /* starting to parse line of abc music */
{ {
@@ -1903,7 +1908,7 @@ double x, h3;
int n; int n;
float w; float w;
/* h3 (1901.955) is the 3rd harmonic (fifth+octave) represented in cents */ /* h3 (1901.955) is the 3rd harmonic (fifth+octave) represented in cents */
h3 = 1200.0 * log2 (3.0); h3 = 1200.0 * log (3.0)/log(2.0); /* 1200 * log2(3.0) */
x = h3 - octave_size; /* fifth reduced by the tempered octave */ x = h3 - octave_size; /* fifth reduced by the tempered octave */
n = (int) (0.5 + x * ndiv / octave_size); /* fifth in integer steps */ n = (int) (0.5 + x * ndiv / octave_size); /* fifth in integer steps */
w = n * octave_size / ndiv; /* fifth quantized according to temperament */ w = n * octave_size / ndiv; /* fifth quantized according to temperament */

View File

@@ -835,6 +835,12 @@ void event_linebreak()
}; };
} }
/* a score linebreak character has been encountered */
void event_score_linebreak(char ch)
{
emit_char(ch);
}
void event_startmusicline() void event_startmusicline()
/* encountered the start of a line of notes */ /* encountered the start of a line of notes */
{ {

View File

@@ -22,7 +22,7 @@
/* yapstree.c - back-end for abc parser. */ /* yapstree.c - back-end for abc parser. */
/* generates a data structure suitable for typeset music */ /* generates a data structure suitable for typeset music */
#define VERSION "1.79 October 01 2020 yaps" #define VERSION "1.80 October 07 2020 yaps"
#include <stdio.h> #include <stdio.h>
#ifdef USE_INDEX #ifdef USE_INDEX
#define strchr index #define strchr index
@@ -1413,6 +1413,21 @@ static void divide_ties()
}; };
} }
/* A score_linebreak has been encountered [JA] 2020-10-07*/
void event_score_linebreak (char ch)
{
if (xinbody) {
/* end current score line - code from endmusicline */
cv->lineend = addfeature (MUSICSTOP, (void *)NULL);
addfeature (PRINTLINE, newvertspacing ());
cv->line = newline;
divide_ties ();
/* start new score line - startmusicline */
event_startmusicline ();
}
}
void event_endmusicline(endchar) void event_endmusicline(endchar)
char endchar; char endchar;
/* We are at the end of a line of abc notes */ /* We are at the end of a line of abc notes */