'longa': -2,
'long': -2}.get (dur, 0)
+def interpret_alter_element (alter_elm):
+ alter = 0
+ if alter_elm:
+ val = eval(alter_elm.get_text ())
+ if type (val) in (int, float):
+ alter = val
+ return alter
class Xml_node:
def get_alteration (self):
ch = self.get_maybe_exist_typed_child (get_class (u'alter'))
- alter = 0
- if ch:
- alter = int (ch.get_text ().strip ())
- return alter
+ return interpret_alter_element (ch)
class Unpitched (Music_xml_node):
def get_step (self):
if isinstance (i, KeyStep):
current_step = int (i.get_text ())
elif isinstance (i, KeyAlter):
- alterations.append ([current_step, int (i.get_text ())])
+ alterations.append ([current_step, interpret_alter_element (i)])
elif isinstance (i, KeyOctave):
nr = -1
if hasattr (i, 'number'):
class Bend (Music_xml_node):
def bend_alter (self):
alter = self.get_maybe_exist_named_child ('bend-alter')
- if alter:
- return alter.get_text()
- else:
- return 0
+ return interpret_alter_element (alter)
class Words (Music_xml_node):
pass
return ch.get_text ().strip ()
def get_alteration (self):
ch = self.get_maybe_exist_typed_child (get_class (self.alter_class_name ()))
- alter = 0
- if ch:
- alter = int (ch.get_text ().strip ())
- return alter
+ return interpret_alter_element (ch)
class Root (ChordPitch):
pass
return value
def get_alter (self):
ch = self.get_maybe_exist_typed_child (get_class (u'degree-alter'))
- value = 0
- if ch:
- value = int (ch.get_text ().strip ())
- return value
+ return interpret_alter_element (ch)
class Frame (Music_xml_node):