diff --git a/VERSION b/VERSION index 02ecb2d..67d256a 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -2022 June 14 2022 +2022 July 31 2022 diff --git a/doc/CHANGES b/doc/CHANGES index 616b04a..d3b4e64 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -14835,5 +14835,16 @@ In genmidi.c introduced function check_wordextend() In drawtune.c added the case WORDEXTEND in functions sizevoice() and printvoiceline(). +July 31 2022 + +The abcmidi package creates a new voice when it sees +V: T clef=tab +where tab indicates tablature. As a result abc2midi +creates a separate track for this voice which can cause some +problems. + +Fix: parseabc.c and music_utils.c was modified to ignore +the clef=tab indication. + diff --git a/doc/readme.txt b/doc/readme.txt index 6e36721..948e040 100644 --- a/doc/readme.txt +++ b/doc/readme.txt @@ -1,7 +1,7 @@ abcMIDI : abc <-> MIDI conversion utilities midi2abc version 3.54 April 28 2022 -abc2midi version 4.74 June 14 2022 +abc2midi version 4.75 July 31 2022 abc2abc version 2.18 June 14 2022 yaps version 1.90 June 14 2022 abcmatch version 1.82 June 14 2022 diff --git a/music_utils.c b/music_utils.c index d82b6e7..fb1a56b 100644 --- a/music_utils.c +++ b/music_utils.c @@ -39,6 +39,7 @@ static const clef_item_t clef_conversion_table[] = { {"mezzosoprano", basic_clef_alto, 2, 0}, {"tenor", basic_clef_alto, 4, 0}, {"baritone", basic_clef_bass, 0, 0}, + {"tab", tablature_not_implemented, 0, 0}, /* [SS] 2022.07.31 */ }; #define NUM_CLEFS (sizeof(clef_conversion_table)/sizeof(clef_item_t)) diff --git a/music_utils.h b/music_utils.h index c353e40..78286d0 100644 --- a/music_utils.h +++ b/music_utils.h @@ -49,7 +49,8 @@ typedef enum basic_cleftype { basic_clef_undefined, /* for when we didn't find a clef */ basic_clef_auto, /* drawing program has free choice of clef */ basic_clef_perc, /* percussion */ - basic_clef_none /* from abc standard 2.2 what does this mean ? */ + basic_clef_none, /* from abc standard 2.2 what does this mean ? */ + tablature_not_implemented /* [SS] 2022.07.31 */ } basic_cleftype_t; typedef struct new_cleftype { diff --git a/parseabc.c b/parseabc.c index 1b90ffe..97d0d46 100644 --- a/parseabc.c +++ b/parseabc.c @@ -1643,6 +1643,9 @@ parsevoice (s) parsed = parseclef (&s, word, &vparams.gotclef, vparams.clefname, &vparams.new_clef, &cgotoctave, &coctave); + /* printf("vparams.clefname =%s\n",vparams.clefname); */ + /* do not create a tablature voice [SS] 2022.07.31 */ + if (strcmp(vparams.clefname,"tab") == 0) return; if (vparams.gotclef) { /* make clef an attribute of current voice */ copy_clef (&voicecode[num - 1].clef, &vparams.new_clef); diff --git a/store.c b/store.c index e9a4849..e016a94 100644 --- a/store.c +++ b/store.c @@ -186,7 +186,7 @@ int main() */ -#define VERSION "4.74 June 14 2022 abc2midi" +#define VERSION "4.75 July 30 2022 abc2midi" /* enables reading V: indication in header */ #define XTEN1 1