aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunasSudo <runassudo@yingtongli.me>2020-10-27 20:13:16 +1100
committerRunasSudo <runassudo@yingtongli.me>2020-10-27 20:22:37 +1100
commita2ad3bc73ad4f27943546ff996f9a7bd1caf7a2b (patch)
tree52bf621123c6e1428373d3e7d2eebf5eb20cb867
parentfd511eee5b5935a75a6299621ea59e6503655a39 (diff)
Add chord forms (stacked alterations, etc.)HEADmaster
-rw-r--r--README.md14
-rw-r--r--Screenshot.pngbin16971 -> 40821 bytes
-rwxr-xr-xbuild.sh8
-rw-r--r--chords_serifjazz.m4.xml185
-rw-r--r--chords_serifjazz_0.925mm_R8.xml183
-rw-r--r--chords_serifjazz_1.375mm_R6.xml183
-rw-r--r--chords_serifjazz_1.764mm_Default.xml183
7 files changed, 739 insertions, 17 deletions
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<sup>(maj7)</sup>, 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
--- a/Screenshot.png
+++ b/Screenshot.png
Binary files 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 @@
<sym code="0x1d12b" name="bb"/>
<sym name="/"/>
+ <sym name="+"/>
</font>
<!-- Serif font adjusted superscript characters -->
- <font family="FONT_SERIF">
+ <font family="FONT_MUSIC">
<mag>1.4</mag>
<sym code="0x00b0" name="degree"/>
@@ -74,11 +75,14 @@
<sym name=")"/>
<sym name="M"/>
<sym name="Ma"/>
+ <sym name="MA"/>
<sym name="Maj"/>
<sym name="maj"/>
<sym name="m"/>
<sym name="min"/>
+ <sym name="MI"/>
<sym name="Mi"/>
+ <sym name="mi"/>
<sym name="Min"/>
<sym name="aug"/>
<sym name="Aug"/>
@@ -91,6 +95,9 @@
<sym name="pedal"/>
<sym name="Pedal"/>
+ <sym name="no"/>
+ <sym name="omit"/>
+
<sym value="0" name="s0"/>
<sym value="1" name="s1"/>
<sym value="2" name="s2"/>
@@ -105,6 +112,13 @@
<sym value="(" name="s("/>
<sym value=")" name="s)"/>
+ <sym code="0x239b" name="st("/>
+ <sym code="0x239c" name="sm("/>
+ <sym code="0x239d" name="sb("/>
+ <sym code="0x239e" name="st)"/>
+ <sym code="0x239f" name="sm)"/>
+ <sym code="0x23a0" name="sb)"/>
+
</font>
<font family="FONT_MUSIC">
@@ -122,9 +136,6 @@
<sym value="," name="s,"/>
<sym value="/" name="s/"/>
- <sym name="no"/>
- <sym name="omit"/>
-
</font>
<!--
@@ -239,6 +250,14 @@
<name>#</name>
<render>m:0:-&sup; s# m:0:&sup;</render>
</token>
+ <token class="modifier">
+ <name>no</name>
+ <render>m:0:-&sup; no m:0:&sup;</render>
+ </token>
+ <token class="modifier">
+ <name>omit</name>
+ <render>m:0:-&sup; omit m:0:&sup;</render>
+ </token>
<!-- Extension numbers -->
<token class="extension">
@@ -298,4 +317,162 @@
<renderRoot>:n :a</renderRoot>
<renderBase>m:-0.2:1 / m:0.2:1 :n :a m:0:-2</renderBase>
+<!--
+ Part III: chord list
+ declare a list of chords to be explicitly recognized
+ any chord recognized as matching something on this list
+ will be rendered according to the definition in this list,
+ as opposed to being rendered directly from the chord symbol as typed
+ thus, it provides the ability to define overrides for rendering specific chord symbols
+
+ id internal chord number
+ may be omitted if you don't need compatibility with older chord description files
+ name ordinary text name of chord
+ multiple names can be used to allow several different representations of the same chord
+ but there is no need to list the most common variations like "CMaj7" versus "Cma7"
+ the need for multiple names comes in if you want
+ significantly different ways of entering the same chord
+ so listing "mi7b5" and "07" as aliases for the same (half-diminished) chord
+ would allow them to be recognized as equivalent
+ render this is a script which contains render commands
+ commands:
+ xxx draw symbol name xxx
+ m:x:y add x:y to current position (1/5 spatium units)
+ :push
+ :pop
+ :n root or base note
+ :a accidental
+ if omitted, chord will be rendered directly from the first name listed above
+ so you can get all major seventh chords to render as "ma7" by creating a chord definition
+ with no id or render tag, and just the single name "ma7"
+-->
+
+m4_ifdef(`CHORD_FORMS', `
+
+ <chord>
+ <name>add9</name>
+ <render>m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>madd9</name>
+ <render>SYM_MI m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mmaj7</name>
+ <render>SYM_MI m:0:-&sup; s( SYM_MA s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9maj7</name>
+ <render>SYM_MI m:0:-&sup; s9 s( SYM_MA s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+maj7</name>
+ <render>+ m:0:-&sup; s( SYM_MA s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+9maj7</name>
+ <render>+ m:0:-&sup; s9 s( SYM_MA s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mb5</name>
+ <render>SYM_MI m:0:-&sup; s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b5</name>
+ <render>m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b5</name>
+ <render>SYM_MI m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9b5</name>
+ <render>m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9b5</name>
+ <render>SYM_MI m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9</name>
+ <render>m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9</name>
+ <render>SYM_MI m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#9</name>
+ <render>m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+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'')
+
+ <chord>
+ <name>7#9b5</name>
+ <render>m:0:-&sup; s7 LTB2 SUP2(`s# s9') sb s5 RTB2 m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9b5</name>
+ <render>m:0:-&sup; s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9b5</name>
+ <render>SYM_MI m:0:-&sup; s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7b9</name>
+ <render>+ m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#9</name>
+ <render>+ m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9#11</name>
+ <render>m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9#11</name>
+ <render>SYM_MI m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#11b9</name>
+ <render>m:0:-&sup; s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7#11b9</name>
+ <render>SYM_MI m:0:-&sup; s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#11b9</name>
+ <render>+ m:0:-&sup; s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:&sup;</render>
+ </chord>
+
+')
+
</museScore>
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 @@
<sym code="0x1d12b" name="bb"/>
<sym name="/"/>
+ <sym name="+"/>
</font>
@@ -74,11 +75,14 @@
<sym name=")"/>
<sym name="M"/>
<sym name="Ma"/>
+ <sym name="MA"/>
<sym name="Maj"/>
<sym name="maj"/>
<sym name="m"/>
<sym name="min"/>
+ <sym name="MI"/>
<sym name="Mi"/>
+ <sym name="mi"/>
<sym name="Min"/>
<sym name="aug"/>
<sym name="Aug"/>
@@ -91,6 +95,9 @@
<sym name="pedal"/>
<sym name="Pedal"/>
+ <sym name="no"/>
+ <sym name="omit"/>
+
<sym value="0" name="s0"/>
<sym value="1" name="s1"/>
<sym value="2" name="s2"/>
@@ -105,6 +112,13 @@
<sym value="(" name="s("/>
<sym value=")" name="s)"/>
+ <sym code="0x239b" name="st("/>
+ <sym code="0x239c" name="sm("/>
+ <sym code="0x239d" name="sb("/>
+ <sym code="0x239e" name="st)"/>
+ <sym code="0x239f" name="sm)"/>
+ <sym code="0x23a0" name="sb)"/>
+
</font>
<font family="default">
@@ -122,9 +136,6 @@
<sym value="," name="s,"/>
<sym value="/" name="s/"/>
- <sym name="no"/>
- <sym name="omit"/>
-
</font>
<!--
@@ -239,6 +250,14 @@
<name>#</name>
<render>m:0:-&sup; s# m:0:&sup;</render>
</token>
+ <token class="modifier">
+ <name>no</name>
+ <render>m:0:-&sup; no m:0:&sup;</render>
+ </token>
+ <token class="modifier">
+ <name>omit</name>
+ <render>m:0:-&sup; omit m:0:&sup;</render>
+ </token>
<!-- Extension numbers -->
<token class="extension">
@@ -298,4 +317,162 @@
<renderRoot>:n :a</renderRoot>
<renderBase>m:-0.2:1 / m:0.2:1 :n :a m:0:-2</renderBase>
+<!--
+ Part III: chord list
+ declare a list of chords to be explicitly recognized
+ any chord recognized as matching something on this list
+ will be rendered according to the definition in this list,
+ as opposed to being rendered directly from the chord symbol as typed
+ thus, it provides the ability to define overrides for rendering specific chord symbols
+
+ id internal chord number
+ may be omitted if you don't need compatibility with older chord description files
+ name ordinary text name of chord
+ multiple names can be used to allow several different representations of the same chord
+ but there is no need to list the most common variations like "CMaj7" versus "Cma7"
+ the need for multiple names comes in if you want
+ significantly different ways of entering the same chord
+ so listing "mi7b5" and "07" as aliases for the same (half-diminished) chord
+ would allow them to be recognized as equivalent
+ render this is a script which contains render commands
+ commands:
+ xxx draw symbol name xxx
+ m:x:y add x:y to current position (1/5 spatium units)
+ :push
+ :pop
+ :n root or base note
+ :a accidental
+ if omitted, chord will be rendered directly from the first name listed above
+ so you can get all major seventh chords to render as "ma7" by creating a chord definition
+ with no id or render tag, and just the single name "ma7"
+-->
+
+
+
+ <chord>
+ <name>add9</name>
+ <render>m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>madd9</name>
+ <render>m m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mmaj7</name>
+ <render>m m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9maj7</name>
+ <render>m m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+maj7</name>
+ <render>+ m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+9maj7</name>
+ <render>+ m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mb5</name>
+ <render>m m:0:-&sup; s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b5</name>
+ <render>m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b5</name>
+ <render>m m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9b5</name>
+ <render>m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9b5</name>
+ <render>m m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9</name>
+ <render>m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9</name>
+ <render>m m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#9</name>
+ <render>m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+
+
+
+
+ <chord>
+ <name>7#9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9b5</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7b9</name>
+ <render>+ m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#9</name>
+ <render>+ m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9#11</name>
+ <render>m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9#11</name>
+ <render>m m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#11b9</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7#11b9</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#11b9</name>
+ <render>+ m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+
+
</museScore>
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 @@
<sym code="0x1d12b" name="bb"/>
<sym name="/"/>
+ <sym name="+"/>
</font>
@@ -74,11 +75,14 @@
<sym name=")"/>
<sym name="M"/>
<sym name="Ma"/>
+ <sym name="MA"/>
<sym name="Maj"/>
<sym name="maj"/>
<sym name="m"/>
<sym name="min"/>
+ <sym name="MI"/>
<sym name="Mi"/>
+ <sym name="mi"/>
<sym name="Min"/>
<sym name="aug"/>
<sym name="Aug"/>
@@ -91,6 +95,9 @@
<sym name="pedal"/>
<sym name="Pedal"/>
+ <sym name="no"/>
+ <sym name="omit"/>
+
<sym value="0" name="s0"/>
<sym value="1" name="s1"/>
<sym value="2" name="s2"/>
@@ -105,6 +112,13 @@
<sym value="(" name="s("/>
<sym value=")" name="s)"/>
+ <sym code="0x239b" name="st("/>
+ <sym code="0x239c" name="sm("/>
+ <sym code="0x239d" name="sb("/>
+ <sym code="0x239e" name="st)"/>
+ <sym code="0x239f" name="sm)"/>
+ <sym code="0x23a0" name="sb)"/>
+
</font>
<font family="default">
@@ -122,9 +136,6 @@
<sym value="," name="s,"/>
<sym value="/" name="s/"/>
- <sym name="no"/>
- <sym name="omit"/>
-
</font>
<!--
@@ -239,6 +250,14 @@
<name>#</name>
<render>m:0:-&sup; s# m:0:&sup;</render>
</token>
+ <token class="modifier">
+ <name>no</name>
+ <render>m:0:-&sup; no m:0:&sup;</render>
+ </token>
+ <token class="modifier">
+ <name>omit</name>
+ <render>m:0:-&sup; omit m:0:&sup;</render>
+ </token>
<!-- Extension numbers -->
<token class="extension">
@@ -298,4 +317,162 @@
<renderRoot>:n :a</renderRoot>
<renderBase>m:-0.2:1 / m:0.2:1 :n :a m:0:-2</renderBase>
+<!--
+ Part III: chord list
+ declare a list of chords to be explicitly recognized
+ any chord recognized as matching something on this list
+ will be rendered according to the definition in this list,
+ as opposed to being rendered directly from the chord symbol as typed
+ thus, it provides the ability to define overrides for rendering specific chord symbols
+
+ id internal chord number
+ may be omitted if you don't need compatibility with older chord description files
+ name ordinary text name of chord
+ multiple names can be used to allow several different representations of the same chord
+ but there is no need to list the most common variations like "CMaj7" versus "Cma7"
+ the need for multiple names comes in if you want
+ significantly different ways of entering the same chord
+ so listing "mi7b5" and "07" as aliases for the same (half-diminished) chord
+ would allow them to be recognized as equivalent
+ render this is a script which contains render commands
+ commands:
+ xxx draw symbol name xxx
+ m:x:y add x:y to current position (1/5 spatium units)
+ :push
+ :pop
+ :n root or base note
+ :a accidental
+ if omitted, chord will be rendered directly from the first name listed above
+ so you can get all major seventh chords to render as "ma7" by creating a chord definition
+ with no id or render tag, and just the single name "ma7"
+-->
+
+
+
+ <chord>
+ <name>add9</name>
+ <render>m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>madd9</name>
+ <render>m m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mmaj7</name>
+ <render>m m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9maj7</name>
+ <render>m m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+maj7</name>
+ <render>+ m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+9maj7</name>
+ <render>+ m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mb5</name>
+ <render>m m:0:-&sup; s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b5</name>
+ <render>m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b5</name>
+ <render>m m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9b5</name>
+ <render>m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9b5</name>
+ <render>m m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9</name>
+ <render>m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9</name>
+ <render>m m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#9</name>
+ <render>m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+
+
+
+
+ <chord>
+ <name>7#9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9b5</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7b9</name>
+ <render>+ m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#9</name>
+ <render>+ m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9#11</name>
+ <render>m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9#11</name>
+ <render>m m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#11b9</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7#11b9</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#11b9</name>
+ <render>+ m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+
+
</museScore>
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 @@
<sym code="0x1d12b" name="bb"/>
<sym name="/"/>
+ <sym name="+"/>
</font>
@@ -74,11 +75,14 @@
<sym name=")"/>
<sym name="M"/>
<sym name="Ma"/>
+ <sym name="MA"/>
<sym name="Maj"/>
<sym name="maj"/>
<sym name="m"/>
<sym name="min"/>
+ <sym name="MI"/>
<sym name="Mi"/>
+ <sym name="mi"/>
<sym name="Min"/>
<sym name="aug"/>
<sym name="Aug"/>
@@ -91,6 +95,9 @@
<sym name="pedal"/>
<sym name="Pedal"/>
+ <sym name="no"/>
+ <sym name="omit"/>
+
<sym value="0" name="s0"/>
<sym value="1" name="s1"/>
<sym value="2" name="s2"/>
@@ -105,6 +112,13 @@
<sym value="(" name="s("/>
<sym value=")" name="s)"/>
+ <sym code="0x239b" name="st("/>
+ <sym code="0x239c" name="sm("/>
+ <sym code="0x239d" name="sb("/>
+ <sym code="0x239e" name="st)"/>
+ <sym code="0x239f" name="sm)"/>
+ <sym code="0x23a0" name="sb)"/>
+
</font>
<font family="default">
@@ -122,9 +136,6 @@
<sym value="," name="s,"/>
<sym value="/" name="s/"/>
- <sym name="no"/>
- <sym name="omit"/>
-
</font>
<!--
@@ -239,6 +250,14 @@
<name>#</name>
<render>m:0:-&sup; s# m:0:&sup;</render>
</token>
+ <token class="modifier">
+ <name>no</name>
+ <render>m:0:-&sup; no m:0:&sup;</render>
+ </token>
+ <token class="modifier">
+ <name>omit</name>
+ <render>m:0:-&sup; omit m:0:&sup;</render>
+ </token>
<!-- Extension numbers -->
<token class="extension">
@@ -298,4 +317,162 @@
<renderRoot>:n :a</renderRoot>
<renderBase>m:-0.2:1 / m:0.2:1 :n :a m:0:-2</renderBase>
+<!--
+ Part III: chord list
+ declare a list of chords to be explicitly recognized
+ any chord recognized as matching something on this list
+ will be rendered according to the definition in this list,
+ as opposed to being rendered directly from the chord symbol as typed
+ thus, it provides the ability to define overrides for rendering specific chord symbols
+
+ id internal chord number
+ may be omitted if you don't need compatibility with older chord description files
+ name ordinary text name of chord
+ multiple names can be used to allow several different representations of the same chord
+ but there is no need to list the most common variations like "CMaj7" versus "Cma7"
+ the need for multiple names comes in if you want
+ significantly different ways of entering the same chord
+ so listing "mi7b5" and "07" as aliases for the same (half-diminished) chord
+ would allow them to be recognized as equivalent
+ render this is a script which contains render commands
+ commands:
+ xxx draw symbol name xxx
+ m:x:y add x:y to current position (1/5 spatium units)
+ :push
+ :pop
+ :n root or base note
+ :a accidental
+ if omitted, chord will be rendered directly from the first name listed above
+ so you can get all major seventh chords to render as "ma7" by creating a chord definition
+ with no id or render tag, and just the single name "ma7"
+-->
+
+
+
+ <chord>
+ <name>add9</name>
+ <render>m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>madd9</name>
+ <render>m m:0:-&sup; s( sadd s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mmaj7</name>
+ <render>m m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9maj7</name>
+ <render>m m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+maj7</name>
+ <render>+ m:0:-&sup; s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+9maj7</name>
+ <render>+ m:0:-&sup; s9 s( maj s7 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>mb5</name>
+ <render>m m:0:-&sup; s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b5</name>
+ <render>m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b5</name>
+ <render>m m:0:-&sup; s7 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9b5</name>
+ <render>m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9b5</name>
+ <render>m m:0:-&sup; s9 s( sb s5 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9</name>
+ <render>m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9</name>
+ <render>m m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#9</name>
+ <render>m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+
+
+
+
+ <chord>
+ <name>7#9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7b9b5</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7b9b5</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7b9</name>
+ <render>+ m:0:-&sup; s7 s( sb s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#9</name>
+ <render>+ m:0:-&sup; s7 s( s# s9 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>9#11</name>
+ <render>m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m9#11</name>
+ <render>m m:0:-&sup; s9 s( s# s1 s1 s) m:0:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>7#11b9</name>
+ <render>m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>m7#11b9</name>
+ <render>m m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+ <chord>
+ <name>+7#11b9</name>
+ <render>+ m:0:-&sup; 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:&sup;</render>
+ </chord>
+
+
+
</museScore>
Contact (issues, pull requests, etc.) at git@yingtongli.me. Generated by cgit.