Skip to content

Commit

Permalink
Merge pull request #1634 from malcolmsailor/add-2-digit-figures
Browse files Browse the repository at this point in the history
TSV converter bug fix: don't add 'd' prefix to 2-digit added tones like `[add13]`
  • Loading branch information
mscuthbert authored Aug 31, 2023
2 parents fdb126c + 8b76a3f commit f457a2b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
18 changes: 15 additions & 3 deletions music21/romanText/tsvConverter.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,12 +256,21 @@ def _changeRepresentation(self) -> None:
if self.dcml_version == 2:
self.chord = self.chord.replace('%', 'ø')
self.chord = handleAddedTones(self.chord)
# prefix figures for Mm7 chords on degrees other than 'V' with 'd'
if (
self.extra.get('chord_type', '') == 'Mm7'
and self.numeral != 'V'
):
# we need to make sure not to match [add4] and the like
self.chord = re.sub(r'(\d+)(?!])', r'd\1', self.chord)
# However, we need to make sure not to match [add13] and
# the like, otherwise we will end up with [addd13]
self.chord = re.sub(
r'''
(\d+) # match one or more digits
(?![\]\d]) # without a digit or a ']' to the right
''',
r'd\1',
self.chord,
flags=re.VERBOSE)

# Local - relative and figure
if isMinor(self.local_key):
Expand Down Expand Up @@ -869,7 +878,10 @@ def _m21ToTsv_v2(self) -> list[list[str]]:
relativeroot = characterSwaps(
relativeroot, isMinor(local_key), direction='m21-DCML'
)
thisEntry.chord = thisRN.figure # NB: slightly different from DCML: no key.
# We replace the "d" annotation for Mm7 chords on degrees other than
# V because it is not used by the DCML standard
# NB: slightly different from DCML: no key.
thisEntry.chord = thisRN.figure.replace('d', '', 1)
thisEntry.pedal = None
thisEntry.numeral = thisRN.romanNumeral
thisEntry.form = getForm(thisRN)
Expand Down
5 changes: 4 additions & 1 deletion music21/romanText/tsvEg_v2major.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ mc mn mc_onset mn_onset timesig staff voice volta label globalkey localkey pedal
99 99 1/2 1/2 3/4 4 1 Ger6/vi C V Ger6/vi Ger vii o 65 b3 V/vi Ger 0 0 -1, 3, 0, 9 9 -1
121 121 0 0 3/4 4 1 V/vi C i V/vi V vi M 0 1 -3, 1, -2 -3 -3
125 124 1/16 1/16 2/4 4 1 Fr6 F vi Fr6 Fr V 43 b5 V Fr 0 1 -4, 0, 2, 6 2 -4
142 141 0 0 4/4 #VII+/vi C I #VII+/vi #VII + vi + 0 0
141 140 0 0 4/4 #VII+/vi C I #VII+/vi #VII + vi + 0 0
142 141 0 0 4/4 VI43 G iii VI43 VI 43 vi Mm7 0 0
143 142 0 0 4/4 VI43(13) G iii VI43(13) VI 43 13 vi Mm7 0 0
144 143 0 0 4/4 V13 G I V13 V 13 Mm7 0 0

0 comments on commit f457a2b

Please sign in to comment.