Quote:

... they only show a display that contains many unknown characters.



That's right from the chordsub.txt file :

    ;***** NOTES *****
    ;for the subs, Cmaj is the same as CMaj7, CMin is same as CMin7
    ; for the source chords (on the left), the following extensions are valid
    ; '' (for Maj), 'Maj7' , 'm' 'min7' 'm7b5' 'dim' 'sus' 'sus7' 'x' for anything
    ; on the right hand side (ie the substitution), any extension is valid

    ; SUMMARY OF SYNTAX
    ; CONTROLCHARACTERS '*!%^~' +SOURCE PROGRESSION<NEXTCHORD=SUB PROGRESSION [excluded notes](included notes) "Quote for the memo"; for the source progression , the extension is simplified to Maj,Min,m7b5,dim,sus7 or 7 (unless begins with ! see below)

    ; for the substitution chords, the exact extension is used.
    ; if begins with this character, then the following is implied
    ;* works in 12 keys eg *C...<=CMaj7... would sub from G to GMaj7 etc.
    ;! only works with an exact chord extension, not the whole family eg C6.A7b9.<=C6.C#dim.
    ;% more weight, default weight is 1, add weight by putting these in eg %%C...<=CMaj7...
    ;^ Pop Default is jazz type, use this for a pop
    ;~ jazzdown Default is to make more complex (JazzUp)
    ;. {add a beat}
    ;< {next chord must be}
    ;= {substitution progression starting}
    ;[ ] {excluded note list},
    ;() {included notes list - melody MUST contain these, use this RARELY}
    ;" Quote for the memo
    ; ; {comment follows}

    ;For the auto substitutions, it first tries to choose ones that have some
    ; some extra weight assigned to them, ie the ones that begin with %
    ;so make sure to set all of the 'good' substitutions beginning with a % and
    ;the worst ones with a weight of zero (ie no %)
    ; they can be done like follows
    ; no % trivial substitution, don't use much
    ; % good
    ; % better
    ; %%% best substitution


Martin