OUTDOC_FILES = $(addprefix $(outdir)/, $(DOC_FILES))
EL_FILES = $(wildcard *.el)
BIB_FILES= $(wildcard *.bib)
-EXTRA_DIST_FILES= $(BIB_FILES) $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES)
+EXTRA_DIST_FILES= $(BIB_FILES) $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES) $(wildcard *.sty)
HTML_FILES = $(addprefix $(outdir)/, $(YO_FILES:.yo=.html))
PS_FILES = $(DVI_FILES:.dvi=.ps)
--- /dev/null
+%-*-LaTeX-*-
+
+\documentclass{article}
+\usepackage{a4}
+\def\postMudelaExample{\setlength{\parindent}{1em}}
+\title{LilyPond, a Music Typesetter}
+\author{HWN}
+\usepackage{musicnotes}
+\usepackage{graphics}
+
+
+\begin{document}
+\maketitle
+
+% -*-LaTeX-*-
+\section{Introduction}
+
+The Internet has become a popular medium for collaborative work on
+information. Its success is partly due to its use of simple, text-based
+formats. Examples of these formats are HTML and \LaTeX. Anyone can
+produce or modify such files using nothing but a text editor, they are
+easily processed with run-of-the-mill text tools, and they can be
+integrated into other text-based formats.
+
+Software for processing this information and presenting these formats
+in an elegant form is available freely (Netscape, \LaTeX, etc.).
+Ubiquitousness of the software and simplicity of the formats have
+revolutionised the way people publish text-based information
+nowadays.
+
+In the field of performed music, where the presentation takes the form
+of sheet music, such a revolution has not started yet. Let us review
+some alternatives that have been available for transmitting sheet
+music until now:
+\begin{itemize}
+\item MIDI\cite{midi}. This format was designed for interchanging performances
+ of music; one should think of it as a glorified tape recorder
+ format. It needs dedicated editors, since it is binary. It does
+ not provide enough information for producing musical scores: some of
+ the abstract musical content of what is performed is thrown away.
+
+\item PostScript\cite{Postscript}. This format is a printer control
+ language. Printed musical scores can be transmitted in PostScript,
+ but once a score is converted to PostScript, it is virtually
+ impossible to modify the score in a meaningful way.
+
+\item Formats for various notation programs. Notation programs either
+ work with binary formats (e.g., NIFF\cite{niff-web}), need specific
+ platforms (e.g., Sibelius\cite{sibelius}, Score\cite{score}), are
+ proprietary or non-portable tools themselves (idem), produce
+ inadequate output (e.g., MUP\cite{mup}), are based on graphical
+ content (e.g., MusixTeX\cite{musixtex1}), or limit themselves to
+ specific subdomains (e.g., ABC\cite{abc2mtex}).
+
+\item SMDL\cite{smdl-web}. This is a very rich ASCII format, that is
+ designed for storing many types of music. Unfortunately, there is
+ no implementation of a program to print music from SMDL available.
+ Moreover, SMDL is so verbose, that it is not suitable for human
+ production.
+
+\item TAB\cite{tablature-web}. Tab (short for tablature) is a popular
+ format, for interchanging music over e-mail, but it can only be used
+ for guitar music.
+\end{itemize}
+
+In summary, sheet music is not published and edited on a wide scale
+across the internet because no format for music
+interchange exists that is:
+\begin{itemize}
+\item open, i.e., with publically available specifications.
+\item based on ASCII, and therefore suitable for human consumption and
+ production.
+\item rich enough for producing publication quality sheet music from
+ it.
+\item based on musical content (unlike, for example, PostScript), and
+ therefore suitable for making modifications.
+\item accompanied by tools for processing it that are freely available
+ across multiple platforms.
+\end{itemize}
+
+
+With the creation of LilyPond, we have tried to create both a
+convenient format for storing sheet music, and a portable,
+high-quality implementation of a compiler, that compiles the input
+into a printable score. You can find a small example of LilyPond
+input along with output in Figure~\ref{fig:intro-fig}.
+%
+\begin{figure}[htbp]
+ \begin{center}
+\begin{mudela}[verbatim]
+ \score {
+ \notes
+ \type GrandStaff <
+ \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
+ { \clef "bass"; c4 c'4
+ \type Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+ >
+ \paper {
+ linewidth = -1.0\cm ;
+ }
+ }
+\end{mudela}
+ \caption{A small example of LilyPond input}
+ \label{fig:intro-fig}
+ \end{center}
+\end{figure}
+%
+
+
+The input language encodes musical events (such as notes and rests) on
+the basis of their time-ordering. For example, the grammar includes
+constructs that specify that notes start simultaneous and that notes
+are to be played in sequence. In this encoding some context that is
+present in sheet music is lost.
+
+The compiler reconstructs the notation from the encoded music. Its
+operation comprises four different steps (see
+Figure~\ref{fig:intro-steps}).
+
+\begin{description}
+\item[Parsing] During parsing, the input is converted in a syntax tree.
+
+\item[Interpreting] In the \emph{interpreting} step, it is determined
+ which symbols have to be printed. Objects that correspond to
+ notation (\emph{Graphical objects}) are created from the syntax tree
+ in this phase. Generally speaking, for every symbol printed there is
+ one graphical object. These objects are incomplete: their position
+ and their final shape is unknown.
+
+ The context that was lost by encoding the input in a language is
+ reconstructed during this conversion.
+\item[Formatting] The next step is determing where symbols are to be
+ placed, this is called \emph{formatting}.
+\item[Outputting]
+ Finally, all Graphical objects are outputted as PostScript or \TeX\ code.
+\end{description}
+
+\def\staffsym{\vbox to 16pt{
+ \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+ \vfil
+ \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+ \vfil
+ \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+ \vfil
+ \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+ \vfil
+ \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+}}
+
+\def\vspacer{\vbox to 20pt{\vss}}
+\begin{figure}[h]
+\def\spacedhbox#1{\hbox{\ #1\ }}
+\begin{eqnarray*}
+ {\spacedhbox{Input}\atop \hbox{\texttt{\{c8 c8\}}}} {\spacedhbox{Parsing}\atop\longrightarrow}
+ {\spacedhbox{Syntax tree}\atop\spacedhbox{\textsf{Sequential(Note,Note)}}}
+ {\spacedhbox{Interpreting}\atop\longrightarrow}\\
+ \vspacer\\
+ {\spacedhbox{Graphic objects}\atop\spacedhbox{\texttrebleclef \textquarterhead\texteighthflag\textquarterhead\texteighthflag \staffsym }}
+ {\spacedhbox{Formatting}\atop\longrightarrow}
+ {\spacedhbox{Formatted objects}\atop\hbox{
+ \mudela{c''8 c''8}
+ }}\\
+\vspacer\\
+ {\spacedhbox{Outputting}\atop\longrightarrow}
+ {\spacedhbox{PostScript code}\atop\hbox{\texttt{\%!PS-Adobe}\ldots}}
+\end{eqnarray*}
+ \caption{Parsing, Interpreting, Formatting and Outputting}
+ \label{fig:intro-steps}
+\end{figure}
+
+
+The second step, the interpretation phase of the compiler, can be
+manipulated as a separate entity: the interpretation process is
+composed of many separate modules, and the behaviour of the modules is
+parameterised. By recombining these interpretation modules,
+and changing parameter settings, the same piece of music can be
+printed differently, as is shown in Figure~\ref{fig:intro-interpret}.
+
+This makes it easy to extend the program. Moreover, this enables the
+same music to be printed in different versions, e.g., in a conductors
+score and in extracted parts.
+
+
+\begin{figure}[h]
+ \begin{center}
+ \begin{mudela}
+ \score {
+ \notes
+ \type GrandStaff <
+ \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
+ { \clef "bass"; c4 c'4
+ \type Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+ >
+ \paper {
+ linewidth = -1.0\cm ;
+ \translator {
+ \VoiceContext
+ \remove "Stem_engraver";
+ }
+ \translator {
+ \StaffContext
+ numberOfStaffLines = 3;
+ }
+ }
+ }
+ \end{mudela}
+ \caption{The interpretation phase can be manipulated: the same
+ music as in Figure~\ref{fig:intro-fig} is interpreted
+ differently: three staff lines and no stems.}
+ \label{fig:intro-interpret}
+ \end{center}
+\end{figure}
+
+
+
+\section{Preliminaries}
+
+To understand the rest of the article, it is necessary to know
+something about music notation and music typography. Since both
+communicate music, we will explain some characteristics of instruments
+and western music that motivate some notational constructs.
+
+\subsection{Music}
+
+Music notation is meant to be read by human performers. They sing or
+play instruments that can produce sounds of different pitches. These
+sounds are called \emph{notes}. Additionally, the sounds can be
+articulated in differents ways, e.g., staccato (short and separated)
+or legato (fluently bound together). The loudness of the notes can
+also be varied. Changes in loudness are called \emph{dynamics}.
+
+Silence is also an element of music. The musical terminology for
+silence within music is \emph{rest}.
+
+The basic unit of pitch is the \emph{octave}. The octave corresponds
+to a frequency ratio of 1:2. For example the pitch denoted by a'
+(frequency: 440 hertz) is one octave lower than a'' (frequency: 880
+hertz). Various instruments have a limited \emph{pitch range}, for
+example, a trumpet has a range of about 2.5 octaves. Not all
+instruments have ranges in the same register: a tuba also has a range
+of 2.5 octaves, but the range of the tuba is much lower.
+
+Musicology has a confusing mix of relative and absolute measures for
+pitches: the term `octave' refers to both a difference between two
+pitches (the frequency ratio of 1:2), and to a range of pitches. For
+example, the term `[eengestreept] octave' refers to the pitch range
+between 261.6 Hz and 523.3 Hz.
+
+
+The octave is divided into smaller pitch steps. In modern western
+music, every octave is divided into twelve approximately equidistant
+pitch steps, and each step is called a \emph{semitone}. Usually, the
+pitches in a musical piece come from a smaller subset of these twelve
+possible pitches. This smaller subset along with the musical
+functions fo the pitches is called the
+\emph{tonality}\footnote{Tonality also refers to the relations between
+ and functions of certain pitches. Since these do not have any
+ impact on notation, we ignore this} of the piece.
+
+
+The standard tonality that forms the basis of music notation
+(the key of C major) is a set of seven pitches within every octave.
+Each of these seven is denoted by a name. In English, these are names
+are (in rising pitch) denoted by c, d, e, f, g, a and b. Pitches that
+are a semitone higher or lower than one of these seven can be
+represented by suffixing the name with `sharp' or `flat'
+respectively (this is called an \emph{chromatic alteration}).
+
+A pitch therefore can be fully specified by a combination of the
+octave number, the note name and a chromatic alteration.
+Figure~\ref{fig:intro-pitches} shows the relation between names and
+frequencies.
+
+
+
+
+\begin{figure}[h]
+ \begin{center}
+ [te doen]
+ \end{center}
+ \caption{Pitches in western music. The octave number is denoted
+ by a superscript.}
+ \label{fig:intro-pitches}
+\end{figure}
+
+
+Many instruments can produce more than one note at the same time, e.g.
+pianos and guitars. When more notes are played simultaneously, they
+form a so-called \emph{chord}.
+
+The unit of duration is the \emph{beat}. When playing, the tempo is
+determined by setting the number of beats per minute. In western
+music, beats are often stressed in a regular pattern: for example
+Waltzes have a stress pattern that is strong-weak-weak, i.e. every
+note that starts on a `strong' beat is louder and has more pronounced
+articulation. This stress pattern is called \emph{meter}.
+
+\subsection{Music notation}
+
+In music notation, sounds and silences are represented by symbols that
+are called note and rest respectively.\footnote{These names serve a
+ double purpose: the same terms are used to denote the musical
+ concepts.} The shape of notes and rests indicates their duration
+(See figure~\ref{noteshapes}) relative to the whole note.
+
+\begin{figure}[h]
+ \begin{center}
+\begin{mudela}
+ \score {
+ \notes \transpose c''{ c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
+ \paper {
+ \translator {
+ \StaffContext
+ \remove "Staff_symbol_engraver";
+ \remove "Time_signature_engraver";
+ \remove "Bar_engraver";
+ \remove "Clef_engraver";
+ }
+linewidth = -1.;
+ }
+}
+\end{mudela}
+\begin{mudela}
+ \score {
+ \notes \transpose c''{ r\longa*1/4 r\breve*1/2 r1 r2 r4 r8 r16 r32 r64 }
+ \paper {
+ \translator {
+ \StaffContext
+ \remove "Staff_symbol_engraver";
+ \remove "Time_signature_engraver";
+ \remove "Bar_engraver";
+ \remove "Clef_engraver";
+ }
+ linewidth = -1.;
+ }
+}
+\end{mudela}
+ \caption{Note and rest shapes encode the length. At the top notes
+ are shown, at the bottom rests. From left to right a quadruple
+ note (\emph{longa}), double (\emph{breve}), whole, half,
+ quarter, eigth, sixteenth, thirtysecond and sixtyfourth. Each
+ note has half of the duration of its predecessor.}
+ \label{fig:noteshapes}
+\end{center}
+\end{figure}
+
+
+Notes are printed in a grid of horizontal lines called \emph{staff} to
+denote their pitch: each line represents the pitch of from the
+
+\subsection{Music typography}
+
+
+
+
+
+
+
+\bibliographystyle{hw-plain}
+\bibliography{engraving,boeken,colorado,computer-notation,other-packages}
+
+
+
+\end{document}
+
+The complexity of music notation was tackled by adopting a modular
+design: both the formatting system (which encodes the esthetic rules of
+notation), and the interpretation system (which encodes the semantic
+rules) are highly modular.
+
+
+The difficulty in creating a format for music notation is rooted in
+the fact that music is multi dimensional: each sound has its own
+duration, pitch, loudness and articulation. Additionally, multiple
+sounds may be played simultaneously. Because of this, there is no
+obvious way to ``flatten'' music into a context-free language.
+
+The difficulty in creating a printing engine is rooted in the fact
+that music notation complicated: it is very large graphical
+``language'' with many arbitrary esthetic and semantic conventions.
+Building a system that formats full fledged musical notation is a
+challenge in itself, regardless of whether it is part of a compiler or
+an editor.
+
+The fact that music and its notation are of a different nature,
+implies that the conversion between input notation is non-trivial.
+
+In LilyPond we solved the above problem in the following way:
+
--- /dev/null
+
+\input lilyponddefs
+
+\def\fetdef#1#2{%
+ \def#1{\hbox{\char#2}}}
+
+\input feta20
+
+\font\fetasixteenfont=feta16
+\font\fetaelevenfont=feta11
+\def\fetafont{\fetasixteenfont}
+
+\newdimen\ild
+\ild=4pt
+\newdimen\stemthick
+\stemthick=0.4pt
+
+\def\eighthstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt\raise
+ 3.5ex\hbox{\eighthflag}}}
+\def\texteighthflag{{\fetafont\raise 0ex\hbox{\fetafont\eighthflag}}}
+\def\textdeighthflag{{\fetafont\raise 0ex\hbox{\deighthflag}}}
+
+\def\texteighthnote{{\hbox{\hbox{\fetafont\quartball}\kern
+ -0.5\stemthick\eighthstem}}}
+\def\quarterstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt}}
+\def\textquarterstem{\quarterstem}
+\def\textchord{{\hbox{\fetafont\lower.5ex\hbox to
+ 0pt{\textquarterhead}\raise.5ex\hbox{\textquarterhead}\kern
+ -0.5\stemthick\eighthstem}}}
+\def\textbassclef{\hbox{\fetafont\bassclef}}
+\def\texttrebleclef{\hbox{\fetafont\trebleclef}}
+\def\textslur{\embeddedps{9.378744 -3.171539 3.923099 -3.171539 0.000000 0.000000 12.800000 0.000000 3.672177 -3.672177 9.127823 -3.672177 12.800000 0.000000 0.000000 0.000000 draw_slur}}
+
+\def\textmarcato{{\fetafont\raise 1ex\hbox{\hskip 1ex\sforzatoaccent}}}
+
+
+\def\textquarterhead{\hbox{\fetafont\raise 2.5pt\hbox{\quartball}}}
+\def\texteighthstem{\hbox{\lower 5pt\hbox{\eighthstem}}}
+\def\texthalfnote{{\hbox{\hbox{\fetafont\halfball}\kern -0.5\stemthick\quarterstem}}}
+\def\textquarternote{{\hbox{\hbox{\fetafont\quartball}\kern -0.5\stemthick\quarterstem}}}
+\def\textflat{{\fetafont\raise 1ex\hbox{\flat}}}
+\def\textsharp{{\fetafont\raise1ex\hbox{\sharp}}}
---- ../lilypond-1.1.20/NEWS Tue Jan 12 12:39:56 1999
-++ b/NEWS Tue Jan 12 18:17:32 1999
-@@ -1,3 +1,7 @@
-pl 20.ms1
- - mutopia : first movement of Sinfonia in G by Leopold Mozart
-
-********
- pl 20
-
- pl 20.jcn2
- - mutopia fixes; see preludes-1.ly for cross-staff beams and slurs
- - bf: broken interstaff slur
- - sm66: check for gmake
pl 20.jcn1
- interstaff slurs v0: preludes-1.ly
- warnings for silly interbeam settings
-pl 20
+pl 20.hwn1
+ - inclusion of WIP article about LilyPond.
+ - L.Mozart sinfonfia
+ - bf: [c8 [c8 c8]
+********
+pl 20
pl 19.jcn5
- interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly
pl 16.jcn1
- resurrected po-stuff
-********
-pl 16
-
*********
pl 16
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr/urg
+
+ * decimal point in \paper {}
+
> I have changed Mark_engraver to use the G_... classes.
> My implementation has the following shortcomings at the
> moment.
* fix: cello suites
- * fix: text on rests: rediculous dims
+ * fix: petites preludes (rediculous dims)
* fix extender
* gallina barlines.
* fix height of / collisions with lyrics (chords),
- see input/test/vertical-text.ly; input/test/repeat.ly
+ see input/test/vertical-text.ly
* repeat/volta:
- one volta spanner per score
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=20
-MY_PATCH_LEVEL=ms1
+PATCH_LEVEL=21
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
- AC_CHECK_PROGS(MAKE, make gmake, error)
+ AC_CHECK_PROGS(MAKE, make, error)
AC_CHECK_PROGS(FIND, find, error)
+
dnl system supplied INSTALL is unsafe; use our own install.
dnl AC_PROG_INSTALL
dnl if test "$INSTALL" = "bin/install-sh"; then
AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
AC_SUBST(PYTHON)
+
+ AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make)
if test $MAKE != "error" ; then
- $MAKE -v 2> /dev/null | grep GNU > /dev/null
+ $MAKE -v| grep GNU > /dev/null
if test "$?" = 1
then
AC_STEPMAKE_WARN(Please install *GNU* make)
AC_DEFUN(AC_STEPMAKE_MAN, [
AC_CHECK_PROGS(TROFF, troff, -echo no troff)
- AC_CHECK_PROGS(TBL, tbl, cat)
])
AC_DEFUN(AC_STEPMAKE_MSGFMT, [
PATHSEP = @PATHSEP@
PERL = @PERL@
PYTHON = @PYTHON@
-STRIPROFF = @STRIPROFF@
TAR= @TAR@
-TBL = @TBL@
+STRIPROFF = @STRIPROFF@
TROFF = @TROFF@
YODL= @YODL@
YODL2HTML= @YODL2HTML@
\score{
\type GrandStaff <
\type Staff=one \notes\relative c'{
- \stemup c4( c \translator Staff=two c )c
+ \stemup c8( c \translator Staff=two \stemup c )c
+ r2
\translator Staff=one
- \stemup c4( c \translator Staff=two c )c
- \stemup c4( c \translator Staff=one c )c
- \translator Staff=two
- \stemup c4( c \translator Staff=one c )c
- \translator Staff=two
- \stemup c4( \translator Staff=one c c )c
+ \stemdown c8( c \translator Staff=two \stemup c )c
+ r2
+ \stemdown c8( c \translator Staff=one \stemdown c )c
r2
\translator Staff=two
- \stemup c4( \translator Staff=one c \break c )c
+ \stemup c8( c \translator Staff=one \stemdown c )c
r2
- r1
- r1
- r1
}
\type Staff=two \notes\relative c'{
\clef bass;
- s1 s1 s1 s1 s1 s1 s1 s1 s1 s1
+ s1
+ s1
+ s1
+ s1
}
>
\paper{
minVerticalAlign = 3.0*\staffheight;
maxVerticalAlign = 3.0*\staffheight;
}
- %linewidth=100.\mm;
+ linewidth=-1.;
}
}
{
if (Beam_req * c = dynamic_cast<Beam_req*>(m))
{
- reqs_drul_[c->spantype_] = c;
+ Direction d =c->spantype_;
+
+ /*
+ Perhaps not print warnings ?
+ */
+ if (d == START && beam_p_)
+ {
+ m->warning ("Already have a Beam");
+ return false;
+ }
+ if (d == STOP && !beam_p_)
+ {
+ m->warning ("No Beam to end");
+ return false;
+ }
+ reqs_drul_[d ] = c;
return true;
}
return false;
Beam_engraver::do_removal_processing ()
{
typeset_beam ();
- finished_beam_p_ = beam_p_;
- finished_grouping_p_ = grouping_p_;
- typeset_beam ();
+ if (beam_p_)
+ {
+ warning ("Unfinished beam");
+ finished_beam_p_ = beam_p_;
+ finished_grouping_p_ = grouping_p_;
+ typeset_beam ();
+ }
}
void
Real notewidth = paper->note_width () * 0.8;
Real internote = interline / 2;
- Stem* stem_l = note->stem_l_;
+ Stem* stem_l_ = note->stem_l_;
/*
set o_.x () to middle of notehead or on the exact position of stem,
according to slur direction
*/
- o_.x () = stem_l->hpos_f ();
+ o_.x () = stem_l_->hpos_f ();
/*
- stem_l->dir == dir
+ stem_l_->dir == dir
________
| | / \
x| x| |x |x
*/
- if (stem_l->dir_ != dir)
- o_.x () -= 0.5 * notewidth * stem_l->dir_;
+ if (stem_l_->dir_ != dir)
+ o_.x () -= 0.5 * notewidth * stem_l_->dir_;
- o_.y () = stem_l->extent (Y_AXIS)[dir];
+ o_.y () = stem_l_->extent (Y_AXIS)[dir];
/*
leave a gap: slur mustn't touch head/stem
*/
o_.y () += 2.5 * internote * dir;
- if (stem_l->dir_ != dir)
+ if (stem_l_->dir_ != dir)
o_.y () += 1.0 * internote * dir;
- Slur* slur_l_ = stem_l->slur_l_;
+ Slur* slur_l_ = stem_l_->slur_l_;
if (slur_l_->encompass_arr_.size ()
- && stem_l->staff_sym_l_ != slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_)
+ && stem_l_->staff_sym_l_ != slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_)
{
- if (stem_l->staff_sym_l_->dim_cache_[Y_AXIS].valid_b ())
+ if (stem_l_->staff_sym_l_->dim_cache_[Y_AXIS].valid_b ())
{
- interstaff_f_ = stem_l->staff_sym_l_->absolute_coordinate (Y_AXIS)
+ slur_l_->interstaff_f_ = stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS)
- slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS);
}
else
if (slur_l_->vertical_align_drul_[MIN] !=
slur_l_->vertical_align_drul_[MAX])
warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
- interstaff_f_ = slur_l_->vertical_align_drul_[MIN];
+ slur_l_->interstaff_f_ = slur_l_->vertical_align_drul_[MIN];
// urg, guess staff order:
// if our stem ends higher, our staff is probably lower...
- if (stem_l->chord_start_f () > slur_l_->encompass_arr_[0]->stem_l_->chord_start_f ())
- interstaff_f_ *= -1;
+ if (stem_l_->chord_start_f () > slur_l_->encompass_arr_[0]->stem_l_->chord_start_f ())
+ slur_l_->interstaff_f_ *= -1;
}
- o_.y () += interstaff_f_;
+ o_.y () += slur_l_->interstaff_f_;
}
}
Encompass_info (Note_column const*, Direction);
Offset o_;
- Real interstaff_f_;
};
#endif // ENCOMPASS_INFO_HH
dir_ = stem_l_->dir_;
else if (head_l_arr_.size ())
{
- assert (false); // looks obsolete?
+ // assert (false); // looks obsolete?
dir_ = sign (head_positions_interval().center ());
}
}
int last = encompass_arr_.size () - 1;
// prebreak
- if (encompass_arr_.top () != spanned_drul_[RIGHT])
- last++;
-
- // postbreak
if (encompass_arr_[0] != spanned_drul_[LEFT])
first--;
+ // postbreak
+ if (encompass_arr_.top () != spanned_drul_[RIGHT])
+ last++;
+
Array<Offset> notes;
notes.push (Offset (0,0));
Encompass_info info (encompass_arr_[i], dir_);
notes.push (info.o_ - left);
}
- Encompass_info info (encompass_arr_[encompass_arr_.size () - 1], dir_);
- // urg:
- Slur* urg = (Slur*)this;
- urg->interstaff_f_ = info.interstaff_f_;
d.y () += interstaff_f_;
-
- // prebreak
- if (interstaff_f_ && (encompass_arr_.top () != spanned_drul_[RIGHT]))
- {
- Encompass_info info (encompass_arr_[encompass_arr_.size () - 1], dir_);
- d.y () -= info.o_.y () - interstaff_f_;
- }
-
notes.push (d);
return notes;
Begin3
Titel: LilyPond
-Versie: 1.1.20
-Inschrijf datum: 11JAN99
+Versie: 1.1.21
+Inschrijf datum: 12JAN99
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.1.20.tar.gz
+ 770k lilypond-1.1.21.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.20.tar.gz
+ 770k lilypond-1.1.21.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.1.20
-Entered-date: 11JAN99
+Version: 1.1.21
+Entered-date: 12JAN99
Description:
LilyPond is the GNU Project music typesetter. This program can print
beautiful sheet music from a music definition file. It can also play
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 770k lilypond-1.1.20.tar.gz
+ 770k lilypond-1.1.21.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.20.tar.gz
+ 770k lilypond-1.1.21.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.1.20
+Version: 1.1.21
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.20.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.21.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
% howto get rid of these ridiculous dimensions????
% to view the output, subsitute 0.0 with 0.0 in the .tex file...
-one = \type Voice=one \notes\relative c {
+% one = \type Voice=one \notes\relative c {
+% one = \notes\relative c {
+one = \type Staff=treble \notes\relative c {
\property Voice . textstyle = "italic"
-% rediculous dim...
-% r16\p_"legato"\< [g''-1( c-3 )e-5] r [g,-1( c )e]
- r16\p\< [g''-1( c-3 )e-5] r [g,-1( c )e]
+ r16\p_"legato"\< [g''-1( c-3 )e-5] r [g,-1( c )e]
r [g,( c )d] r [b-1( d-2 \!)g-5] |
- r16\mf [a,( d-2 ) g-5] r [a,(\< d )f-4]
+ r\mf [a,( d-2 ) g-5] r [a,(\< d )f-4]
r [a,( d )e-3] r [c-1( e-2 \!)a-5] |
- r16\f [b, e a-5] r [b, e-3 g-5]
+ r\f [b, e a-5] r [b, e-3 g-5]
r [c,-1 e-3 f-4] r [g, d'-3 f-5] |
-% all text is fat currently...
-% r [g,-"poco a poco dim." d'-4 e] r [g, c-2 e]
- r [g, d'-4 e] r [g, c-2 e]
+ r [g,-"poco a poco dim." d'-4 e] r [g, c-2 e]
r [a,-1 c-3 d-4] r [e, b'-3 d-5] |
r [e, b' c-4] r [e, a-2 c]
r [f,-1 a-3 bes-4] r [c, g'-3 bes-5] |
r [b, d a'-5] r [b, d g-4]
r [a, c g'-5] r [a, c f!-4] |
% ugh arpeggio
- \type Staff=treble <
+ <
{ \voiceone f4 r }
{ \voicetwo <g,4 d'> r }
>
\onevoice
% s
% ugh beam across staffs slur starts at lower staff
+% r16 [g,-1( b d] |
+% \voiceone
+% )b s4 [g'16-1( b-2 d] )b s s s [f'-2 g-3 b-5 f-2] |
+% \onevoice
\translator Staff=bass\stemup
r16 [g,,-5( b-4 d ]
[f-1 \translator Staff=treble\stemdown g16-1 b d] | \stemup )b
[d c'-5 b-4 a] [b-4 g-2 d'-5 f,-1] |
[g-4 e-2 f-1 d'-5] [c-4 b a g]
[f'-5 d-3 es-4 c-2] [fis,-1 es'-4 d-3 c-2] |
-% [b-1 d-5 b-3 g-1] [as-4-"cresc. e rall." f-2 g-3 d-1]
- [b-1 d-5 b-3 g-1] [as-4 f-2 g-3 d-1]
+ [b-1 d-5 b-3 g-1] [as-4-"cresc. e rall." f-2 g-3 d-1]
[es-2 fis-3 a-4 c-5]
- \type Staff=treble <
+ <
{ \voiceone r [c8 b16] }
- { \voicetwo [d,8 f-2] }
+ %%% urg urg ?{ \voicetwo [d,8 f-2] }
>
\onevoice |
<c1\mf g e>
\bar "|.";
}
-two = \type Voice=three \notes\relative c{
+% two = \notes\relative c{
+% two = \type Voice=three \notes\relative c{
+two = \type Staff=bass \notes\relative c{
\property Voice . textstyle = "roman"
c4-5 e-3 g-\mordent^"(\\textsharp)" g,4 |
- d'4-\mordent-5 f-3 a-\mordent^"(\\textsharp)" a,4 |
+ d'-\mordent-5 f-3 a-\mordent^"(\\textsharp)" a,4 |
e'-5 e'-\mordent-1 a,-4 b-\upprall |
c4 e,-4 fis gis-\downprall |
a4 c,-4 d e-\upprall |
f4-1 e d-3-\prall c |
g'-\mordent^"(\\textsharp)" g, g'-\mordent g, |
g'-\mordent g, g'-\mordent g, |
+% % ugh f should be at upper staff
+% g'-\mordent r r16 [g,-5( b-4 d] )f-1 s s s |
+% g'-\mordent r r16 [g,-5( b-4 d \translator Staff=treble )f-1 ] s s s |
+% \translator Staff=bass
+% s [g-5( b-4 d-2] )f-1 s s s s \clef "violin"; [g-4 b-2 d-1]
+% s s s s \clef bass; |
g' r s s | s s s s \clef bass; |
- \type Staff=bass <
+ <
+% { \voiceone g,,1 ~ g ~ g ~ g ~ g ~ g ~ g }
+% { \voicetwo g,1 ~ g ~ g ~ g ~ g ~ g ~ g }
{ \voicethree g1 ~ g ~ g ~ g ~ g ~ g ~ g }
{ \voicefour g,1 ~ g ~ g ~ g ~ g ~ g ~ g }
>
>
bass_staff = \type Staff = bass <
+% bass = Staff <
\clef "bass";
\global
\two
<
{
\voiceone
- f4-4\> ~ | [\!f8 e] [e32-4 f e8. ~] [e8 d-3]
+ f4-4\> ~ | \![f8 e] [e32-4 f e8. ~] [e8 d-3]
}
{ \voicetwo <d4 a> r4 cis-2 }
> |
\bar "|."; |
}
-dux = \type Voice=two \notes \relative c''{
+dux = \notes \relative c''{
\voicetwo
\clef violin;
}
-comes = \type Voice=one \notes \relative c'' {
+comes = \notes \relative c'' {
\voiceone
R1 |
R1 |
}
-bassdux = \type Voice=three \notes \relative c' {
+bassdux = \notes \relative c' {
\clef bass;
+
R1 |
R |
R |
[f,16 g] as4 [g16 f] es4 r8 es' |
[d c g' g,]
%%30
- \type Staff=bass <
- {\voicethree c2 ~ | c1 ~ | c1 }
- {\voicefour c,2 ~ | c1 ~ | c1 }
+ %urg
+ %using only \type Staff or \voiceone/two don't work anymore?
+ %moreover, the ties are not fooled by this anymore
+ \type Staff <
+ {\voiceone c2 ~ | c1 ~ | c1 }
+ {\voicetwo c,2 ~ | c1 ~ | c1 }
>
}
+ %{
+Dit is de fout:
+
+GNU LilyPond 1.1.19.
+Parsing...[/home/lily/usr/share/lilypond/ly/init.ly[/home/lily/usr/share/lilypond/ly/declarations.ly[/home/lily/usr/share/lilypond/ly/dynamic.ly][/home/lily/usr/share/lilypond/ly/nederlands.ly][/home/lily/usr/share/lilypond/ly/chord-modifiers.ly][/home/lily/usr/share/lilypond/ly/script.ly][/home/lily/usr/share/lilypond/ly/paper20.ly[/home/lily/usr/share/lilypond/ly/table20.ly][/home/lily/usr/share/lilypond/ly/table13.ly][/home/lily/usr/share/lilypond/ly/table16.ly][/home/lily/usr/share/lilypond/ly/params.ly[/home/lily/usr/share/lilypond/ly/a4.ly][/home/lily/usr/share/lilypond/ly/paper.ly][/home/lily/usr/share/lilypond/ly/engraver.ly]]][/home/lily/usr/share/lilypond/ly/midi.ly[/home/lily/usr/share/lilypond/ly/performer.ly]][/home/lily/usr/share/lilypond/ly/property.ly][/home/lily/usr/share/lilypond/scm/lily.scm]][Sinfonia.ly]]
+Interpreting music...[8][16][24][32][40]
+Sinfonia.ly:239:24: warning: barcheck failed by: 1/4:
+ \times 2/3 {[e g fis] |
+ [e fis g]} | fis4 r |
+
+Sinfonia.ly:87:34: warning: barcheck failed by: 1/4:
+ \times 2/3 {[g'8 b a] [g fis e] |
+ [a d, cis] [d cis d] |
+
+Sinfonia.ly:240:25: warning: barcheck failed by: 1/4:
+ \times 2/3 {[e8 g fis] |
+ [e fis g]} | fis4 r |
+
+Sinfonia.ly:88:21: warning: barcheck failed by: 1/4:
+ [g, b a] [g fis e] |
+ [a d, cis] [d cis d]} |
+[48][56][64][72][80][88][96][104][112][120][123]
+time: 24.16 seconds
+Preprocessing elements... lilypond: score-element.cc:134: class
+Paper_def * Score_element::paper() const: Assertion `pscore_l_' failed.
+
+%}
+
\header{
filename="Sinfonia.ly";
title="Sinfonia";
arranger="(1719-1787)";
copyright="public domain";
enteredby="Maarten Storm";
-
}
s2*5 \break
s2*5 \break
s2*5 \break
+ s2*5 \break
s2*5 \break
s2*5 \break
s2*4 \break
s2*5 \bar ":|";
-
%fine
}
}
dynamics = \notes{
- \type Voice=i
- s16\f s8. s4 | s2*17
- s8\p s4. | s8\f s4. | s2*4
- s8\p s4. | s8\f s4. | s2*29
- s8\p s4. | s2 |
- s8\f s4. | s2 | s8\p s4. | s2 | s8\f s4. | s2*47
- s16 s16\p s4. | s2 |
- s16 s16\f s4. |
- s16 s16\p s4. |
- s16 s16\f s4. |
+% \type Voice=i
}
violinoi = \notes \relative c'{
\type Voice=i
\clef "violin";
- \stemup
- [<g8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
+ [<g8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
%5
- \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
%11
[a b c d] [e c b a] | [b c d c] [d b a g] |
%15
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [g'8\p d c] [b a g] |
%20
- \times 2/3 {[f' d c]} \times 2/3 {[b a g]} |
- \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
- [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
+ [f'\f d c] [b a g]} |
+ [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
%26
- \times 2/3 {[g' e d] [cis b a]} |
- \stemup [<d,8 a' fis'> fis' fis fis] \stemboth|
- <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
- \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} |
- \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
+ [g'\f e d] [cis b a]} | [<d,8 a' fis'> fis' fis fis] |
+ <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
+ [g fis g] [b, a g] | [a b cis] [d e fis] |
%32
- \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} |
- \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
- \times 2/3 {[e d e]} \times 2/3 {[g, fis e]} |
+ [fis e fis] [a, g fis] | [g a b] [cis d e] |
+ [e d e] [g, fis e]}
%35
[fis16 d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
[cis' a b a] [b a b a] | [d a b a] [b a b a] |
[e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
%43
- \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
- \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+ \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
+ [g, b a] [g fis e] | [a d, cis] [d cis d]} |
%47
[b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
%50
a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 gis,16 a4 |
r8 [fis g! a] | d,2
- [d'8 e f a,] | [gis a] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ [d'8\p e f a,] | [gis a] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
- [c'8 d e g,?] | [fis g] r4 |
- \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
+ [c'8\p d e g,?] | [fis g] r4 |
+ \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
%64 : reprise
- \stemup [<g,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] | \stemboth [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
%70
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [f\f d c] [b a g]} | [e' c] r4 |
%78
- \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |
- \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} |
- \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
- \times 2/3 {[d e fis]} \times 2/3 {[g a b]} |
- \times 2/3 {[b a b]} \times 2/3 {[d, c b]} |
- \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
- \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] |
+ [g e d] [cis b a]} | [fis' d] r4 |
+ \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
+ [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
+ [a g a] [c, b a]} |
%88
[b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
[e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
%96
- \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
- \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
+ \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] |
+ [d c' c] [c b a] | [d g, fis] [g fis g]} |
%100
[e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
- [b16 b a g] a4^\trill | g g' |
+ [b16 b a g] a4 | g g' |
%106
r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 |
[fis16 g a g] [fis e d c] | [b g' g g] g4:16 |
- [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
- [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4
+ [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
+ [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4
%fine
}
violinoii = \notes \relative c'{
\type Voice=i
\clef "violin";
- \stemup [<g8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
+ [<g8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
%5
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
%11
[a b c d] [e c b a] | [b c d c] [d b a g] |
%15
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f' d c]} \times 2/3 {[b a g]} |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [g'8\p d c] [b a g] | [f'\f d c] [b a g]} |
%21
- \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
- [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
+ [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
%26
- \times 2/3 {[g' e d]} \times 2/3 {[cis b a]} |
- \stemup [<d, a' fis'> fis' fis fis] \stemboth |
- <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
- \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} |
- \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
+ [g'\f e d] [cis b a]} | [<d, a' fis'> fis' fis fis] |
+ <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
+ [g fis g] [b, a g] | [a b cis] [d e fis] |
%32
- \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} |
- \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
- \times 2/3 {[e d e]} \times 2/3 {[g, fis e]}
+ [fis e fis] [a, g fis] | [g a b] [cis d e] |
+ [e d e] [g, fis e]}
%35
[fis16 d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
[cis' a b a] [b a b a] | [d a b a] [b a b a] |
[e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
%43
- \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
- \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+ \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
+ [g, b a] [g fis e] | [a d, cis] [d cis d]} |
%47
[b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
%50
a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 g,16 a4 |
r8 [fis g! a] | d,2
- f4 r8 f | [e-. ~ e-.] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ f4\p r8 f | [e-. ~ e-.] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
- e'4 r8 e | [d-. ~ d-.] r4 |
- \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
+ e'4\p r8 e | [d-. ~ d-.] r4 |
+ \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
%64 : reprise
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
%70
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [f\f d c] [b a g]} | [e' c] r4 |
%78
- \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |
- \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} |
- \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
- \times 2/3 {[d e fis]} \times 2/3 {[g a b]} |
- \times 2/3 {[b a b]} \times 2/3 {[d, c b]} |
- \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
- \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] |
+ [g e d] [cis b a]} | [fis' d] r4 |
+ \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
+ [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
+ [a g a] [c, b a]} |
%88
[b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
[e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
%96
- \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
- \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
+ \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] |
+ [d c' c] [c b a] | [d g, fis] [g fis g]} |
%100
[e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
- [b16 b a g] a4^\trill | g g' |
+ [b16 b a g] a4 | g g' |
%106
r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 |
[fis16 g a g] [fis e d c] | [b g' g g] g4:16 |
- [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
- [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4
+ [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
+ [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4
%fine
}
[e16 f? g f] [e f g f] | [g8 e e d] |
[cis16 d e d] [cis d e d] | cis4 r |
%25
- e e | e e | [fis16 g a g] [fis g a g] |
- [fis8 fis a a] | d,4 b | b g' | cis,? a |
+ e\p e | e\f e | [fis16 g a g] [fis g a g] |
+ [fis8 fis a a] | d4 b | b g' | cis,? a |
a fis' b, g' | a a, |
%35
[a8 fis' fis fis] | r [g g g] | r [a a a] |
r [b, b b] | r [cis cis cis] | r [d d d] | r [e e e] |
r [fis fis fis] |
%43
- \times 2/3 {[e g fis]} \times 2/3 {[e fis g]} | fis4 r |
- \times 2/3 {[e8 g fis]} \times 2/3 {[e fis g]} | fis4 r |
+ \times 2/3 {[e g fis] | [e fis g]} | fis4 r |
+ \times 2/3 {[e8 g fis] | [e fis g]} | fis4 r |
%47
[d8 g d fis] | r [e a, d] | r b [b cis16 d] |
[e8 d e cis] | [d d d cis] | d4 d' | r8 r16 gis, a4 |
r8 [fis8 g! a] | d,2
- [d8 d d d] | [d c!] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ [d8\p d d d] | [d c!] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
[c8\p c c c] | [c b] r4 | [a8 fis e g] | [g fis] r4 |
%64 : reprise
[d8 b b b] | r [c c c] | r [d d d] | r [e e e] | r [fis fis fis] |
r [g g g] | r [a a a] | r [b b b] |
%96
- \times 2/3 {[a c b]} \times 2/3 {[a b c]} | b4 r |
- \times 2/3 {[a,8 a g]} \times 2/3 {[a b c]} |
+ \times 2/3 {[a c b] [a b c]} | b4 r | \times 2/3 {[a,8 a g] [a b c]} |
b4 r | [g8 c g b] | r [a' d, g] | r e [e fis16 g] | [a8 g a fis] |
%104
- g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c? d] | [g, b d e] |
+ g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c! d] | [g, b d e] |
[a, a a' a] | [d, b d e] | [a, a a' a] | [d, d e d] | [d d e d] |
[d g g fis] | [g d] g,4
%fine
[g16 a b a] [g a b a] | [g8 g, g g'] |
%5
[g16 a b a] [g a b a] | [g8 g,] r4 |
- [c'8 c,] [e fis] | [g g g b,] |
- [c c] [e fis] | [g g b c] |
+ [c'8 c,] [e_"6" fis_"6"_"5" | [g g g b,_"6"] |
+ [c c] [e_"6" fis_"6"_"5" | [g g b_"6" c] |
%11
- [d d d c] | [b b b b] | [fis fis fis fis] |
- [g g b c] | [d fis, fis fis] | [g16 g fis e] [d c b a] |
+ [d d d c_"2"] | [b_"6" b b b] | [fis_"6"_"5" fis fis fis] |
+ [g g b_"6" c] | [d fis,_"6"_"5" fis fis] | [g16 g fis e] [d c b a] |
%17
[g g' b a] [g a b a] | g4 r | b, b | b b |
%21
g8 r fis r | e r d r | r [e e d] | [cis b cis a] | [d fis g a] |
d,4 d' | r8 r16 gis, a4 | r8 [fis g! a] | d,2
r2 | r |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
r2 | r |
[f'8 d g g,] | [d' d'] [d16 c b a] |
[g16 a b a] [g a b a] | [g8 g, g g'] |
%68
[g16 a b a] [g a b a] | g4 r |
- [c8 c,] [e fis] | [g g b, c] | [e fis fis fis] |
+ [c8 c,] [e fis] | [g g b c] | [e fis fis fis] |
%73
[g16 g, a b] [c d e fis] | [g a b a] [g a b a] | g4 r |
b, b | [c8 c'16 d] [e d cis b] | [a b cis b] [a b cis b] |
%79
a4 r | cis,4 cis | [d8 d'16 e] [d8 b] |
- c4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
+ c?4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
%90
[b8 b, b b] | c2:8 | d2:8 | e2:8 | fis2:8 | g2:8 |
fis4 fis | g r | fis fis | g r | c8 r b r | a r g r |
r [a a g] | [fis e fis d] | [g, b c d] | g,4 g' |
%106
- r8 r16 cis, d4 | r8 [b c? d] | [g, g' b c] | [d fis, fis fis] |
+ r8 r16 cis, d4 | r8 [b c! d] | [g, g' b c] | [d fis, fis fis] |
[g g, b c] | [d fis fis fis] | [g b, c d] | [g, b c d] |
[g, b c d] | [g d] g,4
%fine
\score{
\type StaffGroup <
- \type Staff = i < %\tempi
- \global \dynamics \violinoi >
+ \type Staff = i < \tempi \global \dynamics \violinoi >
\type Staff = ii < \global \dynamics \violinoii >
\type Staff = iii < \global \dynamics \viola >
\type Staff = iv < \global \dynamics \bassocontinuo >
>
- \header{
- piece="I. Allegro";
- }
- \paper{
- \translator { \OrchestralScoreContext }
- }
+ \paper{
+ % \translator { \OrchestralScoreContext }
+ }
\midi{ \tempo 4 = 100; }
}
+
+
+
-pl 66
- - check for tbl and gmake
-
pl 65
- unix style pathsep/dirsep for cygwin
PACKAGE_NAME=StepMake
MAJOR_VERSION=0
MINOR_VERSION=1
-PATCH_LEVEL=66
+PATCH_LEVEL=65
MY_PATCH_LEVEL=
# use the above to send patches, always empty for released version:
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
- AC_CHECK_PROGS(MAKE, make gmake, error)
+ AC_CHECK_PROGS(MAKE, make, error)
AC_CHECK_PROGS(FIND, find, error)
+
dnl system supplied INSTALL is unsafe; use our own install.
dnl AC_PROG_INSTALL
dnl if test "$INSTALL" = "bin/install-sh"; then
AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
AC_SUBST(PYTHON)
+
+ AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make)
if test $MAKE != "error" ; then
- $MAKE -v 2> /dev/null | grep GNU > /dev/null
+ $MAKE -v| grep GNU > /dev/null
if test "$?" = 1
then
AC_STEPMAKE_WARN(Please install *GNU* make)
AC_DEFUN(AC_STEPMAKE_MAN, [
AC_CHECK_PROGS(TROFF, troff, -echo no troff)
- AC_CHECK_PROGS(TBL, tbl, cat)
])
AC_DEFUN(AC_STEPMAKE_MSGFMT, [
PATHSEP = @PATHSEP@
PERL = @PERL@
PYTHON = @PYTHON@
-STRIPROFF = @STRIPROFF@
TAR= @TAR@
-TBL = @TBL@
+STRIPROFF = @STRIPROFF@
TROFF = @TROFF@
YODL= @YODL@
YODL2HTML= @YODL2HTML@