From 9088acf723535f4bcf2041ea942c8e0fd9226004 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 12 Jan 1999 16:00:48 +0100 Subject: [PATCH] release: 1.1.21 --- Documentation/tex/GNUmakefile | 2 +- Documentation/tex/lilypond-overview.doc | 389 ++++++++++++++++++ Documentation/tex/musicnotes.sty | 42 ++ NEWS | 23 +- TODO | 7 +- VERSION | 4 +- aclocal.m4 | 8 +- config.make.in | 3 +- input/test/slur-interstaff.ly | 24 +- lily/beam-engraver.cc | 27 +- lily/encompass-info.cc | 30 +- lily/include/encompass-info.hh | 1 - lily/note-column.cc | 2 +- lily/slur.cc | 20 +- make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- .../J.S.Bach/Petites-Preludes/preludes-1.ly | 46 ++- .../J.S.Bach/Petites-Preludes/preludes-5.ly | 2 +- mutopia/J.S.Bach/wtk1-fugue2.ly | 16 +- mutopia/L.Mozart/sinfonia.ly | 260 ++++++------ stepmake/NEWS | 3 - stepmake/VERSION | 2 +- stepmake/aclocal.m4 | 8 +- stepmake/config.make.in | 3 +- 25 files changed, 686 insertions(+), 256 deletions(-) create mode 100644 Documentation/tex/lilypond-overview.doc create mode 100644 Documentation/tex/musicnotes.sty diff --git a/Documentation/tex/GNUmakefile b/Documentation/tex/GNUmakefile index 6102deb049..4d5c1ecc18 100644 --- a/Documentation/tex/GNUmakefile +++ b/Documentation/tex/GNUmakefile @@ -16,7 +16,7 @@ OUTTEX_FILES = $(addprefix $(outdir)/, $(TEX_FILES)) 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) diff --git a/Documentation/tex/lilypond-overview.doc b/Documentation/tex/lilypond-overview.doc new file mode 100644 index 0000000000..f5eea5a448 --- /dev/null +++ b/Documentation/tex/lilypond-overview.doc @@ -0,0 +1,389 @@ +%-*-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 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 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: + diff --git a/Documentation/tex/musicnotes.sty b/Documentation/tex/musicnotes.sty new file mode 100644 index 0000000000..424c10c8a2 --- /dev/null +++ b/Documentation/tex/musicnotes.sty @@ -0,0 +1,42 @@ + +\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}}} diff --git a/NEWS b/NEWS index eef4343b1e..8cb80336cd 100644 --- a/NEWS +++ b/NEWS @@ -1,23 +1,15 @@ ---- ../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 @@ -111,9 +103,6 @@ pl 16.jcn2 pl 16.jcn1 - resurrected po-stuff -******** -pl 16 - ********* pl 16 diff --git a/TODO b/TODO index 6b95103793..7daa95514f 100644 --- a/TODO +++ b/TODO @@ -7,6 +7,9 @@ done, or is an idea that I want to think about 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. @@ -47,7 +50,7 @@ BUGS: * fix: cello suites - * fix: text on rests: rediculous dims + * fix: petites preludes (rediculous dims) * fix extender @@ -68,7 +71,7 @@ BUGS: * 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 diff --git a/VERSION b/VERSION index 7d8506707f..95bccb8c61 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ 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. diff --git a/aclocal.m4 b/aclocal.m4 index c6bcc95f08..15d012b7a4 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -267,9 +267,10 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ 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 @@ -282,8 +283,10 @@ dnl fi 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) @@ -447,7 +450,6 @@ AC_DEFUN(AC_STEPMAKE_GETTEXT, [ AC_DEFUN(AC_STEPMAKE_MAN, [ AC_CHECK_PROGS(TROFF, troff, -echo no troff) - AC_CHECK_PROGS(TBL, tbl, cat) ]) AC_DEFUN(AC_STEPMAKE_MSGFMT, [ diff --git a/config.make.in b/config.make.in index 442d65c0a4..a2a43b481f 100644 --- a/config.make.in +++ b/config.make.in @@ -53,9 +53,8 @@ MSGFMT = @MSGFMT@ PATHSEP = @PATHSEP@ PERL = @PERL@ PYTHON = @PYTHON@ -STRIPROFF = @STRIPROFF@ TAR= @TAR@ -TBL = @TBL@ +STRIPROFF = @STRIPROFF@ TROFF = @TROFF@ YODL= @YODL@ YODL2HTML= @YODL2HTML@ diff --git a/input/test/slur-interstaff.ly b/input/test/slur-interstaff.ly index 4670c82701..2d6ccbf281 100644 --- a/input/test/slur-interstaff.ly +++ b/input/test/slur-interstaff.ly @@ -1,25 +1,23 @@ \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{ @@ -30,6 +28,6 @@ minVerticalAlign = 3.0*\staffheight; maxVerticalAlign = 3.0*\staffheight; } - %linewidth=100.\mm; + linewidth=-1.; } } diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 0b2e9af091..44fb146c47 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -29,7 +29,22 @@ Beam_engraver::do_try_music (Music *m) { if (Beam_req * c = dynamic_cast(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; @@ -111,9 +126,13 @@ void 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 diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc index 6adca21c22..f8854f0292 100644 --- a/lily/encompass-info.cc +++ b/lily/encompass-info.cc @@ -29,15 +29,15 @@ Encompass_info::Encompass_info (Note_column const* note, Direction dir) 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 @@ -45,25 +45,25 @@ Encompass_info::Encompass_info (Note_column const* note, Direction dir) */ - 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 @@ -72,12 +72,12 @@ Encompass_info::Encompass_info (Note_column const* note, Direction dir) 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_; } } diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh index 3b0d65f593..511a24404d 100644 --- a/lily/include/encompass-info.hh +++ b/lily/include/encompass-info.hh @@ -20,7 +20,6 @@ struct Encompass_info Encompass_info (Note_column const*, Direction); Offset o_; - Real interstaff_f_; }; #endif // ENCOMPASS_INFO_HH diff --git a/lily/note-column.cc b/lily/note-column.cc index 826b18a113..2a0805d902 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -68,7 +68,7 @@ Note_column::do_pre_processing() dir_ = stem_l_->dir_; else if (head_l_arr_.size ()) { - assert (false); // looks obsolete? + // assert (false); // looks obsolete? dir_ = sign (head_positions_interval().center ()); } } diff --git a/lily/slur.cc b/lily/slur.cc index e5b9f4d88d..f8a0fc3672 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -265,13 +265,13 @@ Slur::get_encompass_offset_arr () const 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 notes; notes.push (Offset (0,0)); @@ -280,19 +280,7 @@ Slur::get_encompass_offset_arr () const 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; diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index dc3ad56585..3d42f5d763 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ 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 diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 4ad90c375c..1830b4f212 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ 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 @@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys) 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 diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 15baf5d75c..f9c64572b6 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ 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 diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly index d544c730f7..bc7bd540d0 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly @@ -18,19 +18,17 @@ copyright = "public domain"; % 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] | @@ -41,13 +39,17 @@ one = \type Voice=one \notes\relative c { 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 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 @@ -76,30 +78,39 @@ one = \type Voice=one \notes\relative c { [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 | \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 } > @@ -117,6 +128,7 @@ treble_staff = \type Staff = treble < > bass_staff = \type Staff = bass < +% bass = Staff < \clef "bass"; \global \two diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly index 9238f1324b..0a79332431 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly @@ -87,7 +87,7 @@ one = \notes\relative c{ < { \voiceone - f4-4\> ~ | [\!f8 e] [e32-4 f e8. ~] [e8 d-3] + f4-4\> ~ | \![f8 e] [e32-4 f e8. ~] [e8 d-3] } { \voicetwo r4 cis-2 } > | diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index 3ad507b208..946ffbe4d7 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -25,7 +25,7 @@ global = \notes { \bar "|."; | } -dux = \type Voice=two \notes \relative c''{ +dux = \notes \relative c''{ \voicetwo \clef violin; @@ -77,7 +77,7 @@ dux = \type Voice=two \notes \relative c''{ } -comes = \type Voice=one \notes \relative c'' { +comes = \notes \relative c'' { \voiceone R1 | R1 | @@ -119,8 +119,9 @@ comes = \type Voice=one \notes \relative c'' { } -bassdux = \type Voice=three \notes \relative c' { +bassdux = \notes \relative c' { \clef bass; + R1 | R | R | @@ -158,9 +159,12 @@ bassdux = \type Voice=three \notes \relative c' { [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 } > } diff --git a/mutopia/L.Mozart/sinfonia.ly b/mutopia/L.Mozart/sinfonia.ly index f7d2ed9589..17bc4457e0 100644 --- a/mutopia/L.Mozart/sinfonia.ly +++ b/mutopia/L.Mozart/sinfonia.ly @@ -1,3 +1,31 @@ + %{ +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"; @@ -6,7 +34,6 @@ composer="Leopold Mozart"; arranger="(1719-1787)"; copyright="public domain"; enteredby="Maarten Storm"; - } @@ -32,11 +59,11 @@ global = \notes{ 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 } @@ -47,27 +74,17 @@ tempi = \notes{ } 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 - [ g'' g g] \stemboth | [g16 a b a] [g a b a] | - \stemup [ g'' g g] \stemboth | [g16 a b a] [g a b a] | + [ g'' g g] | [g16 a b a] [g a b a] | + [ g'' g g] | [g16 a b a] [g a b a] | %5 - \stemup [ g'' g g] \stemboth | [g16 d c b] [a g fis 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 @@ -75,82 +92,69 @@ violinoi = \notes \relative c'{ [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 [ 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]} | + [ 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 [ e' e e] | | - [ 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]} | + [ e' e e] | | + [ 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 [ fis' fis fis] \stemboth| - | \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]} | [ fis' fis 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'' g g] | \stemdown [g16 a b a] [g a b a] | - \stemup [ g'' g g] | \stemdown [g16 a b a] [g a b a] | - \stemup [ g'' g g] | \stemboth [g16 d c b] [a g fis g] | + [ g'' g g] | [g16 a b a] [g a b a] | + [ g'' g g] | [g16 a b a] [g a b a] | + [ 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 [ 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 | + [ g'' g g] | \times 2/3 {[g8 d c] [b a g] | + [f\f d c] [b a g]} | [e' c] r4 | %78 - \stemup [ 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]} | + [ 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 } @@ -158,10 +162,10 @@ violinoi = \notes \relative c'{ violinoii = \notes \relative c'{ \type Voice=i \clef "violin"; - \stemup [ g'' g g] \stemboth | [b,16 c d c] [b c d c] | - \stemup [ g'' g g] \stemboth | [b,16 c d c] [b c d c] | + [ g'' g g] | [b,16 c d c] [b c d c] | + [ g'' g g] | [b,16 c d c] [b c d c] | %5 - \stemup [ g'' g g] \stemboth | [g16 d c b] [a g fis 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 @@ -169,82 +173,68 @@ violinoii = \notes \relative c'{ [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 [ 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]} | + [ 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 [ e' e e] | | - [ 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]} | + [ e' e e] | | + [ 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 [ fis' fis fis] \stemboth | - | \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]} | [ fis' fis 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'' g g] \stemboth | [b,16 c d c] [b c d c] | - \stemup [ g'' g g] \stemboth | [b,16 c d c] [b c d c] | - \stemup [ g'' g g] \stemboth | [g16 d c b] [a g fis g] | + [ g'' g g] | [b,16 c d c] [b c d c] | + [ g'' g g] | [b,16 c d c] [b c d c] | + [ 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 [ 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 | + [ g'' g g] | \times 2/3 {[g8 d c] [b a g] | + [f\f d c] [b a g]} | [e' c] r4 | %78 - \stemup [ 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]} | + [ 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 } @@ -266,22 +256,22 @@ viola = \notes \relative c'{ [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 @@ -300,11 +290,10 @@ viola = \notes \relative c'{ [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 @@ -318,11 +307,11 @@ bassocontinuo = \notes \relative c'{ [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 @@ -338,7 +327,7 @@ bassocontinuo = \notes \relative c'{ 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] | @@ -347,19 +336,19 @@ bassocontinuo = \notes \relative c'{ [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 @@ -368,18 +357,17 @@ bassocontinuo = \notes \relative c'{ \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; } } + + + diff --git a/stepmake/NEWS b/stepmake/NEWS index c2935e25ab..97e21a5ad4 100644 --- a/stepmake/NEWS +++ b/stepmake/NEWS @@ -1,6 +1,3 @@ -pl 66 - - check for tbl and gmake - pl 65 - unix style pathsep/dirsep for cygwin diff --git a/stepmake/VERSION b/stepmake/VERSION index 77de07ba24..a2ba451210 100644 --- a/stepmake/VERSION +++ b/stepmake/VERSION @@ -1,7 +1,7 @@ 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: diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index ff733a0c2d..3df8f7b6c8 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -265,9 +265,10 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ 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 @@ -280,8 +281,10 @@ dnl fi 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) @@ -445,7 +448,6 @@ AC_DEFUN(AC_STEPMAKE_GETTEXT, [ AC_DEFUN(AC_STEPMAKE_MAN, [ AC_CHECK_PROGS(TROFF, troff, -echo no troff) - AC_CHECK_PROGS(TBL, tbl, cat) ]) AC_DEFUN(AC_STEPMAKE_MSGFMT, [ diff --git a/stepmake/config.make.in b/stepmake/config.make.in index 442d65c0a4..a2a43b481f 100644 --- a/stepmake/config.make.in +++ b/stepmake/config.make.in @@ -53,9 +53,8 @@ MSGFMT = @MSGFMT@ PATHSEP = @PATHSEP@ PERL = @PERL@ PYTHON = @PYTHON@ -STRIPROFF = @STRIPROFF@ TAR= @TAR@ -TBL = @TBL@ +STRIPROFF = @STRIPROFF@ TROFF = @TROFF@ YODL= @YODL@ YODL2HTML= @YODL2HTML@ -- 2.39.2