diff options
-rw-r--r-- | README.md | 14 | ||||
-rw-r--r-- | Screenshot.png | bin | 16971 -> 40821 bytes | |||
-rwxr-xr-x | build.sh | 8 | ||||
-rw-r--r-- | chords_serifjazz.m4.xml | 185 | ||||
-rw-r--r-- | chords_serifjazz_0.925mm_R8.xml | 183 | ||||
-rw-r--r-- | chords_serifjazz_1.375mm_R6.xml | 183 | ||||
-rw-r--r-- | chords_serifjazz_1.764mm_Default.xml | 183 |
7 files changed, 739 insertions, 17 deletions
@@ -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.  @@ -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 Binary files differindex 8a473a1..24928f5 100644 --- a/Screenshot.png +++ b/Screenshot.png @@ -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:-⊃ s# m:0:⊃</render> </token> + <token class="modifier"> + <name>no</name> + <render>m:0:-⊃ no m:0:⊃</render> + </token> + <token class="modifier"> + <name>omit</name> + <render>m:0:-⊃ omit m:0:⊃</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:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>madd9</name> + <render>SYM_MI m:0:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>mmaj7</name> + <render>SYM_MI m:0:-⊃ s( SYM_MA s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9maj7</name> + <render>SYM_MI m:0:-⊃ s9 s( SYM_MA s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+maj7</name> + <render>+ m:0:-⊃ s( SYM_MA s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+9maj7</name> + <render>+ m:0:-⊃ s9 s( SYM_MA s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>mb5</name> + <render>SYM_MI m:0:-⊃ s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b5</name> + <render>m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b5</name> + <render>SYM_MI m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>9b5</name> + <render>m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9b5</name> + <render>SYM_MI m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b9</name> + <render>m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b9</name> + <render>SYM_MI m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#9</name> + <render>m:0:-⊃ s7 s( s# s9 s) m:0:⊃</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:-⊃ s7 LTB2 SUP2(`s# s9') sb s5 RTB2 m:0:⊃</render> + </chord> + + <chord> + <name>7b9b5</name> + <render>m:0:-⊃ s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:⊃</render> + </chord> + + <chord> + <name>m7b9b5</name> + <render>SYM_MI m:0:-⊃ s7 LTB2 SUP2(`sb s9') sb s5 RTB2 m:0:⊃</render> + </chord> + + <chord> + <name>+7b9</name> + <render>+ m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>+7#9</name> + <render>+ m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>9#11</name> + <render>m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9#11</name> + <render>SYM_MI m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#11b9</name> + <render>m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃</render> + </chord> + + <chord> + <name>m7#11b9</name> + <render>SYM_MI m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃</render> + </chord> + + <chord> + <name>+7#11b9</name> + <render>+ m:0:-⊃ s7 LTB2 SUP2(`s# s1 s1') m:2:0 sb s9 m:2:0 RTB2 m:0:⊃</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:-⊃ s# m:0:⊃</render> </token> + <token class="modifier"> + <name>no</name> + <render>m:0:-⊃ no m:0:⊃</render> + </token> + <token class="modifier"> + <name>omit</name> + <render>m:0:-⊃ omit m:0:⊃</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:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>madd9</name> + <render>m m:0:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>mmaj7</name> + <render>m m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9maj7</name> + <render>m m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+maj7</name> + <render>+ m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+9maj7</name> + <render>+ m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>mb5</name> + <render>m m:0:-⊃ s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b5</name> + <render>m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b5</name> + <render>m m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>9b5</name> + <render>m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9b5</name> + <render>m m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b9</name> + <render>m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b9</name> + <render>m m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#9</name> + <render>m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + + + + + <chord> + <name>7#9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7b9</name> + <render>+ m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>+7#9</name> + <render>+ m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>9#11</name> + <render>m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9#11</name> + <render>m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7#11b9</name> + <render>+ 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:⊃</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:-⊃ s# m:0:⊃</render> </token> + <token class="modifier"> + <name>no</name> + <render>m:0:-⊃ no m:0:⊃</render> + </token> + <token class="modifier"> + <name>omit</name> + <render>m:0:-⊃ omit m:0:⊃</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:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>madd9</name> + <render>m m:0:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>mmaj7</name> + <render>m m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9maj7</name> + <render>m m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+maj7</name> + <render>+ m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+9maj7</name> + <render>+ m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>mb5</name> + <render>m m:0:-⊃ s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b5</name> + <render>m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b5</name> + <render>m m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>9b5</name> + <render>m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9b5</name> + <render>m m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b9</name> + <render>m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b9</name> + <render>m m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#9</name> + <render>m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + + + + + <chord> + <name>7#9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7b9</name> + <render>+ m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>+7#9</name> + <render>+ m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>9#11</name> + <render>m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9#11</name> + <render>m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7#11b9</name> + <render>+ 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:⊃</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:-⊃ s# m:0:⊃</render> </token> + <token class="modifier"> + <name>no</name> + <render>m:0:-⊃ no m:0:⊃</render> + </token> + <token class="modifier"> + <name>omit</name> + <render>m:0:-⊃ omit m:0:⊃</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:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>madd9</name> + <render>m m:0:-⊃ s( sadd s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>mmaj7</name> + <render>m m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9maj7</name> + <render>m m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+maj7</name> + <render>+ m:0:-⊃ s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>+9maj7</name> + <render>+ m:0:-⊃ s9 s( maj s7 s) m:0:⊃</render> + </chord> + + <chord> + <name>mb5</name> + <render>m m:0:-⊃ s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b5</name> + <render>m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b5</name> + <render>m m:0:-⊃ s7 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>9b5</name> + <render>m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9b5</name> + <render>m m:0:-⊃ s9 s( sb s5 s) m:0:⊃</render> + </chord> + + <chord> + <name>7b9</name> + <render>m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>m7b9</name> + <render>m m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#9</name> + <render>m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + + + + + <chord> + <name>7#9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7b9b5</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7b9</name> + <render>+ m:0:-⊃ s7 s( sb s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>+7#9</name> + <render>+ m:0:-⊃ s7 s( s# s9 s) m:0:⊃</render> + </chord> + + <chord> + <name>9#11</name> + <render>m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>m9#11</name> + <render>m m:0:-⊃ s9 s( s# s1 s1 s) m:0:⊃</render> + </chord> + + <chord> + <name>7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>m7#11b9</name> + <render>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:⊃</render> + </chord> + + <chord> + <name>+7#11b9</name> + <render>+ 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:⊃</render> + </chord> + + + </museScore> |