previous_pitch = None
relative_pitches = False
-def warning (str):
- ly.stderr_write ((_ ("warning: %s") % str) + "\n")
-
def escape_instrument_string (input_string):
retstring = string.replace (input_string, "\"", "\\\"")
if re.match ('.*[\r\n]+.*', retstring):
rx = re.compile (r'[\n\r]+')
strings = rx.split (retstring)
- retstring = "\\markup { \\column { "
+ retstring = "\\markup { \\center-column { "
for s in strings:
retstring += "\\line {\"" + s + "\"} "
retstring += "} }"
return base * dot_fact * self.factor
+# implement the midi command line option '-m' and '--midi'
+# if TRUE add midi-block to .ly file (see below)
+def set_create_midi (option):
+ global midi_option
+ midi_option = option
+
+def get_create_midi ():
+ try:
+ return midi_option
+ except:
+ return False
# Implement the different note names for the various languages
def pitch_generic (pitch, notenames, accidentals):
# Handle remaining fraction to pitch.alteration (for microtones)
if (halftones != pitch.alteration):
if None in accidentals[1:3]:
- warning (_ ("Language does not support microtones contained in the piece"))
+ ly.warning (_ ("Language does not support microtones contained in the piece"))
else:
try:
str += {-0.5: accidentals[1], 0.5: accidentals[2]}[pitch.alteration-halftones]
except KeyError:
- warning (_ ("Language does not support microtones contained in the piece"))
+ ly.warning (_ ("Language does not support microtones contained in the piece"))
return str
def pitch_general (pitch):
func ("\\once \\override TupletBracket #'stencil = ##f")
func.newline ()
elif self.display_bracket == "curved":
- warning (_ ("Tuplet brackets of curved shape are not correctly implemented"))
+ ly.warning (_ ("Tuplet brackets of curved shape are not correctly implemented"))
func ("\\once \\override TupletBracket #'stencil = #ly:slur::print")
func.newline ()
self.music = SequentialMusic ()
self.music.elements = music
else:
- warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s") % \
+ ly.warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s") % \
{'music':music, 'repeat':self})
def add_ending (self, music):
self.endings.append (music)
if self.music:
self.music.print_ly (printer)
else:
- warning (_ ("encountered repeat without body"))
+ ly.warning (_ ("encountered repeat without body"))
printer.dump ('{}')
if self.endings:
printer.dump ('\\alternative {')
# don't print newlines after the { and } braces
self.grace_elements.print_ly (printer, False)
elif self.grace_elements: # no self.elements!
- warning (_ ("Grace note with no following music: %s") % self.grace_elements)
+ ly.warning (_ ("Grace note with no following music: %s") % self.grace_elements)
if self.grace_type:
printer ('\\%s' % self.grace_type)
else:
try:
value = {8: 1, 15: 2}[self.size]
except KeyError:
- warning (_ ("Invalid octave shift size found: %s. Using no shift.") % self.size)
+ ly.warning (_ ("Invalid octave shift size found: %s. Using no shift.") % self.size)
value = 0
# negative values go up!
value *= -1*self.span_type
try:
accidental = alter_dict[a[1]]
except KeyError:
- warning (_ ("Unable to convert alteration %s to a lilypond expression") % a[1])
+ ly.warning (_ ("Unable to convert alteration %s to a lilypond expression") % a[1])
return ''
if len (a) == 2:
return "( %s . %s )" % (a[0], accidental)
if self.spanbar == "no":
printer.dump ("\\override SpanBar #'transparent = ##t")
brack = {"brace": "SystemStartBrace",
- "none": "f",
+ "none": "SystemStartBar",
"line": "SystemStartSquare"}.get (self.symbol, None)
if brack:
printer.dump ("systemStartDelimiter = #'%s" % brack)
printer.dump (m)
printer.dump ("}")
+ def print_ly_chords (self,printer):
+ try:
+ for [staff_id, voices] in self.part_information:
+ for [v, lyrics, figuredbass, chordnames] in voices:
+ if chordnames:
+ printer ('\context ChordNames = "%s" \\%s' % (chordnames, chordnames))
+ printer.newline ()
+ except TypeError:
+ return
+
def print_ly (self, printer):
+ self.print_ly_chords (printer)
if self.stafftype:
printer.dump ("\\new %s" % self.stafftype)
self.print_ly_overrides (printer)
sub_staff_type = self.stafftype
for [staff_id, voices] in self.part_information:
- # Chord names need to come before the staff itself!
- for [v, lyrics, figuredbass, chordnames] in voices:
- if chordnames:
- printer ('\context ChordNames = "%s" \\%s' % (chordnames, chordnames))
-
- # now comes the real staff definition:
if staff_id:
printer ('\\context %s = "%s" << ' % (sub_staff_type, staff_id))
else:
self.contents.set_part_information (part_id, staves_info)
def print_ly (self, printer):
+ self.create_midi = get_create_midi ()
printer.dump ("\\score {");
printer.newline ()
if self.contents: