return '(ly:make-pitch %s %s %s)' % (m.group(1), m.group (2),
alt)
- def fixKS(m):
- words = { '-2': "DOUBLE-FLAT",
- '-1': "FLAT",
- '0': "NATURAL",
- '1': "SHARP",
- '2': "DOUBLE-SHARP"}
- parts = m.group().split("`")
- if len(parts) != 2:
- return m.group()
- numbers = re.findall(r'-?\d+',parts[1])
- if len(numbers) % 3 != 0:
- return m.group()
- newalterations = []
- for i in range(len(numbers) / 3):
- newalterations.append('(('+numbers[i*3]+' . '+numbers[i*3+1]+') . ,'+
- words[numbers[i*3+2]]+')')
- whitespace = '\n'+' '*(len(parts[0])+2)
- output = parts[0]+'`('+whitespace.join(newalterations)+')'
- return output
-
str =re.sub ("\\(ly:make-pitch *([0-9-]+) *([0-9-]+) *([0-9-]+) *\\)",
sub_alteration, str)
as a substitution text.""") % (m.group (1), m.group (2)) )
raise FatalConversionError ()
- if re.search ("ly:(make-pitch|pitch-alteration)", str):
+ if re.search ("ly:(make-pitch|pitch-alteration)", str) \
+ or re.search ("keySignature", str):
stderr_write ('\n')
stderr_write (NOT_SMART % "pitches")
stderr_write ('\n')
stderr_write (
_ ("""The alteration field of Scheme pitches was multiplied by 2
-to support quarter tone accidentals. You must update the following construct
-manually: calls of ly:make-pitch and ly:pitch-alteration
+to support quarter tone accidentals. You must update the following constructs manually:
+
+* calls of ly:make-pitch and ly:pitch-alteration
+* keySignature settings made with \property
"""))
raise FatalConversionError ()
-
- findKeySig = re.compile(r'\\property\s+\w+\.keySignature .*?\)\s*\)',re.DOTALL)
- str = findKeySig.sub(fixKS,str)
return str
## FIXME: standard vs default, alteration-FOO vs FOO-alteration
str = str.replace ('alteration-default-glyph-name-alist',
'standard-alteration-glyph-name-alist')
-
- def fixKS(m):
- words = { '-4': "DOUBLE-FLAT",
- '-3': "THREE-Q-FLAT",
- '-2': "FLAT",
- '-1': "SEMI-FLAT",
- '0': "NATURAL",
- '1': "SEMI-SHARP",
- '2': "SHARP",
- '3': "THREE-Q-SHARP",
- '4': "DOUBLE-SHARP"}
- parts = m.group().split("`")
- if len(parts) != 2:
- return m.group()
- numbers = re.findall(r'-?\d+',parts[1])
- if len(numbers) % 3 != 0:
- return m.group()
- newalterations = []
- for i in range(len(numbers) / 3):
- newalterations.append('(('+numbers[i*3]+' . '+numbers[i*3+1]+') . ,'+
- words[numbers[i*3+2]]+')')
- whitespace = '\n'+' '*(len(parts[0])+2)
- output = parts[0]+'`('+whitespace.join(newalterations)+')'
- return output
-
- findKeySig = re.compile(r'\\set\s+\w+\.keySignature .*?\)\s*\)',re.DOTALL)
- str = findKeySig.sub(fixKS,str)
-
return str
@rule ((2, 13, 0), _ ("keySignature property not reversed any more\n\
MIDI 47: orchestral strings -> orchestral harp"))
def conv(str):
- if re.search(r'\\set\s+\w+\.keySignature',str):
+ if re.search(r'\set Staff.keySignature', str):
stderr_write ("\n")
- stderr_write (NOT_SMART % _("Staff.keySignature - the alist is no \
+ stderr_write (NOT_SMART % _("The alist for Staff.keySignature is no \
longer in reversed order.\n"))
str = str.replace('"orchestral strings"', '"orchestral harp"')
return str