allowed_durs = (1, 2, 4, 8, 16, 32, 64, 128)
def __init__ (self, clocks):
self.clocks = clocks
- if clocks <= 0:
- self.clocks = duration_quant_clocks
(self.dur, self.num, self.den) = self.dur_num_den (clocks)
def dur_num_den (self, clocks):
s = '%d*%d/%d' % (self.dur, self.num, self.den)
global reference_note
- if reference_note: # debugging
- reference_note.duration = self
+ reference_note.duration = self
return s
for i in notes[1:]:
s = s + i.dump (dump_dur=False)
s = s + '>'
-
s = s + notes[0].duration.dump () + ' '
reference_note = r
return s
if not n and not vv and global_options.key:
s += global_options.key.dump ()
if average_pitch[vv+1] and voices > 1:
- s += ' \\voice' + get_voice_layout (average_pitch[1:])[vv] + '\n'
+ vl = get_voice_layout (average_pitch[1:])[vv]
+ if vl:
+ s += ' \\voice' + vl + '\n'
+ else:
+ warning (_ ('found more than 5 voices on a staff, expect bad output'))
s += ' ' + dump_voice (voice, skip)
s += '}\n\n'
v += 1
s += '\n\\score {\n <<\n'
+ control_track = False
i = 0
for i, staff in enumerate (staves):
track_name = get_track_name (i)
staff_name = track_name
context = None
if not i and not item and len (staves) > 1:
- # control track
- staff_name = get_track_name (1)
- context = 'Staff'
+ control_track = track_name
+ continue
elif (item and item.__class__ == Note):
context = 'Staff'
+ if control_track:
+ s += ' \\context %(context)s=%(staff_name)s \\%(control_track)s\n' % locals ()
elif item and item.__class__ == Text:
context = 'Lyrics'
if context: