Syntax highlighting file for the abc notation language

Syntax highlighting file for the abc notation language

7
NewbieNewbie
7

    Nov 22, 2019#1

    I'm wrestling with creating a uew file for a language called abc notation. This is a text based music language which is well established and known globally among we musicians. There is a very descriptive language standard published which is found here http://abcnotation.com/wiki/abc:standard:v2.1 and the text files with the .abc extension are found by the millions which you can also see reference to at abc notation home page.

    So, its a big deal for me to use U.E. daily to work on these types of text based files.
    I don't understand clearly the construction of the (regular expressions  string parsing functions) seen used in the other .uew files offered for download by your sites which seen to somehow control how the color of strings is handled. I can offer my files progressed so far and any assistance needed if there's a reply to me via my email.

    I am a software engineer and can can keep going at this alone but could really use the help from an expert. Ultimately, there needs to be a file by U.E. for the abc language because it is the perfect editor to use with it. Also I checked and there is not yet an abc notation uew file made ready for me to download and customize my colors.

    6,606548
    Grand MasterGrand Master
    6,606548

      Nov 22, 2019#2

      The regular expressions in the *.uew wordfiles are just for finding strings in syntax highlighted file for listing them flat or hierarchical in Function List view. They are not used to syntax highlight the strings in a file.

      It should be no problem, at least for me, to write a syntax highlighting wordfile for *.abc files. The regular expressions are usually the last added to a wordfile as most important is getting a file syntax highlighted. Then the definitions for additional features like function list, code folding, automatic indent and unindent are added to the syntax highlighting wordfile.

      The syntax is really good explained.
      Best regards from an UC/UE/UES for Windows user from Austria

      7
      NewbieNewbie
      7

        Nov 23, 2019#3

        That would be awesome! My main editors for auditing is named (AbcExplorer 1.6.1) and (EasyAbc 1.3.5) both which highlight and (UltraEdit 15.20) for bulk work editing of the text on my Windows 10 OS.

        Here's a site that has some snaps of AbcExplorer syntax highlighting which may be fine as a starting point for me with you help.
        https://www.softpedia.com/get/Others/Ho ... tml#sgal_0

        Finally, until you can get to this (well chat again)... here's my poor non-working attempt at my making a new AbcNotation.uew file.
        This at least contributes a little about what should have selection colors for a start. I can help refine that later, i.e. create more levels of color by breaking out specific recurring patterns of certain chars ...to help the editing process visually.

        Code: Select all

        /L20"AbcNotation" Noquote Line Comment = % Line Comment Preceding Chars = [%"] Line Comment Alt = %% File Extensions = abc
        /Colors = 0,8421376,16711935,255,16744576,
        /Colors Back = 16777215,16777215,16777215,16777215,16777215,
        /Colors Auto Back = 1,1,1,1,0,
        /Font Style = 0,0,0,1,0,
        /Delimiters = ! " #$%&'()*+,./:;<=>?@[\]^_{|}~«»
        /C1"Strings"
        /Regexp Type = Perl
        /TGBegin "patterns"
        /TGFindStr = "[^H-Yh-y :|\{\}"\[\]%\(\)]"
        /TGEnd
        /C2"Fields"
        ** A: B: C: D: E: F: G: H: I: K: L: M: N: O: P: Q: R: S: T: W: X: Z:
        /C3"staffchars"
        |
        [
        ]
        :
        !
        \
        /C4"Notes"
        ^
        =
        _
        '
        ,
        /
        A
        B
        C
        D
        E
        F
        G
        a
        b
        c
        d
        e
        f
        g
        z
        /C5"Numerals"
        ** 0 1 2 3 4 5 6 7 8 9
        /C6"Annotations"
        -
        (
        )
        >
        <
        ~
        .
        +
        *
        

        6,606548
        Grand MasterGrand Master
        6,606548

          Nov 30, 2019#4

          I suggest the syntax highlighting wordfile without color and font style settings attached initially to this post (and removed later). It is compatible with UltraEdit for Windows v15.20.

          The colon is defined as word delimiter. This is necessary because of the space character after field name letter and colon is just optional. There are abc files which have no space after field name and colon. UltraEdit syntax highlighting is based on words. Which sequence of characters is interpreted as word in a syntax highlighted file is defined by the delimiters in the wordfile listed on line starting with /Delimiters =. So it is impossible to define strings like C: or T: as word in the wordfile to be syntax highlighted in an opened abc file. UltraEdit supports a syntax highlighting word definition starting with a delimiter, but it does not support a word definition ending with a word delimiter.

          UltraEdit does also not support syntax highlighting of words based on context which means for abc files in which line the word defined in syntax highlighting wordfile is found in the highlighted file. I tried a syntax highlighting for abc files with single letter words in wordfile, but I could see that it does not make sense. The letters have to many different meanings in abc files.

          The color group Properties contains the words which are properties of various fields. The abc files are case-sensitive, but the key signatures are case-insensitive. This makes it difficult to highlight them because of a syntax highlighting definition is either case-sensitive or case-insensitive. Therefore Properties contains the key signatures in the variants with all letters in lower case, with all letters in upper case and capitalized, in full notation or in abbreviated notation. I am not sure if the key signatures are defined all well by me. I have not understood fully their description.

          The color and font style settings for color group Negative numbers can be configured identical to the standard color group Numbers or different, whatever the user likes more. I think, a different color would be better for abc syntax highlighting.

          T: is defined as open and as close fold string because of an abc file can contain multiple tunes each with a tune title. For that reason it could be useful to fold them from tune title line to tune title line with the exception of the last tune (no more tune title line).

          The square brackets and the braces are defined for brace matching because of those brackets usually exist in matching pairs in abc files. This is not the case for round and angle brackets which is the reason that those brackets are not added to the open and close brace strings definition lines.

          There is just a single function string definition in the attached wordfile written in legacy syntax supported by UltraEdit for Windows prior v16.00 and UEStudio prior v10.00. It searches with UltraEdit regular expression engine for lines starting with T: with 0 or more spaces and one or more characters up to either a percent (beginning of line comment) or end of line and tag just the string after T: and the optional spaces. So this UltraEdit regular expression search string results in listing in Function List view the tune titles of active abc file or of all abc files of a project. The Function List view context menu option List for all Project Files must be enabled and an UltraEdit project must be opened with a list of abc files or with abc files found in project directory (tree) to get all tune titles of all abc files of the project listed in Function List independent on which of those files are also opened in UltraEdit.

          The single line /Function String = "%T: ++^([~%^p]+^)" could be replace also by:

          Code: Select all

          /Function String = "%^(T:[~%^p]+^)"
          /Function String 1 = "%^(C:[~%^p]+^)"
          /Function String 2 = "%^(O:[~%^p]+^)"
          /Function String 3 = "%^(Z:[~%^p]+^)"
          
          Then the Function List displays not only the tune titles, but also the composers, origins and transcriptions found in active file or all project files. In this case the field name letter, the colon and the optional space(s) after the colon are included in the strings listed in Function List view to have a type indication for each displayed string.

          The single line /Function String = "%T: ++^([~%^p]+^)" could be replace also by:

          Code: Select all

          /TGBegin "Title"
          /TGFindStr = "%T: ++^([~%^p]+^)"
          /TGEnd
          /TGBegin "Composer"
          /TGFindStr = "%C: ++^([~%^p]+^)"
          /TGEnd
          /TGBegin "Origin"
          /TGFindStr = "%O: ++^([~%^p]+^)"
          /TGEnd
          /TGBegin "Transcription"
          /TGFindStr = "%Z: ++^([~%^p]+^)"
          /TGEnd
          
          This function string definition requires UltraEdit for Windows ≥ v16.00 or UEStudio ≥ v10.00 and the function list should be configured for displaying an hierarchical list on which the group names are displayed, and not a flat list displayed without group names. The Function List context menu contains the option Flat List for toggling it if the used version of UltraEdit and UEStudio support a hierarchical function list at all.

          Please let me know if you have any further questions which should result in modifications on this wordfile for abc files.

          PS: The good documentation of abc notation version 2.1 contains a mistake in my opinion. In chapter 7.1 is written about property subname which can be used also abbreviated with snm. The abbreviated version is also used four times in the first example in chapter 7. in this documentation. But the example in chapter 13.4 contains property name sname which is not described anywhere in the whole documentation. I think, the example is not 100% correct and so sname is not in color group Properties.
          Best regards from an UC/UE/UES for Windows user from Austria

          7
          NewbieNewbie
          7

            Dec 21, 2019#5

            Thank you Mofi  I will review your rev 1 and send you feedback next chance I can.

            Happy Holidays

              Dec 23, 2019#6

              Here's my next edits to it....

              ABC NOTATION LANGUAGE ABC.UEW REV 1.1

              Code: Select all

              /L20"abc" Noquote Line Comment Num = 2%  Block Comment On = [r: Block Comment Off = ] File Extensions = abc
              /Colors = 0,8421376,8421504,16711680,255,
              /Colors Back = 16777215,16777215,16777215,16777215,16777215,
              /Colors Auto Back = 1,1,1,1,1,
              /Font Style = 0,0,0,0,0,
              /Block Comment On Alt = {       ##  cause all grace notes highlighted as a block comment
              /Block Comment Off Alt = }      ##  cause all grace notes highlighted as a block comment
              /Line Comment = X:          ## this doesn't seem to work... wanted to make first line a comment color  
              /Delimiters = ! " $*+:=[\]^_{|}~
              ## these strings change color to STRING when focused but during edit they are not color controlled it seems
              ## would be nice to have any Information field letters (A: thru Z:) color controlled 
              /TGBegin "Title"
              /TGFindStr = "%T: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Composer"
              /TGFindStr = "%C: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Origin"
              /TGFindStr = "%O: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Rythm"
              /TGFindStr = "%R: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Length"
              /TGFindStr = "%L: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Meter"
              /TGFindStr = "%M: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Voice"
              /TGFindStr = "%V: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Part"
              /TGFindStr = "%P: ++^([~%^p]+^)"
              /TGEnd
              /TGBegin "Key"
              /TGFindStr = "%K: ++^([~%^p]+^)"
              /TGEnd
              /Open Brace Strings = "[" "{" "("    ##added paren
              /Close Brace Strings = "]" "}" ")"   ##added paren
              /Open Fold Strings = "T:"
              /Close Fold Strings = "T:"
              /C1"ForFractions"
              // /2 /3 /4 /8 3/ 6/ 9/ 12/           ##trying here to make numerals inside the abc tune different color than letters
              /C2"Colon, brackets, pipe"
              :
              [
              ]
              |
              [|
              |]
              |:
              :|
              /C3"Delimiters"
              "
              $
              *
              +
              =
              \
              ^
              _
              {
              }
              ~
              '            ##added tic
              ,            ##added comma
              // /
              /C4"DotCut"
              >            ## experimented here to make sep color  ,,, not working
              /C5"CutDot"
              <            ## experimented here to make sep color  ,,, not working
              ## the directives list is actually very huge... this list to be continued
              /C6"Directives"
              %%MIDI %%annotationfont %%barnumbers %%barsperstaff %%begintext %%botmargin %%center %%composerfont
              %%composerspace %%endtext %%exprabove %%exprbelow %%freegchord %%gchordfont %%graceslurs %%indent
              %%infofont %%infoline %%infoname %%infospace %%landscape %%leftmargin %%lineskipfac %%maxshrink
              %%measurebox %%measurefirst %%measurenb %%musiconly %%musicspace %%newpage %%oneperpage %%pageheight
              %%pagewidth %%parskipfac %%partsfont %%partsspace %%printtempo %%propagate-accidentals %%rightmargin
              %%scale %%score %%sep %%setbarnb %%setfont-1 %%setfont-2 %%setfont-3 %%setfont-4 %%staffsep %%stretchlast
              %%stretchstaff %%subtitlefont %%subtitlespace %%sysstaffsep %%staves %%tempofont %%text %%textfont %%textspace
              %%titlefont %%titlespace %%topmargin %%topspace %%vocalabove %%vocalfont %%vocalspace %%vskip %%withxrefs
              %%wordsfont %%wordsspace %%writefields %%writehistory %%writeout-accidentals %%abc
              ## Keys being color controlled ... is working
              /C7"Keys"
                  :Ab   :Abmaj :Abm   :Abmin       :Abmix :Abdor :Abphr :Ablyd :Abloc     :AbMaj :AbMix :AbDor :AbPhr :AbLyd :AbLoc
              :A        :Amaj         :Amin   :Am  :Amix  :Ador  :Aphr  :Alyd  :Aloc      :AMaj  :AMix  :ADor  :APhr  :ALyd  :ALoc
                  :A#   :A#maj :A#m   :A#min       :A#mix :A#dor :A#phr :A#lyd :A#loc     :A#Maj :A#Mix :A#Dor :A#Phr :A#Lyd :A#Loc
                  :Bb   :Bbmaj :Bbm   :Bbmin       :Bbmix :Bbdor :Bbphr :Bblyd :Bbloc     :BbMaj :BbMix :BbDor :BbPhr :BbLyd :BbLoc
              :B        :Bmaj         :Bmin   :Bm  :Bmix  :Bdor  :Bphr  :Blyd  :Bloc      :BMaj  :BMix  :BDor  :BPhr  :BLyd  :BLoc
                  :B#   :B#maj :B#m   :B#min       :B#mix :B#dor :B#phr :B#lyd :B#loc     :B#Maj :B#Mix :B#Dor :B#Phr :B#Lyd :B#Loc
                  :Cb   :Cbmaj :Cbm   :Cbmin       :Cbmix :Cbdor :Cbphr :Cblyd :Cbloc     :CbMaj :CbMix :CbDor :CbPhr :CbLyd :CbLoc
              :C        :Cmaj         :Cmin   :Cm  :Cmix  :Cdor  :Cphr  :Clyd  :Cloc      :CMaj  :CMix  :CDor  :CPhr  :CLyd  :CLoc
                  :C#   :C#maj :C#m   :C#min       :C#mix :C#dor :C#phr :C#lyd :C#loc     :C#Maj :C#Mix :C#Dor :C#Phr :C#Lyd :C#Loc
                  :Db   :Dbmaj :Dbm   :Dbmin       :Dbmix :Dbdor :Dbphr :Dblyd :Dbloc     :DbMaj :DbMix :DbDor :DbPhr :dbLyd :DbLoc
              :D        :Dmaj         :Dmin   :Dm  :Dmix  :Ddor  :Dphr  :Dlyd  :Dloc      :DMaj  :DMix  :DDor  :DPhr  :dLyd  :DLoc
                  :D#   :D#maj :D#m   :D#min       :D#mix :D#dor :D#phr :D#lyd :D#loc     :D#Maj :D#Mix :D#Dor :D#Phr :d#Lyd :D#Loc
                  :Eb   :Ebmaj :Ebm   :Ebmin       :Ebmix :Ebdor :Ebphr :Eblyd :Ebloc     :EbMaj :EbMix :EbDor :EbPhr :EbLyd :EbLoc
              :E        :Emaj         :Emin   :Em  :Emix  :Edor  :Ephr  :Elyd  :Eloc      :EMaj  :EMix  :EDor  :EPhr  :ELyd  :ELoc
                  :E#   :E#maj :E#m   :E#min       :E#mix :E#dor :E#phr :E#lyd :E#loc     :E#Maj :E#Mix :E#Dor :E#Phr :E#Lyd :E#Loc
                  :Fb   :Fbmaj :Fbm   :Fbmin       :Fbmix :Fbdor :Fbphr :Fblyd :Fbloc     :FbMaj :FbMix :FbDor :FbPhr :FbLyd :FbLoc
              :F        :Fmaj         :Fmin   :Fm  :Fmix  :Fdor  :Fphr  :Flyd  :Floc      :FMaj  :FMix  :FDor  :FPhr  :FLyd  :FLoc
                  :F#   :F#maj :F#m   :F#min       :F#mix :F#dor :F#phr :F#lyd :F#loc     :F#Maj :F#Mix :F#Dor :F#Phr :F#Lyd :F#Loc
                  :Gb   :Gbmaj :Gbm   :Gbmin       :Gbmix :Gbdor :Gbphr :Gblyd :Gbloc     :GbMaj :GbMix :GbDor :GbPhr :GbLyd :GbLoc
              :G        :Gmaj         :Gmin   :Gm  :Gmix  :Gdor  :Gphr  :Glyd  :Gloc      :GMaj  :GMix  :GDor  :GPhr  :GLyd  :GLoc
                  :G#   :G#maj :G#m   :G#min       :G#mix :G#dor :G#phr :G#lyd :G#loc     :G#Maj :G#Mix :G#Dor :G#Phr :G#Lyd :G#Loc
              ## chords being color controlled ... is working... small issue is closing double-quote can't be controlled
              /C8"Chords"
                  "Ab    "Abmaj  "Abm    "Abmin   "Ab7   "Abmaj7  "Abm7   "Abmin7   "Abmaj6  "Abm6   "Abmin6  "Abdim  "Absus  "Abaug
              "A          "Amaj           "Amin   "Am    "Amaj7            "Amin7   "Amaj6            "Amin6   "Adim   "Asus   "Aaug
                  "A#    "A#maj  "A#m    "A#min   "A#7   "A#maj7  "A#m7   "A#min7   "A#maj6  "A#m6   "A#min6  "A#dim  "A#sus  "A#aug
                  "Bb    "Bbmaj  "Bbm    "Bbmin   "Bb7   "Bbmaj7  "Bbm7   "Bbmin7   "Bbmaj6  "Bbm6   "Bbmin6  "Bbdim  "Bbsus  "Bbaug
              "B          "Bmaj           "Bmin   "Bm    "Bmaj7            "Bmin7   "Bmaj6            "Bmin6   "Bdim   "Bsus   "Baug
                  "B#    "B#maj  "B#m    "B#min   "B#7   "B#maj7  "B#m7   "B#min7   "B#maj6  "B#m6   "B#min6  "B#dim  "B#sus  "B#aug
                  "Cb    "Cbmaj  "Cbm    "Cbmin   "Cb7   "Cbmaj7  "Cbm7   "Cbmin7   "Cbmaj6  "Cbm6   "Cbmin6  "Cbdim  "Cbsus  "Cbaug
              "C          "Cmaj           "Cmin   "Cm    "Cmaj7            "Cmin7   "Cmaj6            "Cmin6   "Cdim   "Csus   "Caug
                  "C#    "C#maj  "C#m    "C#min   "C#7   "C#maj7  "C#m7   "C#min7   "C#maj6  "C#m6   "C#min6  "C#dim  "C#sus  "C#aug
                  "Db    "Dbmaj  "Dbm    "Dbmin   "Db7   "Dbmaj7  "Dbm7   "Dbmin7   "Dbmaj6  "Dbm6   "Dbmin6  "Dbdim  "Dbsus  "Dbaug
              "D          "Dmaj           "Dmin   "Dm    "Dmaj7            "Dmin7   "Dmaj6            "Dmin6   "Ddim   "Dsus   "Daug
                  "D#    "D#maj  "D#m    "D#min   "D#7   "D#maj7  "D#m7   "D#min7   "D#maj6  "D#m6   "D#min6  "D#dim  "D#sus  "D#aug
                  "Eb    "Ebmaj  "Ebm    "Ebmin   "Eb7   "Ebmaj7  "Ebm7   "Ebmin7   "Ebmaj6  "Ebm6   "Ebmin6  "Ebdim  "Ebsus  "Ebaug
              "E          "Emaj           "Emin   "Em    "Emaj7            "Emin7   "Emaj6            "Emin6   "Edim   "Esus   "Eaug
                  "E#    "E#maj  "E#m    "E#min   "E#7   "E#maj7  "E#m7   "E#min7   "E#maj6  "E#m6   "E#min6  "E#dim  "E#sus  "E#aug
                  "Fb    "Fbmaj  "Fbm    "Fbmin   "Fb7   "Fbmaj7  "Fbm7   "Fbmin7   "Fbmaj6  "Fbm6   "Fbmin6  "Fbdim  "Fbsus  "Fbaug
              "F          "Fmaj           "Fmin   "Fm    "Fmaj7            "Fmin7   "Fmaj6            "Fmin6   "Fdim   "Fsus   "Faug
                  "F#    "F#maj  "F#m    "F#min   "F#7   "F#maj7  "F#m7   "F#min7   "F#maj6  "F#m6   "F#min6  "F#dim  "F#sus  "F#aug
                  "Gb    "Gbmaj  "Gbm    "Gbmin   "Gb7   "Gbmaj7  "Gbm7   "Gbmin7   "Gbmaj6  "Gbm6   "Gbmin6  "Gbdim  "Gbsus  "Gbaug
              "G          "Gmaj           "Gmin   "Gm    "Gmaj7            "Gmin7   "Gmaj6            "Gmin6   "Gdim   "Gsus   "Gaug
                  "G#    "G#maj  "G#m    "G#min   "G#7   "G#maj7  "G#m7   "G#min7   "G#maj6  "G#m6   "G#min6  "G#dim  "G#sus  "G#aug
                  (Ab)   (Abmaj) (Abm)   (Abmin)  (Ab7)  (Abmaj7) (Abm7)  (Abmin7)  (Abmaj6) (Abm6)  (Abmin6) (Abdim) (Absus) (Abaug)
              (A)         (Amaj)          (Amin)  (Am)   (Amaj7)           (Amin7)  (Amaj6)           (Amin6)  (Adim)  (Asus)  (Aaug)
                  (A#)   (A#maj) (A#m)   (A#min)  (A#7)  (A#maj7) (A#m7)  (A#min7)  (A#maj6) (A#m6)  (A#min6) (A#dim) (A#sus) (A#aug)
                  (Bb)   (Bbmaj) (Bbm)   (Bbmin)  (Bb7)  (Bbmaj7) (Bbm7)  (Bbmin7)  (Bbmaj6) (Bbm6)  (Bbmin6) (Bbdim) (Bbsus) (Bbaug)
              (B)         (Bmaj)          (Bmin)  (Bm)   (Bmaj7)           (Bmin7)  (Bmaj6)           (Bmin6)  (Bdim)  (Bsus)  (Baug)
                  (B#)   (B#maj) (B#m)   (B#min)  (B#7)  (B#maj7) (B#m7)  (B#min7)  (B#maj6) (B#m6)  (B#min6) (B#dim) (B#sus) (B#aug)
                  (Cb)   (Cbmaj) (Cbm)   (Cbmin)  (Cb7)  (Cbmaj7) (Cbm7)  (Cbmin7)  (Cbmaj6) (Cbm6)  (Cbmin6) (Cbdim) (Cbsus) (Cbaug)
              (C)         (Cmaj)          (Cmin)  (Cm)   (Cmaj7)           (Cmin7)  (Cmaj6)           (Cmin6)  (Cdim)  (Csus)  (Caug)
                  (C#)   (C#maj) (C#m)   (C#min)  (C#7)  (C#maj7) (C#m7)  (C#min7)  (C#maj6) (C#m6)  (C#min6) (C#dim) (C#sus) (C#aug)
                  (Db)   (Dbmaj) (Dbm)   (Dbmin)  (Db7)  (Dbmaj7) (Dbm7)  (Dbmin7)  (Dbmaj6) (Dbm6)  (Dbmin6) (Dbdim) (Dbsus) (Dbaug)
              (D)         (Dmaj)          (Dmin)  (Dm)   (Dmaj7)           (Dmin7)  (Dmaj6)           (Dmin6)  (Ddim)  (Dsus)  (Daug)
                  (D#)   (D#maj) (D#m)   (D#min)  (D#7)  (D#maj7) (D#m7)  (D#min7)  (D#maj6) (D#m6)  (D#min6) (D#dim) (D#sus) (D#aug)
                  (Eb)   (Ebmaj) (Ebm)   (Ebmin)  (Eb7)  (Ebmaj7) (Ebm7)  (Ebmin7)  (Ebmaj6) (Ebm6)  (Ebmin6) (Ebdim) (Ebsus) (Ebaug)
              (E)         (Emaj)          (Emin)  (Em)   (Emaj7)           (Emin7)  (Emaj6)           (Emin6)  (Edim)  (Esus)  (Eaug)
                  (E#)   (E#maj) (E#m)   (E#min)  (E#7)  (E#maj7) (E#m7)  (E#min7)  (E#maj6) (E#m6)  (E#min6) (E#dim) (E#sus) (E#aug)
                  (Fb)   (Fbmaj) (Fbm)   (Fbmin)  (Fb7)  (Fbmaj7) (Fbm7)  (Fbmin7)  (Fbmaj6) (Fbm6)  (Fbmin6) (Fbdim) (Fbsus) (Fbaug)
              (F)         (Fmaj)          (Fmin)  (Fm)   (Fmaj7)           (Fmin7)  (Fmaj6)           (Fmin6)  (Fdim)  (Fsus)  (Faug)
                  (F#)   (F#maj) (F#m)   (F#min)  (F#7)  (F#maj7) (F#m7)  (F#min7)  (F#maj6) (F#m6)  (F#min6) (F#dim) (F#sus) (F#aug)
                  (Gb)   (Gbmaj) (Gbm)   (Gbmin)  (Gb7)  (Gbmaj7) (Gbm7)  (Gbmin7)  (Gbmaj6) (Gbm6)  (Gbmin6) (Gbdim) (Gbsus) (Gbaug)
              (G)         (Gmaj)          (Gmin)  (Gm)   (Gmaj7)           (Gmin7)  (Gmaj6)           (Gmin6)  (Gdim)  (Gsus)  (Gaug)
                  (G#)   (G#maj) (G#m)   (G#min)  (G#7)  (G#maj7) (G#m7)  (G#min7)  (G#maj6) (G#m6)  (G#min6) (G#dim) (G#sus) (G#aug)
              ## these are keywords for the language but few will ever appear in most persons files so they aren't that color important
              /C9"PropertiesModes"
              AEOLIAN AEO  Aeo Aeolian aeo aeolian
              DORIAN  DOR  Dor Dorian  dor dorian
              EXPLICIT EXP Exp Explicit exp explicit
              IONIAN  ION  Ion Ionian  ion ionian
              LOCRIAN LOC  Loc Locrian loc locrian
              LYDIAN  LYD  Lyd Lydian  lyd lydian
              PHRYGIAN PHR Phr Phrygian phr phrygian
              MAJOR MAJ Maj Major maj major
              MINOR MIN Min Minor min minor
              MIXOLYDIAN MIX Mix Mixolydian mix mixolydian
              all bank transpose
              alto  alto-8  alto1 alto1-8 alto2 alto2-8
              tenor tenor-8 treble treble-8
              bass  bass-8  bass3 bass3-8
              clef
              dim sus aug add
              instrument
              middle  mute
              name nm none none-8 not
              octave
              perc perc-8 pitch
              stafflines stem subname
              up down
              voice
              ## there are many more of these decorations ... to be continued adding
              /C10 "Decoration symbols"
              ! !0 !1 !2 !3 !4 !5 !<( !<) !> !>( !>) !D.C. !D.S. !accent !arpeggio !breath !coda !crescendo( !crescendo)
              !dacapo !dacoda !diminuendo( !diminuendo) !downbow !emphasis !f !fermata !ff !fff !ffff !fine
              !invertedfermata !invertedturn !invertedturnx !longphrase !lowermordent !mediumphrase !mf !mordent !mp
              !open !p !plus !pp !ppp !pppp !pralltriller !roll !segno !sfz !shortphrase !slide !snap !tenuto !thumb
              !trill !trill( !trill) !turn !turnx !upbow !uppermordent !wedge
              /C11"Negative numbers" 
              ** -0 -1 -2 -3 -4 -5 -6 -7 -8 -9
              /C12 "Instructions"
              abc-charset abc-creator abc-include abc-version
              decoration
              iso-8859-1 iso-8859-10 iso-8859-2 iso-8859-3 iso-8859-4 iso-8859-5 iso-8859-6 iso-8859-7 iso-8859-8
              iso-8859-9
              linebreak
              us-ascii utf-8
              
              Note: ## mark a comment. They must be removed from wordfile as it is not possible to comment something in a wordfile.

              6,606548
              Grand MasterGrand Master
              6,606548

                Dec 30, 2019#7

                I combined my first version of the wordfile for abc notation with your version 1.1 of the wordfile to second version of the wordfile attached to this post (and removed later).

                Block Comment On Alt = { and Block Comment Off Alt = } are added to first line of the wordfile.
                Please use the recommended wordfile syntax as documented on help page Syntax highlighting in help of UltraEdit.

                Line Comment = X: cannot work because there is already Line Comment Num = 2% and so there is already a line comment definition. I added to first line of wordfile Line Comment Alt = X: which works as you expect it. Please note that line comments, alternate line comments and block comments are highlighted with the settings for Comments. Only the alternate block comments have with Alternate Block Comments a separate color group for foreground color, background color and font style settings.

                This wordfile contains the grouped function strings as in your version 1.1 of the wordfile for listing the strings in Function List view found in abc file with the case-insensitive UltraEdit regular expression searches executed on the file. Please note that the regular expression search strings are not for syntax highlighting. They are just for finding strings to display in Function List view.

                I removed color group 1 named by you ForFractions with /2 /3 /4 /8 3/ 6/ 9/ 12/ because of this color group can never work. / is a word delimiter. So it is not possible to define words which end with /. For UltraEdit a character sequence like 12/ is interpreted as word 12 and as word / because of forward slash is a word delimiter. By exception it is possible to define a string in syntax highlighting wordfile which starts with a word delimiter like /2. But the predefined color group Numbers has a higher priority than all user defined color groups. For that reason 2 in character sequence /2 is always highlighted with the settings for color group Numbers and the remaining / is highlighted with the settings for user defined color group 2 named Delimiters containing the characters / as word.

                [| |] |: :| are invalid word definitions. The four characters are all word delimiters. For that reason UltraEdit will never interpret these combinations of word delimiters as words.

                ' and , are added to color group Delimiters. Please note that these two characters are not word delimiters as not listed on line starting with /Delimiters =. So these two characters are syntax highlighted only as "words" if surrounded by word delimiters. I am not sure if it would be a good idea to add ' and , to the list of word delimiters. It could be done without an effect on words list in wordfile. You have to make this decision by your own.

                I have taken over %%staves in color group Directives from your version 1.1 of the wordfile to my second version. I added also the color groups Keys and Chords. My second version is sorted with macro SortLanguage, checked for duplicates with macro TestForDuplicate and checked for invalid words with macro TestForInvalid from the ultimate syntax highlighting tools collection.

                You tried to syntax highlight the angle brackets < and > which cannot work as long as these two characters are not added to list of word delimiters on line /Delimiters = or these two characters are surrounded in an abc file with word delimiters which is usually not the case. It is up to you if you add < and > to the list of word delimiters. But please note that on doing that !<( !<) !> !>( !>) in color group Decoration symbols would become invalid word definitions and must be modified to <( <) >( >) to become again valid word definitions with < and > being also word delimiters like ! is already. This modification requires also resorting the color group Decoration symbols, best done with macro SortLanguage.

                The color groups 9 and 10, which are named Properties, modes and Deprecated, are supported only by UltraEdit for Windows v17.00 or UEStudio v11.00 or any later version. You are using UltraEdit for Windows v15.20 and so these two color groups are not available for you for syntax highlighting. You could merge the words in the color groups 9 and 10 into one or two color groups of the color groups 1 to 8 to get them syntax highlighted. Please don't forget to resort the color groups on adding/moving words, best done with macro SortLanguage.
                Best regards from an UC/UE/UES for Windows user from Austria

                7
                NewbieNewbie
                7

                  Jan 06, 2020#8

                  Thanks Mofi for the clear explanations. I'll try v2. I think we may have the best we can do with the abc language syntax at this point. I'll get back is there is anything I can spot. BTW: I'll see if I can get a list of those directive command names made, i.e. all the %%xxxxx names into a list.

                    Jan 30, 2020#9

                    Mofi,

                    I've scanned through the ABC Music standard 2.0 doc and have prepared a more complete text list of the %%xxxxx names called 'Pseudocomments' or Format Parameters which are nothing more than special reserved words (we called 'Directives') which can optionally be placed into the .abc files for special graphical behavior to the final music printout.

                    Additionally, I have also a more complete list of the 'Decorations' special reserved words and characters which you had included in revision1 (we called 'Decoration symbols'). Note that two legal standards exist for these where the old method was to use a prefix of the exclaim-mark '!', but which has now been depreciated to use prefix of plus-sign '+', for example: was !coda! and is now +coda+. I hope that you will update changes for us to make a new revision.

                    These are the two space delimited lists below to be added.

                    Code: Select all

                    %%MIDI %%abc %%abc2pscompat %%alignbars %%aligncomposer %%annotationfont %%autoclef %%barnumbers %%barsperstaff
                    %%beginps %%begintext %%botmargin %%breakall %%breakoneoln %%bstemdown %%center %%comball %%combinevoices %%composerfont
                    %%composerspace %%contbarnb %%continueall %%dateformat %%deco %%dynalign %%encoding %%endtext %%exprabove %%exprbelow
                    %%flatbeams %%font %%footer %%footerfont %%format %%freegchord %%gchordbox %%gchordfont %%graceslurs %%gracespace %%header
                    %%headerfont %%historyfont %%hyphencont %%indent %%infofont %%infoline %%infoname %%infospace %%landscape %%leftmargin
                    %%lineskipfac %%maxshrink %%maxstaffsep %%maxsysstaffsep %%measurebox %%measurefirst %%measurefont %%measurenb %%musiconly
                    %%musicspace %%newpage %%notespacingfactor %%oneperpage %%pageheight %%pagewidth %%papersize %%parskipfac %%partsbox %%partsfont
                    %%partsspace %%postscript %%printparts %%printtempo %%propagate-accidentals %%repeatfont %%rightmargin %%scale %%score %%sep
                    %%setbarnb %%setdefl %%setfont-1 %%setfont-2 %%setfont-3 %%setfont-4 %%shifthnote %%shiftunisson %%slurheight %%splittune
                    %%squarebreve %%staffnonote %%staffsep %%staffwidth %%staves %%stemheight %%straightflags %%stretchlast %%stretchstaff
                    %%subtitlefont %%subtitlespace %%sysstaffsep %%tempofont %%text %%textfont %%textoption %%textspace %%timewarn %%titlecaps
                    %%titlefont %%titleformat %%titleleft %%titlespace %%titletrim %%topmargin %%topspace %%tuplets %%vocalabove %%vocalfont
                    %%vocalspace %%voicefont %%vskip %%withxrefs %%wordsfont %%wordsspace %%writefields %%writehistory %%writeout-accidentals

                    Code: Select all

                    !0 !1 !2 !3 !4 !5 !<( !<) !> !>( !>) !D.C. !D.S. !accent !arpeggio !breath !coda !crescendo( !crescendo) !dacapo !dacoda
                    !diminuendo( !diminuendo) !downbow !emphasis !f !fermata !ff !fff !ffff !fine !invertedfermata !invertedturn !invertedturnx
                    !longphrase !lowermordent !mediumphrase !mf !mordent !mp !open !p !plus !pp !ppp !pppp !pralltriller !roll !segno !sfz
                    !shortphrase !slide !snap !tenuto !thumb !trill !trill( !trill) !turn !turnx !upbow !uppermordent !wedge
                    +0 +1 +2 +3 +4 +5 +<( +<) +> +>( +>) +D.C. +D.S. +accent +arpeggio +breath +coda +crescendo( +crescendo) +dacapo +dacoda
                    +diminuendo( +diminuendo) +downbow +emphasis +f +fermata +ff +fff +ffff +fine +invertedfermata +invertedturn +invertedturnx
                    +longphrase +lowermordent +mediumphrase +mf +mordent +mp +open +p +plus +pp +ppp +pppp +pralltriller +roll +segno +sfz
                    +shortphrase +slide +snap +tenuto +thumb +trill +trill( +trill) +turn +turnx +upbow +uppermordent +wedge

                    6,606548
                    Grand MasterGrand Master
                    6,606548

                      Jan 31, 2020#10

                      I made additionally following changes on abc.uew in root of attached ZIP file:
                      1. The third color group is renamed from Directives to Format parameters.
                      2. The format parameters as posted above are added to color group three containing now also the deprecated format parameters which were previously in color group ten with name Deprecated which does not exist anymore.
                      3. The sixth color group is renamed from Decoration symbols to Decorations.
                      4. The decorations as posted above are added to color group six.
                      5. The seventh color group is renamed from Instructions to Instructions, properties and contains now in addition to the instructions also the properties and modes which were previously in color group nine with name Properties, modes which does not  exist anymore.
                      The ZIP file contains two files with name abc.uew.
                      1. abc.uew in root of ZIP file is for UltraEdit for Windows < v17.00 and UEStudio < v11.00 supporting only up to 8 user defined color groups.
                      2. abc.uew in subdirectory UE17_UES11 in ZIP file is for UltraEdit for Windows ≥ v17.00 and UEStudio ≥ v11.00 supporting up to 20 user defined color groups.
                      File abc.uew in subdirectory UE17_UES11 has following differences in comparison to abc.uew in root:
                      1. The sixth color group Decorations contains only the decorations starting with plus character.
                      2. The seventh color group is named Instructions and contains only the instruction keywords.
                      3. There is a ninth color group with name Properties, modes containing the properties and modes keywords.
                      4. There is a tenth color group with name Deprecated decorations containing the deprecated decorations starting with an exclamation mark.
                      5. There is an eleventh color group with name Deprecated formats containing three deprecated formats which were removed from third color group resorted after removing those three deprecated format parameters.
                      abc_uew_v3.zip (8.4 KiB)   0
                      Third version of wordfile for ABC notation in two variants.
                      Best regards from an UC/UE/UES for Windows user from Austria

                      7
                      NewbieNewbie
                      7

                        Feb 21, 2020#11

                        Looks good Mofi! I think we are done.

                        When I started out with this project, I used AbcExplorer 1.6.0 to work on my .abc tune editing.
                        Because I then needed a side-bar editor, I became visually exhausted because UltraEdit v15.0 was not in color.
                        Now that we have "abc_uew_v3" working, I have simply transferred the colors of AbcExplorer 16.0 into the "abc_uew_v3" file.
                        This may help those who either use AbcExplorer a lot or just need to see some established colors for the syntax file.

                        While these colors I've chosen are not the best for all, I think that they at least help those who want to tailor them.
                        I'll paste my "abc_uew_v3" with colors below.  If you can make another option folder for this file to add to your download site, I leave it to your discretion. Thanks for your help. Tom Ritter, Baltimore.

                        PS: I think someone should let AbcExplorer know that UltraEdit is a great companion tool for text music editing work and that we complement them by trying to reproduce their color scheme in UltraEdit.

                        Code: Select all

                        /L20"abc" Noquote Line Comment Num = 2%  Line Comment Alt = X: Block Comment On = [r: Block Comment Off = ] Block Comment On Alt = { Block Comment Off Alt = } File Extensions = abc
                        /Colors = 0,8421376,8421504,16711680,255,
                        /Colors Back = 16777215,16777215,16777215,16777215,16777215,
                        /Colors Auto Back = 1,1,1,1,1,
                        /Font Style = 0,0,0,0,0,
                        /Delimiters = ! " $*+/:=[\]^_{|}~
                        /TGBegin "Title"
                        /TGFindStr = "%T: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Composer"
                        /TGFindStr = "%C: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Origin"
                        /TGFindStr = "%O: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Rythm"
                        /TGFindStr = "%R: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Length"
                        /TGFindStr = "%L: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Meter"
                        /TGFindStr = "%M: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Voice"
                        /TGFindStr = "%V: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Part"
                        /TGFindStr = "%P: ++^([~%^p]+^)"
                        /TGEnd
                        /TGBegin "Key"
                        /TGFindStr = "%K: ++^([~%^p]+^)"
                        /TGEnd
                        /Open Brace Strings = "(" "[" "{"
                        /Close Brace Strings = ")" "]" "}"
                        /Open Fold Strings = "T:"
                        /Close Fold Strings = "T:"
                        /C1"Colon, brackets, pipe" Colors = 16711680 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 1
                        :
                        [
                        ]
                        |
                        /C2"Delimiters" Colors = 16711935 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        "
                        $
                        '
                        *
                        +
                        ,
                        // /
                        =
                        \
                        ^
                        _
                        {
                        }
                        ~
                        /C3"Format parameters" Colors = 32768 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        %%MIDI %%abc %%abc-copyright %%abc-edited-by %%abc2pscompat %%alignbars %%aligncomposer %%annotationfont
                        %%autoclef %%barnumbers %%barsperstaff %%beginps %%begintext %%botmargin %%breakall %%breakoneoln
                        %%bstemdown %%center %%comball %%combinevoices %%composerfont %%composerspace %%contbarnb %%continueall
                        %%dateformat %%deco %%dynalign %%encoding %%endtext %%exprabove %%exprbelow %%flatbeams %%font %%footer
                        %%footerfont %%format %%freegchord %%gchordbox %%gchordfont %%graceslurs %%gracespace %%header
                        %%headerfont %%historyfont %%hyphencont %%indent %%infofont %%infoline %%infoname %%infospace %%landscape
                        %%leftmargin %%lineskipfac %%maxshrink %%maxstaffsep %%maxsysstaffsep %%measurebox %%measurefirst
                        %%measurefont %%measurenb %%musiconly %%musicspace %%newpage %%notespacingfactor %%oneperpage %%pageheight
                        %%pagewidth %%papersize %%parskipfac %%partsbox %%partsfont %%partsspace %%postscript %%printparts
                        %%printtempo %%propagate-accidentals %%repeatfont %%rightmargin %%scale %%score %%sep %%setbarnb %%setdefl
                        %%setfont-1 %%setfont-2 %%setfont-3 %%setfont-4 %%shifthnote %%shiftunisson %%slurheight %%splittune
                        %%squarebreve %%staffnonote %%staffsep %%staffwidth %%staves %%stemheight %%straightflags %%stretchlast
                        %%stretchstaff %%subtitlefont %%subtitlespace %%sysstaffsep %%tempofont %%text %%textfont %%textoption
                        %%textspace %%timewarn %%titlecaps %%titlefont %%titleformat %%titleleft %%titlespace %%titletrim
                        %%topmargin %%topspace %%tuplets %%vocalabove %%vocalfont %%vocalspace %%voicefont %%vskip %%withxrefs
                        %%wordsfont %%wordsspace %%writefields %%writehistory %%writeout-accidentals %abc-2.0 %abc-2.1
                        /C4"Keys" Colors = 33023 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 1
                        :A :A# :A#Dor :A#Loc :A#Lyd :A#Maj :A#Mix :A#Phr :A#dor :A#loc :A#lyd :A#m :A#maj :A#min :A#mix :A#phr
                        :ADor :ALoc :ALyd :AMaj :AMix :APhr :Ab :AbDor :AbLoc :AbLyd :AbMaj :AbMix :AbPhr :Abdor :Abloc :Ablyd
                        :Abm :Abmaj :Abmin :Abmix :Abphr :Ador :Aloc :Alyd :Am :Amaj :Amin :Amix :Aphr :B :B# :B#Dor :B#Loc :B#Lyd
                        :B#Maj :B#Mix :B#Phr :B#dor :B#loc :B#lyd :B#m :B#maj :B#min :B#mix :B#phr :BDor :BLoc :BLyd :BMaj :BMix
                        :BPhr :Bb :BbDor :BbLoc :BbLyd :BbMaj :BbMix :BbPhr :Bbdor :Bbloc :Bblyd :Bbm :Bbmaj :Bbmin :Bbmix :Bbphr
                        :Bdor :Bloc :Blyd :Bm :Bmaj :Bmin :Bmix :Bphr :C :C# :C#Dor :C#Loc :C#Lyd :C#Maj :C#Mix :C#Phr :C#dor
                        :C#loc :C#lyd :C#m :C#maj :C#min :C#mix :C#phr :CDor :CLoc :CLyd :CMaj :CMix :CPhr :Cb :CbDor :CbLoc
                        :CbLyd :CbMaj :CbMix :CbPhr :Cbdor :Cbloc :Cblyd :Cbm :Cbmaj :Cbmin :Cbmix :Cbphr :Cdor :Cloc :Clyd :Cm
                        :Cmaj :Cmin :Cmix :Cphr :D :D# :D#Dor :D#Loc :D#Maj :D#Mix :D#Phr :D#dor :D#loc :D#lyd :D#m :D#maj :D#min
                        :D#mix :D#phr :DDor :DLoc :DMaj :DMix :DPhr :Db :DbDor :DbLoc :DbMaj :DbMix :DbPhr :Dbdor :Dbloc :Dblyd
                        :Dbm :Dbmaj :Dbmin :Dbmix :Dbphr :Ddor :Dloc :Dlyd :Dm :Dmaj :Dmin :Dmix :Dphr :E :E# :E#Dor :E#Loc :E#Lyd
                        :E#Maj :E#Mix :E#Phr :E#dor :E#loc :E#lyd :E#m :E#maj :E#min :E#mix :E#phr :EDor :ELoc :ELyd :EMaj :EMix
                        :EPhr :Eb :EbDor :EbLoc :EbLyd :EbMaj :EbMix :EbPhr :Ebdor :Ebloc :Eblyd :Ebm :Ebmaj :Ebmin :Ebmix :Ebphr
                        :Edor :Eloc :Elyd :Em :Emaj :Emin :Emix :Ephr :F :F# :F#Dor :F#Loc :F#Lyd :F#Maj :F#Mix :F#Phr :F#dor
                        :F#loc :F#lyd :F#m :F#maj :F#min :F#mix :F#phr :FDor :FLoc :FLyd :FMaj :FMix :FPhr :Fb :FbDor :FbLoc
                        :FbLyd :FbMaj :FbMix :FbPhr :Fbdor :Fbloc :Fblyd :Fbm :Fbmaj :Fbmin :Fbmix :Fbphr :Fdor :Floc :Flyd :Fm
                        :Fmaj :Fmin :Fmix :Fphr :G :G# :G#Dor :G#Loc :G#Lyd :G#Maj :G#Mix :G#Phr :G#dor :G#loc :G#lyd :G#m :G#maj
                        :G#min :G#mix :G#phr :GDor :GLoc :GLyd :GMaj :GMix :GPhr :Gb :GbDor :GbLoc :GbLyd :GbMaj :GbMix :GbPhr
                        :Gbdor :Gbloc :Gblyd :Gbm :Gbmaj :Gbmin :Gbmix :Gbphr :Gdor :Gloc :Glyd :Gm :Gmaj :Gmin :Gmix :Gphr :d#Lyd
                        :dLyd :dbLyd
                        /C5"Chords" Colors = 16711935 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        "A "A# "A#7 "A#aug "A#dim "A#m "A#m6 "A#m7 "A#maj "A#maj6 "A#maj7 "A#min "A#min6 "A#min7 "A#sus "Aaug "Ab
                        "Ab7 "Abaug "Abdim "Abm "Abm6 "Abm7 "Abmaj "Abmaj6 "Abmaj7 "Abmin "Abmin6 "Abmin7 "Absus "Adim "Am "Amaj
                        "Amaj6 "Amaj7 "Amin "Amin6 "Amin7 "Asus "B "B# "B#7 "B#aug "B#dim "B#m "B#m6 "B#m7 "B#maj "B#maj6 "B#maj7
                        "B#min "B#min6 "B#min7 "B#sus "Baug "Bb "Bb7 "Bbaug "Bbdim "Bbm "Bbm6 "Bbm7 "Bbmaj "Bbmaj6 "Bbmaj7 "Bbmin
                        "Bbmin6 "Bbmin7 "Bbsus "Bdim "Bm "Bmaj "Bmaj6 "Bmaj7 "Bmin "Bmin6 "Bmin7 "Bsus "C "C# "C#7 "C#aug "C#dim
                        "C#m "C#m6 "C#m7 "C#maj "C#maj6 "C#maj7 "C#min "C#min6 "C#min7 "C#sus "Caug "Cb "Cb7 "Cbaug "Cbdim "Cbm
                        "Cbm6 "Cbm7 "Cbmaj "Cbmaj6 "Cbmaj7 "Cbmin "Cbmin6 "Cbmin7 "Cbsus "Cdim "Cm "Cmaj "Cmaj6 "Cmaj7 "Cmin
                        "Cmin6 "Cmin7 "Csus "D "D# "D#7 "D#aug "D#dim "D#m "D#m6 "D#m7 "D#maj "D#maj6 "D#maj7 "D#min "D#min6
                        "D#min7 "D#sus "Daug "Db "Db7 "Dbaug "Dbdim "Dbm "Dbm6 "Dbm7 "Dbmaj "Dbmaj6 "Dbmaj7 "Dbmin "Dbmin6 "Dbmin7
                        "Dbsus "Ddim "Dm "Dmaj "Dmaj6 "Dmaj7 "Dmin "Dmin6 "Dmin7 "Dsus "E "E# "E#7 "E#aug "E#dim "E#m "E#m6 "E#m7
                        "E#maj "E#maj6 "E#maj7 "E#min "E#min6 "E#min7 "E#sus "Eaug "Eb "Eb7 "Ebaug "Ebdim "Ebm "Ebm6 "Ebm7 "Ebmaj
                        "Ebmaj6 "Ebmaj7 "Ebmin "Ebmin6 "Ebmin7 "Ebsus "Edim "Em "Emaj "Emaj6 "Emaj7 "Emin "Emin6 "Emin7 "Esus "F
                        "F# "F#7 "F#aug "F#dim "F#m "F#m6 "F#m7 "F#maj "F#maj6 "F#maj7 "F#min "F#min6 "F#min7 "F#sus "Faug "Fb
                        "Fb7 "Fbaug "Fbdim "Fbm "Fbm6 "Fbm7 "Fbmaj "Fbmaj6 "Fbmaj7 "Fbmin "Fbmin6 "Fbmin7 "Fbsus "Fdim "Fm "Fmaj
                        "Fmaj6 "Fmaj7 "Fmin "Fmin6 "Fmin7 "Fsus "G "G# "G#7 "G#aug "G#dim "G#m "G#m6 "G#m7 "G#maj "G#maj6 "G#maj7
                        "G#min "G#min6 "G#min7 "G#sus "Gaug "Gb "Gb7 "Gbaug "Gbdim "Gbm "Gbm6 "Gbm7 "Gbmaj "Gbmaj6 "Gbmaj7 "Gbmin
                        "Gbmin6 "Gbmin7 "Gbsus "Gdim "Gm "Gmaj "Gmaj6 "Gmaj7 "Gmin "Gmin6 "Gmin7 "Gsus
                        (A#) (A#7) (A#aug) (A#dim) (A#m) (A#m6) (A#m7) (A#maj) (A#maj6) (A#maj7) (A#min) (A#min6) (A#min7) (A#sus)
                        (A) (Aaug) (Ab) (Ab7) (Abaug) (Abdim) (Abm) (Abm6) (Abm7) (Abmaj) (Abmaj6) (Abmaj7) (Abmin) (Abmin6)
                        (Abmin7) (Absus) (Adim) (Am) (Amaj) (Amaj6) (Amaj7) (Amin) (Amin6) (Amin7) (Asus) (B#) (B#7) (B#aug)
                        (B#dim) (B#m) (B#m6) (B#m7) (B#maj) (B#maj6) (B#maj7) (B#min) (B#min6) (B#min7) (B#sus) (B) (Baug) (Bb)
                        (Bb7) (Bbaug) (Bbdim) (Bbm) (Bbm6) (Bbm7) (Bbmaj) (Bbmaj6) (Bbmaj7) (Bbmin) (Bbmin6) (Bbmin7) (Bbsus)
                        (Bdim) (Bm) (Bmaj) (Bmaj6) (Bmaj7) (Bmin) (Bmin6) (Bmin7) (Bsus) (C#) (C#7) (C#aug) (C#dim) (C#m) (C#m6)
                        (C#m7) (C#maj) (C#maj6) (C#maj7) (C#min) (C#min6) (C#min7) (C#sus) (C) (Caug) (Cb) (Cb7) (Cbaug) (Cbdim)
                        (Cbm) (Cbm6) (Cbm7) (Cbmaj) (Cbmaj6) (Cbmaj7) (Cbmin) (Cbmin6) (Cbmin7) (Cbsus) (Cdim) (Cm) (Cmaj) (Cmaj6)
                        (Cmaj7) (Cmin) (Cmin6) (Cmin7) (Csus) (D#) (D#7) (D#aug) (D#dim) (D#m) (D#m6) (D#m7) (D#maj) (D#maj6)
                        (D#maj7) (D#min) (D#min6) (D#min7) (D#sus) (D) (Daug) (Db) (Db7) (Dbaug) (Dbdim) (Dbm) (Dbm6) (Dbm7)
                        (Dbmaj) (Dbmaj6) (Dbmaj7) (Dbmin) (Dbmin6) (Dbmin7) (Dbsus) (Ddim) (Dm) (Dmaj) (Dmaj6) (Dmaj7) (Dmin)
                        (Dmin6) (Dmin7) (Dsus) (E#) (E#7) (E#aug) (E#dim) (E#m) (E#m6) (E#m7) (E#maj) (E#maj6) (E#maj7) (E#min)
                        (E#min6) (E#min7) (E#sus) (E) (Eaug) (Eb) (Eb7) (Ebaug) (Ebdim) (Ebm) (Ebm6) (Ebm7) (Ebmaj) (Ebmaj6)
                        (Ebmaj7) (Ebmin) (Ebmin6) (Ebmin7) (Ebsus) (Edim) (Em) (Emaj) (Emaj6) (Emaj7) (Emin) (Emin6) (Emin7)
                        (Esus) (F#) (F#7) (F#aug) (F#dim) (F#m) (F#m6) (F#m7) (F#maj) (F#maj6) (F#maj7) (F#min) (F#min6) (F#min7)
                        (F#sus) (F) (Faug) (Fb) (Fb7) (Fbaug) (Fbdim) (Fbm) (Fbm6) (Fbm7) (Fbmaj) (Fbmaj6) (Fbmaj7) (Fbmin)
                        (Fbmin6) (Fbmin7) (Fbsus) (Fdim) (Fm) (Fmaj) (Fmaj6) (Fmaj7) (Fmin) (Fmin6) (Fmin7) (Fsus) (G#) (G#7)
                        (G#aug) (G#dim) (G#m) (G#m6) (G#m7) (G#maj) (G#maj6) (G#maj7) (G#min) (G#min6) (G#min7) (G#sus) (G) (Gaug)
                        (Gb) (Gb7) (Gbaug) (Gbdim) (Gbm) (Gbm6) (Gbm7) (Gbmaj) (Gbmaj6) (Gbmaj7) (Gbmin) (Gbmin6) (Gbmin7) (Gbsus)
                        (Gdim) (Gm) (Gmaj) (Gmaj6) (Gmaj7) (Gmin) (Gmin6) (Gmin7) (Gsus)
                        /C6"Decorations" Colors = 16711680 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        !0 !1 !2 !3 !4 !5 !<( !<) !> !>( !>) !D.C. !D.S. !accent !arpeggio !breath !coda !crescendo( !crescendo)
                        !dacapo !dacoda !diminuendo( !diminuendo) !downbow !emphasis !f !fermata !ff !fff !ffff !fine
                        !invertedfermata !invertedturn !invertedturnx !longphrase !lowermordent !mediumphrase !mf !mordent !mp
                        !open !p !plus !pp !ppp !pppp !pralltriller !roll !segno !sfz !shortphrase !slide !snap !tenuto !thumb
                        !trill !trill( !trill) !turn !turnx !upbow !uppermordent !wedge
                        +0 +1 +2 +3 +4 +5 +<( +<) +> +>( +>) +D.C. +D.S. +accent +arpeggio +breath +coda +crescendo( +crescendo)
                        +dacapo +dacoda +diminuendo( +diminuendo) +downbow +emphasis +f +fermata +ff +fff +ffff +fine
                        +invertedfermata +invertedturn +invertedturnx +longphrase +lowermordent +mediumphrase +mf +mordent +mp
                        +open +p +plus +pp +ppp +pppp +pralltriller +roll +segno +sfz +shortphrase +slide +snap +tenuto +thumb
                        +trill +trill( +trill) +turn +turnx +upbow +uppermordent +wedge
                        /C7"Instructions, properties" Colors = 32768 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        A#Loc A#Phr A#m ADor AEO AEOLIAN ALoc ALyd AMix APhr Ab AbDor AbLyd AbMix Abm Aeo Aeolian Am
                        B#Loc BDor BLoc BLyd BMix BPhr Bb BbDor BbLoc BbLyd BbMix BbPhr Bbm Bm
                        C# C#Dor C#Loc C#Mix C#Phr C#m CDor CLoc CLyd CMix CPhr Cb CbLyd Cm
                        D#Dor D#Loc D#Phr D#m DDor DLoc DLyd DMix DOR DORIAN DPhr Db DbDor DbLyd DbMix Dm Dor Dorian
                        E E#Loc E#Phr EDor ELoc ELyd EMix EPhr EXP EXPLICIT Eb EbDor EbLyd EbMix EbPhr Ebm Em Exp Explicit
                        F# F#Dor F#Loc F#Lyd F#Mix F#Phr F#m FDor FLoc FLyd FMix FPhr FbLyd Fm
                        G#Dor G#Loc G#Mix G#Phr G#m GDor GLoc GLyd GMix GPhr Gb GbLyd GbMix Gm
                        ION IONIAN Ion Ionian
                        LOC LOCRIAN LYD LYDIAN Loc Locrian Lyd Lydian
                        MAJ MAJOR MIN MINOR MIX MIXOLYDIAN Maj Major Min Minor Mix Mixolydian
                        PHR PHRYGIAN Phr Phrygian
                        abc-charset abc-creator abc-include abc-version added aeo aeolian all alto alto-8 alto1 alto1-8 alto2
                        alto2-8 aug
                        bank bass bass-8 bass3 bass3-8
                        clef
                        decoration dim dor dorian down
                        exp explicit
                        instrument ion ionian iso-8859-1 iso-8859-10 iso-8859-2 iso-8859-3 iso-8859-4 iso-8859-5 iso-8859-6
                        iso-8859-7 iso-8859-8 iso-8859-9
                        linebreak loc locrian lyd lydian
                        maj major middle min minor mix mixolydian mute
                        name nm none none-8 not
                        octave
                        perc perc-8 phr phrygian pitch
                        snm stafflines stem subname sus
                        tenor tenor-8 transpose treble treble-8
                        up us-ascii utf-8
                        voice
                        /C8"Negative numbers" Colors = 255 Colors Back = 16777215 Colors Auto Back = 1 Font Style = 0
                        ** -0 -1 -2 -3 -4 -5 -6 -7 -8 -9