%\def\postLilypondExample{}
+\usepackage{graphics}
+\def\postLilypondExample{}
+\def\preLilypondExample{}
\begin{document}
-\begin{lilypond}
-\score {
- \notes\relative c' { c d e f g a b c }
-}
-\end{lilypond}
+\preLilypondExample \input lily-464146743.tex \postLilypondExample
-\begin[fragment]{lilypond}
-c d e
-\end{lilypond}
+
+\preLilypondExample \input lily-940223662.tex \postLilypondExample
+
% generate standard lilypond titles
\input titledefs.tex
\def\preLilypondExample{\def\mustmakelilypondtitle{}}
-\begin{lilypond}
-\header {
- title = "Title"
- subtitle = "Subtitle"
- subsubtitle = "Subsubtitle"
- opus = "Opus 1"
- piece = "Piece"
- composer = "Composer"
- enteredby = "JCN"
- instrument = "instrument"
-}
-\paper { linewidth = -1. }
-\score {
- \notes \relative c'' { a b c d }
-}
-\end{lilypond}
+\preLilypondExample \input lily-615430739.tex \postLilypondExample
+
\begin{enumerate}
\item Vers one. aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa
# the default placement for text in abc is above the staff.
# %%LY now supported.
# \breve and \longa supported.
-
+# M:none doesn't crash lily.
+
# Limitations
#
# Multiple tunes in single file not supported
ks = hdr.keys ()
ks.sort ()
for k in ks:
+ hdr[k] = re.sub('"', '\\"', hdr[k])
outf.write ('\t%s = "%s"\n'% (k,hdr[k]))
outf.write ('}')
array2=string.split(array[1],'=')
denominator=array2[0]
perminute=array2[1]
- duration=str(string.atof(denominator)/string.atoi(numerator))
+ duration=str(string.atoi(denominator)/string.atoi(numerator))
midi_specs=string.join(["\\tempo", duration, "=", perminute])
else:
sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a)
if re.match ('\([2-9]', str):
dig = str[1]
str = str[2:]
- state.parsing_tuplet = string.atoi (dig[0])
-
+ prev_tuplet_state = state.parsing_tuplet
+ state.parsing_tuplet = string.atoi (dig[0])
+ if prev_tuplet_state:
+ voices_append ("}")
voices_append ("\\times %s {" % tup_lookup[dig])
return str
a = re.sub('[ \t]*$','', a) #strip trailing blanks
if header.has_key('title'):
if a:
- header['title'] = header['title'] + '\\\\\\\\' + a
+ if len(header['title']):
+ header['title'] = header['title'] + '\\\\\\\\' + a
+ else:
+ header['subtitle'] = a
else:
header['title'] = a
if g == 'M': # Meter
set_default_len_from_time_sig (a)
else:
length_specified = 0
- voices_append ('\\time %s' % a)
+ if not a == 'none':
+ voices_append ('\\time %s' % a)
state.next_bar = ''
if g == 'K': # KEY
a = check_clef(a)
if base == 1:
if (multiply_tup[0] / multiply_tup[1]) == 2:
base = '\\breve'
+ if (multiply_tup[0] / multiply_tup[1]) == 3:
+ base = '\\breve'
+ dots = 1
if (multiply_tup[0] / multiply_tup[1]) == 4:
base = '\longa'
return '%s%s' % ( base, '.'* dots)