From 4d51b779bf79079e2e7d8b43747a2d95aa326163 Mon Sep 17 00:00:00 2001 From: sshlien Date: Sun, 25 Feb 2024 07:53:27 -0500 Subject: [PATCH] 2024.02.25 --- VERSION | 2 +- doc/CHANGES | 55 +++++++++++++------------------------------------- doc/readme.txt | 2 +- music_utils.c | 8 ++++++++ store.c | 2 +- 5 files changed, 25 insertions(+), 44 deletions(-) diff --git a/VERSION b/VERSION index 158029f..6b76cdd 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -February 23 2024 +February 25 2024 diff --git a/doc/CHANGES b/doc/CHANGES index 519038f..ccc45b5 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -15377,49 +15377,22 @@ it is only called if the token was a clef. Fix: commented out the line in isclef() which zeros the octave_offset. -February 23 2024 +February 25 2024 -abcmidi bug: +abcmidi note: Besides clef=treble-8, the abcmidi 2.2 standard also recognizes -clef=treble_8 which it treats similarly. The standard also allows -clef=treble^8 to be substituted for treble+8. abc2midi does not -recognize these variants. - -Fix: extended the function get_clef_octave_offset in music_utils.c -to recognize these variants. Unfortunately, readword() called by -parseclef breaks the clef string when it encounters either a ^ -or _. This was necessary to handle sharps and flats in the -K: declaration. (See note above April 8 2015.) It was necessary -to create a replacement function, readword_with_() which does -not break the string on underscore _ or caret ^. - -The following test file was used to verify the correct operation -of this feature. - -X:1 -T: clef= variants -M:4/4 -L:1/4 -V:1 clef=treble-8 -V:2 clef=treble_8 -V:3 clef=treble+8 -V:4 clef=treble^8 -K:C -[V:1] z z C z | -[V:2] z z z C | -[V:3] C z z z | -[V:4] z C z z | - - - - - - - - - - - +clef=treble_8, clef=treble^8 and etc. These clefs do not transpose +the notes in the midi file but merely put the appropriate symbol +on the clef. Abc2midi presently ignores these endings in the +function get_clef_octave_offset() in music_utils.c. When it is +necessary for the parseclef to see these endings the following fix +is necessary. +Fix: readword() called by parseclef breaks the clef string +when it encounters either a ^ or _ in order to handle sharps +and flats in the K: declaration. (See note above April 8 2015.) +It is necessary to use the new function, readword_with_() +which does not break the string on encountering either +the underscore _ or caret ^. diff --git a/doc/readme.txt b/doc/readme.txt index 44e37c4..dc25aa7 100644 --- a/doc/readme.txt +++ b/doc/readme.txt @@ -1,7 +1,7 @@ abcMIDI : abc <-> MIDI conversion utilities midi2abc version 3.59 February 08 2023 -abc2midi version 4.89 February 23 2024 +abc2midi version 4.90 February 25 2024 abc2abc version 2.21 February 19 2024 yaps version 1.93 February 19 2024 abcmatch version 1.83 February 19 2024 diff --git a/music_utils.c b/music_utils.c index 0ab2507..502a26d 100644 --- a/music_utils.c +++ b/music_utils.c @@ -205,6 +205,13 @@ static int get_clef_octave_offset (char *clef_ending) if (strncmp (clef_ending, "-15", 2) == 0) { return -2; } +/* ^8, ^15, _8, _15 does not transpose the notes in + the midi output according to the abc standard 2.2; + though it should display the appropriate symbol in + the clef. For the time being I am commenting + the other endings so abc2midi runs correctly. + [SS] 2024.02.24 + if (strncmp (clef_ending, "^8", 2) == 0) { return 1; } @@ -217,6 +224,7 @@ static int get_clef_octave_offset (char *clef_ending) if (strncmp (clef_ending, "_15", 2) == 0) { return -2; } +*/ return 0; } diff --git a/store.c b/store.c index e8ad552..011ae5c 100644 --- a/store.c +++ b/store.c @@ -186,7 +186,7 @@ int main() */ -#define VERSION "4.89 February 23 2024 abc2midi" +#define VERSION "4.90 February 25 2024 abc2midi" /* enables reading V: indication in header */ #define XTEN1 1