2021.05.21

This commit is contained in:
Seymour Shlien
2021-05-23 10:03:30 -04:00
parent dcfa5cc7ad
commit 538896e1b9
5 changed files with 46 additions and 18 deletions

View File

@@ -1,2 +1,2 @@
2021 May 19 2021
2021 May 23 2021

View File

@@ -14206,7 +14206,7 @@ is not created correctly.
May 10 2020
May 19 2020
abc2midi: the following file causes abc2midi to hang.
@@ -14218,3 +14218,25 @@ K:C
James Allwright intoduced a fix in readlen() in parseabc.c
May 22 2021
abc2midi: treble-8 not applied in K: or V: commands after October 19 2020
update. For example,
X:1
T: transposition
L:1/2
M:C
K:none clef=treble-8
V:1
cz
V:2
zc
The note c should be played with midi pitch 60 instead of 72.
James Allwright made minor fixes to parseabc.c and store.c, in order
to get these options working again.

View File

@@ -1,7 +1,7 @@
abcMIDI : abc <-> MIDI conversion utilities
midi2abc version 3.47 November 01 2020
abc2midi version 4.55 May 19 2021
abc2midi version 4.56 May 21 2021
abc2abc version 2.13 May 08 2021
yaps version 1.86 December 10 2020
abcmatch version 1.78 March 27 2021

View File

@@ -1261,7 +1261,17 @@ static void process_microtones (int *parsed, char word[],
modmicrotone[j].denom = b;
/* printf("%c microtone = %d/%d\n",modmap[j],modmicrotone[j].num,modmicrotone[j].denom); */
}
} /* finished ^ = _ */
} /* finished ^ = _ */
static void set_voice_from_master(int voice_num)
{
voice_context_t *current_voice;
current_voice = &voicecode[voice_num - 1];
copy_timesig(&current_voice->timesig, &master_timesig);
copy_clef(&current_voice->clef, &master_clef);
current_voice->unitlen = master_unitlen;
}
int
parsekey (str)
@@ -1345,7 +1355,7 @@ parsekey (str)
while (*s != '\0')
{
parsed = parseclef (&s, word, &gotclef, clefstr, &newclef, &cgotoctave, &coctave);
if (gotclef) {
if (parsed) { /* [JA] 2021-05-21 changed (gotclef) to (parsed) */
/* make clef an attribute of current voice */
if (inhead) {
copy_clef (&master_clef, &newclef);
@@ -1550,16 +1560,6 @@ parsekey (str)
return (gotkey);
}
static void set_voice_from_master(int voice_num)
{
voice_context_t *current_voice;
current_voice = &voicecode[voice_num - 1];
copy_timesig(&current_voice->timesig, &master_timesig);
copy_clef(&current_voice->clef, &master_clef);
current_voice->unitlen = master_unitlen;
}
void
parsevoice (s)
char *s;
@@ -2306,10 +2306,12 @@ parsefield (key, field)
* if L: fields was missing in the header.
*/
resolve_unitlen();
}
foundkey = parsekey (place); /* [JA] 2021.05.21 parsekey called before set_voice_from_master(1) */
if (inhead) {
/* set voice parameters using values from header */
set_voice_from_master(1);
}
foundkey = parsekey (place);
if (inhead || inbody) {
if (foundkey)
{

View File

@@ -186,7 +186,7 @@ int main()
*/
#define VERSION "4.55 May 19 2021 abc2midi"
#define VERSION "4.56 May 21 2021 abc2midi"
/* enables reading V: indication in header */
#define XTEN1 1
@@ -4300,7 +4300,11 @@ int xoctave, n, m;
event_fatal_error("Internal error - no voice allocated");
};
if (gracenotes && ignore_gracenotes) return; /* [SS] 2010-01-08 */
octave = xoctave + v->octaveshift;
if (v->octaveshift == 0) { /* [JA] 2021-05-21 */
octave = xoctave + clef->octave_offset;
} else {
octave = xoctave + v->octaveshift;
}
num = n;
denom = m;
if (v->inchord) v->chordcount = v->chordcount + 1;