- break_dict = {
- "Instrument_name": "instrument-name",
- "Left_edge_item": "left-edge",
- "Span_bar": "span-bar",
- "Breathing_sign": "breathing-sign",
- "Staff_bar": "staff-bar",
- "Clef_item": "clef",
- "Key_item": "key-signature",
- "Time_signature": "time-signature",
- "Custos": "custos"
- }
- props = match.group (1)
- for (k,v) in break_dict.items():
- props = re.sub (k, v, props)
- return "breakAlignOrder = #'(%s)" % props
+ break_dict = {
+ "Instrument_name": "instrument-name",
+ "Left_edge_item": "left-edge",
+ "Span_bar": "span-bar",
+ "Breathing_sign": "breathing-sign",
+ "Staff_bar": "staff-bar",
+ "Clef_item": "clef",
+ "Key_item": "key-signature",
+ "Time_signature": "time-signature",
+ "Custos": "custos"
+ }
+ props = match.group (1)
+ for (k,v) in break_dict.items():
+ props = re.sub (k, v, props)
+ return "breakAlignOrder = #'(%s)" % props
- last_str = str
-
- def sub_tremolos (m, slur_strs = slur_strs):
- tr = m.group (2)
- if tr not in slur_strs:
- slur_strs.append (tr)
- return m.group (1)
-
- str = re.sub (r"([a-z]+[',!? ]*)(:[0-9]+)",
- sub_tremolos, str)
-
- def sub_dyn_end (m, dyns = dyns):
- dyns.append (' \!')
- return ' ' + m.group(2)
-
- str = re.sub (r'(\\!)\s*([a-z]+)', sub_dyn_end, str)
- def sub_slurs(m, slur_strs = slur_strs):
- if '-)' not in slur_strs:
- slur_strs.append (')')
- return m.group(1)
-
- def sub_p_slurs(m, slur_strs = slur_strs):
- if '-\)' not in slur_strs:
- slur_strs.append ('\)')
- return m.group(1)
-
- str = re.sub (r"\)[ ]*([a-z]+)", sub_slurs, str)
- str = re.sub (r"\\\)[ ]*([a-z]+)", sub_p_slurs, str)
- def sub_begin_slurs(m, slur_strs = slur_strs):
- if '-(' not in slur_strs:
- slur_strs.append ('(')
- return m.group(1)
-
- str = re.sub (r"([a-z]+[,'!?0-9 ]*)\(",
- sub_begin_slurs, str)
- def sub_begin_p_slurs(m, slur_strs = slur_strs):
- if '-\(' not in slur_strs:
- slur_strs.append ('\(')
- return m.group(1)
-
- str = re.sub (r"([a-z]+[,'!?0-9 ]*)\\\(",
- sub_begin_p_slurs, str)
-
- def sub_dyns (m, slur_strs = slur_strs):
- s = m.group(0)
- if s == '@STARTCRESC@':
- slur_strs.append ("\\<")
- elif s == '@STARTDECRESC@':
- slur_strs.append ("\\>")
- elif s == r'-?\\!':
- slur_strs.append ('\\!')
- return ''
-
- str = re.sub (r'@STARTCRESC@', sub_dyns, str)
- str = re.sub (r'-?\\!', sub_dyns, str)
-
- def sub_articulations (m, slur_strs = slur_strs):
- a = m.group(1)
- if a not in slur_strs:
- slur_strs.append (a)
- return ''
-
- str = re.sub (r"([_^-]\@ACCENT\@)", sub_articulations,
- str)
- str = re.sub (r"([_^-]\\[a-z]+)", sub_articulations,
- str)
- str = re.sub (r"([_^-][>_.+|^-])", sub_articulations,
- str)
- str = re.sub (r'([_^-]"[^"]+")', sub_articulations,
- str)
-
- def sub_pslurs(m, slur_strs = slur_strs):
- slur_strs.append (' \\)')
- return m.group(1)
- str = re.sub (r"\\\)[ ]*([a-z]+)", sub_pslurs, str)
+ last_str = str
+
+ def sub_tremolos (m, slur_strs = slur_strs):
+ tr = m.group (2)
+ if tr not in slur_strs:
+ slur_strs.append (tr)
+ return m.group (1)
+
+ str = re.sub (r"([a-z]+[',!? ]*)(:[0-9]+)",
+ sub_tremolos, str)
+
+ def sub_dyn_end (m, dyns = dyns):
+ dyns.append (' \!')
+ return ' ' + m.group(2)
+
+ str = re.sub (r'(\\!)\s*([a-z]+)', sub_dyn_end, str)
+ def sub_slurs(m, slur_strs = slur_strs):
+ if '-)' not in slur_strs:
+ slur_strs.append (')')
+ return m.group(1)
+
+ def sub_p_slurs(m, slur_strs = slur_strs):
+ if '-\)' not in slur_strs:
+ slur_strs.append ('\)')
+ return m.group(1)
+
+ str = re.sub (r"\)[ ]*([a-z]+)", sub_slurs, str)
+ str = re.sub (r"\\\)[ ]*([a-z]+)", sub_p_slurs, str)
+ def sub_begin_slurs(m, slur_strs = slur_strs):
+ if '-(' not in slur_strs:
+ slur_strs.append ('(')
+ return m.group(1)
+
+ str = re.sub (r"([a-z]+[,'!?0-9 ]*)\(",
+ sub_begin_slurs, str)
+ def sub_begin_p_slurs(m, slur_strs = slur_strs):
+ if '-\(' not in slur_strs:
+ slur_strs.append ('\(')
+ return m.group(1)
+
+ str = re.sub (r"([a-z]+[,'!?0-9 ]*)\\\(",
+ sub_begin_p_slurs, str)
+
+ def sub_dyns (m, slur_strs = slur_strs):
+ s = m.group(0)
+ if s == '@STARTCRESC@':
+ slur_strs.append ("\\<")
+ elif s == '@STARTDECRESC@':
+ slur_strs.append ("\\>")
+ elif s == r'-?\\!':
+ slur_strs.append ('\\!')
+ return ''
+
+ str = re.sub (r'@STARTCRESC@', sub_dyns, str)
+ str = re.sub (r'-?\\!', sub_dyns, str)
+
+ def sub_articulations (m, slur_strs = slur_strs):
+ a = m.group(1)
+ if a not in slur_strs:
+ slur_strs.append (a)
+ return ''
+
+ str = re.sub (r"([_^-]\@ACCENT\@)", sub_articulations,
+ str)
+ str = re.sub (r"([_^-]\\[a-z]+)", sub_articulations,
+ str)
+ str = re.sub (r"([_^-][>_.+|^-])", sub_articulations,
+ str)
+ str = re.sub (r'([_^-]"[^"]+")', sub_articulations,
+ str)
+
+ def sub_pslurs(m, slur_strs = slur_strs):
+ slur_strs.append (' \\)')
+ return m.group(1)
+ str = re.sub (r"\\\)[ ]*([a-z]+)", sub_pslurs, str)
- result = result + str[:match.end (1)] + " \markup"
- str = str[match.end( 2):]
- # Count matching parentheses to find the end of the
- # current markup:
- nesting_level = 0
- pars = re.finditer(r"[()]",str)
- for par in pars:
- if par.group () == '(':
- nesting_level = nesting_level + 1
- else:
- nesting_level = nesting_level - 1
- if nesting_level == 0:
- markup_end = par.end ()
- break
- # The full markup in old syntax:
- markup = str[:markup_end]
- # Modify to new syntax:
- markup = musicglyph.sub (r"{\\musicglyph", markup)
- markup = columns.sub (r"{", markup)
- markup = submarkup_start.sub (r"{\\\1", markup)
- markup = leftpar.sub ("{", markup)
- markup = rightpar.sub ("}", markup)
-
- result = result + markup
- # Find next markup
- str = str[markup_end:]
- match = markup_start.search(str)
+ result = result + str[:match.end (1)] + " \markup"
+ str = str[match.end( 2):]
+ # Count matching parentheses to find the end of the
+ # current markup:
+ nesting_level = 0
+ pars = re.finditer(r"[()]",str)
+ for par in pars:
+ if par.group () == '(':
+ nesting_level = nesting_level + 1
+ else:
+ nesting_level = nesting_level - 1
+ if nesting_level == 0:
+ markup_end = par.end ()
+ break
+ # The full markup in old syntax:
+ markup = str[:markup_end]
+ # Modify to new syntax:
+ markup = musicglyph.sub (r"{\\musicglyph", markup)
+ markup = columns.sub (r"{", markup)
+ markup = submarkup_start.sub (r"{\\\1", markup)
+ markup = leftpar.sub ("{", markup)
+ markup = rightpar.sub ("}", markup)
+
+ result = result + markup
+ # Find next markup
+ str = str[markup_end:]
+ match = markup_start.search(str)
- # Convert the preceding LilyPond code:
- previous_chunk = str[:match.start()]
- result = result + articulation_substitute (previous_chunk)
- if match.group (1): # Found a string
- # Copy the string to output:
- result = result + match.group (1)
- str = str[match.end(1):]
- else: # Found a Scheme expression. Count
- # matching parentheses to find its end
- str = str[match.start ():]
- nesting_level = 0
- pars = re.finditer(r"[()]",str)
- for par in pars:
- if par.group () == '(':
- nesting_level = nesting_level + 1
- else:
- nesting_level = nesting_level - 1
- if nesting_level == 0:
- scheme_end = par.end ()
- break
- # Copy the Scheme expression to output:
- result = result + str[:scheme_end]
- str = str[scheme_end:]
- # Find next string or Scheme expression:
- match = string_or_scheme.search (str)
+ # Convert the preceding LilyPond code:
+ previous_chunk = str[:match.start()]
+ result = result + articulation_substitute (previous_chunk)
+ if match.group (1): # Found a string
+ # Copy the string to output:
+ result = result + match.group (1)
+ str = str[match.end(1):]
+ else: # Found a Scheme expression. Count
+ # matching parentheses to find its end
+ str = str[match.start ():]
+ nesting_level = 0
+ pars = re.finditer(r"[()]",str)
+ for par in pars:
+ if par.group () == '(':
+ nesting_level = nesting_level + 1
+ else:
+ nesting_level = nesting_level - 1
+ if nesting_level == 0:
+ scheme_end = par.end ()
+ break
+ # Copy the Scheme expression to output:
+ result = result + str[:scheme_end]
+ str = str[scheme_end:]
+ # Find next string or Scheme expression:
+ match = string_or_scheme.search (str)
- encoding = match.group (1)
-
- # FIXME: automatic recoding of other than latin1?
- if encoding == 'latin1':
- return match.group (2)
-
- stderr_write ('\n')
- stderr_write (NOT_SMART % ("\\encoding: %s" % encoding))
- stderr_write ('\n')
- stderr_write (_ ("LilyPond source must be UTF-8"))
- stderr_write ('\n')
- if encoding == 'TeX':
- stderr_write (_ ("Try the texstrings backend"))
- stderr_write ('\n')
- else:
- stderr_write ( _("Do something like: %s") % \
- ("recode %s..utf-8 FILE" % encoding))
- stderr_write ('\n')
- stderr_write (_ ("Or save as UTF-8 in your editor"))
- stderr_write ('\n')
- raise FatalConversionError ()
-
- return match.group (0)
+ encoding = match.group (1)
+
+ # FIXME: automatic recoding of other than latin1?
+ if encoding == 'latin1':
+ return match.group (2)
+
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % ("\\encoding: %s" % encoding))
+ stderr_write ('\n')
+ stderr_write (_ ("LilyPond source must be UTF-8"))
+ stderr_write ('\n')
+ if encoding == 'TeX':
+ stderr_write (_ ("Try the texstrings backend"))
+ stderr_write ('\n')
+ else:
+ stderr_write ( _("Do something like: %s") % \
+ ("recode %s..utf-8 FILE" % encoding))
+ stderr_write ('\n')
+ stderr_write (_ ("Or save as UTF-8 in your editor"))
+ stderr_write ('\n')
+ raise FatalConversionError ()
+
+ return match.group (0)
- ('inputencoding', 'input-encoding'),
- ('printpagenumber', 'print-page-number'),
- ('outputscale', 'output-scale'),
- ('betweensystemspace', 'between-system-space'),
- ('betweensystempadding', 'between-system-padding'),
- ('pagetopspace', 'page-top-space'),
- ('raggedlastbottom', 'ragged-last-bottom'),
- ('raggedright', 'ragged-right'),
- ('raggedlast', 'ragged-last'),
- ('raggedbottom', 'ragged-bottom'),
- ('aftertitlespace', 'after-title-space'),
- ('beforetitlespace', 'before-title-space'),
- ('betweentitlespace', 'between-title-space'),
- ('topmargin', 'top-margin'),
- ('bottommargin', 'bottom-margin'),
- ('headsep', 'head-separation'),
- ('footsep', 'foot-separation'),
- ('rightmargin', 'right-margin'),
- ('leftmargin', 'left-margin'),
- ('printfirstpagenumber', 'print-first-page-number'),
- ('firstpagenumber', 'first-page-number'),
- ('hsize', 'paper-width'),
- ('vsize', 'paper-height'),
- ('horizontalshift', 'horizontal-shift'),
- ('staffspace', 'staff-space'),
- ('linethickness', 'line-thickness'),
- ('ledgerlinethickness', 'ledger-line-thickness'),
- ('blotdiameter', 'blot-diameter'),
- ('staffheight', 'staff-height'),
- ('linewidth', 'line-width'),
- ('annotatespacing', 'annotate-spacing')
- ]
+ ('inputencoding', 'input-encoding'),
+ ('printpagenumber', 'print-page-number'),
+ ('outputscale', 'output-scale'),
+ ('betweensystemspace', 'between-system-space'),
+ ('betweensystempadding', 'between-system-padding'),
+ ('pagetopspace', 'page-top-space'),
+ ('raggedlastbottom', 'ragged-last-bottom'),
+ ('raggedright', 'ragged-right'),
+ ('raggedlast', 'ragged-last'),
+ ('raggedbottom', 'ragged-bottom'),
+ ('aftertitlespace', 'after-title-space'),
+ ('beforetitlespace', 'before-title-space'),
+ ('betweentitlespace', 'between-title-space'),
+ ('topmargin', 'top-margin'),
+ ('bottommargin', 'bottom-margin'),
+ ('headsep', 'head-separation'),
+ ('footsep', 'foot-separation'),
+ ('rightmargin', 'right-margin'),
+ ('leftmargin', 'left-margin'),
+ ('printfirstpagenumber', 'print-first-page-number'),
+ ('firstpagenumber', 'first-page-number'),
+ ('hsize', 'paper-width'),
+ ('vsize', 'paper-height'),
+ ('horizontalshift', 'horizontal-shift'),
+ ('staffspace', 'staff-space'),
+ ('linethickness', 'line-thickness'),
+ ('ledgerlinethickness', 'ledger-line-thickness'),
+ ('blotdiameter', 'blot-diameter'),
+ ('staffheight', 'staff-height'),
+ ('linewidth', 'line-width'),
+ ('annotatespacing', 'annotate-spacing')
+ ]
- steps = [0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6]
- alterations = ["NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL"]
- octave = 0
- while semitones > 11:
- octave += 1
- semitones -=12
- while semitones < 0:
- octave -= 1
- semitones += 12
- pitchArgs = "%d %d %s" % (octave, steps[semitones], alterations[semitones])
- return pitchArgs
+ steps = [0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6]
+ alterations = ["NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL"]
+ octave = 0
+ while semitones > 11:
+ octave += 1
+ semitones -=12
+ while semitones < 0:
+ octave -= 1
+ semitones += 12
+ pitchArgs = "%d %d %s" % (octave, steps[semitones], alterations[semitones])
+ return pitchArgs