relative_pitches = prev_relative_pitches
class TimeScaledMusic (MusicWrapper):
+ def __init__ (self):
+ MusicWrapper.__init__ (self)
+ self.display_number = "actual" # valid values "actual" | "both" | None
+ # Display the basic note length for the tuplet:
+ self.display_type = None # value values "actual" | "both" | None
+ self.display_bracket = "bracket" # valid values "bracket" | "curved" | None
+
def print_ly (self, func):
+ if self.display_bracket == None:
+ func ("\\once \\override TupletBracket #'stencil = ##f")
+ func.newline ()
+ elif self.display_bracket == "curved":
+ warning (_ ("Tuplet brackets of curved shape are not correctly implemented"))
+ func ("\\once \\override TupletBracket #'stencil = #ly:slur::print")
+ func.newline ()
+
+ base_number_function = {None: "#f",
+ "actual": "tuplet-number::calc-denominator-text",
+ "both": "tuplet-number::calc-fraction-text"}.get (self.display_number, None)
+
+ if self.display_type == "actual":
+ base_duration = "8" # TODO!!!
+ func ("\\once \\override TupletNumber #'text = #(tuplet-number::append-note-wrapper %s \"%s\")" %
+ (base_number_function, base_duration))
+ func.newline ()
+ elif self.display_type == None:
+ if self.display_number == None:
+ func ("\\once \\override TupletNumber #'stencil = ##f")
+ func.newline ()
+ elif self.display_number == "both":
+ func ("\\once \\override TupletNumber #'text = #%s" % base_number_function)
+ func.newline ()
+ elif self.display_type == "both":
+ warning (_ ("Tuplet brackets displaying both note durations are not implemented, using default"))
+ if self.display_number == None:
+ func ("\\once \\override TupletNumber #'stencil = ##f")
+ func.newline ()
+ elif self.display_number == "both":
+ func ("\\once \\override TupletNumber #'text = #%s" % base_number_function)
+ func.newline ()
+
func ('\\times %d/%d ' %
(self.numerator, self.denominator))
func.add_factor (Rational (self.numerator, self.denominator))