diff --git a/VERSION b/VERSION index 24f3d6d..f03a6db 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -2022 February 22 2022 +2022 March 20 2022 diff --git a/doc/CHANGES b/doc/CHANGES index 490757f..70bf294 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -14661,4 +14661,43 @@ if (strstr(line,"%%begintext") != NULL) { which returns the pointer to %%begintext in the line. +March 20 2022 + +abc2midi bug: I could not demonstrate this bug on my own system. + +When abc2midi is compiled on a Debian linux system using the -O2 compilation +flag (by default), it produces a faulty midi file for abc files containing +gchords. Here is a sample file. + +%abc-2.2 +X:1 +T:Test +M:C +L:1/4 +Q:1/4=135 +V:S clef=treble +V:s clef=treble +K:C +%%score (s S) +% +[V:s] "C" x2 "a" x2 | +[V:S] C C A A | + +The problem occurs with the bass accompaniment generated by "a". The +bass accompaniment creates a long string of A,, notes. + +This problem disappears when abc2midi is compiled without the +-O2 optimizer. + +Analysis: the bug was traced to the code gchord_configure in genmidi.c. +The limit of the loops + for (j=0; j MIDI conversion utilities midi2abc version 3.52 March 04 2022 -abc2midi version 4.69 February 22 2022 +abc2midi version 4.70 March 20 2022 abc2abc version 2.16 February 22 2022 yaps version 1.88 February 22 2022 abcmatch version 1.80 November 25 2021 diff --git a/genmidi.c b/genmidi.c index c9d75f6..134cef4 100644 --- a/genmidi.c +++ b/genmidi.c @@ -358,7 +358,9 @@ void configure_gchord() { int j; int inchord, note; + gchordnotes_size = 0; + if (chordnum < 0) return; /* [SS] 2022-03-20 */ inchord = 0; if (inversion != -1) { diff --git a/store.c b/store.c index c8a58ea..48f197c 100644 --- a/store.c +++ b/store.c @@ -186,7 +186,7 @@ int main() */ -#define VERSION "4.70 February 22 2022 abc2midi" +#define VERSION "4.71 March 20 2022 abc2midi" /* enables reading V: indication in header */ #define XTEN1 1 @@ -1860,7 +1860,7 @@ nmidicmd++; /* [SS] 2015-06-01 For converting the %%MIDIx command to a %%MIDI command */ -void event_midi(); +void event_midi(char* s); /* [SS] 2022-03-19 */ void process_midix(s)