def escape_ly_output_string (input_string):
return_string = input_string
- needs_quotes = not re.match (u"^[a-zA-ZäöüÜÄÖßñ]*$", return_string);
+ needs_quotes = not re.match (u"^[a-zA-ZäöüÜÄÖß,\.!:ñ]*$", return_string);
if needs_quotes:
return_string = "\"" + string.replace (return_string, "\"", "\\\"") + "\""
return return_string
'longa': -2,
'long': -2}.get (dur, 0)
+
+
def interpret_alter_element (alter_elm):
alter = 0
if alter_elm:
return step
def get_octave (self):
ch = self.get_unique_typed_child (get_class (u'octave'))
-
- step = ch.get_text ().strip ()
- return int (step)
+ octave = ch.get_text ().strip ()
+ return int (octave)
def get_alteration (self):
ch = self.get_maybe_exist_typed_child (get_class (u'alter'))
current_step = 0
for i in key.get_all_children ():
if isinstance (i, KeyStep):
- current_step = int (i.get_text ())
+ current_step = i.get_text ().strip ()
elif isinstance (i, KeyAlter):
alterations.append ([current_step, interpret_alter_element (i)])
elif isinstance (i, KeyOctave):
else:
i.message (_ ("Key alteration octave given for a "
"non-existing alteration nr. %s, available numbers: %s!") % (nr, len(alterations)))
- i.message ( "Non-standard key signature (after octave %s for alter nr %s): %s" % (i.get_text (), nr, alterations))
- i.message ( "Non-standard key signature with alterations %s found!" % alterations)
return alterations
def get_transposition (self):
return (text == "begin") or (text == "middle")
class Elision (Music_xml_node):
pass
+class Extend (Music_xml_node):
+ pass
class Text (Music_xml_node):
pass
if not (isinstance (n, Note) or isinstance (n, Attributes) or
isinstance (n, Direction) or isinstance (n, Partial) or
isinstance (n, Barline) or isinstance (n, Harmony) or
- isinstance (n, FiguredBass) ):
+ isinstance (n, FiguredBass) or isinstance (n, Print)):
continue
if isinstance (n, Attributes) and not start_attr:
voices[v].add_element (staff_attributes)
continue
- if isinstance (n, Partial) or isinstance (n, Barline):
+ if isinstance (n, Partial) or isinstance (n, Barline) or isinstance (n, Print):
for v in voices.keys ():
voices[v].add_element (n)
continue
def get_type (self):
return self.get_text ()
def is_primary (self):
- return self.number == "1"
+ if hasattr (self, 'number'):
+ return self.number == "1"
+ else:
+ return True
class Wavy_line (Music_xml_spanner):
pass
def get_step (self):
ch = self.get_maybe_exist_typed_child (get_class (u'display-step'))
if ch:
- step = ch.get_text ().strip ()
- return step
+ return ch.get_text ().strip ()
else:
return None
def get_octave (self):
ch = self.get_maybe_exist_typed_child (get_class (u'display-octave'))
if ch:
- step = ch.get_text ().strip ()
- return int (step)
+ oct = ch.get_text ().strip ()
+ return int (oct)
else:
return None
class PerMinute (Music_xml_node):
pass
+class Print (Music_xml_node):
+ pass
+
## need this, not all classes are instantiated
'direction-type': DirType,
'duration': Duration,
'elision': Elision,
+ 'extend': Extend,
'frame': Frame,
'frame-note': Frame_Note,
'figured-bass': FiguredBass,
'pedal': Pedal,
'per-minute': PerMinute,
'pitch': Pitch,
+ 'print': Print,
'rest': Rest,
'root': Root,
'score-part': Score_part,