diff --git a/README.md b/README.md index 8366a8b..61ba019 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # musescore-serifjazz-chords -*musescore-serifjazz-chords* provides a [Musescore](https://musescore.org/) [chord symbol style file](https://musescore.org/en/handbook/chord-symbols#appearance) with Jazz-style superscripts and font distinctions, while using standard (sans-)serif fonts congruent with standard engraving formatting. +*musescore-serifjazz-chords* provides a [Musescore](https://musescore.org/) [chord symbol style file](https://musescore.org/en/handbook/chord-symbols#appearance) with Jazz-style superscripts and font distinctions, and stacked chord alterations, while using standard (sans-)serif fonts congruent with standard engraving formatting. ![Screenshot](https://yingtongli.me/git/musescore-serifjazz-chords/plain/Screenshot.png) @@ -23,3 +23,15 @@ The layout parameters in these XML files are designed for, and expect, the *Free XML files corresponding to specific staff sizes should not be directly edited. They are automatically generated from *chords_serifjazz.m4.xml*. This is an [m4](https://en.wikipedia.org/wiki/M4_%28computer_language%29) file, which automatically substitutes appropriate layout parameters for each staff size. Output XML files can be regenerated using the *build.sh* script. Additional staff sizes can be introduced by editing this script. + +The m4 files accept the following parameters, configured using the `-DKEY=VALUE` command line switch: + +* *FONT_MUSIC*: The name of the font used for musical symbols: sharps, flats and (half-)diminished symbols. +* *FONT_SERIF*: The name of the font used for chord letters. +* *FONT_SANS*: The name of the font used for extensions and alterations. +* *AMT_SUP*: The amount (in 1/5 MuseScore spatium units) to raise text to be superscripted. This needs to be set for each individual staff size. +* *AMT_UNSUP*: The amount (in 1/5 MuseScore spatium units) to correct for characters already superscripted in the font (e.g. the degree symbol for diminished chords). +* *SUS_SUPER*: Set this key if *sus* is to be superscripted. +* *CHORD_FORMS*: Set this key if forms for specific chords are to be generated (e.g. automatically convert Cmmaj7 to Cm(maj7), and stack chord alterations). +* *SYM_MI*: The symbol to be used for minor chord forms (has effect only if *CHORD_FORMS* is enabled), e.g. *m* or *MI* or *mi*. +* *SYM_MA*: The symbol to be used for major chord forms (has effect only if *CHORD_FORMS* is enabled), e.g. *maj* or *MA*. diff --git a/Screenshot.png b/Screenshot.png index 8a473a1..24928f5 100644 Binary files a/Screenshot.png and b/Screenshot.png differ diff --git a/build.sh b/build.sh index 529d600..2d49810 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,6 @@ #!/bin/bash -m4 -P -DAMT_SUP=3.5 -DAMT_UNSUP=2.5 -DFONT_MUSIC=default -DFONT_SERIF=default -DFONT_SANS=FreeSans chords_serifjazz.m4.xml > chords_serifjazz_1.764mm_Default.xml -m4 -P -DAMT_SUP=4.2 -DAMT_UNSUP=3.5 -DFONT_MUSIC=default -DFONT_SERIF=default -DFONT_SANS=FreeSans chords_serifjazz.m4.xml > chords_serifjazz_1.375mm_R6.xml -m4 -P -DAMT_SUP=6.0 -DAMT_UNSUP=5.1 -DFONT_MUSIC=default -DFONT_SERIF=default -DFONT_SANS=FreeSans chords_serifjazz.m4.xml > chords_serifjazz_0.925mm_R8.xml +ARGS="-DFONT_MUSIC=default -DFONT_SERIF=default -DFONT_SANS=FreeSans -DSUS_SUPER -DCHORD_FORMS -DSYM_MI=m -DSYM_MA=maj" + +m4 -P -DAMT_SUP=3.5 -DAMT_UNSUP=2.5 $ARGS chords_serifjazz.m4.xml > chords_serifjazz_1.764mm_Default.xml +m4 -P -DAMT_SUP=4.2 -DAMT_UNSUP=3.5 $ARGS chords_serifjazz.m4.xml > chords_serifjazz_1.375mm_R6.xml +m4 -P -DAMT_SUP=6.0 -DAMT_UNSUP=5.1 $ARGS chords_serifjazz.m4.xml > chords_serifjazz_0.925mm_R8.xml diff --git a/chords_serifjazz.m4.xml b/chords_serifjazz.m4.xml index 961c9ad..2711e40 100644 --- a/chords_serifjazz.m4.xml +++ b/chords_serifjazz.m4.xml @@ -51,11 +51,12 @@ + - + 1.4 @@ -74,11 +75,14 @@ + + + @@ -91,6 +95,9 @@ + + + @@ -105,6 +112,13 @@ + + + + + + + @@ -122,9 +136,6 @@ - - - @@ -298,4 +317,162 @@ :n :a m:-0.2:1 / m:0.2:1 :n :a m:0:-2 + + +m4_ifdef(`CHORD_FORMS', ` + + + add9 + m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + madd9 + SYM_MI m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + mmaj7 + SYM_MI m:0:-⊃ s( SYM_MA s7 s) m:0:⊃ + + + + m9maj7 + SYM_MI m:0:-⊃ s9 s( SYM_MA s7 s) m:0:⊃ + + + + +maj7 + + m:0:-⊃ s( SYM_MA s7 s) m:0:⊃ + + + + +9maj7 + + m:0:-⊃ s9 s( SYM_MA s7 s) m:0:⊃ + + + + mb5 + SYM_MI m:0:-⊃ s( sb s5 s) m:0:⊃ + + + + 7b5 + m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + m7b5 + SYM_MI m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + 9b5 + m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + m9b5 + SYM_MI m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + 7b9 + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + m7b9 + SYM_MI m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + 7#9 + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + +m4_define(`LTB2', ``m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb('') +m4_define(`RTB2', ``:push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5'') +m4_define(`SUP2', ``:push m:0:-11 $1 :pop'') + + + 7#9b5 + m:0:-⊃ s7 LTB2 SUP2(`s# s9') sb s5 RTB2 m:0:⊃ + + + + 7b9b5 + m:0:-⊃ s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:⊃ + + + + m7b9b5 + SYM_MI m:0:-⊃ s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:⊃ + + + + +7b9 + + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + +7#9 + + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + 9#11 + m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + m9#11 + SYM_MI m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + 7#11b9 + m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃ + + + + m7#11b9 + SYM_MI m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃ + + + + +7#11b9 + + m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃ + + +') + diff --git a/chords_serifjazz_0.925mm_R8.xml b/chords_serifjazz_0.925mm_R8.xml index 0cb0198..9a8267c 100644 --- a/chords_serifjazz_0.925mm_R8.xml +++ b/chords_serifjazz_0.925mm_R8.xml @@ -51,6 +51,7 @@ + @@ -74,11 +75,14 @@ + + + @@ -91,6 +95,9 @@ + + + @@ -105,6 +112,13 @@ + + + + + + + @@ -122,9 +136,6 @@ - - - @@ -298,4 +317,162 @@ :n :a m:-0.2:1 / m:0.2:1 :n :a m:0:-2 + + + + + + add9 + m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + madd9 + m m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + mmaj7 + m m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + m9maj7 + m m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + +maj7 + + m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + +9maj7 + + m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + mb5 + m m:0:-⊃ s( sb s5 s) m:0:⊃ + + + + 7b5 + m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + m7b5 + m m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + 9b5 + m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + m9b5 + m m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + 7b9 + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + m7b9 + m m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + 7#9 + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + + + + + 7#9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + 7b9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7b9b5 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7b9 + + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + +7#9 + + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + 9#11 + m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + m9#11 + m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + 7#11b9 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7#11b9 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7#11b9 + + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + diff --git a/chords_serifjazz_1.375mm_R6.xml b/chords_serifjazz_1.375mm_R6.xml index a90d478..c00df92 100644 --- a/chords_serifjazz_1.375mm_R6.xml +++ b/chords_serifjazz_1.375mm_R6.xml @@ -51,6 +51,7 @@ + @@ -74,11 +75,14 @@ + + + @@ -91,6 +95,9 @@ + + + @@ -105,6 +112,13 @@ + + + + + + + @@ -122,9 +136,6 @@ - - - @@ -298,4 +317,162 @@ :n :a m:-0.2:1 / m:0.2:1 :n :a m:0:-2 + + + + + + add9 + m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + madd9 + m m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + mmaj7 + m m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + m9maj7 + m m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + +maj7 + + m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + +9maj7 + + m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + mb5 + m m:0:-⊃ s( sb s5 s) m:0:⊃ + + + + 7b5 + m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + m7b5 + m m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + 9b5 + m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + m9b5 + m m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + 7b9 + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + m7b9 + m m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + 7#9 + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + + + + + 7#9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + 7b9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7b9b5 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7b9 + + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + +7#9 + + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + 9#11 + m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + m9#11 + m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + 7#11b9 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7#11b9 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7#11b9 + + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + diff --git a/chords_serifjazz_1.764mm_Default.xml b/chords_serifjazz_1.764mm_Default.xml index 1f564e8..53e6934 100644 --- a/chords_serifjazz_1.764mm_Default.xml +++ b/chords_serifjazz_1.764mm_Default.xml @@ -51,6 +51,7 @@ + @@ -74,11 +75,14 @@ + + + @@ -91,6 +95,9 @@ + + + @@ -105,6 +112,13 @@ + + + + + + + @@ -122,9 +136,6 @@ - - - @@ -298,4 +317,162 @@ :n :a m:-0.2:1 / m:0.2:1 :n :a m:0:-2 + + + + + + add9 + m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + madd9 + m m:0:-⊃ s( sadd s9 s) m:0:⊃ + + + + mmaj7 + m m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + m9maj7 + m m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + +maj7 + + m:0:-⊃ s( maj s7 s) m:0:⊃ + + + + +9maj7 + + m:0:-⊃ s9 s( maj s7 s) m:0:⊃ + + + + mb5 + m m:0:-⊃ s( sb s5 s) m:0:⊃ + + + + 7b5 + m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + m7b5 + m m:0:-⊃ s7 s( sb s5 s) m:0:⊃ + + + + 9b5 + m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + m9b5 + m m:0:-⊃ s9 s( sb s5 s) m:0:⊃ + + + + 7b9 + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + m7b9 + m m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + 7#9 + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + + + + + 7#9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + 7b9b5 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7b9b5 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 sb s9 :pop sb s5 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7b9 + + m:0:-⊃ s7 s( sb s9 s) m:0:⊃ + + + + +7#9 + + m:0:-⊃ s7 s( s# s9 s) m:0:⊃ + + + + 9#11 + m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + m9#11 + m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃ + + + + 7#11b9 + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + m7#11b9 + m m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + + +7#11b9 + + m:0:-⊃ s7 m:1:5.5 :push m:0:-11 st( :pop :push m:0:-5 sm( :pop sb( :push m:0:-11 s# s1 s1 :pop m:2:0 sb s9 m:2:0 :push m:0:-11 st) :pop :push m:0:-5 sm) :pop sb) m:0:-5.5 m:0:⊃ + + + +