mirror of
https://github.com/sshlien/abcmidi.git
synced 2026-04-15 22:33:42 +00:00
2021.05.21
This commit is contained in:
24
doc/CHANGES
24
doc/CHANGES
@@ -14206,7 +14206,7 @@ is not created correctly.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
May 10 2020
|
May 19 2020
|
||||||
|
|
||||||
abc2midi: the following file causes abc2midi to hang.
|
abc2midi: the following file causes abc2midi to hang.
|
||||||
|
|
||||||
@@ -14218,3 +14218,25 @@ K:C
|
|||||||
|
|
||||||
James Allwright intoduced a fix in readlen() in parseabc.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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
abcMIDI : abc <-> MIDI conversion utilities
|
abcMIDI : abc <-> MIDI conversion utilities
|
||||||
|
|
||||||
midi2abc version 3.47 November 01 2020
|
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
|
abc2abc version 2.13 May 08 2021
|
||||||
yaps version 1.86 December 10 2020
|
yaps version 1.86 December 10 2020
|
||||||
abcmatch version 1.78 March 27 2021
|
abcmatch version 1.78 March 27 2021
|
||||||
|
|||||||
28
parseabc.c
28
parseabc.c
@@ -1261,7 +1261,17 @@ static void process_microtones (int *parsed, char word[],
|
|||||||
modmicrotone[j].denom = b;
|
modmicrotone[j].denom = b;
|
||||||
/* printf("%c microtone = %d/%d\n",modmap[j],modmicrotone[j].num,modmicrotone[j].denom); */
|
/* 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(¤t_voice->timesig, &master_timesig);
|
||||||
|
copy_clef(¤t_voice->clef, &master_clef);
|
||||||
|
current_voice->unitlen = master_unitlen;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
parsekey (str)
|
parsekey (str)
|
||||||
@@ -1345,7 +1355,7 @@ parsekey (str)
|
|||||||
while (*s != '\0')
|
while (*s != '\0')
|
||||||
{
|
{
|
||||||
parsed = parseclef (&s, word, &gotclef, clefstr, &newclef, &cgotoctave, &coctave);
|
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 */
|
/* make clef an attribute of current voice */
|
||||||
if (inhead) {
|
if (inhead) {
|
||||||
copy_clef (&master_clef, &newclef);
|
copy_clef (&master_clef, &newclef);
|
||||||
@@ -1550,16 +1560,6 @@ parsekey (str)
|
|||||||
return (gotkey);
|
return (gotkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_voice_from_master(int voice_num)
|
|
||||||
{
|
|
||||||
voice_context_t *current_voice;
|
|
||||||
|
|
||||||
current_voice = &voicecode[voice_num - 1];
|
|
||||||
copy_timesig(¤t_voice->timesig, &master_timesig);
|
|
||||||
copy_clef(¤t_voice->clef, &master_clef);
|
|
||||||
current_voice->unitlen = master_unitlen;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
parsevoice (s)
|
parsevoice (s)
|
||||||
char *s;
|
char *s;
|
||||||
@@ -2306,10 +2306,12 @@ parsefield (key, field)
|
|||||||
* if L: fields was missing in the header.
|
* if L: fields was missing in the header.
|
||||||
*/
|
*/
|
||||||
resolve_unitlen();
|
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 parameters using values from header */
|
||||||
set_voice_from_master(1);
|
set_voice_from_master(1);
|
||||||
}
|
}
|
||||||
foundkey = parsekey (place);
|
|
||||||
if (inhead || inbody) {
|
if (inhead || inbody) {
|
||||||
if (foundkey)
|
if (foundkey)
|
||||||
{
|
{
|
||||||
|
|||||||
6
store.c
6
store.c
@@ -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 */
|
/* enables reading V: indication in header */
|
||||||
#define XTEN1 1
|
#define XTEN1 1
|
||||||
@@ -4300,7 +4300,11 @@ int xoctave, n, m;
|
|||||||
event_fatal_error("Internal error - no voice allocated");
|
event_fatal_error("Internal error - no voice allocated");
|
||||||
};
|
};
|
||||||
if (gracenotes && ignore_gracenotes) return; /* [SS] 2010-01-08 */
|
if (gracenotes && ignore_gracenotes) return; /* [SS] 2010-01-08 */
|
||||||
|
if (v->octaveshift == 0) { /* [JA] 2021-05-21 */
|
||||||
|
octave = xoctave + clef->octave_offset;
|
||||||
|
} else {
|
||||||
octave = xoctave + v->octaveshift;
|
octave = xoctave + v->octaveshift;
|
||||||
|
}
|
||||||
num = n;
|
num = n;
|
||||||
denom = m;
|
denom = m;
|
||||||
if (v->inchord) v->chordcount = v->chordcount + 1;
|
if (v->inchord) v->chordcount = v->chordcount + 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user