diff options
245 files changed, 5831 insertions, 6975 deletions
diff --git a/Documentation/man/lilypond.yo b/Documentation/man/lilypond.yo index 0268efdc9f..ddfdf4ad54 100644 --- a/Documentation/man/lilypond.yo +++ b/Documentation/man/lilypond.yo @@ -147,7 +147,7 @@ dit(GNU url(LilyPond)(http://www.cs.uu.nl/people/hanwen/lilypond/index.html)) GNU LilyPond is updated very frequently, the latest version is always available at: -lurl(ftp://pcnov095.win.tue.nl/pub/lilypond). This FTP site is mirrored +lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond). This FTP site is mirrored at a number of sites; consult the project web pages for information about mirrors. diff --git a/Documentation/man/out/lilypond.1 b/Documentation/man/out/lilypond.1 index 9c844fb6b0..f4e11ebc02 100644 --- a/Documentation/man/out/lilypond.1 +++ b/Documentation/man/out/lilypond.1 @@ -141,7 +141,7 @@ some standard music files\&. It also has the complete LilyPond documentation .PP GNU LilyPond is updated very frequently, the latest version is always available at: -ftp://pcnov095\&.win\&.tue\&.nl/pub/lilypond\&. This FTP site is mirrored +ftp://ftp\&.cs\&.uu\&.nl/pub/GNU/LilyPond\&. This FTP site is mirrored at a number of sites; consult the project web pages for information about mirrors\&. .PP diff --git a/Documentation/tex/feta20.sty b/Documentation/tex/feta20.sty new file mode 100644 index 0000000000..0dbfcf90cc --- /dev/null +++ b/Documentation/tex/feta20.sty @@ -0,0 +1,146 @@ +% Creator: mf-to-table.py version 0.7 +% Automatically generated on +% Do not edit +% input from out/feta20.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\breverest{4} +\fetdef\longarest{5} +\fetdef\multirest{6} +\fetdef\quartrest{7} +\fetdef\eighthrest{8} +\fetdef\sixteenthrest{9} +\fetdef\thirtysecondrest{10} +\fetdef\sixtyfourthrest{11} +\fetdef\hundredtwentyeighthrest{12} + +% accidentals +\fetdef\sharp{13} +\fetdef\natural{14} +\fetdef\flat{15} +\fetdef\flatflat{16} +\fetdef\sharpsharp{17} +\fetdef\rightparen{18} +\fetdef\leftparen{19} + +% dots +\fetdef\dot{20} +\fetdef\repeatcolon{21} + +% balls +\fetdef\brevisball{22} +\fetdef\brevisledger{23} +\fetdef\longaball{24} +\fetdef\longaledger{25} +\fetdef\wholeball{26} +\fetdef\wholeledger{27} +\fetdef\halfball{28} +\fetdef\halfledger{29} +\fetdef\quartball{30} +\fetdef\quartledger{31} + +% scripts +\fetdef\ufermata{32} +\fetdef\dfermata{33} +\fetdef\thumb{34} +\fetdef\sforzatoaccent{35} +\fetdef\staccato{36} +\fetdef\ustaccatissimo{37} +\fetdef\dstaccatissimo{38} +\fetdef\tenuto{39} +\fetdef\umarcato{40} +\fetdef\dmarcato{41} +\fetdef\ouvert{42} +\fetdef\plusstop{43} +\fetdef\upbow{44} +\fetdef\downbow{45} +\fetdef\reverseturn{46} +\fetdef\turn{47} +\fetdef\trill{48} +\fetdef\upedalheel{49} +\fetdef\dpedalheel{50} +\fetdef\upedaltoe{51} +\fetdef\dpedaltoe{52} +\fetdef\flageolet{53} +\fetdef\trilelement{54} +\fetdef\prall{55} +\fetdef\mordent{56} +\fetdef\prallprall{57} +\fetdef\prallmordent{58} +\fetdef\upprall{59} +\fetdef\downprall{60} +\fetdef\accDiscant{61} +\fetdef\accDiscantF{62} +\fetdef\accDiscantEh{63} +\fetdef\accDiscantE{64} +\fetdef\accDiscantFE{65} +\fetdef\accDiscantFEh{66} +\fetdef\accDiscantEE{67} +\fetdef\accDiscantFEE{68} +\fetdef\accDiscantEEE{69} +\fetdef\accDiscantFEEE{70} +\fetdef\accDiscantS{71} +\fetdef\accDiscantFS{72} +\fetdef\accDiscantES{73} +\fetdef\accDiscantEhS{74} +\fetdef\accDiscantFES{75} +\fetdef\accDiscantFEhS{76} +\fetdef\accDiscantEES{77} +\fetdef\accDiscantFEES{78} +\fetdef\accDiscantEEES{79} +\fetdef\accDiscantFEEES{80} +\fetdef\accDiscantSS{81} +\fetdef\accDiscantESS{82} +\fetdef\accDiscantEESS{83} +\fetdef\accDiscantEEESS{84} +\fetdef\accFreebass{85} +\fetdef\accFreebassF{86} +\fetdef\accFreebassE{87} +\fetdef\accFreebassFE{88} +\fetdef\accStdbass{89} +\fetdef\accStdbassM{90} +\fetdef\accStdbassBp{91} +\fetdef\accStdbassT{92} +\fetdef\accStdbassTp{93} +\fetdef\accBayanbass{94} +\fetdef\accBayanbassT{95} +\fetdef\accBayanbassE{96} +\fetdef\accBayanbassTE{97} +\fetdef\accBayanbassEE{98} +\fetdef\accBayanbassTEE{99} +\fetdef\accSB{100} +\fetdef\accBB{101} +\fetdef\accOldEE{102} +\fetdef\accOldEES{103} + +% flags +\fetdef\eighthflag{104} +\fetdef\sixteenthflag{105} +\fetdef\thirtysecondflag{106} +\fetdef\sixtyfourthflag{107} +\fetdef\deighthflag{108} +\fetdef\dsixteenthflag{109} +\fetdef\dthirtysecondflag{110} +\fetdef\dsixtyfourthflag{111} + +% clefs +\fetdef\altoclef{112} +\fetdef\caltoclef{113} +\fetdef\bassclef{114} +\fetdef\cbassclef{115} +\fetdef\trebleclef{116} +\fetdef\ctrebleclef{117} + +% timesig +\fetdef\fourfourmeter{118} +\fetdef\allabreve{119} +\fetdef\oldfourfourmeter{120} +\fetdef\oldallabreve{121} +\fetdef\oldthreetwometer{122} +\fetdef\oldsixfourmeter{123} +\fetdef\oldninefourmeter{124} + diff --git a/Documentation/tex/html-disclaimer.yo-urg b/Documentation/tex/html-disclaimer.yo-urg index 2fa20c33aa..061f9d441e 100644 --- a/Documentation/tex/html-disclaimer.yo-urg +++ b/Documentation/tex/html-disclaimer.yo-urg @@ -1,15 +1,16 @@ COMMENT( I cannot be named .yo, because i'm not a complete document, yodl2x will break. ) + whenhtml( + nsubsect(Disclaimer) -This document is written in url(Yodl)(ftp://pcnov095.win.tue.nl/pub/yodl) -and should foremost produce nice LaTeX() output. -In other formats, such as html, some things will look a bit different, -while other things will be simply left out. -Therefore, the authoritive version of this document is the PostScript version, -produced via LaTeX(). -As you know, url(no gifs due to patent problems)(http://www.gnu.org/philosophy/gif.html), -but the png images should be viewable with any current browser -(jpeg is inappropriate for music images). -) + +This document is written in url(Yodl)(ftp://ftp.lilypond.org/pub/yodl) +and should foremost produce nice LaTeX() output. In other formats, +such as html, some things will look a bit different, while other +things will be simply left out. Therefore, the authoritive version of +this document is the PostScript version, produced via LaTeX(). As you +know, url(no gifs due to patent +problems)(http://www.gnu.org/philosophy/gif.html), but the PNG images +should be viewable with any current browser . ) diff --git a/Documentation/tex/lilypond-overview.doc b/Documentation/tex/lilypond-overview.doc index f5eea5a448..0ab7fdfe17 100644 --- a/Documentation/tex/lilypond-overview.doc +++ b/Documentation/tex/lilypond-overview.doc @@ -297,6 +297,11 @@ articulation. This stress pattern is called \emph{meter}. \subsection{Music notation} +Music notation is a system that tries to represent musical ideas +through printed symbols. Music notation has no precise definition, +but most conventions have described in reference manuals on music +notation\cite{read-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 @@ -343,18 +348,176 @@ linewidth = -1.; \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 +denote their pitch: each line represents the pitch of from the +standard scale (c, d, e, f, g, a, b). The reference point is the +\emph{clef}, eg., the treble clef marks the location of the $g^1$ +pitch. The notes are printed in their time order, from left to right. + + +\begin{figure}[h] + \begin{center} + \begin{mudela} + \score { \notes { + a4 b c d e f g a \clef bass; + a4 b c d e f g a \clef alto; + a4 b c d e f g a \clef treble; + } + \paper { linewidth = 15.\cm; } + } + \end{mudela} + \caption{Pitches ranging from $a, b, c',\ldots a'$, in different + clefs. From left right the bass, alto and treble clef are + featured.} + \label{fig:pitches} + \end{center} +\end{figure} + +The chromatic alterations are indicated by printing a flat sign or a +sharp sign in front of the note head. If these chromatic alterations +occur systematically (if they are part of the tonality of the piece), +then this indicated with a \emph{key signature}. This is a list of +sharp/flat signs which is printed next to the clef. + +Articulation is notated by marking the note shapes wedges, hats and +dots all indicate specific articulations. If the notes are to be +bound fluently (legato), the note shapes are encompassed by a smooth +curve called \emph{slur}, + +\begin{figure}[h] + \begin{center} + \begin{mudela} + c'4-> c'4-. g'4 ( b'4 ) g''4 + \end{mudela} + \caption{Some articulations. From left to right: extra stress + (\emph{marcato}), short (staccato), slurred notes (legato).} + \label{fig:articulation} + \end{center} +\end{figure} + + + +Dynamics are notated in two ways: absolute dynamics are indicated by +letters: \textbf{f} (from Italian ``forte'') stands for loud, +\textbf{p} (from Italian ``piano'') means soft. Gradual changes in +loudness are notated by (de)crescendos. These are hairpin like shapes +below the staff. + +\begin{figure}[h] + \begin{center} + \begin{mudela} + g'4\pp \< g'4 \! g'4 \ff \> g'4 g' \! g'\ppp + \end{mudela} + \caption{Dynamics: start very soft (pp), grow to loud (ff) and + decrease to extremely soft (ppp)} + \label{fig:dynamics} + \end{center} +\end{figure} -\subsection{Music typography} +The meter is indicated by barlines: every start of the stress pattern +is preceded by a vertical line, the \emph{bar line}. The space +between two bar lines is called measure. It is therefore the unit of +the rhythmic pattern. +The time signature also indicates what kind of rhythmic pattern is +desired. The time signature takes the form of two numbers stacked +vertically. The top number is the number of beats in one measure, the +bottom number is the duration (relative to the whole note) of the note +that takes one beat. Example: 2/4 time signature means ``two beats +per measure, and a quarter note takes one beat'' +Chords are written by attaching multiple note heads to one stem. When +the composer wants to emphasize the horizontal relationships between +notes, the simultaneous notes can be written as voices (where every +note head has its own stem). A small example is given in +Figure~\ref{fig:simultaneous}. +\begin{figure}[h] + \begin{center} + \begin{mudela} + \relative c'' {\time 2/4; <c4 e> <d f> + \type Staff < \type Voice = VA{ + \stemdown + c4 d + b16 b b b b b b b } + \type Voice = VB { + \stemup e4 f g8 g4 g8 } > + } + \end{mudela} + \caption{Notes sounding together. Chord notation (left, before + the bar line) emphasizes vertical relations, voice notation + emphasizes horizontal relations. Separate voices needn't have + synchronous rhythms (third measure). + } + \label{fig:simultaneous} + \end{center} +\end{figure} + +Separate voices do not have to share one rhythmic pattern---this is +also demonstrated in Figure~\ref{fig:simultaneous}--- they are in a sense%vaag +independent. A different way to express this in notation, is by +printing each voice on a different staff. This is customary when +writing for piano (both left and right hand have a staff of their own) +and for ensemble (every instrument has a staff of its own). + + + +\subsection{Music typography} + +Music typography is the art of placing symbols in esthetically +pleasing configuration. Little is explicitly known about music +typography. There are only a few reference works +available\cite{ross,wanske}. Most of the knowledge of this art has +been transmitted verbally, and was subsequently lost. + +The motivation behind choices in typography is to represent the idea +as clearly as possible. Among others, this results in the following +guidelines: +\begin{itemize} +\item The printed score should use visual hints to accentuate the + musical content +\item The printed score should not contain distracting elements, such + as large empty regions or blotted regions. +\end{itemize} + +An example of the first guideline in action is the horizontal spacing. +The amount of space following a note should reflect the duration of +that note: short notes get a small amount of space, long notes larger +amounts. Such spacing constraints can be quite subtle, for the +``amount of space'' is only the impression that should be conveyed; there +has to be some correction for optical illusions. See +Figure~\ref{fig:spacing}. +\begin{figure}[h] + \begin{center} + \begin{mudela} + \relative c'' { \time 3/4; c16 c c c c8 c8 | f4 f, f' } + \end{mudela} + \caption{Spacing conveys information about duration. Sixteenth + notes at the left get less space than quarter notes in the + middle. Spacing is ``visual'', there should be more space + after the first note of the last measure, and less after second. } + \label{fig:spacing} + \end{center} +\end{figure} +Another clearly visible example of music typography is visible in +collisions. When chords or separate voices are printed, the notes +that start at the same time should be printed aligned (ie., with the +same $x$ position). If the pitches are close to each other, the note +heads would collide. To prevent this, some notes (or note heads) have +to be shifted horizontally. An example of this is given in Figure~\ref{fig:collision}. +\begin{figure}[h] + \begin{center} + \begin{mudela} + + \end{mudela} + \caption{Collisions} + \label{fig:collision} + \end{center} +\end{figure} \bibliographystyle{hw-plain} \bibliography{engraving,boeken,colorado,computer-notation,other-packages} diff --git a/Documentation/tex/musicnotes.sty b/Documentation/tex/musicnotes.sty index 424c10c8a2..bc4a69f543 100644 --- a/Documentation/tex/musicnotes.sty +++ b/Documentation/tex/musicnotes.sty @@ -4,7 +4,7 @@ \def\fetdef#1#2{% \def#1{\hbox{\char#2}}} -\input feta20 +\input feta20.sty \font\fetasixteenfont=feta16 \font\fetaelevenfont=feta11 diff --git a/Documentation/tex/refman.yo b/Documentation/tex/refman.yo index 61d658e862..6845476a00 100644 --- a/Documentation/tex/refman.yo +++ b/Documentation/tex/refman.yo @@ -165,7 +165,7 @@ keywords: code(\mm), code(\pt), code(\in), or code(\cm). Dimensions are converted immediately to a real which gives the dimension in points, so they can be mixed with reals, but the result is no longer of type dimension. The keywords that require a dimension -(code(\shape) and code(\symboltables)) will not accept this. +(code(\shape)). dit(pitch) A pitch is a string which is the name of a pitch. Example: code(a). @@ -224,8 +224,8 @@ will only be able to refer to identifiers whose names begin with a letter and are entirely alphanumeric. It is also impossible to refer to an identifier whose name is the same as the name of a keyword. The following words are keywords: -verb(absdynamic grouping mm relative symboltables -accepts header musicalpitch remove table +verb(absdynamic grouping mm relative +accepts header musicalpitch remove alternative in name repeat tempo bar include notenames scm time cadenza key notes scmfile times @@ -553,10 +553,8 @@ mudela()( Dynamic marks are specified by using an identifier after a note without a dash: code(c4 \ff). Note that this syntax is inconsistent with the syntax for other types of ornaments. The available dynamic -marks are: code(\pppppp), code(\ppppp), code (\pppp), code(\ppp), code(\pp), -code(\p), code(\mp), code(\mf), code(\f), code(\ff), code(\fff), -code(\ffff), code(\fffff), code(\ffffff), -code(\fp), code(sf), code(\sff), code(\sp), code(\spp), (\sfz) and code (\rfz). +marks are: code(\ppp), code(\pp), code(\p), code(\mp), code(\mf), +code(\f), code(\ff), code(\fff), code(\fp), code(sf), and code(\sfz). A crescendo mark is started with code(\cr) and terminated with code(\rc). A decrescendo mark is started with code(\decr) and @@ -931,7 +929,7 @@ note, etc. The number of dots after the note is given by var(dotcount). dit(code(\font) var(string)) Internal keyword. Used within -code(\symboltables) to specify the font. +code(\paper) to specify the font. dit(code(\grouping) var(durationseq)code(;)) Sets the metric structure of the measure. Each argument specifies the duration of one metric unit. @@ -1096,13 +1094,6 @@ second parameter is set to 1 to start the mark and 2 to stop it. Users should use the abbreviations which are defined in the initialization file file(dynamic.ly). -dit(code(\symboltables)) Internal keyword. Used to create symbol -tables. See initialization files file(paper*.ly), file(feta*.ly), and -file(table*.ly). - -dit(code(\table)) Internal keyword. Used within code(\symboltables) -to specify the tables. See initialization files. - dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within code(\midi) or within music to specify the tempo. For example, `code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes @@ -1459,9 +1450,6 @@ equal to -1. dit(code(\f)) Print forte symbol on the preceeding note. dit(code(\ff)) Print fortissimo symbol on the preceeding note. dit(code(\fff)) Print fortississimo symbol on preceeding note. -dit(code(\ffff)) Print fortissississimo symbol on preceeding note. -dit(code(\fffff)) Print fffff symbol on preceeding note. -dit(code(\ffffff)) Print ffffff symbol on preceeding note. dit(code(\fp)) Print fortepiano symbol on preceeding note. dit(code(\free)) Used for setting direction setting properties. Is equal to 0. @@ -1487,16 +1475,11 @@ has the same key signature. This sets the Staff.keyoctaviation property. dit(code(\p)) Print a piano symbol on preceeding note. dit(code(\pp)) Print pianissimo symbol on preceeding note. dit(code(\ppp)) Print pianississimo symbol on preceeding note. -dit(code(\pppp)) Print pianissississimo symbol on preceeding note. -dit(code(\ppppp)) Print ppppp symbol on preceeding note. -dir(code(\pppppp)) Print pppppp symbol on preceeding note. dit(code(\rc)) Terminate a crescendo. dit(code(\rced)) Terminate a decrescendo -dit(code(\rfz)) Print a rinforzato symbol on preceeding note. dit(code(\right)) Used for setting textalignment property. Is set to 1. -dit(code(\sf)) Print a subito-forte symbol on preceeding note. -dit(code(\sff)) Print a subito-fortissimo symbol on preceeding note. -dit(code(\sfz)) Print a sforzato symbol on preceeding note. +dit(code(\sf)) Print a ?? symbol on preceeding note. +dit(code(\sfz)) Print a ?? symbol on preceeding note. dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide. Sets the Voice.hshift property. dit(code(\shifton)) Enable note heads that collide with other note heads @@ -1507,8 +1490,6 @@ dit(code(\slurdown)) Force slurs to be below notes. This sets the Voice.slurydirection property. dit(code(\slurup)) Force slurs to be above notes. This sets the Voice.slurydirection property. -dit(code(\sp)) Print a subito-piano symbol on preceeding note. -dit(code(\spp)) Print a subito-forte symbol on preceeding note. dit(code(\specialkey)) Allow keys signatures do differ in different octaves. This sets the Staff.keyoctaviation property. dit(code(\stemboth)) Allow stems, beams, and slurs to point either @@ -1585,7 +1566,7 @@ inside a code(\paper) block. description( dit(var(integer)) If an integer appears on the left side of an -assignment then a code(\symboltables) keyword must appear on the right +assignment then a code(\font) keyword must appear on the right side. This defines a music font at a particular size. See Voice property code(\fontsize). diff --git a/Documentation/tex/refman.yo.orig b/Documentation/tex/refman.yo.orig deleted file mode 100644 index f0a3d4d250..0000000000 --- a/Documentation/tex/refman.yo.orig +++ /dev/null @@ -1,1875 +0,0 @@ -COMMENT(-*-text-*-) - -redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\ - whenhtml(sc(ARG1))) - - -redef(code)(1)(tt(ARG1)) - -COMMENT( - -TODO: - the use of semicolons needs to be documented once it settles down - \times needs documentation with examples somewhere once it works (?) - paper size? - the explanation of how lyrics mode parses words seems ridiculous. - Is there a simple way to explain this, or is the behavior - too complicated for a reasonable explanation? - \relative and \tranpose and \times make it necessary to specify - an explicit \type staff, or bizarre things happen. - catalan.ly - accordion symbols - extender* (see extender.ly) - \repeat & \alternative -> probably should have an example -) - - -COMMENT( This document contains Mudela fragments. You need at least -Yodl-1.30.18 to convert this to tex or html. - -TODO - -in stead <-> instead -) - -htmlbodyopt(bgcolor)(white) -htmlcommand(<font color=black>) - -latexlayoutcmds( -\setlength{\topmargin}{-0.25in} -\setlength{\textheight}{9in} -\setlength{\textwidth}{5.875in} -\setlength{\oddsidemargin}{0.25in} -\setlength{\evensidemargin}{0.25in} -\input mudela-book -) - -whentexinfo(notableofcontents()) - -article(Mudela 1.0.7 / LilyPond 1.1.8 Reference Manual) - (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen) - (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop()) - -COMMENT( - -* The [ ] look weird - -* paragraphs have too much space. - -) - - -latexcommand(\def\interexample{}) -latexcommand(\def\preexample{\par}) -latexcommand(\def\postexample{\par\medskip}) -latexcommand(\def\file#1{{code(#1)}}) -COMMENT( -latexcommand(\def\texttt#1{\tt #1}) -latexcommand(\def\textbf#1{\bf #1}) -) - -COMMENT(urg, texinfo include breaks) -whenhtml( -includefile(html-disclaimer.yo-urg) -) - -bf(This document is not up to date). All rendered examples of course -are current, but the rest probably isn't. Adjusting the tutorial was -considered more important than writing the reference manual. We -apologize for the inconvenience. For a complete and up-to-date -definition, see file(lily/parser.yy), file(lily/lexer.ll), and the -init files. - -This document describes the the GNU LilyPond input format, which is an -effective language for defining music. We call this language (rather -arrogantly) The Musical Definition Language or Mudela, for -short.footnote(If anybody comes up with a better name, we'd gladly - take this. Gourlay already uses Musical Description Language, - G-Sharp Score Definition Language. ISO standard 10743 defines a - Standard Music Description Language. We're not being original here.) - -The first aim of Mudela is to define a piece of music, being complete -from both from a musical typesetting, as from a musical performing -point of view. - -The Musical Definition Language (Mudela), has a logical structure, -making use of identifiers, that allows for flexible input, and -definition reuse. See the documentation file file(MANIFESTO), included -with the LilyPond sources for reasons and design considerations. - - -sect(Running LilyPond) - -When invoked with a filename that has no extension, LilyPond will try adding -a file(.fly) extension first, and a file(.ly) extension second. -If the filename ends with -file(.fly), LilyPond processes the file as music using -file(init.fly). In this case, LilyPond does something -like: -verb(\score { - \notes\relative c { - \input "yourfile.fly" - } - \paper{} - \midi{} -}) -If you invoke LilyPond with a file file(foo.)var(ext) that doesn't -have the file(.ly) extension then LilyPond will look for a file called -file(init.)var(ext) and process this file. The file -file(init.)var(ext) must contain the code(\maininput) keyword or LilyPond -will not read the user specified file. - -When LilyPond processes file(filename.ly) it will produce file(filename.tex) as -output. If file(filename.ly) contains a second code(\paper) keyword, then -LilyPond will produce file(filename-1.tex) as well. Subsequent code(\paper) -keywords will produces sequentially numbered file names. Several files can be -specified; they will each be processed independently. - -sect(Syntax) - -subsect(Basic Mudela) - -A Mudela file consists of keywords with arguments and identifier -assignments separated by spaces, tabs or newlines. Semicolons are -used by some keywords but are not generally required. A one line -comment is introduced by a code(%) character. Block comments are -started by code(%{) and ended by code(%}). They cannot be nested. - -Mudela supports several types: - -description( - -dit(integer) -Formed from an optional minus sign followed by digits. Arithmetic -operations cannot be done with integers, and integers cannot be mixed -with reals. - -dit(real) -Formed from an optional minus sign and a sequence of digits followed -by a emph(required) decimal point and an optional exponent such as -code(-1.2e3). Reals can be built up using the usual operations: -code(+), code(-), code(*), and code(/), with parentheses for grouping. - -dit(string) -Begins and ends with the code(") character. To include a code(") -character in a string write code(\"). Various other backslash -sequences have special interpretations as in the C language. A string -that contains no spaces can be written without the quotes. See -Section ref(modes) for details on unquoted strings; their -interpretation varies depending on the situation. On the right side -of identifier assignments and within the code(\header) keyword, -strings can be concatenated using the code(+) character. - -dit(dimension) Consists of a real followed by one of the dimension -keywords: code(\mm), code(\pt), code(\in), or code(\cm). Dimensions -are converted immediately to a real which gives the dimension in -points, so they can be mixed with reals, but the result is no longer -of type dimension. The keywords that require a dimension -(code(\shape) and code(\symboltables)) will not accept this. - -dit(pitch) -A pitch is a string which is the name of a pitch. Example: code(a). -The pitch names can be redefined with the code(\notenames) keyword. -See Section(notelang) for pitch names in different languages. Pitches -can only be specified inside note mode which is specified with -code(\notes). Therefore, keywords which require pitch arguments must -appear inside code(\notes). - -dit(music) -Music is a compound type: arbitrarily complicated expressions with a -hierarchical structure can be formed from simple building blocks. The -simplest expression of type music is a single note. A note is formed -from a pitch and an optional duration and must be specified within -code(\notes). See Section ref(notedesc) for details. More -complicated expressions of type music are formed by surrounding a -sequence of expressions of type music with braces code({) and code(}) -or with angle brackets code(<) and code(>). Items appearing in braces -will be treated as serial. Items in angle brackets will be -simultaneous. So for example code({ c e g }) represents an arpeggio -and code(< c e g >) represents a chord. These items can be nested any -way you like. This simple example shows how three chords can be -expressed in two different ways: -mudela(fragment,verbatim,center)( -\notes<{a b c'}{c' d' e'}{e' f' g'}> -\notes{<a c' e'><b d' f'><c' e' g'>} -) - -) - - -COMMENT( -Compound types are built up from the simple types. The compound types -are: arglist, assignlist and musiclist. An arglist is a -white space separated list of integers, reals and or strings surrounded -by braces code({) and code(}). An assignlist is a list of -identifier assignments, which have the form var(key)code(=)var(value). -A statement in Mudela has one of three forms: -verb(\keyword argument -\keyword argument1 argument2 ... ; -string=value) -) - -subsect(Identifiers) - -Identifiers allow names to be assigned to constants, music, or other -Mudela structures. To assign an identifier you use -var(name)=var(value) and to refer to an identifier, you preceed its -name with a backslash: code(\)var(name). It is legal to redefine an -identifier in terms of its old value: code(foo = \foo * 2.0). -Identifier assignments must appear at the top level in the Mudela -file. - -An identifier can be created with any string for its name, but you -will only be able to refer to identifiers whose names begin with a -letter and are entirely alphanumeric. It is also impossible to refer -to an identifier whose name is the same as the name of a keyword. The -following words are keywords: -verb(absdynamic grouping mm relative symboltables -accepts header musicalpitch remove table -alternative in name repeat tempo -bar include notenames scm time -cadenza key notes scmfile times -clef keysignature paper score translator -cm lyrics partial script transpose -consists maininput penalty shape type -duration mark property skip version -font midi pt spandynamic) - -The right hand side of an identifier assignment is parsed completely -when the assignment is made. It therefore must have any context -specified in the definition. For example, you must write -code(foo=\notes{a8 b c}) rather than code(foo={a8 b c}). Even though -the context is specified in the definition, you must refer to the -identifier inside the correct context: -verb(foo = \paper{ linewidth = 6.0\in; } -\score{ - \notes{ ... } - \paper{ \foo } -}) -If code(\foo) is used here without the surrounding code(\paper) then -an error will result. Note however that the following is acceptible -verb(foo = \notes { ... } -\score{ \foo }) -It is not necessary to specify code(\notes). - -Identifiers can be set equal to integers, reals, strings, music, -durations (specified with code(\duration)), note ornaments (specified -with code(\script), dynamics commands, or code(:)), note name tables -(specified with code(\notenames), translator definitions, the -code(\paper) block, the code(\midi) block or the code(\score) block. -When identifiers are used for translators, the code(\paper), -code(\midi), and code(\score) blocks, they may only be referred to as -the first item in a block. So code(\paper{\one \two}) is illegal -because the identifier code(\two) is not the first thing in the block. -Unlike other identifier definitions, translator identifier definitions -can only appear within code(\midi) or code(\paper) blocks. See -Section ref(translators) for more information. - - -COMMENT( -subsect(Hierarchical structures) - -The general structure consists of declarations: -verb(IDENTIFIER = \TYPE{ - <type specific data> -}) -and instantiations: - -verb(\TYPE{ <type specific data> }) - -(Currently, code(\score) is the only type that can be instantiated -at top level.) - -Most instantiations that use an IDENTIFIER are specified as follows: - -verb(\TYPE{ \IDENTIFIER [...] }) - -Some exceptions on this rule have been made to prevent inputting -Mudela becoming tedious -) - - -subsect(Modes) -label(modes) - -To simplify different aspects of music definition (entering the notes -and manipulating them) Mudela has three different input modes which -affect how unquoted strings are interpreted. -In each mode, words are identified on the input. If code("word") is -encountered, it is treated as a string. If code(\word) is -encountered it is treated as a keyword or as an identifier. The -behavior of the modes differs in two ways: different modes treat -unquoted words different, and different modes have different rules for -deciding what is a word. - -description( - -dit(Normal mode) -At the start of parsing, Mudela is in normal mode. -In normal mode, a word is an alphabetic character followed by -alphanumeric characters. If code(word) is encountered on the input it -is treated as a string. - -dit(Note mode) Note mode is introduced by the keyword -code(\notes). In Note mode, words can only contain alphabetic -characters. If code(word) is encountered, LilyPond first checks for a -notename of code(word). If no notename is found, then code(word) is -treated as a string. If you mistype a notename, the parser will most -likely complain that you should be in code(\lyrics) mode to do lyrics. - -dit(Lyric mode) Lyrics mode is introduced by the keyword -code(\lyrics). This mode is has rules that make it easy to include -punctuation and diacritical marks in words. A word in Lyrics mode -begins with: an alphabetic character, code(_), -code(?), code(!), code(:), code('), -the control characters code(^A) through code(^F), code(^Q) through -code(^W), code(^Y), code(^^), any 8-bit character with ASCII code over -127, or a two character combination of a backslash followed by one -of code(`), code('), code(") or code(^). -Subsequent characters of a word can be any character that is not a -digit and not white space. One important consequence of this is that -a word can end with code(}), which may be confusing if you thought the -code(}) was going to terminate lyrics mode. Any code(_) characters -which appear in an unquoted word are converted to spaces, providing a -mechanism for introducing spaces into words without using quotes. -Quoted words can also be used in lyrics mode to specify words that -cannot be specified with the above rules. Here are some examples. -Not all of these words are printable by TeX(). -verb(a&@&@&TSI|{[ % a word -\'afoo} % a word -1THtrhortho % not a word because it starts with a digit -``Hello'' % not a word because it starts with ` -Leise DOEXPAND(Fl\)DOEXPAND("u\)ss{}teren meine Sapfe % 4 words -_ _ _ _ % 4 words, each one a space -)) - -It is possible to create words that break the rules by prefixing them with the -dollar sign code($). Regardless of the context, a word beginning with code($) -extends until the next white space character. Such words can contain numbers -(even in Note mode), or other forbidden characters. The dollar sign can be -used to create and access identifiers that could not otherwise be used. - -COMMENT( -These modes are of a lexical nature. Normal and Note mode largely -resemble each other, save the possibility of entering Reals, -meaning of code(_) and the resolution of words - -What's this about reals? When can you enter them or not enter them?) - - -sect(Note Description) -label(notedesc) - -subsect(Basic Note Specification) - -A note specification has the form -var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)]. -The pitch of the note is specified by the note's name. - -LilyPond has predefined note names for various languages. The default -names are the Dutch note names. The notes are specified by the -letters code(c) through code(b), where code(c) is an octave below -middle C and the letters span the ocatave above that C. -In Dutch, a sharp is formed by adding -code(-is) to the end of a pitch name. A flat is formed by adding code(-es). -Double sharps and double flats are obtained by adding code(-isis) or -code(-eses). -Lily has predefined sets of notenames -for various nop(languages). See Section ref(notelang) for details. -Rests are specified with the note name code(r) or code(R). -There is also a note name code(s) which produces a nonprinting note of the -specified duration. - -The optional octave specification takes the form of a series of single -quote -code(') characters or a series of comma code(,) characters. Each -code(') raises the pitch by one octave; each code(,) lowers the pitch -by an octave. - -mudela(fragment,verbatim,center)( -c' d' e' f' g' a' b' c'' -) - -mudela(fragment,verbatim,center)( -cis' dis' eis' fis' gis' ais' bis' -) - -mudela(fragment,verbatim,center)( -ces' des' es' fes' ges' as' bes' -) - -mudela(fragment,verbatim,center)( -cisis' eisis' gisis' aisis' beses' -) - -mudela(fragment,verbatim,center)( -ceses' eses' geses' ases' beses' -) - -Whenever a C-sharp is desired, you must specify a C-sharp. LilyPond -will determine what accidentals to typeset depending on the key and -context. -A reminder accidental can be forced by -using the optional exclamation mark `code(!)' -on the pitch. -A cautionary accidental, i.e., an accidental within paranthesis -can be obtained using the optional question mark `code(?)' on the pitch. -mudela(fragment,verbatim,center)( -cis' d' e' cis' c'? d' e' c'! -) - - -Durations are entered as their reciprocal values -mudela(fragment,verbatim,center)( -a'1 a'2 a'4 a a'8 a a'16 a'32 a'64 -) -mudela(fragment,verbatim,center)( -r1 r2 r4 r8 r16 r32 -) - -If the duration is omitted then it is set equal to the previous -duration. If there is no previous duration, then a quarter note is -assumed. -The duration can be followed by a dot code(.) to obtain dotted note -lengths. -mudela(fragment,verbatim,center)( -a'4. b'4. -) - -In addition, the duration can be followed by a multiplier which is -introduced with the asterisk code(*) and can be an integer or a -fraction. The multiplier changes the duration that LilyPond uses -internally for the note, but for notes it -does not change the symbol that is printed. -mudela(fragment,verbatim,center)( -c'4*2 c'4*2 d'8*2/3 d'8*2/3 -) -For long rests with durations equal to an integer number of whole notes, -LilyPond produces output that indicates the duration of the rest. If you use -code(r) then one rest symbol will be printed and several measures left blank. -If you use code(R) then all of the measure will be filled with whole rests. -If you set the code(Score.SkipBars) property, then only one measure will be -printed; with code(R), a number indicating the length of the rest will be -displayed. -mudela(fragment,verbatim,center)( -r1*3 R1*3 -\property Score.SkipBars=1 -r1*3 R1*3) - -Extra long notes can be obtained using the code(\breve) and -code(longa) durations: -mudela(fragment,verbatim,center)( -c'\breve gis'\longa -) - - -subsect(Note Spanners: Beams, Tuplets, Slurs and Ties) - -A beam is specified by surrounding the beamed notes with brackets -code([) and code(]). -mudela(fragment,verbatim,center)( -[a'8 a'] [a'16 a' a' a'] -) - -[EXPLAIN TUPLETS HERE] - -Another type of spanner is the slur. Slurs connects chords and try to -avoid crossing stems. A slur is started with code(CHAR(40)) and stopped with -code(CHAR(41)). The starting code(CHAR(40)) appears to the right of the first note -in the slur. The terminal code(CHAR(41)) apppears to the left of the first -note in the slur. This makes it possible to put a note in slurs from -both sides: -mudela(fragment,verbatim,center)( -f'()g'()a' [a'8 b'(] a'4 g' )f' -) - -A tie connects two adjacent note heads. When used with chords, it -connects all of the note heads. Ties are indicated using the tilde symbol -code(~) by analogy with TeX()'s tie which connects words. - -mudela(fragment,verbatim,center)( -e' ~ e' <c' e' g'> ~ <c' e' g'> -) - - -subsect(Note Ornaments) - -A variety of symbols can appear above and below notes to indicate -different characteristics of the performance. -These symbols can be -added to a note with `var(note)code(-\)var(name)'. Numerous different -symbols are defined in file(script.ly). Each symbol is defined using -the code(\script) keyword which specifies where symbols appear. -Symbols can be forced to appear above the note by writing -`var(note)code(^\)var(name)', and they can be forced to appear below -by writing `var(note)code(_\)var(name)'. Here is a chart showing -symbols above notes, with the name of the corresponding symbol -appearing underneath. - -mudela()( -\score{ - < \notes{ c''-\accent c''-\marcato c''-\staccatissimo f'-\fermata - c''-\stopped c''-\staccato c''-\tenuto c''-\upbow c''-\downbow - c''-\lheel c''-\rheel c''-\ltoe c''-\rtoe c''-\turn - c''-\open c''-\flageolet c''-\reverseturn - c''-\trill - c''-\prall c''-\mordent c''-\prallprall c''-\prallmordent - c''-\upprall c''-\downprall c''-\thumb} - \type Lyrics \lyrics{ - accent marcato staccatissimo fermata stopped - staccato tenuto upbow downbow lheel rheel ltoe rtoe turn - open flageolet reverseturn - trill prall - mordent prallprall prallmordent uprall downprall thumb}> - \paper{linewidth = 5.875\in; - indent = 0.0; - } -} -) - -COMMENT( The following are defined in script.ly but do not work: - -portato lbheel rbheel lbtoe rbtoe lfheel rfheel lftoe rftoe ) - -In addition, it is possible to place arbitrary strings of text or -TeX() above or below notes by using a string instead of an identifier: -`code(c^"text")'. Fingerings can be placed by simply using digits. -All of these note ornaments appear in the printed output but have no -effect on the MIDI rendering of the music. - -To save typing, a few common symbols can be abbreviated with -single characters: -mudela()( -\score{ \notes { - \property Voice.textstyle = typewriter - c''4-._"c-." s4 - c''4--_"c-{}-" s4 - c''4-+_"c-+" s4 - c''4-|_"c-|" s4 - c''4->_"c->" s4 - c''4-^_"c-\\^{ }" s4 } - \paper { linewidth = 12.\cm; }}) - -Dynamic marks are specified by using an identifier after a note -without a dash: code(c4 \ff). Note that this syntax is inconsistent -with the syntax for other types of ornaments. The available dynamic -marks are: code(\ppp), code(\pp), code(\p), code(\mp), code(\mf), -code(\f), code(\ff), code(\fff), code(\fp), code(sf), and code(\sfz). - -A crescendo mark is started with code(\cr) and terminated with -code(\rc). A decrescendo mark is started with code(\decr) and -terminated with code(\rced). There are also shorthands for these -marks. A crescendo can be started with code(\<) and a decrescendo can -be started with code(\>). Either one can be terminated with code(\!). -Note that code(\!) must go before the last note of the dynamic mark whereas -code(\rc) and code(\rced) go after the last note. Because these marks are -bound to notes, if you want to get several marks during one note, you must use -spacer notes. -mudela(fragment,verbatim,center)( -c'' \< \! c'' d'' \decr e'' \rced -< f''1 {s4 \< \! s4 \> \! s2 } >) - -Tremolo marks can be printed by a note by adding code(:)[var(length)] -after the note. The length must be at least 8. A var(length) value -of 8 gives one line across the note stem. -If the length is omitted, -then the last value is used, or the value of the code(Abbrev) -property if there was no last value. To place tremolo marks in -between two notes, begin with code([:)var(length) and end with code(]). -The tremolo marks will appear instead of beams. Putting more than two -notes in such a construction will produce odd effects. - -[TREMOLO BEAMS TEMPORARILY OUT OF ORDER] - -COMMENT(mudela (fragment,verbatim,center)( -c'2:8 c':32 [:16 e'1 g'] [:8 e'4 f'] -)) - -COMMENT( -Is the last paragraph correct? Is it called "tremolo"? Why is -"abbreviation" used? (What is the unabreviated form?) - -COMMENT( -mudela (fragment,verbatim,center)( -c'4:32 [:16 c'8 d'8] -)) - -) - - -sect(Other Ways to Enter Pitches) - -subsect(Pitch Names in Other Languages) -label(notelang) - -The pitch names can be easily redefined using the code(\notenames) command. -Note name definitions have been provided in various languages. -Simply include the language specific init file. For example: -code(\include "english.ly"). The available language files and the names -they define are: - -verb( Note Names sharp flat -nederlands.ly c d e f g a bes b -is -es -english.ly c d e f g a bf b -s/-sharp -f/-flat -deutsch.ly c d e f g a b h -is -es -norsk.ly c d e f g a b h -iss/-is -ess/-es -svenska.ly c d e f g a b h -iss -ess -italiano.ly do re mi fa sol la sid si -d -b) - -subsect(Relative Pitch Specification) -label(relative) - -One very common error when entering music is to place notes in the wrong -octave. One way to avoid being confused by large numbers of octave changing -marks is to use -the code(\relative) keyword. -Music which appears within code(\relative) is -interpreted differently. The octave of a note is determined by making it as -close to the previous note as possible. The octave changing marks code(') and -code(,) can then be added to raise or lower this note by octaves. You have to -specify a starting pitch because the first note of a list has no predecessor. - -mudela(fragment,verbatim,center)( -\relative c'' { c d b c, d b c' d - b c,, d b } -) - -When the preceeding item is a chord, the first note of the chord is used to -determine the first note of the next chord. But other notes within the second -chord are determined by looking at the immediately preceeding note. - -mudela(fragment,verbatim,center)( -\relative c' { <c e g> - <c' e g> <c, e' g> } -) - -The code(\relative) keyword can only appear in music, so there must be a -surrounding code(\notes) keyword which does not appear in the fragments shown -above. Also note that if the music passed to a code(\relative) keyword -contains a code(\transpose) keyword, the tranposed music will not be -processed in relative mode. An additional code(\relative) must be placed -inside the code(\transpose). - - -subsect(Tranposition of Pitches) -label(transpose) - -Another way to modify the meaning of the note names is to use the -code(\transpose) keyword. This keyword allows you to transpose music. -To use transposition, specify the pitch that middle C should be tranposed to. -It is important to distinguish between enharmonic pitches as they can produce -different transpositions. To transpose up half a step, for example, either -code(\transpose cis') or code(\transpose des') will work. But the first -version will print sharps and the second version will print flats. -In this example, a scale in the key of E is transposed to F, or to E-sharp -with odd results. -mudela(fragment,verbatim,center)( -\relative c' { \key e; - e fis gis a b cis dis e } -) -mudela(fragment,verbatim,center)( -\transpose des' \relative c' { \key e; - e fis gis a b cis dis e } -) -mudela(fragment,verbatim,center)( -\transpose cis' \relative c' { \key e; - e fis gis a b cis dis e } -) -If you want to use both code(\transpose) and code(\relative), then you must use -code(\transpose) first. Any code(\relative) keywords that are outside the -code(\transpose) have no effect on notes that appear inside the -code(\transpose). - -sect(Lyrics) - -Lyrics are entered like notes, with pitches replaced -by text. For example code(Twin-4 kle4 twin-4 kle4) enters four -syllables, each with quarter note duration. Note that the hyphen has -no special meaning for lyrics, and does not introduce special symbols. -See Section ref(modes) for a description of what is interpreted as a lyric. - -In order to instruct LilyPond to write lyrics underneath the -staff, you must enter the lyrics context with code(\type Lyrics). -Lyrics should be entered in lyrics mode which is entered with code(\lyrics). - -Spaces can be introduced into a lyric either by using quotes (code(")) -or by using an underscore without quotes: code(He_could4 not4). All -unquoted underscores are converted to spaces. Here is a full example: -mudela(verbatim)(\score{ - < \notes \transpose c'' {c d e c | c d e c | e f g'2 | - e'4 f g'2 \bar "|."; } - \type Lyrics \lyrics { - DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que - Dor- mez vous?2 Dor-4 mez vous?2 } - > -}) - -COMMENT( -URG - Fr\`e-4 re Ja- que - Fr\`e- re Ja- que -Why does this warrant an URG? -) - - -COMMENT( - -sect(Chords and Voices) - -Here's a simple chord -mudela(fragment,verbatim,center)( -<c e g> -) - -here are a few -mudela(fragment,verbatim,center)( -< - { c'()d'()c' } - { e'()f'()e' } - { g'()a'()g' } -> -) - -and similarly voices -mudela(fragment,verbatim)( -< - { \voiceone c'4 g' c' g' } - { \voicetwo c2 g2 } -> -) - -) - -sect(Time) - -LilyPond aligns all musical objects according to the amount of time -they occupy. All of these objects have a duration. When music is -written sequentially using braces the duration is the sum of the -durations of the elements. When music is stacked into simultaneous music -using angle -brackets, the duration is the maximum of the durations of the -elements. - -Because LilyPond knows the durations of all musical elements, the time -signature enables LilyPond to draw bar lines automatically. The time -signature is specified with the code(\time) keyword: code(\time 3/4). -If no time signature is given, LilyPond assumes 4/4. The automatic -generation of bar lines can toggled with the code(\cadenza) keyword, -and an incomplete measure at the start of the music can be created -using the code(\partial) keyword: code(\partial 8*2;) creates a -starting measure lasting two eighth notes. - -In order to help with error checking, you can insert bar markers in -your music by typing code(|). Whenever LilyPond encounters a code(|) -that doesn't fall at a measure boundary, she prints a warning message. - -Rhythmic grouping is a concept closely associated with this. -A default grouping is selected for the chosen time signature. -The default consists of combinations of 2 and 3 beats with as many -groups of 3 as possible, and the groups of 3 coming first. For -example, 4/4 is divided into 2+2 and 8/8 is divided into 3+3+2. This -default grouping can be changed using the \grouping keyword which -takes a list of durations to specify the grouping. - - -COMMENT( -sect(Composition: forming bigger structures) -label(sec:grammar) - -The computer savy user may be interested in a more formal -specification. We can capture what have learned about forming -sentences in Mudela in a context-free grammar. - -latexcommand(\smallskip) - -table(2)(lll)( - row(cell(em(Music))cell(: em(Note))) - row(cell()cell(code(|) em(Rest))) - row(cell()cell(code(|) code({) em(MusicList) code(}))) - row(cell()cell(code(|) code(<) em(MusicList) code(>))) - row(cell()cell(code(|) em(Command))) - row(cell()cell(code(|) code(\type) em(string) code(=) em(string) em(Music))) - row(cell()cell(;)) - row(cell(em(MusicList))cell(: em(empty))) - row(cell()cell(code(|) em(MusicList) em(Music))) - row(cell()cell(;)) -) - -latexcommand(\smallskip) - -In mathematics you can form expressions by combining expressions, -which are ultimately some kind of atom or terminal symbol. The same -goes for Mudela: there are some basic building blocks, and by -combining those you create complex music. - -You can combine music in three ways: -itemize( -it()If you enclose a sequence of music-elements in braces ( code({) - and code(}) ), then you form another kind of music called -sequential music - with those pieces. - The duration of sequential composition is the sum of the durations of its elements - verb( - { c c g g a a g2 } % twinkle twinkle - { { c c g g} { a a g2 } } - ) -it()You can stack music by enclosing a sequence of music elements - with code(<) and code(>). This is called simultaneous music. - The duration of a simultaneous composition is the maximum of the durations - of its elements Example: - verb( - <a4 {cis8 cis8} e'4> % a-major chord - ) -it()You can form music by transposing music: - verb( - \transpose - d % from c to the d that's almost one octave down - { e4 f4 } % the horizontal music -) -it()verb(\type) -it()verb(\property) -it()verb(\translator) -it()verb(\relative) -) - -Of course you can also combine these three mechanisms. -verb( -{ c <c e> <c e g> <c e g \transpose d' dis > } % 4 increasing chords -) - -) - - -sect(Keywords) - -Keywords sometimes appear alone, but usually they require arguments. -A keyword may have a single argument, a sequence of arguments in -braces, or a sequence of arguments separated by spaces and terminated -by a semicolon. The precise syntax of each keyword is shown below. -Keywords must appear in the right context. If you use a keyword in -the wrong place, even if the usage is syntactically correct, you will -get the message ``parse error'' from LilyPond. - - -description( - -dit(code(\absdynamic) code({) var(code) code(})) Internal keyword for -printing dynamic marks such as $f$ under music. The parameter -var(code) is unsigned and specifies the dynamic mark to print. -Normally you should use the more user friendly abbreviations defined -in the init file file(dynamic.ly). - -dit(code(\accepts) var(string)code(;)) This keyword can appear only within a -code(\translator) block. It specifies what contexts are allowed with the -context that is being defined. See Section ref(translators). - -dit(code(\alternative) code({) var(music1) var(music2) ... code(})) -Specifies alternative endings. Must come after a code(\repeat) keyword. - -dit(code(\bar) var(bartype)code(;)) Prints a special bar symbol, or at -measure boundaries, replaces the regular bar symbol with a special -symbol. The argument var(bartype) is a string which specifies the -kind of bar to print. Options are code(":|"), code("|:"), -code(":|:"), code("||"), code("|."), code(".|"), or code(".|."). -These produce respectively a right repeat, a left repeat, a double -repeat, a double bar, a start bar, an end bar, or a thick double bar. -If var(bartype) is set to code("empty") then nothing is printed, but a -line break is allowed at that spot. Note that the printing of special bars -has no effect on the MIDI output. - -dit(code(\cadenza) var(togglevalue)code(;)) Toggles the automatic generation -of bar lines. If var(togglevalue) is 0 then bar line generation is -turne off. If var(togglevalue) is 1 then a bar is immediately -printed and bar generation is turned on. - -dit(code(\clef) var(clefname)code(;)) Allowed only in music. -Sets the current clef. The argument is -a string which specifies the name of the clef. Several clef names are -supported. If code(_8) or code(^8) is added to the end of a clef -name then the clef lowered or raised an octave will be generated. -Here are the supported clef names with middle C shown in each clef: -mudela(center)( -\score{ - \notes{ \cadenza 1; - %\property Voice.textstyle = typewriter - \clef subbass; c'4-"\kern-10mm subbass" - \clef bass; c'4^"\kern -8mm bass" - \clef baritone; c'4_"\kern -10mm baritone" - \clef varbaritone; c'4^"\kern -10mm varbaritone" - \clef tenor; c'4_"\kern -10mm tenor" - \clef "G_8"; c'4^"\kern -6mm G\_8" } - \paper{ linewidth= 4.5 \in; } -} -) -mudela(center)( -\score{ - \notes{\cadenza 1; \clef alto; c'4_"\kern -10mm alto" - \clef scarlatti; c'4_"\kern -4mm scarlatti" - \clef mezzosoprano; c'4^"\kern -10mm mezzosoprano" - \clef soprano; c'4_"\kern -10mm soprano" - \clef treble; c'4^"\kern -6mm treble" - \clef french; c'4_"\kern -10mm french" } - \paper{ linewidth= 4.5 \in; } -} -) -The treble clef can also be obtained using the names code(G) or -code(violin). The bass clef is also available by code(\clef F). - -dit(code(\cm)) Specify a dimension in centimeters. - -dit(code(\consists) var(string)code(;)) This keyword can appear only within a -code(\translator) block. It specifies that an engraver or performer named -var(string) should be added to the translator. See Section -ref(translators). - -dit(code(\duration) code({) var(length) var(dotcount) code(})) Specify note -duration. The parameter var(length) is the negative logarithm (base -2) of duration: 1 is a half note, 2 is a quarter note, 3 is an eighth -note, etc. The number of dots after the note is given by -var(dotcount). - -dit(code(\font) var(string)) Internal keyword. Used within -code(\symboltables) to specify the font. - -dit(code(\grouping) var(durationseq)code(;)) Sets the metric structure of -the measure. Each argument specifies the duration of one metric unit. -For example, code(\duration 16*5;) specifies a grouping of five beats -together in 5/16 time. The default grouping is to have as many groups -of 3 as possible followed by groups of two. - -dit(code(\header) code({) var(key1) = var(val1); var(key2) = var(val2); ... code(})) -Specifies information about the music. A header should appear at the -top of the file describing the file's contents. If a file has -multiple code(\score) blocks, then a header should appear in -each score block describing its contents. Tools like code(ly2dvi) can -use this information for generating titles. Key values that are used -by ly2dvi are: title, subtitle, composer, opus, poet, instrument, -metre, arranger, and piece. - -dit(code(\in)) Specify a dimension in inches. - -dit(code(\include) var(file)) Include the specified file. The -argument var(file) is a string. The full filename including the -file(.ly) extension must be given, and the filename must be quoted. -(An unquoted string will not work here.) - -dit(code(\key) var(pitch) var(type) code(;)) Change the key signature. -var(type) should be code(\major) or code(\minor) to get -var(pitch)-major or var(pitch)-minor, respectively. The second -argument is optional, the default is major keys. -The var(\type) argument can also be given as an integer, which tells -the number of semitones that should be added to the pitch given in the -subsequent code(\key) commands to get the corresponding major key, -e.g. code(\minor) is defined as 3. - -dit(code(\keysignature) var(pitchseq)code(;)) -Specify an arbitrary key signature. The pitches from var(pitch) will -be printed in the key signature in the order that they appear on the list. - -dit(code(\lyrics) var(lyriclist)) Parse var(lyriclist) in lyrics mode. - -dit(code(\maininput)) Internal command. This command is used for creating init -files like file(init.fly) that read the user file into the middle of another -file. Using it in a user file will lead to an infinite loop. - -dit(code(\mark) var(unsigned)code(;) or code(\mark) var(string)code(;)) -Allowed in music only. Prints a mark over or under (depending on the -code(markDirection) property) the staff. -You must add code(Mark_engraver) to the Score context. - -dit(code(\midi) var(statementlist)) Appears in a score block to -indicate that musical output should be produced and to set output -parameters. Can also appear at the top level to set default output -parameters. See code(\tempo). - -dit(code(\mm)) Specify a dimension in millimeters. - -dit(code(\musicalpitch) code({) var(octave) var(note) var(shift) code(})) -Specify note pitch. The octave is specified by an integer, -zero for the octave containing middle C. The note is a number from 0 -to 7, with 0 corresponding to C and 7 corresponding to B. The shift -is zero for a natural, negative to add flats, or positive to add -sharps. - -dit(code(\name) var(context)code(;)) Appears within code(\translator) to -specify the name of the context that the translator handles. See Section -ref(translators). - -dit(code(\notenames) var(assignmentlist)) Define new note names. This -keyword can appear only at the top level. -The argument is a list of definitions of the form -var(name) = var(pitch), where var(pitch) is specified with the -code(\musicalpitch) keyword. - -dit(code(\notes) var(music)) Enter note mode and process the -specified music. - -dit(code(\)code(output) var(string)code(;)) Generate a parse error. - -dit(code(\paper) var(statmentlist)) -Appears in a score block to indicate that the music should be printed -or to set output parameters. Can also appear at the top level to set -default output parameters for all of the score blocks. -The var(statmentlist) contains statements that change features of the -output. See Section ref(paper). - -dit(code(\partial) var(duration)code(;)) Specify that the first measure of -the music lasts only for the specified duration. - -dit(code(\penalty) code(=) var(int)code(;)) Allowed only in music. -Discourage or encourage line breaks. See identifiers code(\break) and -code(\nobreak) in Section ref(ident). - -dit(code(\property) var(contextname)code(.)var(propname) code(=) var(value)) -Sets the var(propname) property of the context var(contextname) to the -specified var(value). All three arguments are strings. Depending on -the context it may be necessary to quote the strings or to leave space -on both sides of the dot. - -dit(code(\pt)) Specify a dimension in points. - -dit(code(\relative) var(pitch) var(music)) Processes the specified -var(music) in relative pitch -mode. In this mode, the octave of a pitch is chosen so that the -pitch is closest to the preceeding pitch. -The argument var(pitch) is -the starting pitch for this comparision. In the case of chords, the -first note of a chord is used as the base for the first pitches in the next -chord. See Section ref(relative). - -dit(code(\remove) var(string)code(;)) Can appear only in a -code(\translator) block. Specifies that a performer or engraver named -var(string) should be removed. See Section ref(translators). - -dit(code(\repeat) var(count) code({) var(music) code(})) -Repeats the specified -music var(count) times. Alternative endings can be specified by adding a -code(\alternative) keyword after the code(\repeat). - -dit(code(\scm) var(scheme)code(;)) Embeds specified Scheme code. - -dit(code(\scmfile) var(filename)code(;)) Reads Scheme code from the specified -file. - -dit(code(\score) var(statementlist)) Create a Score context. This -is the top level notation context. -COMMENT(this still needs work) - -dit(code(\script) code({) var(name) var(instaff) var(withstem) -var(location) var(invertible) var(priority) code(})) This keyword is -used the initialization file(script.ly) to define the various symbols -that can appear above and below notes. The first argument is the name -of the symbol. The second argument var(instaff) is 1 if the symbol -follows the notehead into the staff and 0 if the symbol stays above or -below the staff lines. The third parameter var(withstem) is 0 if the -symbol's placement does not depend on the stem direction; it is 1 if -the symbol should be at the stem end of the note and it is -1 if the -symbol should be at the note head end of the note. The argument -var(location) is set to 1 for symbols that always appear above the -staff; it is -1 for symbols that appear below the staff. If -var(invertible) is set to 1 then the symbol can be inverted; otherwise -it cannot. The last argument var(priority) sets a priority for the -order of placement of several symbols on a single note. - -dit(code(\shape) code(=) var(indent1) var(width1) var(indent2) -var(width2) ... code(;)) Allowed only within code(\paper). Each pair -of var(indent) and var(width) values is a dimension specifying how far -to indent and how wide to make the line. The indentation and width of -successive lines are specified by the successive pairs of dimensions. -The last pair of dimensions will define the characeristics of all -lines beyond those explicitly specified. - -COMMENT(First pair of dimensions seems to be skipped. At least it is -in the example file denneboom.ly.) - -dit(code(\skip) var(duration)code(;)) Skips the amount of time specified by -var(duration). A gap will be left for the skipped time with no notes -printed. It works in Note Mode or Lyrics Mode (but generates a -mysterious error in lyrics). - -dit(code(\spandynamic) code({) var(kind) var(toggle) code(})) Internal -keyword for crescendo and decrescendo symbols. The first parameter -var(kind) is set to 1 for a crescendo and -1 for a decrescendo. The -second parameter is set to 1 to start the mark and 2 to stop it. -Users should use the abbreviations which are defined in the -initialization file file(dynamic.ly). - -dit(code(\symboltables)) Internal keyword. Used to create symbol -tables. See initialization files file(paper*.ly), file(feta*.ly), and -file(table*.ly). - -dit(code(\table)) Internal keyword. Used within code(\symboltables) -to specify the tables. See initialization files. - -dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within -code(\midi) or within music to specify the tempo. For example, -`code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes -per minute. Note that if the music contains several tempo commands, -only the last one is used to set the tempo for the entire MIDI output. -COMMENT(Is this true?) - -dit(code(\time) var(numerator)code(/)var(denominator)code(;)) Change the time -signature. The default time signature is 4/4. - -dit(code(\times) var(numerator)code(/)var(denominator) var(music)) -Multiply the duration of var(music) by the specified fraction. - -dit(code(\translator) var(statements) or code(\translator) -var(context) = var(name)) The first variant appears only within -code(\paper) and specifies a translator for -converting music to notation. The translator is specified with a -single code(\type) statement and a series of code(\accepts), and -code(\consists) statements. See Section ref(translators). -The second variant appears in -music. It specifies that the current the contexts -contained within the specified context should be shifted to the -context with the specified name. - -COMMENT( \translator seems like a strange name for the second -operation, and is the overloading desireable? ) - -dit(code(\transpose) var(pitch) var(music)) Transposes the specified -music. Middle C is tranposed to var(pitch). This is allowed in music only, -and if it appears inside code(\relative), then any notes specified for -transposition should be specified inside another code(\relative). See Section -ref(transpose). - -dit(code(\type) var(contexttype) [code(=) var(contextname)] -var(music) or code(\type) var(translatortype)code(;)) The first -variant is used only within music to create an instance of a -context. The new context can optionally be given a name. The -specified var(music) is processed in the new context. The second -variant appears within a code(\translator) block and specifies the -type of translator being created. - -dit(code(\version) var(string)) Specify the version of Mudela that a -file was written for. The argument is the version number, for example -code("1.0.1"). Note that the Mudela version is different from the -LilyPond version. - -) - - -sect(Notation Contexts) - -Notation contexts provide information that appears in printed music -but not in the music itself. A new musical context is created using -the code(\type) keyword: `code(\type) var(contexttype) [code(=) -var(contextname)] var(music)'. The following context types are -allowed. - -description( - -dit(code(LyricVoice)) Corresponds to a voice with lyrics. Handles the printing -of a single line of lyrics. - -dit(code(Voice)) Corresponds to a voice on a staff. - This context handles the conversion of noteheads, - dynamic signs, stems, beams, super- and subscripts, slurs, ties and rests. - -dit(code(Lyrics)) Typesets lyrics. It can contain code(LyricVoice) contexts. - -dit(code(Staff)) Handles clefs, bar lines, keys, - accidentals. It can contain code(Voice) contexts. - -dit(code(RhythmicStaff)) A context like code(Staff) but for printing -rhythms. Pitches are ignored; the notes are printed on one line. -It can contain code(Voice) contexts. - -dit(code(GrandStaff)) Contains code(Staff) or code(RhythmicStaff) -contexts. It adds a brace on the left side grouping the staffs -together. The bar lines of the contained staffs are connected vertically. -It can contain code(Staff) contexts. - -dit(code(StaffGroup)) Contains code(Staff) or code(RhythmicStaff) -contexsts. Adds a bracket on the left side, grouping the staffs -together. The bar lines of the contained staffs are connected vertically. -It can contain code(Staff), code(RhythmicStaff), code(GrandStaff) or code(Lyrics) contexts. - -dit(code(ChoirStaff)) Identical to code(StaffGroup) except that the -contained staffs are not connected vertically. - -dit(code(Score)) This is the top level notation context. It is specified with -the code(\score) keyword rather than the code(\type) command. No -other context can contain a code(Score) context. This context handles -the administration of time signatures. It also makes sure that items -such as clefs, time signatures, and key-signatures are aligned across -staffs. It can contain code(Lyrics), code(Staff), -code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and -code(ChoirStaff) contexts. - -) - -The various contexts have properties associated with them. These -properties can be changed using the code(\property) command: -`code(\property) var(context)code(.)var(propname) code(=) var(value)'. -Properties can also be set within the code(\translator) block -corresponding to the appropriate context. In this case, they are -assigned by `var(propname) code(=) var(value)'. The settings made with -code(\property) are processed after settings made in the code(\translator) -block, so the code(\property) settings will override code(\translator) -settings. - -The code(\property) keyword will create any property you specify. -There is no guarantee that a property will actually be used. If you -spell a property name wrong, there will be no error message. In order to find -out what properties are used, you must search the source code -for code(get_property). -Properties that are set in one context are inherited by all of the -contained contexts. This means that a property valid for the Voice -context can be set in the Score context (for example) and thus take -effect in all Voice contexts. - -subsubsubsect(Lyrics properties) - -description( - -dit(code(textstyle)) Set the font for lyrics. The available font -choices are code(roman), code(italic), code(bold), code(large), -code(Large), code(typewriter), and code(finger). The code(finger) -font can only display numbers. Note also that you must be careful -when using code(\property) in Lyrics mode. Because of the way strings -are parsed, either put quotes around the arguments to code(\property) -or be sure to leave a space on both sides of the dot. - -dit(code(textalignment)) Controls alignment of lyrics. Set to code(\left) -to align the left end of the lyric with the note; set to code(\right) to -align the right end of the lyric with the note. Set to code(\center) to -align the center of the lyric with the note. - -) - -subsubsubsect(Voice properties) - -description( - -dit(code("midi_instrument")) Sets the instrument for MIDI output. This -property name must be quoted because of the embedded underscore. If -this property is not set then LilyPond will use the code(instrument) -property. This must be set to one of the strings on the list of MIDI -instruments that appears in Section ref(midilist). If you use a -string which is not listed, LilyPond will silently substitute piano. - -dit(code(transposing)) Tranpose the MIDI output. Set this property to -the number of half-steps to transpose by. - -dit(code(ydirection)) Determines the direction of stems, subscripts, -beams, slurs, and ties. Set to code(\down) to force them down, -code(\up) to force them up, or code(\free) to let LilyPond decide. -This can be used to distinguish between voices on the same staff. The -code(\stemdown), code(\stemup), and code(\stemboth) identifiers set -this property. See also the identifiers code(\voiceone), -code(\voicetwo), code(\voicethree) and code(\voicefour). - -dit(code(slurydirection)) Set to code(\free) for free choice of slur -direction, set to code(\up) to force slurs up, set to code(\down) to -force slurs down. The shorthands code(\slurup), code(\slurdown), and -code(\slurboth) are available. - -dit(code(tieYDirection)) Set to code(\free) for free choice of tie -direction, set to code(\up) to force ties up, set to code(\down) to -force ties down. - -dit(code(slurdash)) Set to 0 for normal slurs, 1 for dotted slurs, and -a larger value for dashed slurs. Identifiers code(\slurnormal) and -code(\slurdotted) are predefined to set the first two settings. - -dit(code(hshift)) Set to 1 to enable LilyPond to shift notes -horizontally if they collide with other notes. This is useful when -typesetting many voices on one staff. The identifier code(\shift) is -defined to enable this. - -dit(code(dynamicdir)) Determines location of dynamic marks. Set to -code(\up) to print marks above the staff; set to code(\down) to print -marks below the staff. - -dit(code(textalignment)) Controls alignment of superscripted and -subscripted text. Set to \left to align the left end of the text with -the note; set to \right to align the right end of the text with the -note. Set to \center to align the center of the text with the note. - -dit(code(textstyle)) Set the text style for superscripts and -subscripts. See above for list of text styles. - -dit(code(fontsize)) Can be used to select smaller font sizes for -music. The normal font size is 0, and the two smaller sizes are -1 -and -2. - -dit(code(pletvisibility)) Determines whether tuplets of notes are -labelled. Setting to 0 shows nothing; setting to 1 shows a number; -setting to 2 shows a number and a bracket if there is no beam; setting -to 3 shows a number, and if there is no beam it adds a bracket; -setting to 4 shows both a number and a bracket unconditionally. - -dit(code(markScriptPadding)) Determines the extra space added between -the mark and the closest staff line or note. - -dit(code(markDirection)) Determines if marks should be printed above -or below the staff. Set to code(\up) to print marks above the staff; -set to code(\down) to print marks below the staff. - -) - -subsubsubsect(Staff properties) - -description( - -dit(code(defaultClef)) Determines the default clef. See code(\clef) -keyword. - -dit(code(nolines)) Sets the number of lines that the staff has. - -dit(code(barAlways)) If set to 1 a bar line is drawn after each note. - -dit(code(defaultBarType)) Sets the default type of bar line. See -code(\bar) keyword. - -dit(code(keyoctaviation)) If set to 1, then keys are the same in all -octaves. If set to 0 then the key signature for different octaves can -be different and is specified independently: code(\keysignature bes -fis'). The default value is 1. Can be set to zero with -code(\specialkey) or reset to 1 with code(\normalkey). - -dit(code(instrument) and code(instr)) If code(Staff_margin_engraver) -is added to the Staff translator, then the code(instrument) property -is used to label the first line of the staff and the code(instr) -property is used to label subsequent lines. If the -code(midi_instrument) property is not set then code(instrument) is -used to determine the instrument for MIDI output. -COMMENT(This prints the instrument name on top of the staff lines.) - -dit(code(abbrev)) Set length for tremolo to be used if no length is -explicitly specified. - -dit(code(createKeyOnClefChange)) Set to a nonempty string if you want key -signatures to be printed when the clef changes. Set to the empty string (the -default) if you do not want key signatures printed. - - -dit(code(timeSignatureStyle)) Changes the default two-digit layout - for time signatures. The following values are recognized: - description( - dit(code(C)) 4/4 and 2/2 are typeset as C and struck C, - respectively. All other time signatures are written with two digits. - dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4 and 9/4 are typeset with - old-style mensuration marks. All other time signatures are - written with two digits. - dit(code(1)) All time signatures are typeset with a single - digit, e.g. 3/2 is written as 3. - dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2), - code(old3/4), code(old4/4), code(old6/4) or - code(old9/4)) Tells Lilypond to use a specific symbol as time - signature. - ) -The different time signature characters are shown below with -their names: -mudela(fragment,center)( -\relative c'' { -\property Voice.textstyle = typewriter -\property Staff.timeSignatureStyle = "C2/2" -\time 2/2; a2^"C2/2" a2 -\property Staff.timeSignatureStyle = "C4/4" -\time 2/2; a2^"C4/4" a2 -\property Staff.timeSignatureStyle = "old2/2" -\time 2/2; a2^"old2/2" a2 -\property Staff.timeSignatureStyle = "old3/2" -\time 2/2; a2^"old3/2" a2 -\property Staff.timeSignatureStyle = "old4/4" -\time 2/2; a2^"old4/4" a2 -\property Staff.timeSignatureStyle = "old6/4" -\time 2/2; a2^"old6/4" a2 -\property Staff.timeSignatureStyle = "old9/4" -\time 2/2; a2^"old9/4" a2 -} -) - - -) - - - -subsubsubsect(GrandStaff properties) - -description( - -dit(code(maxVerticalAlign)) Set the maximum vertical distance between -staffs. - -dit(code(minVerticalAlign)) Set the minimum vertical distance between -staffs. - -) - -subsubsubsect(Score properties) - -description( - -dit(code(SkipBars)) Set to 1 to skip the empty bars that are produced -by multimeasure notes and rests. These bars will not appear on the -printed output. Set to zero (the default) to expand multimeasure -notes and rests into their full length, printing the appropriate -number of empty bars so that synrchonization with other voices is -preserved. COMMENT(meaning of "skip" here seems to be different from -the meaning used for the keyword \skip.) - -dit(code(beamquantisation)) Set to code(\none) for no quantization. -Set to code(\normal) to quantize position and slope. Set to -code(\traditional) to avoid wedges. These three settings are -available via code(\beamposfree), code(\beamposnormal), and -code(\beampostraditional). - -dit(code(beamslopedamping)) Set to code(\none) for undamped beams. -Set to code(\normal) for damped beams. Set to code(\infinity) for -beams with zero slope. The identifiers code(\beamslopeproportional), -code(\beamslopedamped), and code(\beamslopezero) each set the -corresponding value. - -) - - -COMMENT( - -Mystery properties: - -bar-number-engraver.cc: "barScriptPadding" vertical space for numbers -mark-engraver.cc: "markScriptPadding" vertical space for marks -span-bar-engraver.cc: "singleStaffBracket" do single staffs get a bracket? -bar-column-engraver.cc: "barColumnPriority" -bar-number-engraver.cc: "barNumberBreakPriority" Control horizontal ordering -mark-engraver.cc: "markBreakPriority" of bars, clefs, keysig -staff-margin-engraver.cc:"marginBreakPriority" etc. Slated for revision -) - -sect(Pre-defined Identifiers) -label(ident) - -Various identifiers are defined in the initialization files to -provide shorthands for some settings. - -description( -dit(code(\break)) Force a line break in music by using a large -argument for the keyword code(\penalty). -dit(code(\center)) Used for setting textalignment property. Is set to 0. -dit(code(\cr)) Start a crescendo. -dit(code(\decr)) Start a decrescendo. -dit(code(\down)) Used for setting direction setting properties. Is -equal to -1. -dit(code(\f)) Print forte symbol on the preceeding note. -dit(code(\ff)) Print fortissimo symbol on the preceeding note. -dit(code(\fff)) Print fortississimo symbol on preceeding note. -dit(code(\fp)) Print fortepiano symbol on preceeding note. -dit(code(\free)) Used for setting direction setting properties. Is -equal to 0. -dit(code(\Gourlay)) Used for setting the paper variable -code(castingalgorithm). Is equal to 1.0. -dit(code(\infinity)) Used for setting the Score.beamslopedamping -property. Is actually equal to 10000. -dit(code(\left)) Used for setting textalignment property. Is equal to -1. -dit(code(\major)) Used as the second argument of the code(\key) -command to get a major key. -dit(code(\minor)) Used as the second argument of the code(\key) -command to get a minor key. -dit(code(\mf)) Print mezzoforte symbol on preceeding note. -dit(code(\mp)) Print mezzopiano symbol on preceeding note. -dit(code(\nobreak)) Prevent a line break in music by using a large -negative argument for the keyword code(\penalty). -dit(code(\none)) Used for setting Score.beamslopedamping and -Score.beamquantisation properties. Is equal to 0. -dit(code(\normal)) Used for setting Score.beamslopedamping and -Score.beamquantisation properties. Is equal to 1. -dit(code(\normalkey)) Select normal key signatures where each octave -has the same key signature. This sets the Staff.keyoctaviation property. -dit(code(\p)) Print a piano symbol on preceeding note. -dit(code(\pp)) Print pianissimo symbol on preceeding note. -dit(code(\ppp)) Print pianississimo symbol on preceeding note. -dit(code(\rc)) Terminate a crescendo. -dit(code(\rced)) Terminate a decrescendo -dit(code(\right)) Used for setting textalignment property. Is set to 1. -dit(code(\sf)) Print a ?? symbol on preceeding note. -dit(code(\sfz)) Print a ?? symbol on preceeding note. -dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide. -Sets the Voice.hshift property. -dit(code(\shifton)) Enable note heads that collide with other note heads -to be shifted horiztonally. Sets the Voice.hshift property. -dit(code(\slurboth)) Allow slurs to be above or below notes. This -sets the Voice.slurydirection property. -dit(code(\slurdown)) Force slurs to be below notes. This sets the -Voice.slurydirection property. -dit(code(\slurup)) Force slurs to be above notes. This sets the -Voice.slurydirection property. -dit(code(\specialkey)) Allow keys signatures do differ in different -octaves. This sets the Staff.keyoctaviation property. -dit(code(\stemboth)) Allow stems, beams, and slurs to point either -direction. This sets the Voice.ydirection property. -dit(code(\stemdown)) Force stems, beams, and slurs to point down. -This sets the Voice.ydirection property. -dit(code(\stemup)) Force stems, beams and slurs to point up. This -sets the Voice.ydirection property. -dit(code(\traditional)) Used for setting the -Score.beamquantisation property. Is equal to 2. -dit(code(\up)) Used for setting various direction properties. Is -equal to 1. -dit(code(\voiceone)) Enter Voice context called code(one) and force stems down. -(See code(\stemdown).) -dit(code(\voicetwo)) Enter Voice context called code(two) and force stems -up. (See code(\stemup).) -dit(code(\voicethree)) Enter Voice context called code(three) and force stems -up. -dit(code(\voicefour)) Enter Voice context called code(four), force stems down -and turn on horizontal shifting. (See code(\stemdown) and code(\shifton).) -dit(code(\Wordwrap)) Used for setting the paper variable -code(castingalgorithm). Equal to 0.0. -) - - -sect(Output) -label(output) -label(paper) - -The output produced by LilyPond is controlled by the code(\paper) and -code(\midi) keywords. These keywords appear in the code(\score) block -to indicate that printed or musical output should be produced. If -neither keyword appears in a code(\score) block, then paper output is -produced but MIDI output is not produced. - -The contents of the code(\paper) and code(\midi) blocks can change the -output in various ways. These blocks can appear at the top level of a -Mudela file to set default parameters for each type of output. It is -still necessary to explicitly specify the output type in the -code(\score) blocks if you don't want the default behavior of -producing only paper output. - -The code(\paper) and code(\midi) blocks -may begin with an optional identifier reference. No -identifier references are allowed anywhere else in the block. -The code(\paper) block can contain the code(\shape) keyword; the -code(\midi) block can contain the code(\tempo) keyword. Both of them -can contain code(\translator) keywords. The code(\paper) block can -also contain identifier assignments and parameter assignments. Unlike -at the top level, these assignments must be terminated by a semicolon. - - -subsect(Paper variables) - -There are a large number of paper variables that are used to control -details of the layout. Usually you will not want to change these -variables; they are set by default to vaules that depend on the font -size in use. The only way to find out what variables are supported is -to search the source code for code(get_var). Two variables that you -may want to change are code(linewidth) and code(indent). - -In order to change the font size used for the output, many variables -need to be changed. Some identifiers and initialization files can -simplify this process. The default size is 20pt. In order to select -a different size, you must do two things. At the top level, do -code(\include "paper)var(SZ)code(.ly") where var(SZ) is the height of -the staff in points. Values presently allowed are 11, 13, 16, 20, and -26. This loads some definitions, but does not cause them to take -effect. In order to actually change the size, you must use one of the -identifiers: code(\paper_eleven), code(\paper_thirteen), -code(\paper_sixteen), code(\paper_twenty) or code(\paper_twentysix) -inside a code(\paper) block. - - -description( - dit(var(integer)) If an integer appears on the left side of an -assignment then a code(\symboltables) keyword must appear on the right -side. This defines a music font at a particular size. See Voice -property code(\fontsize). - -dit(code(arithmetic_basicspace) and code(arithmetic_multiplier)) -The space taken by a note is determined by the formula -COMMENT( - -)verb(arithmetic_multiplier * ( c + log2 (time) ))COMMENT( - -) where code(time) is the amount of time a note occupies. The value -of code(c) is chosen such that the smallest space within a measure is -arithmetic_basicspace. The smallest space is the one following the -shortest note in the measure. Typically arithmetic_basicspace is set -to the width of a quarter note head. - -dit(code(barsize)) Specify height of bars. This value may need to be -adjusted if you change the number of lines in the staff. -dit(code(beam_dir_algorithm)) Specify algorithm for determining -whether beams go up or down. It is real valued. If set to 2.0 then -majority selection is used. If set to 3.0, then mean selection is -used based on the mean center distance. If set to 4.0 then median -selection is used, based on the median center distance. -dit(code(beam_ideal_stem1)) -dit(code(beam_ideal_stem2)) -dit(code(beam_minimum_stem1)) -dit(code(beam_minimum_stem2)) -dit(code(beam_multiple_break)) -dit(code(beam_slope_damp_correct_factor)) -dit(code(beam_thickness)) Specify the thickness of beams. -dit(code(castingalgorithm)) -dit(code(forced_stem_shorten)) Stems that have been forced to go the -unnatural direction are shortened by this amount. Equal to -code(\interline) by default. -dit(code(gourlay_energybound)) -dit(code(gourlay_maxmeasures)) Maximum number of measures per line -when using Gourlay method. -Decreasing this greatly reduces computation time. Default value: 10. -dit(code(indent)) Sets the indentation of the first line of music. -dit(code(interbeam)) -dit(code(interbeam4)) -dit(code(interline)) The distance between two staff -lines, calculated from the center of the lines. -dit(code(linewidth)) Sets the width of the lines. If it is set to --1.0, then a single unjustified line is produced. -dit(code(notewidth)) Width of an average note head. -dit(code(output)) Specifies an alternate -name for the TeX() output. A file(.tex) extension will be added to -the string you specify. -dit(code(rulethickness)) Determines thickness of staff lines and bars. -dit(code(slur_clip_angle)) -dit(code(slur_clip_height)) -dit(code(slur_clip_ratio)) -dit(code(slur_height_limit)) Specifies the maximum height of slurs. -Normally equal to staff_height. -dit(code(slur_ratio)) Specifes the ratio of slur hight to slur width -to aim for. Default value is 0.3. -dit(code(slur_rc_factor)) -dit(code(slur_slope_damping)) Allows slurs to start and end at -different heights ???? Default value is 0.5. -dit(code(slur_thickness)) Specify slur thickness. Equal to code(1.4 * -\staffline) by default. -dit(code(slur_x_gap)) Horizontal space between note and slur. Set to -code(\interline / 5) by default. -dit(code(slur_x_minimum)) -dit(code(staffheight)) The height of the staff from the center of the -bottom line to the center of the top line. Equal to to code(4 * \interline). -dit(code(stem_length)) Specify length of stems for notes in the staff -that don't have beams. -dit(code(stemthickness)) Specifies the thickness of the stem lines. -dit(code(tie_slope_damping)) -dit(code(tie_x_minimum)) -) - - -subsect(MIDI Instrument Names) -label(midilist) - -The MIDI instrument name is set by the code(Staff."midi_instrument") -property or, if that property is not set, the code(Staff.instrument) -property. The instrument name should be chosen from this list. If -string does not exactly match one from this list then LilyPond uses -the default piano. - -COMMENT( acordina = accordion, tango accordian = concertina - distortion guitar = distorted guitar - orchestral strings = harp - pan flute = wood flute? ) - -verb("acoustic grand" "contrabass" "lead 7 (fifths)" -"bright acoustic" "tremolo strings" "lead 8 (bass+lead)" -"electric grand" "pizzicato strings" "pad 1 (new age)" -"honky-tonk" "orchestral strings" "pad 2 (warm)" -"electric piano 1" "timpani" "pad 3 (polysynth)" -"electric piano 2" "string ensemble 1" "pad 4 (choir)" -"harpsichord" "string ensemble 2" "pad 5 (bowed)" -"clav" "synthstrings 1" "pad 6 (metallic)" -"celesta" "synthstrings 2" "pad 7 (halo)" -"glockenspiel" "choir aahs" "pad 8 (sweep)" -"music box" "voice oohs" "fx 1 (rain)" -"vibraphone" "synth voice" "fx 2 (soundtrack)" -"marimba" "orchestra hit" "fx 3 (crystal)" -"xylophone" "trumpet" "fx 4 (atmosphere)" -"tubular bells" "trombone" "fx 5 (brightness)" -"dulcimer" "tuba" "fx 6 (goblins)" -"drawbar organ" "muted trumpet" "fx 7 (echoes)" -"percussive organ" "french horn" "fx 8 (sci-fi)" -"rock organ" "brass section" "sitar" -"church organ" "synthbrass 1" "banjo" -"reed organ" "synthbrass 2" "shamisen" -"accordion" "soprano sax" "koto" -"harmonica" "alto sax" "kalimba" -"concertina" "tenor sax" "bagpipe" -"acoustic guitar (nylon)" "baritone sax" "fiddle" -"acoustic guitar (steel)" "oboe" "shanai" -"electric guitar (jazz)" "english horn" "tinkle bell" -"electric guitar (clean)" "bassoon" "agogo" -"electric guitar (muted)" "clarinet" "steel drums" -"overdriven guitar" "piccolo" "woodblock" -"distorted guitar" "flute" "taiko drum" -"guitar harmonics" "recorder" "melodic tom" -"acoustic bass" "pan flute" "synth drum" -"electric bass (finger)" "blown bottle" "reverse cymbal" -"electric bass (pick)" "skakuhachi" "guitar fret noise" -"fretless bass" "whistle" "breath noise" -"slap bass 1" "ocarina" "seashore" -"slap bass 2" "lead 1 (square)" "bird tweet" -"synth bass 1" "lead 2 (sawtooth)" "telephone ring" -"synth bass 2" "lead 3 (calliope)" "helicopter" -"violin" "lead 4 (chiff)" "applause" -"viola" "lead 5 (charang)" "gunshot" -"cello" "lead 6 (voice)") - - - -subsect(Translators) -label(translators) - -The behavior of notation contexts is defined by the translators for -those contexts. The translator for a context specifies what notations -are handled by the context, it specifies what other contexts the -context can contain, and it sets property values for the context. -There are different translators for each type of output. The -translators for paper output are defined in file(engraver.ly). The -translators for MIDI output are defined in file(performer.ly). - -The first thing that appears inside a code(\translator) definition is -the type of the context being created. This is specified with the -code(\type) keyword: code(\type) var(typename)code(;). After the type -of the context is specified, property assignments, the code(\name) -keyword and code(\consists), code(\accepts), and code(\remove) -keywords can appear in any order. The code(\name) keyword specifies -the name of the context that is handled by the translator. If the -name is not specified, the translator won't do anything. Each -code(\accepts) keyword specifies what contexts can be contained inside -this one. The code(\consists) keywords specify which notations are -handled by the context. Each code(\consists) keyword specifies the -name of an engraver (for paper ouput) or performer (for MIDI output) -which handles a certain notation. The code(\remove) keyword can be -used to remove a performer or engraver from the translator. - -In the code(\paper) block, it is also possible to define translator -identifiers. Like other block identifiers, the identifier can only -be used as the very first item of a translator. In order to define -such an identifier outside of code(\score), you must do -verb(\paper{ foo=\translator{ ... } -\score{ - \notes{ ... } - \paper{ \translator{ \foo ... } } -}) - -Some All of the standard translators have predefined identifiers, making -it easy to redefine these contexts by adding or removing items. -The predefined identifiers are: code(StaffContext), -code(RhythmicStaffContext), code(VoiceContext), code(ScoreContext), code(ScoreWithNumbers) - - -subsubsect(Paper Types and Engravers and Pre-defined Translators) - -Some pre-defined identifiers can simplify modification of translators. -The pre-defined identifiers are: -description( -dit(code(StaffContext)) Default Staff context. -dit(code(RhythmicStaffContext)) Default RhythmicStaff context. -dit(code(VoiceContext)) Default Voice context. -dit(code(ScoreContext)) Default Score context. -dit(code(ScoreWithNumbers)) Score context with numbering at the -Score level. -dit(code(BarNumberingStaffContext)) Staff context with numbering at -the Staff level. -dit(code(HaraKiriStaffContext)) -dit(code(OrchestralPartStaffContext)) -dit(code(OrchestralScoreContext)) -) -Using these pre-defined values, you can remove or add items to the -translator verb(\paper{ \translator{ \StaffContext - \remove Some_engraver; - \consists Different_engraver; }}) - - - -There are four types for paper translators: -description( - dit(code(Engraver_group_engraver)) - dit(code(Hara_kiri_line_group_engraver)) - dit(code(Line_group_engraver_group)) - dit(code(Score_engraver)) -) -COMMENT( The names of these types seem somewhat confusing. ) - -The engravers for paper output are: - -description( -dit(code(Abbreviation_beam_engraver)) -dit(code(Bar_column_engraver)) -dit(code(Bar_engraver)) Engraves bar lines. Normally in code(Staff) and -code(RhythmicStaff). -dit(code(Bar_number_engraver)) Engrave bar numbers. These numbers -appear at the start of each line. Not normally in any translator. Can -be added to code(Score) for Score-wide numbering or to code(Staff) for -numbering on each staff. - -dit(code(Beam_engraver)) Handles beam requests by engraving beams. Normally -appears in the code(Voice) translator. If omitted, then notes will be printed -with flags instead of beams. - -dit(code(Beam_req_swallow_translator)) Swallows beam requests. In -code(LyricVoice). -dit(code(Clef_engraver)) Engraves the clef symbol. Normally in code(Staff). -dit(code(Collision_engraver)) -dit(code(Dot_column_engraver)) Engraves dots on dotted notes shifted to the -right of the note. Normally in code(Voice). If omitted, then dots appear on -top of the notes. -dit(code(Dynamic_engraver)) Engraves dynamics symbols. Normally in code(Voice). -dit(code(Font_size_engraver)) -dit(code(Key_engraver)) Engraves the key signature. Normally in code(Staff). -dit(code(Local_key_engraver)) -dit(code(Lyric_engraver)) Engraves lyrics. Normally in code(LyricVoice). -dit(code(Multi_measure_rest_engraver)) Engraves multi-measure rests that are -produced with code(R). Normally in code(Voice). -dit(code(Piano_bar_engraver)) -dit(code(Pitch_squash_engraver)) Treat all pitches as middle C. Used in -code(RhythmicStaff). Note that the notes move, but the locations of -accidentals stay the same. -dit(code(Plet_engraver)) Engraves brackets and the number over tuplets. In -code(Voice). -dit(code(Plet_swallow_engraver)) Swallows tuplet requests without any output. -In code(LyricVoice). -COMMENT( Should this be named Plet_req_swallow_translator? ) -dit(code(Priority_horizontal_align_engraver)) -dit(code(Repeat_engraver)) Handles repeats? In code(Staff) and - code(RhythmicStaff). -dit(code(Rest_collision_engraver)) Handles collisions of rests. In code(Staff). -dit(code(Rest_engraver)) Engraves rests. Normally in code(Voice). -dit(code(Rhythmic_column_engraver)) -dit(code(Score_priority_engraver)) -dit(code(Script_engraver)) Handles note ornaments generated by code(\script). -Normally in code(Voice). -dit(code(Separating_line_group_engraver)) -dit(code(Skip_req_swallow_translator)) -dit(code(Slur_engraver)) Engraves slurs. Normally in code(Voice). -dit(code(Span_bar_engraver)) Engraves lines across multiple staffs. Normally -in code(Staffgroup) and code(GrandStaff). Removing this from code(StaffGroup) -gives the definition of code(ChoirStaff). -dit(code(Span_score_bar_engraver)) -dit(code(Staff_group_bar_engraver)) -dit(code(Staff_margin_engraver)) Prints the name of the instrument -(specified by code(Staff.instrument) and code(Staff.instr)) at the -left of the staff. -dit(code(Staff_sym_engraver)) -dit(code(Stem_engraver)) Engraves stems. Normally in code(Voice). -dit(code(Ties_engraver)) Engraves ties. Normally in code(Voice). -dit(code(Time_signature_engraver)) Engraves the time signature. Normally in -code(Staff) and code(RhythmicStaff). -dit(code(Timing_engraver)) Responsible for synchronizing timing information -from staffs. Normally in code(Score). In order to create polyrhythmic music, -this engraver should be removed from code(Score) and placed in code(Staff). -dit(code(Tuplet_engraver)) Engraves tuplet brackets? In code(Staff). -dit(code(Vertical_align_engraver)) -) - - -subsubsect(MIDI Types and Performers) - -The types available for MIDI translators are: -description( -dit(code(Performer_group_performer)) -dit(code(Score_performer)) -dit(code(Staff_performer)) -) - -The performers for MIDI translators are: -description( -dit(code(Key_performer)) -dit(code(Time_signature_performer)) -dit(code(Note_performer)) -dit(code(Lyric_performer)) -dit(code(Swallow_performer)) -) - diff --git a/Documentation/topdocs/INSTALL.yo b/Documentation/topdocs/INSTALL.yo index d963065b21..f8298855ce 100644 --- a/Documentation/topdocs/INSTALL.yo +++ b/Documentation/topdocs/INSTALL.yo @@ -183,8 +183,6 @@ verb( Options to configure include: description( -dit(bf(--enable-guile)) - Link in GUILE (experimental) dit(bf(--enable-printing)) Enable debugging print routines (lilypond bf(-D) option) dit(bf(--enable-optimise)) diff --git a/INSTALL.txt b/INSTALL.txt index 1e13825347..e4a952b2a5 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -294,9 +294,6 @@ also use Options to configure include: ---enable-guile - Link in GUILE (experimental) - --enable-printing Enable debugging print routines (lilypond -D option) @@ -342,13 +339,14 @@ Example: suppose I want to build with and without profil- ing. Then I'd use the following for the normal build, - configure --prefix=~ --disable-optimise --enable-checking - make - make install + configure --prefix=~ --disable-optimise --enable-checking + make + make install + and for the profiling version, I specify a different config- uration. @@ -396,8 +394,6 @@ CAVEATS o The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You should turn off this flag for this - - file. @@ -407,10 +403,6 @@ EXAMPLE This is what I type in my xterm: - - - - lilypond someinput.ly tex someinput.tex xdvi someinput& @@ -459,9 +451,6 @@ sources. You can make the rpm by issuing - - - rpm -tb lilypond-x.y.z.tar.gz rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z @@ -1,40 +1,7 @@ ---- ../lilypond-1.1.23.ms1/NEWS Mon Jan 25 10:22:34 1999 -++ b/NEWS Mon Jan 25 13:34:19 1999 -@@ -1,3 +1,7 @@ -pl 23.ms2 - - property noteheadStyle - - first attempt to make harmonics : see input/test/harmonics.fly - - pl 23.ms1 - - sinfonia.ly: several fixes - - dynamics--- ../lilypond-1.1.23/NEWS Tue Jan 19 16:29:41 1999 -++ b/NEWS Mon Jan 25 10:22:34 1999 -@@ -1,3 +1,13 @@ -pl 23.ms1 - - sinfonia.ly: several fixes - - dynamics - * increased range pppppp to ffffff - * added sp, spp, sff, rfz - * example see input/test/tchaikovsky.ly - * updated dynamics in refman +pl 24, Hacking Apart Together (Jan 25) -******* - - pl 22.jcn4 - - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats - - bf: :|, |:--- ../lilypond-1.1.23.jcn7/NEWS Sun Jan 24 13:35:45 1999 -++ b/NEWS Sun Jan 24 21:29:07 1999 -@@ -1,3 +1,6 @@ -pl 23.jcn8 - - tfm reader; revamped code from fontutils-0.6 - - pl 23.jcn7 - - bf: piano-brace size (veels te simpel: kruis vingers tegen reject) - - crude autobeam stuff in mi2mu--- ../lilypond-1.1.23/NEWS Tue Jan 19 10:29:41 1999 -++ b/NEWS Sat Jan 23 20:13:39 1999 -@@ -1,3 +1,12 @@ pl 23.jbr1 - - scripts/ly2dvi.py: Windows 95 shell does not support redirection + - scripts/ly2dvi.py: Windows 95 shell does not support redivrection of stderr. We now distribute ash and use it when needed. - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/ directory. We build and distribute manpages in html format instead @@ -42,31 +9,80 @@ pl 23.jbr1 - Documentation/ntweb: Updated doco and now distributing as a self extracted binary with install script. - pl 22.jcn4 - - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats - - bf: :|, |:--- ../lilypond-1.1.23.jcn4/NEWS Fri Jan 22 17:54:13 1999 -++ b/NEWS Sat Jan 23 16:13:25 1999 -@@ -1,3 +1,6 @@ -pl 23.jcn5 - - verder hakken aan repeat-engraver URG - - pl 23.jcn4 - - hakken aan repeat-engaver - --- ../lilypond-1.1.23.jcn3/NEWS Thu Jan 21 18:57:17 1999 -++ b/NEWS Fri Jan 22 17:54:13 1999 -@@ -1,3 +1,6 @@ -pl 23.jcn4 - - hakken aan repeat-engaver - - pl 23.jcn3 - - succussfully removed []s from wtk1-fugue2.ly - - bf + smarter autobeamerpl 23.mb1 +pl 23.hwn4 + - bugfixes + - changed All_font_metrics to do TFM as well. + - changed init/ to ly/ + +pl 23.jcn8 + - tfm reader; revamped code from fontutils-0.6 + +pl 23.hwn3 + - {Bar numbers|staff margin stuff|marks} fixed using +Bar_script_engraver as base class + - bf: PS points != Lily \pt + - junked Bar_column_engraver + - junked Text_item and some old files. + + +pl 23.jcn7 + - bf: piano-brace size (veels te simpel: kruis vingers tegen reject) + - crude autobeam stuff in mi2mu + - brevis, longa chords: c1*2,*4 + - mutopia/E.Satie/petite-ouverture-a-danser.ly + - prop: voltaVisibility + - more cello-suite-ii fixes: + * nice repeats + * removed all beams ifo auto-beamer + - bf's: autobeam + - junked dur2real; beamAutoEndx now as rational string: "1/2" + +pl 23.hwn2 + - _8 clef + - junked #args symtable def. + - junked Text_item. + - moved Bar assembling into LilyPond + - junked symtables reads + - Lookup cleanups + - junked Symtable from init/table* + +pl 23.hwn1 + - revamped Scarlatti K3-L378 + - some more doco + - use interning/SCM for Scopes + - hanging on now works for breakables too. + +pl 23.jcn6 + - chord fixes; notemode chord syntax changed: @c@ @c-7@ + - fixed cello-suite ii + - bf's: auto-beamer; but nasty bug remains: input/bug/auto-beam.ly + - bf: extender + - (bit ugly) fix for lyric-chords + - fixed repeats (dankjewel lieverd) + * input/twinkle.ly + * input/star*.ly + +pl 23.jcn3 + - succussfully removed []s from wtk1-fugue2.ly + - bf + smarter autobeamer + +pl 23.jcn2 + - mi2mu: d-minor: des->cis, g-minor ges->fis + +pl 23.mb1 - bf: Position and possible SIGSEGV in Mark_engraver - Added padding support in G_staff_side_item - bf: Correct direction of textual scripts. - bf, lookup.cc: Fewer warnings about missing text styles. Same units used in all .afm files. +pl 22.jcn5 + - auto-beaming v0: input/test/auto-beam.ly + + + +*********** + pl 22.jcn4 - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats - bf: :|, |: @@ -7,31 +7,42 @@ 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 +************** +I also found a few bugs: -* check out PS points vs. LilyPond points (PS = 1/72 inch, LilyPond=1/72.27) +* The examples in input/test/bar-scripts.ly and score-bar-scripts.ly + don't work. The problem seems to be that you can't define a + a score identifier and then use it in the \score block. * Instrument names in the margin. Example: input/test/hara-kiri.ly. The text should of course be to the left of the staff lines. +************** + + * check widths of TFM, something's wrong here. + + * hang Item on Spanner + + * junk Text_def, use G_text_item in stead. + + * remove Interval dim_ from Dimension_cache and rename the struct. + + * do --safe for PS output? + + * staff_margin (with a partial measure.) + + * fix "I've been drinking too much" + + * add scripts to bars eg. |^"bla" + + * fix Staff_margin_engraver. + + * fix pletvisibility properties: + - bracket on/off/no-bracket-when-beam + - num on/off/no-num-when-beam + + * fix: standchen. -* There is a bug in pl 22. Try /input/test/slurs.ly and - you will find '#.#' instead of real numbers at some - places in the empedded ps code. - -* (Annoying but not a bug:) Slurs that are broken at line - breaks often extend too far into the margin, both to the - left and to the right. How do you adjust it? - -* SkipBars=0 doesn't work. My score contains lots of - multibar rests, which should be written out bar by bar - in the score (where the 'harakiri' mechanism doesn't - remove full staff lines that only contain rests). - In the parts, the multibar rests should be split - by the rehearsal marks I've included every here and - there. - In short, I want the multibar rests to work as they - used to do before pl 20 but preferably with a nice - centered rest symbol. * junk backlinks? * junk text{sharp,flat,etc} @@ -42,21 +53,6 @@ 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. - > - > - markScriptPadding is not supported, since G_staff_side_item does not - > support padding. - > - > - markBreakPriority is not supported. - > - > - Mostly, you want the marks aligned with the bar lines. I don't - > really understand how to implement that feature. - > - > - You get lots of warnings about missing 'number' and 'Large' - - *{ \voiceone <a'4.*2/3 d''4.*2/3 fis''4.*2/3> [g''8 fis'' e''] d''4 |} and=20 { \voicetwo d'4 d'2.*2/3 } spacing @@ -66,31 +62,21 @@ grep for TODO and ugh/ugr/urg * sharp /flat on trills (in MIDI ??) * scm-ify \property values. -- The direction of textual scripts ('^' or '_') is ignored. - * move class Lookup {} into scm - - * read tfms too. - * update mi2mu for lilypond 1.1 + * move class Lookup {} into scm BUGS: + * collisions/voices \voiceone \voicetwo are broken; see input/praeludium-fuga-E.ly mutopia/J.S.Bach/wtk1-fugue2.ly - * fix: standchen. - - * fix: cello suites - - * fix: text on rests: rediculous dims - - * fix extender + * fix: text on rests: rediculous dims - * fix fingering 'a-5': font direction broken *again* - - * fix braces - - * ly2dvi barfs on linewidth = -1. + * ly2dvi + - barfs on linewidth = -1. + - bottomnote for ly2dvi + - deps for ly2dvi * fix midi output: - default duration? duration must be not entered @@ -107,9 +93,6 @@ BUGS: * fix height of / collisions with lyrics (chords), see input/test/vertical-text.ly; input/test/repeat.ly - * repeat/volta: - - one volta spanner per score - * latex bla.tex broken (titles / \lilyfooter stuff?) * check/set minimum slur/tie length @@ -172,11 +155,11 @@ STUFF * Align_element::padding ? - * uniformise property names. - - * ydirection <-> yDirection - - * typo checks on property names? + * uniformise property names... + - ydirection <-> yDirection + - rather allow '_' in identifiers first (i.e. junk ^ and _), + and do y_direction? + - typo checks on property names? * use streambufs and iostream to provide IO handling for TeX stream, mudela stream, data-file. @@ -205,8 +188,6 @@ STUFF * mi2mu empty staffs. - * midi_instrument -> midiInstrument - * horizontal centering of dynamics * \font\fontA=feta20.afm (.afm?) @@ -256,7 +237,7 @@ ydirection and hshift preset - NEWS: ... Musical_pitch (analogous to Duration and Rhythmic_req) think about, analogous to pitch: * { a4 a16 } c <-- duration of c? - * <a4 b8> c <-- duration of c? + * < a4 b8 > c <-- duration of c? * \tempo 4. = 90; @@ -270,8 +251,6 @@ ydirection and hshift preset * add a Duration_convert member to Duration_iter to set parameters. Junk global duration settings. - - * deps for ly2dvi * minimum length second part broken tie @@ -307,16 +286,13 @@ ydirection and hshift preset * check for groff / troff/ nroff et * more intelligent file searching - - make LilyPond RPM fully relocatable - * nicen examples: - - break-up heavily-nested score blocks + * make LilyPond RPM fully relocatable * disable spaces in TeX stuff * handle ^C for tmp/file creation. - * dots & rest collisions. * documentation @@ -346,51 +322,46 @@ ydirection and hshift preset * integrate midi-elts from mi2mu and lily? - * score-bar-scripts - FMR: Free memory read: - * This is occurring while in: - Bar_column::do_substitute_dependency(Score_element*,Score_element*) [bar - -column.cc:29] - Score_element::unlink() [score-elem.cc:383] - Paper_score::set_breaking(const Array<Column_x_positions>&) [p-score.cc: - 150] - Paper_score::calc_breaking() [p-score.cc:189] - Paper_score::process() [p-score.cc:203] - Score::run_translator(Music_output_def*) [score.cc:117] - * Reading 4 bytes from 0x65d3a0 in the heap. - * Address 0x65d3a0 is 160 bytes into a freed block at 0x65d300 of 208 bytes. - * This block was allocated from: - malloc [rtlib.o] - __builtin_new [libgcc.a] - Span_score_bar::clone()const [span-score-bar.hh:20] - Item::copy_breakable_items() [item.cc:69] - Item::do_breakable_col_processing() [item.cc:89] - Score_element::calcalute_dependencies(int,int,void(Score_element::*)()*) - [score-elem.cc:171] - * There have been 22 frees since this block was freed from: - free [rtlib.o] - __builtin_delete [libgcc.a] - Span_score_bar::~Span_score_bar() [span-score-bar.hh:18] - Paper_score::set_breaking(const Array<Column_x_positions>&) [p-score.cc: - 156] - Paper_score::calc_breaking() [p-score.cc:189] - Paper_score::process() [p-score.cc:203] - Postprocessing elements... - TeX output to score-bar-scripts.tex... - 3RD PARTY BUGS: +**************** +/* +ICE +*/ +signature S { + int foo (); +}; - * make GCC warn about ctor that leaves member vars uninitialised. +signature V { + S * s(); +}; - * redhat (v?) graphical install bomb-out? - * GNU diff 2.7: diff -rN does not see a new directory with empty file +V*v(); +f () +{ + return v( )->foo (); +} + +/* + + egcs-1.1 - * GNU patch 2.1: <must find simple example> if patch chokes on a - hunk, or on allegedly unsorted hunks in a diff, it may stop - without a trace of failure (create .rej file, print error or - dump core) and just ignore any further diffs. +foo.cc: In function `int f()': +foo.cc:6: label `b' used but not defined +*/ +void +f () +{ + bool b; + if (b && && b) + ; +} +*************** + + * make GCC warn about ctor that leaves member vars uninitialised. + + * GNU diff 2.7: diff -rN does not see a new directory with empty file * glibc 2.0: @@ -399,8 +370,6 @@ ydirection and hshift preset 3RD PARTY PROJECTS: - * GNU indent: handle C++ - * GNU patch - 'double-fix' mode: ignore identical fix, rather than suggest to revert patch direction when (more or less? exactly) the same @@ -507,8 +476,6 @@ PROJECTS - quiet/ignore-version options - logfile output - * piano staff - * elaborate Staff_side baseclass: - scripts - text @@ -519,7 +486,6 @@ PROJECTS - PS lines to .eps files - write custom prolog - * Output an output format independent (ofi) typeset file; and make ofi2 TeX, MusiXTex, Display PostScript, PostScript, Ascii... interpreters. (difficult) @@ -571,8 +537,6 @@ PROJECTS - saving them - specify number of lines - * markers - INPUTLANGUAGE * c4 4 4 4 for c4 c4 c4 c4? @@ -659,13 +623,6 @@ IDEAS * move MIDI stuff (including Quantization) to a ANSI C libmidi library. - * use an embedded language: Python, Scheme - for: - - Score_elems - - Translators - - * y -dims in internote? Staff-space? X-dimensions? - * Spacing_request for manually adjusting spacing * caching breakpoints @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=23 -MY_PATCH_LEVEL=ms2 +PATCH_LEVEL=24 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/mf-to-table.py b/buildscripts/mf-to-table.py index 88eaf5d612..4d4b505197 100644 --- a/buildscripts/mf-to-table.py +++ b/buildscripts/mf-to-table.py @@ -112,7 +112,7 @@ class Indentable_file(File): class Afm_file (File): def print_f_dimen(self, f): - f = f + f = f * 1000 dimstr = '%.2f' % f diff --git a/buildscripts/set-lily.sh b/buildscripts/set-lily.sh index 6e698cdc85..f819163aa5 100755 --- a/buildscripts/set-lily.sh +++ b/buildscripts/set-lily.sh @@ -6,6 +6,7 @@ PACKAGE_NAME=LilyPond export PACKAGE_NAME prefix=$HOME/usr sources=$prefix/src + # # . ./stepmake/bin/package-zet.sh @@ -47,9 +48,8 @@ ln -sf $LILYPOND_SOURCEDIR/scripts/out/mudela-book $prefix/bin/mudela-book chmod 755 $LILYPOND_SOURCEDIR/buildscripts/ps-to-gifs.sh ln -sf $LILYPOND_SOURCEDIR/buildscripts/ps-to-gifs.sh $prefix/bin/ps-to-gifs ln -sf $LILYPOND_SOURCEDIR/mf/out/ afm -mkdir -p $prefix/share/lilypond -ln -sf $LILYPOND_SOURCEDIR/ $prefix/share/lilypond -rm $prefix/share/lilypond +mkdir -p $prefix/share/ +ln -sf $prefix/lilypond/ $sources/lilypond if [ -f ../.gdbinit ]; then @@ -3,7 +3,7 @@ # the debugging. # class name silence? -Dstream 1 +Dstream 0 # yydebug InitParser 1 @@ -27,14 +27,20 @@ Vector 1 # lily Absolute_dynamic_req 1 Atom 1 -Axis_group_administration 0 +Axis_group_administration 1 +Axis_group_spanner 1 +Auto_beam_engraver 0 +Audio_column 1 +Audio_element 1 +Audio_item 1 +Audio_note 1 Bar 1 Bar_req 1 -Beam 0 +Beam 1 Bezier 1 Bezier_bow 1 Bezier_bow_controls 1 -Bezier_controls 0 +Bezier_controls 1 Bow 1 Change_iterator 1 Change_translator 1 @@ -48,13 +54,14 @@ Collision 1 Column_info 1 Column_rod 1 Duration_identifier 1 -Engraver 0 -Engraver_group_engraver 0 +Engraver 1 +Engraver_group_engraver 1 General_script_def 1 Graphical_element 1 +Graphical_axis_group 1 Group_change_req 1 Guile 1 -Head_column 0 +Head_column 1 Horizontal_align_item 1 Horizontal_group_item 1 Idealspacing 1 @@ -62,40 +69,42 @@ Identifier 1 Ineq_constrained_qp 1 Input_translator 1 int_identifier 1 -Item 0 +Item 1 Key_item 1 Lookup 1 Line_spacer 1 Melodic_req 1 Midi_def 1 -Midistrings 0 +Midistrings 1 Mixed_qp 1 Music 1 Musical_pitch 1 Music_iterator 1 Music_output_def 1 -Note_column 0 +Note_column 1 Note_head 1 Note_performer 1 Note_req 1 -Paper_column 0 +Paper_column 1 Paper_score 1 Paper_def 1 +Partial_measure_req 1 +Performance 1 Performer 1 Performer_group_performer 1 Real_identifier 1 Request 1 Request_iterator 1 Rest_collision 1 -Rest_collision_engraver 0 +Rest_collision_engraver 1 Rest_req 1 -Rhythmic_head 0 +Rhythmic_head 1 Rhythmic_req 1 Scope 1 -Score 0 -Score_column 0 -Score_element 0 -Score_engraver 0 +Score 1 +Score_column 1 +Score_element 1 +Score_engraver 1 Score_performer 1 Script_column 1 Script_def 1 @@ -112,8 +121,10 @@ Skip_req 1 Staff_commands 1 Staff_symbol 1 Stem 1 -Stem_info 0 +Stem_info 1 Stem_req 1 +String_identifier 1 +Relative_octave_music 1 Symtable 1 Symtables 1 @@ -121,9 +132,10 @@ Text_def 1 Text_item 1 Text_req 1 Time_description 1 -Translation_property 0 -Translator 0 -Translator_group 0 +Time_signature_change_req 1 +Translation_property 1 +Translator 1 +Translator_group 1 Voice 1 Voice_iterator 1 Word_wrap 1 diff --git a/flower/hash.cc b/flower/hash.cc index b541681e87..c2fd954a8f 100644 --- a/flower/hash.cc +++ b/flower/hash.cc @@ -19,7 +19,7 @@ unsigned long prime_list (int idx) return my_prime_list [idx]; } -unsigned int hash (String s) +unsigned int string_hash (String s) { const char* str = s.ch_C (); unsigned int result = 0; @@ -37,7 +37,9 @@ unsigned int hash (unsigned int i) return i; } -unsigned int hash (int i) +unsigned int int_hash (int i) { return (unsigned) i; } + +unsigned int hash ( ); diff --git a/flower/include/dictionary-iter.hh b/flower/include/dictionary-iter.hh index 33531e584c..55176ae9f0 100644 --- a/flower/include/dictionary-iter.hh +++ b/flower/include/dictionary-iter.hh @@ -11,51 +11,8 @@ #define DICTIONARY_ITER_HH #include "dictionary.hh" +#include "hash-table-iter.hh" -template<class K, class V> -class Hash_table_iter -{ - Hash_table<K,V> *dict_l_; - int i; -public: - Hash_table_iter(Hash_table<K,V> const &dict) - { - i =0; - dict_l_ =(Hash_table<K,V> *) & dict; - next_used (); - } - - bool ok () - { - return i < dict_l_->fixed_p_->dict_arr_.size (); - } - - void next_used () - { - while (ok () && dict_l_->fixed_p_->dict_arr_[i].free_b_) - { - i ++; - } - } - void operator ++(int) - { - i++; - next_used (); - } - - K key () - { - return dict_l_->fixed_p_->dict_arr_[i].key_; - } - V val () - { - return dict_l_->fixed_p_->dict_arr_[i].value_; - } - V &val_ref () - { - return dict_l_->fixed_p_->dict_arr_[i].value_; - } -}; template<class V> class Dictionary_iter<V> : public Hash_table_iter<String,V> diff --git a/flower/include/dictionary.hh b/flower/include/dictionary.hh index c9b5775f1b..ceaaa496b3 100644 --- a/flower/include/dictionary.hh +++ b/flower/include/dictionary.hh @@ -13,27 +13,11 @@ #include "string.hh" #include "array.hh" -unsigned long prime_list (int idx); -template<class K, class V> -struct Hash_table_entry -{ - K key_; - V value_; - bool free_b_; +#include "hash-table.hh" - Hash_table_entry() { - free_b_ = true; - } - Hash_table_entry (K s, V v) - { - key_ = s; - value_ = v; - free_b_ = false; - } -}; -unsigned int hash (String); -unsigned int hash (int); +unsigned int string_hash (String); + template<class V> struct Dict_initialiser @@ -42,188 +26,18 @@ struct Dict_initialiser V value_; }; -/** - A hash table of prime size. - - We use quadratic probing. - */ -template<class K, class V> -class Fixed_size_hash_table -{ -public: - Array<Hash_table_entry<K,V> > dict_arr_; - int size_idx_; - Fixed_size_hash_table (int size_idx) - { - size_idx_ = size_idx; - int sz = prime_list(size_idx_); - dict_arr_.set_size (sz); - } - - /// find #s#, or find first empty entry corresponding to #s# - int lookup (K s) - { - int sz =dict_arr_.size (); - int i = hash (s) % sz; - int j = 0; - while (j <= sz/2) { - if (dict_arr_[i].free_b_) - return i; - - if (dict_arr_[i].key_ == s) - return i; - - j++; - i = (i + j*j) % sz; - } - - return -1; - } - - /// remove #s# from the hash table. - V remove (K s) - { - assert (false); // Untested routine. - int sz =dict_arr_.size (); - int i = hash (s) % sz; - int j = 0; - V retval; - while (j <= sz/2 && dict_arr_[i].key_ != s) - { - assert (!dict_arr_[i].free_b_); - - - j ++; - i = (i + j*j) % sz; - } - - j++; - int nexti = (i + j*j) % sz; - - while (j <= sz/2 && !dict_arr_[i].free_b_) - { - dict_arr_[i] = dict_arr_[nexti]; - j++; - i = nexti; - nexti = (nexti + j*j)%sz; - } - - return retval; - } -}; - -/** - Hash table with sliding sizes. - */ -template<class K, class V> -class Hash_table -{ - Fixed_size_hash_table<K,V> * fixed_p_; - - /// set size to next prime, and copy contents - void enlarge () - { - Fixed_size_hash_table<K,V> *f = new Fixed_size_hash_table<K,V> (fixed_p_->size_idx_ +1); - for (int i=0; i < fixed_p_->dict_arr_.size(); i++) - { - if (fixed_p_->dict_arr_[i].free_b_) - continue; - - K nm (fixed_p_->dict_arr_[i].key_); - int nl = f->lookup (nm); - - f->dict_arr_[nl] = Hash_table_entry<K,V> (nm, fixed_p_->dict_arr_[i].value_); - } - delete fixed_p_; - fixed_p_ = f; - } -public: - Hash_table () - { - fixed_p_ = new Fixed_size_hash_table<K,V> (0); - } - ~Hash_table () - { - delete fixed_p_; - } - void operator = (Hash_table<K,V> const &src) - { - if (&src == this) - return; - - delete fixed_p_; - fixed_p_ = new Fixed_size_hash_table<K,V> (*src.fixed_p_); - } - Hash_table (Hash_table<K,V> const &src) - { - fixed_p_ = new Fixed_size_hash_table<K,V> (*src.fixed_p_); - } - - void clear () - { - int i= fixed_p_->size_idx_; - delete fixed_p_; - fixed_p_ = new Fixed_size_hash_table<K,V> (i); - } - bool elem_b (K s) const - { - int l = fixed_p_->lookup (s); - - return (l >= 0 && !fixed_p_->dict_arr_[l].free_b_) ; - } - - /** - Find and return element. If #s# is not in the table, create an entry in the table, and init - */ - V& elem (K s) - { - int l; - while ((l= fixed_p_->lookup (s)) <0) - { - enlarge (); - } - - - fixed_p_->dict_arr_[l].free_b_ = false; - fixed_p_->dict_arr_[l].key_ = s; - return fixed_p_->dict_arr_[l].value_; - } - V elem (K s) const - { - return const_elem (s); - } - V const_elem (K k) const - { - V retval; - if (elem_b (k)) - retval = ((Hash_table<K,V>*)this)->elem (k); - return retval; - } - V& operator [] (K k) - { - return elem (k); - } - - V operator [] (K k) const - { - return const_elem (k); - } - - V remove (K s) - { - return fixed_p_->remove (s); - } - friend class Hash_table_iter<K,V>; -}; template<class V> class Dictionary : public Hash_table<String, V> { public: Dictionary () - {} + { + hash_func_ = string_hash; + } Dictionary (Dict_initialiser<V> *p) { + hash_func_ = string_hash; for (Dict_initialiser<V> *q = p; q->key_; q++) elem (q->key_) = q->value_; diff --git a/flower/include/hash-table-iter.hh b/flower/include/hash-table-iter.hh new file mode 100644 index 0000000000..61b4a34973 --- /dev/null +++ b/flower/include/hash-table-iter.hh @@ -0,0 +1,61 @@ +/* + hash-table-iter.hh -- declare Hash_table_iter + + source file of the Flower Library + + (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + */ + +#ifndef HASH_TABLE_ITER_HH +#define HASH_TABLE_ITER_HH +#include "hash-table.hh" + +template<class K, class V> +class Hash_table_iter +{ + Hash_table<K,V> *dict_l_; + int i; +public: + Hash_table_iter(Hash_table<K,V> const &dict) + { + i = 0; + dict_l_ =(Hash_table<K,V> *) & dict; + next_used (); + } + + bool ok () const + { + return i < dict_l_->fixed_p_->dict_arr_.size (); + } + + void next_used () + { + while (ok () && dict_l_->fixed_p_->dict_arr_[i].free_b_) + { + i ++; + } + } + void operator ++(int) + { + i++; + next_used (); + } + + K key () const + { + return dict_l_->fixed_p_->dict_arr_[i].key_; + } + V val () const + { + return dict_l_->fixed_p_->dict_arr_[i].value_; + } + V &val_ref () + { + return dict_l_->fixed_p_->dict_arr_[i].value_; + } +}; + + +#endif /* HASH_TABLE_ITER_HH */ + diff --git a/flower/include/hash-table.hh b/flower/include/hash-table.hh new file mode 100644 index 0000000000..ef497f1c75 --- /dev/null +++ b/flower/include/hash-table.hh @@ -0,0 +1,215 @@ +/* + hash-table.hh -- declare Hash_table_entry, Hash_table + + source file of the Flower Library + + (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + */ + +#ifndef HASH_TABLE_HH +#define HASH_TABLE_HH + +unsigned int int_hash (int); +unsigned long prime_list (int idx); +template<class K, class V> +struct Hash_table_entry +{ + K key_; + V value_; + bool free_b_; + + Hash_table_entry() { + free_b_ = true; + } + Hash_table_entry (K s, V v) + { + key_ = s; + value_ = v; + free_b_ = false; + } +}; + +/** + A hash table of prime size. + + We use quadratic probing. + */ +template<class K, class V> +class Fixed_size_hash_table +{ +public: + Array<Hash_table_entry<K,V> > dict_arr_; + int size_idx_; + Fixed_size_hash_table (int size_idx) + { + size_idx_ = size_idx; + int sz = prime_list(size_idx_); + dict_arr_.set_size (sz); + } + + /// find #s#, or find first empty entry corresponding to #s# + int lookup (K s, unsigned int initial_hash) + { + int sz =dict_arr_.size (); + int i = initial_hash % sz; + int j = 0; + while (j <= sz/2) { + if (dict_arr_[i].free_b_) + return i; + + if (dict_arr_[i].key_ == s) + return i; + + j++; + i = (i + j*j) % sz; + } + + return -1; + } + + /// remove #s# from the hash table. + V remove (K s, unsigned int initial_hash) + { + assert (false); // Untested routine. + int sz =dict_arr_.size (); + int i = initial_hash % sz; + int j = 0; + V retval; + while (j <= sz/2 && dict_arr_[i].key_ != s) + { + assert (!dict_arr_[i].free_b_); + + + j ++; + i = (i + j*j) % sz; + } + + j++; + int nexti = (i + j*j) % sz; + + while (j <= sz/2 && !dict_arr_[i].free_b_) + { + dict_arr_[i] = dict_arr_[nexti]; + j++; + i = nexti; + nexti = (nexti + j*j)%sz; + } + + return retval; + } +}; + +/** + Hash table with sliding sizes. + */ +template<class K, class V> +class Hash_table +{ + Fixed_size_hash_table<K,V> * fixed_p_; + /// set size to next prime, and copy contents + void enlarge () + { + Fixed_size_hash_table<K,V> *f = new Fixed_size_hash_table<K,V> (fixed_p_->size_idx_ +1); + + for (int i=0; i < fixed_p_->dict_arr_.size(); i++) + { + if (fixed_p_->dict_arr_[i].free_b_) + continue; + + K nm (fixed_p_->dict_arr_[i].key_); + unsigned int h = (*hash_func_)(nm); + int nl = f->lookup (nm, h); + + f->dict_arr_[nl] = Hash_table_entry<K,V> (nm, fixed_p_->dict_arr_[i].value_); + } + delete fixed_p_; + fixed_p_ = f; + } +public: + Hash_table () + { + hash_func_ = 0; + fixed_p_ = new Fixed_size_hash_table<K,V> (0); + } + ~Hash_table () + { + delete fixed_p_; + } + void operator = (Hash_table<K,V> const &src) + { + if (&src == this) + return; + + delete fixed_p_; + fixed_p_ = new Fixed_size_hash_table<K,V> (*src.fixed_p_); + hash_func_ = src.hash_func_; + } + Hash_table (Hash_table<K,V> const &src) + { + fixed_p_ = new Fixed_size_hash_table<K,V> (*src.fixed_p_); + hash_func_ = src.hash_func_; + } + + void clear () + { + int i= fixed_p_->size_idx_; + delete fixed_p_; + fixed_p_ = new Fixed_size_hash_table<K,V> (i); + } + bool elem_b (K s) const + { + int l = fixed_p_->lookup (s, (*hash_func_)(s)); + + return (l >= 0 && !fixed_p_->dict_arr_[l].free_b_) ; + } + + /** + Find and return element. If #s# is not in the table, create an entry in the table, and init + */ + V& elem (K s) + { + int l; + unsigned int h = (*hash_func_)(s); + while ((l= fixed_p_->lookup (s,h)) <0) + { + enlarge (); + } + + fixed_p_->dict_arr_[l].free_b_ = false; + fixed_p_->dict_arr_[l].key_ = s; + return fixed_p_->dict_arr_[l].value_; + } + V elem (K s) const + { + return const_elem (s); + } + V const_elem (K k) const + { + V retval; + if (elem_b (k)) + retval = ((Hash_table<K,V>*)this)->elem (k); + return retval; + } + V& operator [] (K k) + { + return elem (k); + } + + V operator [] (K k) const + { + return const_elem (k); + } + + V remove (K s) + { + return fixed_p_->remove (s, (*hash_func_)(s)); + } + friend class Hash_table_iter<K,V>; +public: + unsigned int (*hash_func_)(K); +}; + + +#endif /* HASH_TABLE_HH */ + diff --git a/flower/rational.cc b/flower/rational.cc index cf99657acb..e99402dbb8 100644 --- a/flower/rational.cc +++ b/flower/rational.cc @@ -179,16 +179,21 @@ Rational::Rational(double x) const int FACT = 1 << 20; /* - FIXME + Thanks to Afie for this too simple idea. + + do not blindly substitute by libg++ code, since that uses + arbitrary-size integers. The rationals would overflow too + easily. + */ - SHOULD TEST THIS - - suck me gently with a vacuum cleaner. Thanks to Afie for this wierd idea. - */ num_ = (unsigned int) (mantissa * FACT); den_ = (unsigned int) FACT; + normalise (); + if (expt < 0) + den_ <<= -expt; + else + num_ <<= expt; normalise (); - num_ <<= expt; } else { diff --git a/init/dynamic.ly b/init/dynamic.ly deleted file mode 100644 index 68f02880db..0000000000 --- a/init/dynamic.ly +++ /dev/null @@ -1,31 +0,0 @@ -% -% declare the standard dynamic identifiers. -% - -pppppp = \absdynamic { 13 } -ppppp = \absdynamic { 12 } -pppp = \absdynamic { 11 } -ppp = \absdynamic { 10 } -pp = \absdynamic { 9 } -p = \absdynamic { 8 } -mp = \absdynamic { 7 } -mf = \absdynamic { 6 } -f = \absdynamic { 5 } % f is a notename too. -ff = \absdynamic { 4 } -fff = \absdynamic { 3 } -ffff = \absdynamic { 2 } -fffff = \absdynamic { 1 } -ffffff = \absdynamic { 0 } - -fp = \absdynamic { 14 } -sf = \absdynamic { 15 } -sff = \absdynamic { 16 } -sfz = \absdynamic { 17 } -sp = \absdynamic { 18 } -spp = \absdynamic { 19 } -rfz = \absdynamic { 20 } - -cr = \spandynamic { 1 1 } -decr = \spandynamic { -1 1 } -rc = \spandynamic { 1 2 } % stop a crescendo -rced = \spandynamic { 1 2 } % stop a decrescendo diff --git a/init/scm.ly b/init/scm.ly deleted file mode 100644 index e69de29bb2..0000000000 --- a/init/scm.ly +++ /dev/null diff --git a/init/table11.ly b/init/table11.ly deleted file mode 100644 index 6df399f5bc..0000000000 --- a/init/table11.ly +++ /dev/null @@ -1,87 +0,0 @@ -% table26.ly -% -% spacing info for LilyPond. Do not edit this. -% It has a lot of hard-wired stringconstants -% - -table_eleven = \symboltables { - - \font "feta11" - - % index symbol #parameters xmin xmax ymin ymax - - "style" = \table { - "bold" "setbold" 1 0.0\pt 7.50\pt 0.0\pt 8.0\pt - "dynamic" "setdynamic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "finger" "setfinger" 1 0.0\pt 0.0\pt 0.0\pt 5.0\pt - "italic" "setitalic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "large" "setlarge" 1 0.0\pt 9.50\pt 0.0\pt 12.0\pt - "number" "setnumber" 1 0.0\pt 9.50\pt 0.0\pt 12.0\pt - "roman" "settext" 1 0.0\pt 7.5\pt 0.0\pt 10.0\pt - } - - "dynamics" = \table { - - "mf" "dynmf" 0 - "ffffff" "dynffffff" 0 - "fffff" "dynfffff" 0 - "ffff" "dynffff" 0 - "fff" "dynfff" 0 - "ff" "dynff" 0 - "f" "dynf" 0 - - "mp" "dynmp" 0 - "p" "dynp" 0 - "pp" "dynpp" 0 - "ppp" "dynppp" 0 - "pppp" "dynpppp" 0 - "ppppp" "dynppppp" 0 - "pppppp" "dynpppppp" 0 - - "fp" "dynfp" 0 - "sf" "dynsf" 0 - "sff" "dynsff" 0 - "sfz" "dynsfz" 0 - "sp" "dynsp" 0 - "spp" "dynspp" 0 - "rfz" "dynrfz" 0 - - } - "align" = \table { - "-1" "leftalign" 1 - "0" "centeralign" 1 - "1" "rightalign" 1 - } - - - - - "bars" = \table { - "empty" "emptybar" 0 - "" "emptybar" 0 0.0\pt 0.0\pt 0.0\pt 16.0\pt - "|" "maatstreep" 1 0.0\pt 0.64\pt 0.0\pt 20.0\pt - "||" "doublebar" 1 0.0\pt 5.0\pt 0.0\pt 20.0\pt - "|." "finishbar" 1 -5.0\pt 0.0\pt 0.0\pt 20.0\pt - ".|" "startbar" 1 0.0\pt 4.0\pt 0.0\pt 20.0\pt - ".|." "fatdoublebar" 1 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|" "repeatbar" 0 -10.0\pt 0.0\pt 0.0\pt 20.0\pt - "|:" "startrepeat" 0 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|:" "repeatbarstartrepeat" 0 0.0\pt 20.0\pt 0.0\pt 20.0\pt - } - - "foobar" = \table { - "C" "fourfourmeter" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "C2" "allabreve" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - } - - % dims ignored for this table - "param" = \table { - "brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 96.0\pt - "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "stem" "stem" 2 - "fill" "hbox{}" 0 - "rule" "rulesym" 2 - } - -} - diff --git a/init/table13.ly b/init/table13.ly deleted file mode 100644 index 0a38edc99c..0000000000 --- a/init/table13.ly +++ /dev/null @@ -1,83 +0,0 @@ -% table26.ly -% -% spacing info for LilyPond. Do not edit this. -% It has a lot of hard-wired stringconstants -% - -table_thirteen = \symboltables { - - \font "feta13" - - % index symbol #parameters xmin xmax ymin ymax - - "style" = \table { - "bold" "setbold" 1 0.0\pt 7.50\pt 0.0\pt 8.0\pt - "dynamic" "setdynamic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "finger" "setfinger" 1 0.0\pt 0.0\pt 0.0\pt 5.0\pt - "italic" "setitalic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "large" "setlarge" 1 0.0\pt 9.50\pt 0.0\pt 12.0\pt - "number" "setnumber" 1 0.0\pt 9.50\pt 0.0\pt 12.0\pt - "roman" "settext" 1 0.0\pt 7.5\pt 0.0\pt 10.0\pt - } - - "dynamics" = \table { - - "mf" "dynmf" 0 - "ffffff" "dynffffff" 0 - "fffff" "dynfffff" 0 - "ffff" "dynffff" 0 - "fff" "dynfff" 0 - "ff" "dynff" 0 - "f" "dynf" 0 - - "mp" "dynmp" 0 - "p" "dynp" 0 - "pp" "dynpp" 0 - "ppp" "dynppp" 0 - "pppp" "dynpppp" 0 - "ppppp" "dynppppp" 0 - "pppppp" "dynpppppp" 0 - - "fp" "dynfp" 0 - "sf" "dynsf" 0 - "sff" "dynsff" 0 - "sfz" "dynsfz" 0 - "sp" "dynsp" 0 - "spp" "dynspp" 0 - "rfz" "dynrfz" 0 - - } - "align" = \table { - "-1" "leftalign" 1 - "0" "centeralign" 1 - "1" "rightalign" 1 - } - - "bars" = \table { - "empty" "emptybar" 0 - "" "emptybar" 0 0.0\pt 0.0\pt 0.0\pt 16.0\pt - "|" "maatstreep" 1 0.0\pt 0.64\pt 0.0\pt 20.0\pt - "||" "doublebar" 1 0.0\pt 5.0\pt 0.0\pt 20.0\pt - "|." "finishbar" 1 -5.0\pt 0.0\pt 0.0\pt 20.0\pt - ".|" "startbar" 1 0.0\pt 4.0\pt 0.0\pt 20.0\pt - ".|." "fatdoublebar" 1 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|" "repeatbar" 0 -10.0\pt 0.0\pt 0.0\pt 20.0\pt - "|:" "startrepeat" 0 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|:" "repeatbarstartrepeat" 0 0.0\pt 20.0\pt 0.0\pt 20.0\pt - } - - "time_signatures" = \table { - "C" "fourfourmeter" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "C2" "allabreve" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - } - - % dims ignored for this table - "param" = \table { - "brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 96.0\pt - "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "stem" "stem" 2 - "fill" "hbox{}" 0 - "rule" "rulesym" 2 - } -} - diff --git a/init/table16.ly b/init/table16.ly deleted file mode 100644 index a5b4122c2b..0000000000 --- a/init/table16.ly +++ /dev/null @@ -1,86 +0,0 @@ -% table16.ly -% -% spacing info for LilyPond. Do not edit this if you're not a guru. -% It has a lot of hard-wired stringconstants -% - - -table_sixteen= -\symboltables { - \font "feta16" - - % index symbol #parameters xmin xmax ymin ymax - - "style" = \table { - "bold" "setbold" 1 0.0\pt 7.50\pt 0.0\pt 8.0\pt - "dynamic" "setdynamic" 1 0.0\pt 0.0\pt 0.0\pt 8.0\pt - "finger" "setfinger" 1 0.0\pt 2.0\pt 0.0\pt 4.0\pt - "italic" "setitalic" 1 0.0\pt 4.\pt 0.0\pt 8.0\pt - "typewriter" "settypewriter" 1 0.0\pt 4.\pt 0.0\pt 8.0\pt - "large" "setlarge" 1 0.0\pt 9.50\pt 0.0\pt 10.0\pt - "number" "setnumber" 1 0.0\pt 6.0\pt 0.0\pt 8.0\pt - "number-1" "setnumber-1" 1 0.0\pt 4.0\pt 0.0\pt 5.0\pt - "roman" "settext" 1 0.0\pt 4.5\pt 0.0\pt 8.0\pt - } - "dynamics" = \table { - - "mf" "dynmf" 0 - "ffffff" "dynffffff" 0 - "fffff" "dynfffff" 0 - "ffff" "dynffff" 0 - "fff" "dynfff" 0 - "ff" "dynff" 0 - "f" "dynf" 0 - - "mp" "dynmp" 0 - "p" "dynp" 0 - "pp" "dynpp" 0 - "ppp" "dynppp" 0 - "pppp" "dynpppp" 0 - "ppppp" "dynppppp" 0 - "pppppp" "dynpppppp" 0 - - "fp" "dynfp" 0 - "sf" "dynsf" 0 - "sff" "dynsff" 0 - "sfz" "dynsfz" 0 - "sp" "dynsp" 0 - "spp" "dynspp" 0 - "rfz" "dynrfz" 0 - - } - "align" = \table { - "-1" "leftalign" 1 - "0" "centeralign" 1 - "1" "rightalign" 1 - } - - - "bars" = \table { - "empty" "emptybar" 0 - "" "emptybar" 0 0.0\pt 0.0\pt 0.0\pt 16.0\pt - "|" "maatstreep" 1 0.0\pt 0.64\pt 0.0\pt 16.0\pt - "||" "doublebar" 1 0.0\pt 4.0\pt 0.0\pt 16.0\pt - "|." "finishbar" 1 -4.0\pt 0.0\pt 0.0\pt 16.0\pt - ".|" "startbar" 1 0.0\pt 4.0\pt 0.0\pt 16.0\pt - ".|." "fatdoublebar" 1 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|" "repeatbar" 0 -8.0\pt 0.0\pt 0.0\pt 16.0\pt - "|:" "startrepeat" 0 0.0\pt 8.0\pt 0.0\pt 16.0\pt - ":|:" "repeatbarstartrepeat" 0 0.0\pt 16.0\pt 0.0\pt 16.0\pt - - } - - % dims ignored for this table - "param" = \table { - "brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 112.0\pt - "bracket" "staffbracket" 1 0.0\pt 4.0\pt 16.0\pt 128.0\pt - "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt - "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -8.0\pt 8.0\pt - "rule" "rulesym" 2 - "stem" "stem" 2 - "fill" "hbox{}" 0 - } - - -} - diff --git a/init/table20.ly b/init/table20.ly deleted file mode 100644 index 0a1067cc0f..0000000000 --- a/init/table20.ly +++ /dev/null @@ -1,89 +0,0 @@ -% table20.ly -% -% spacing info for LilyPond. Do not edit this. -% It has a lot of hard-wired stringconstants -% - -table_twenty = -\symboltables { - - \font "feta20" - - % index symbol #parameters xmin xmax ymin ymax - - "style" = \table { - "bold" "setbold" 1 0.0\pt 5.50\pt 0.0\pt 10.0\pt - "dynamic" "setdynamic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "finger" "setfinger" 1 0.0\pt 4.5\pt 0.0\pt 5.0\pt - "typewriter" "settypewriter" 1 0.0\pt 5.5\pt 0.0\pt 10.0\pt - "italic" "setitalic" 1 0.0\pt 5.5\pt 0.0\pt 10.0\pt - "large" "setlarge" 1 0.0\pt 6.50\pt 0.0\pt 12.0\pt - "Large" "setLarge" 1 0.0\pt 6.50\pt 0.0\pt 12.0\pt - "mark" "setmark" 1 0.0\pt 6.50\pt 0.0\pt 12.0\pt - "number" "setnumber" 1 0.0\pt 8.0\pt 0.0\pt 10.0\pt - "number-1" "setnumber-1" 1 0.0\pt 6.0\pt 0.0\pt 7.0\pt - "roman" "settext" 1 0.0\pt 5.6\pt 0.0\pt 10.0\pt - } - - "dynamics" = \table { - - "mf" "dynmf" 0 - "ffffff" "dynffffff" 0 - "fffff" "dynfffff" 0 - "ffff" "dynffff" 0 - "fff" "dynfff" 0 - "ff" "dynff" 0 - "f" "dynf" 0 - - "mp" "dynmp" 0 - "p" "dynp" 0 - "pp" "dynpp" 0 - "ppp" "dynppp" 0 - "pppp" "dynpppp" 0 - "ppppp" "dynppppp" 0 - "pppppp" "dynpppppp" 0 - - "fp" "dynfp" 0 - "sf" "dynsf" 0 - "sff" "dynsff" 0 - "sfz" "dynsfz" 0 - "sp" "dynsp" 0 - "spp" "dynspp" 0 - "rfz" "dynrfz" 0 - - } - "align" = \table { - "-1" "leftalign" 1 - "0" "centeralign" 1 - "1" "rightalign" 1 - } - - - - - "bars" = \table { - "empty" "emptybar" 0 - "" "emptybar" 0 0.0\pt 0.0\pt 0.0\pt 16.0\pt - "|" "maatstreep" 1 0.0\pt 0.64\pt 0.0\pt 20.0\pt - "||" "doublebar" 1 0.0\pt 5.0\pt 0.0\pt 20.0\pt - "|." "finishbar" 1 -5.0\pt 0.0\pt 0.0\pt 20.0\pt - ".|" "startbar" 1 0.0\pt 4.0\pt 0.0\pt 20.0\pt - ".|." "fatdoublebar" 1 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|" "repeatbar" 0 -10.0\pt 0.0\pt 0.0\pt 20.0\pt - "|:" "startrepeat" 0 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|:" "repeatbarstartrepeat" 0 0.0\pt 20.0\pt 0.0\pt 20.0\pt - } - - % dims ignored for this table - "param" = \table { - "bracket" "staffbracket" 1 0.0\pt 0.0\pt 20.0\pt 160.0\pt - "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt - "rule" "rulesym" 2 - "brace" "pianobrace" 1 0.0\pt 0.0\pt 40.0\pt 140.0\pt - "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "stem" "stem" 2 - "fill" "hbox{}" 0 - } - -} - diff --git a/init/table26.ly b/init/table26.ly deleted file mode 100644 index 90b9313208..0000000000 --- a/init/table26.ly +++ /dev/null @@ -1,86 +0,0 @@ -% table26.ly -% -% spacing info for LilyPond. Do not edit this. -% It has a lot of hard-wired stringconstants -% - -table_twentysix = \symboltables { - - \font "feta26" - - % index symbol #parameters xmin xmax ymin ymax - - "style" = \table { - "bold" "setbold" 1 0.0\pt 7.50\pt 0.0\pt 8.0\pt - "dynamic" "setdynamic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "finger" "setfinger" 1 0.0\pt 0.0\pt 0.0\pt 5.0\pt - "italic" "setitalic" 1 0.0\pt 0.0\pt 0.0\pt 10.0\pt - "large" "setlarge" 1 0.0\pt 9.50\pt 0.0\pt 12.0\pt - "number" "setnumber" 1 0.0\pt 8.0\pt 0.0\pt 10.0\pt - "roman" "settext" 1 0.0\pt 7.5\pt 0.0\pt 10.0\pt - } - - "dynamics" = \table { - - "mf" "dynmf" 0 - "ffffff" "dynffffff" 0 - "fffff" "dynfffff" 0 - "ffff" "dynffff" 0 - "fff" "dynfff" 0 - "ff" "dynff" 0 - "f" "dynf" 0 - - "mp" "dynmp" 0 - "p" "dynp" 0 - "pp" "dynpp" 0 - "ppp" "dynppp" 0 - "pppp" "dynpppp" 0 - "ppppp" "dynppppp" 0 - "pppppp" "dynpppppp" 0 - - "fp" "dynfp" 0 - "sf" "dynsf" 0 - "sff" "dynsff" 0 - "sfz" "dynsfz" 0 - "sp" "dynsp" 0 - "spp" dynspp" 0 - "rfz" "dynrfz" 0 - - } - "align" = \table { - "-1" "leftalign" 1 - "0" "centeralign" 1 - "1" "rightalign" 1 - } - - - - - "bars" = \table { - "empty" "emptybar" 0 - "" "emptybar" 0 0.0\pt 0.0\pt 0.0\pt 16.0\pt - "|" "maatstreep" 1 0.0\pt 0.64\pt 0.0\pt 20.0\pt - "||" "doublebar" 1 0.0\pt 5.0\pt 0.0\pt 20.0\pt - "|." "finishbar" 1 -5.0\pt 0.0\pt 0.0\pt 20.0\pt - ".|" "startbar" 1 0.0\pt 4.0\pt 0.0\pt 20.0\pt - ".|." "fatdoublebar" 1 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|" "repeatbar" 0 -10.0\pt 0.0\pt 0.0\pt 20.0\pt - "|:" "startrepeat" 0 0.0\pt 10.0\pt 0.0\pt 20.0\pt - ":|:" "repeatbarstartrepeat" 0 0.0\pt 20.0\pt 0.0\pt 20.0\pt - } - - "meters" = \table { - "C" "fourfourmeter" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "C2" "allabreve" 0 0.0\pt 10.0\pt -5.0\pt 5.0\pt - } - - % dims ignored for this table - "param" = \table { - "brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 96.0\pt - "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt - "stem" "stem" 2 - "fill" "hbox{}" 0 - "rule" "rulesym" 2 - } -} - diff --git a/input/GNUmakefile b/input/GNUmakefile index 26dc6aee1a..4b8cc939e9 100644 --- a/input/GNUmakefile +++ b/input/GNUmakefile @@ -4,7 +4,7 @@ depth = .. SUBDIRS=test bugs -examples=praeludium-fuga-E twinkle-pop star-spangled-banner +examples=praeludium-fuga-E star-spangled-banner flexamples= LOCALSTEPMAKE_TEMPLATES=mutopia diff --git a/input/bugs/auto-beam.ly b/input/bugs/auto-beam.ly new file mode 100644 index 0000000000..622efcc3b7 --- /dev/null +++ b/input/bugs/auto-beam.ly @@ -0,0 +1,21 @@ +\score{ + \notes \relative c''{ + \time 2/4; + c8 + \repeat 2 { % \bar "|:" iknoort-i ook... + c8 c8 + } + c8 + } + \paper{ + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } +} diff --git a/input/bugs/mats.ly b/input/bugs/mats.ly new file mode 100644 index 0000000000..6409937008 --- /dev/null +++ b/input/bugs/mats.ly @@ -0,0 +1,78 @@ + +corI=\notes\relative c'' { +\key c; + +[g8. \f ( a16 ] ) g2 | +[g8. ( a16 ] ) g2_"dim." | +c2. \p ( | +) g2 g4 ( | +) c2. ( | +) g4 [g8. ( a16 ] ) g4 | +c2. \p ( | +) g2 g4 | +c2 \< ( ~ [ \! c8 \> \! ) g ] | +g2 \p r4 | +g \mf ( d' c~ | +c ) b r | +R2. | +} + +corII=\notes\relative c'' { +\key c; +\time 3/4; + +R2.*19 | +r4 r [g8^"solo" \p (\< \! ) e'] | +g2 \> ( [e8. ) \! c16 ] | % grace note e8 () g2 +g2 r 4 | +r r \times 2/3 {[e'8 \p ( g, ) g' ]} | +g4 \> () \! e r | +r r \times 2/3 {[g8 \p ( e ) g ]} | +d4 \> () \! g r | +r r [g,16 ( \p d' e d ] | +) g,4 r r | +R2. | +r4 r c \p ( | +) g r r | +g [g8. ( a16 ] ) g4 | +R2. | +r4 r [g8^""^"solo" \mf \< () \! e' ] | +g2 \> [ \! e8. ( c16 ] | +) g2 r4 | +R2. | +r4 r \times 2/3 {[e'8 \f ( g, ) g'] } | +g4 () e r | +r r \times 2/3 {[g8 \f ( e ) g] } +d4 () g r | +r r [d16 \f ( g, e' d ] | +[g, d' e ) d ] g,4 r | +r d'2 \f \> ( | % grace note g8 d2 +[g,8. a16 g8. a16 \! g8. ) a16 ] | +g4 r r | +} + +trpI=\notes\relative c'' { +\key c; +\time 3/4; + +R2.*30 | +} + +\score{ < + \type StaffGroup = brass < + \type Staff = cor < + \type Voice = corI { \stemup \corI } + \type Voice = corII { \stemdown \corII } + > + \type Staff = trp < + \type Voice = trpI { \stemup \trpI } + > + > +> + \paper { + \translator {\OrchestralScoreContext + % The following line causes a SIGSEGV + \consists "Multi_measure_rest_engraver"; + } + } +} diff --git a/input/bugs/partial.ly b/input/bugs/partial.ly new file mode 100644 index 0000000000..af915328a6 --- /dev/null +++ b/input/bugs/partial.ly @@ -0,0 +1,16 @@ +\score{ + \notes \relative c''{ + \time 4/4; + c4 c c c + \partial 4*3; + c c c + \repeat 2 { + \partial 4; + c + c c c c + \partial 4*3; + c c c + } + } + \paper{ } +} diff --git a/input/opus-130.ly b/input/opus-130.ly index 7ce7cf7a9a..0bb12e66c0 100644 --- a/input/opus-130.ly +++ b/input/opus-130.ly @@ -10,61 +10,65 @@ copyright = "public domain"; % \version "1.0.14"; -global = \notes { - \key g; - \time 3/8; - \skip 4.*8; -% 1.1.9 broken -% \bar ":|"; -} - tempi = \notes { \property Voice.textstyle = "large" s8^"Allegro assai" } dynamics = \notes { - \type Voice=i s8\p\< \!s8.\> \!s16 | s4.\p | s8\< s8. \!s16 | s4.\p | s8\p\< \!s8.\> \!s16 | s4.\p | s8\< s8. \!s16 | s4.\p | } +global = \notes { + \key g; + \time 3/8; + < + \dynamics + \repeat 2 { s4.*8 } + > +} + violinei = \notes\relative c''{ - \type Voice=i - [d8(b)d16] r | g,4. | [a16(b c8)e16] r | g,8~fis4 | - [d''8(b)d16] r | g,4. | [a16(b c8)fis,16] r | fis8~g4 | + d8(b)d16 r | g,4. | a16(b c8)e16 r | g,8~fis4 | + d''8(b)d16 r | g,4. | a16(b c8)fis,16 r | fis8~g4 } violineii = \notes\relative c'{ - \type Voice=i - [b8(d)b] | [e(g,)e'] | [e(c)a'] | [a(c)a] | + b8(d)b | e(g,)e' | e(c)a' | a(c)a | % copy from violinei: 5-8 - [d8(b)d16] r | g,4. | [a16( b c8)fis,16] r | fis8~g4 | + d8(b)d16 r | g,4. | a16( b c8)fis,16 r | fis8~g4 } viola = \notes\relative c'{ - \type Voice=i \clef "alto"; - [g8(b)g] | [b(e,)b'] | [c,(a')c,] | [c'(d,)c'] | [b(d)b] | - [e(g,)e'] | [e(e,<)a' c,>] | <[a(c,> <fis b,> )b,] | + g8(b)g | b(e,)b' | c,(a')c, | c'(d,)c' | b(d)b | + e(g,)e' | e(e,<)a' c,> | < a(c,> <fis b,> )b, } cello = \notes\relative c'{ - \type Voice=i \clef "bass"; - g4 r8 | e'4 r8 | c4 r8 | d4 r8 | [g,,8 b g] | [b(e,)b'] | - [c,(a')d,] | [d'(d,)g] | + g4 r8 | e'4 r8 | c4 r8 | d4 r8 | g,,8 b g | b(e,)b' | + c,(a')d, | d'(d,)g } \score{ \type StaffGroup < - \type Staff = i < \tempi \global \dynamics \violinei > - \type Staff = ii < \global \dynamics \violineii > - \type Staff = iii < \global \dynamics \viola > - \type Staff = iv < \global \dynamics \cello > +% broken, 1.1.23 +% \type Staff = i < \tempi \global \violinei > + \type Staff = i < \global \violinei > + \type Staff = ii < \global \violineii > + \type Staff = iii < \global \viola > + \type Staff = iv < \global \cello > > \paper{ \translator { \OrchestralScoreContext } + \translator { + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd = "3/8"; + } } \midi{ \tempo 4 = 160; } } diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly index f3312161d4..d05c396cfa 100644 --- a/input/star-spangled-banner.ly +++ b/input/star-spangled-banner.ly @@ -14,46 +14,46 @@ copyright="public domain"; } $staff1_voice_1 = \notes { - [a8.()fis16] - \repeat 2 { d4 fis4 a4 d'2 [fis'8. e'16] d'4 fis4 gis4 a2 [a8 a8] - fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 d'4 a4 } - \alternative { { fis4 d4 [a8. fis16] } { fis4 d4 [fis'8. fis'16] } } - fis'4 g'4 a'4 a'2 [g'8 fis'8] e'4 fis'4 - g'4 g'2 g'4 fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 fis4 gis4 a2 a4 - d'4 d'4 [d'8()cis'8] b4 b4 b4 e'4 [g'8 ()fis'8] [e'8()d'8] - d'4~cis'4 [a8. a16] d'4.~e'8 [fis'8 g'8] a'2 [d'8 e'8] fis'4. g'8 + a8.()fis16 + \repeat 2 { d4 fis4 a4 d'2 fis'8. e'16 d'4 fis4 gis4 a2 a8 a8 + fis'4. e'8 d'4 cis'2 b8. cis'16 d'4 d'4 a4 } + \alternative { { fis4 d4 a8. fis16 } { fis4 d4 fis'8. fis'16 } } + fis'4 g'4 a'4 a'2 g'8 fis'8 e'4 fis'4 + g'4 g'2 g'4 fis'4. e'8 d'4 cis'2 b8. cis'16 d'4 fis4 gis4 a2 a4 + d'4 d'4 d'8()cis'8 b4 b4 b4 e'4 g'8 ()fis'8 e'8()d'8 + d'4~cis'4 a8. a16 d'4.~e'8 fis'8 g'8 a'2 d'8 e'8 fis'4. g'8 e'4 d'2 s4 } $staff1_voice_2 = \notes { - [a8.()fis16] - \repeat 2 { a,4 d4 e4 d4~fis4 [fis8. fis16] fis4 d4 d4 cis2 - [e8 e8] a4. a8 a4 a2 [a8. a16] a4 a4 a4 } - \alternative { { fis4 d4 [a8. fis16] } { fis4 d4 r4 } } - a4 a4 d'4 d'2 [a8 a8] cis'4 cis'4 cis'4 cis'2 a4 a4. a8 a4 a2 - [a8. a16] d4 d4 d4 cis2 e4 fis4 e4 d4 d4 d4 dis4 g4 [g8()dis8] e4 e2 - [e8. e16] d4.~a8 [a8 a8] a2 [g8 g8] a4. a8 g4 fis2 s4 + a8.()fis16 + \repeat 2 { a,4 d4 e4 d4~fis4 fis8. fis16 fis4 d4 d4 cis2 + e8 e8 a4. a8 a4 a2 a8. a16 a4 a4 a4 } + \alternative { { fis4 d4 a8. fis16 } { fis4 d4 r4 } } + a4 a4 d'4 d'2 a8 a8 cis'4 cis'4 cis'4 cis'2 a4 a4. a8 a4 a2 + a8. a16 d4 d4 d4 cis2 e4 fis4 e4 d4 d4 d4 dis4 g4 g8()dis8 e4 e2 + e8. e16 d4.~a8 a8 a8 a2 g8 g8 a4. a8 g4 fis2 s4 } $staff2_voice_1 = \notes { r4 - \repeat 2 { fis4 a4 a4 b2 [cis'8. cis'16] b4 b4 b4 a2 [cis'8 cis'8] - d'4. cis'8 d'4 e'2 [e'8. e'16] d'4 d'4 a4 } - \alternative { { fis4 d4 r4 } { fis4 d4 r4 } } - d4 e4 fis4 fis'2 [e'8 d'8] e'4 e'4 e'4 e'2 cis'4 d'4. cis'8 d'4 e'2 - [e'8. e'16] a4 a4 e4 e2 cis'4 a4 a4 a4 g4 g4 b4 b4 b4 b4 a2 - [cis'8. cis'16] a4.~cis'8 [d'8 d'8] d'2 [d'8 d'8] d'4. d'8 cis'4 + \repeat 2 { fis4 a4 a4 b2 cis'8. cis'16 b4 b4 b4 a2 cis'8 cis'8 + d'4. cis'8 d'4 e'2 e'8. e'16 d'4 d'4 a4 } + \alternative { { fis4 d4 r4 } { fis4 d4 r4 } } + d4 e4 fis4 fis'2 e'8 d'8 e'4 e'4 e'4 e'2 cis'4 d'4. cis'8 d'4 e'2 + e'8. e'16 a4 a4 e4 e2 cis'4 a4 a4 a4 g4 g4 b4 b4 b4 b4 a2 + cis'8. cis'16 a4.~cis'8 d'8 d'8 d'2 d'8 d'8 d'4. d'8 cis'4 a2 s4 } $staff2_voice_2 = \notes { r4 - \repeat 2 { d4 d4 cis4 b,2 [ais,8. ais,16] b,4 b,4 e4 a,2 [a8 a8] - d4. e8 [fis8 g8] a2 [g8. g16] fis4 fis4 a4 } + \repeat 2 { d4 d4 cis4 b,2 ais,8. ais,16 b,4 b,4 e4 a,2 a8 a8 + d4. e8 fis8 g8 a2 g8. g16 fis4 fis4 a4 } \alternative { { fis4 d4 r4 } { fis4 d4 r4 } } - d4 d4 d4 d2 [d8 d8] a4 a4 a4 a2 a,4 d4. e8 [fis8 g8] a2 [g8. g16] - fis4 d4 e4 a,2 a4 d4 e4 fis4 g4 g4 fis4 e4 [e8()fis8] [g8()gis8] a2 - [g8. g16] fis4.~a,8 [d8 e8] fis2 [b8 b8] a4. a8 a,4 d2 s4 + d4 d4 d4 d2 d8 d8 a4 a4 a4 a2 a,4 d4. e8 fis8 g8 a2 g8. g16 + fis4 d4 e4 a,2 a4 d4 e4 fis4 g4 g4 fis4 e4 e8()fis8 g8()gis8 a2 + g8. g16 fis4.~a,8 d8 e8 fis2 b8 b8 a4. a8 a,4 d2 s4 } $text = \lyrics{ @@ -62,9 +62,8 @@ $text = \lyrics{ { say. can you see,2 by8. the16 dawn's4 ear- ly light2 What8 so8 proud-4. ly8 we4 hailed,2 At8. the16 twi-4 light's last gleam- ing. Whose8. broad16 } - % urg, lyric chords broken: 1.1.22 -% { stripes4 and bright stars,2 through8. the16 per-4 il- ous fight,2 -% O'er8 the8 ram-4. parts8 we4 watched,2 were8. so16 gal-4 lant- ly } + { stripes4 and bright stars,2 through8. the16 per-4 il- ous fight,2 + O'er8 the8 ram-4. parts8 we4 watched,2 were8. so16 gal-4 lant- ly } > stream-4 ing. And8. the16 rock-4 ets' red glare,2 the8 bombs8 burst-4 ing in air,2 gave4 proof4. through8 the4 night2 that8. @@ -99,6 +98,7 @@ global = \notes { \type Staff=staffB < \global \clef bass; + \property Staff.voltaVisibility = "0" {\voiceone \$staff2_voice_1 } {\voicetwo \$staff2_voice_2 } > @@ -108,11 +108,18 @@ global = \notes { textheight = 230.\mm; linewidth= 180.\mm; \translator { - \GrandStaffContext - \accepts "Lyrics"; + \GrandStaffContext + \accepts "Lyrics"; } \translator { - \BarNumberingStaffContext + \BarNumberingStaffContext + } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; } } } diff --git a/input/test/auto-beam.ly b/input/test/auto-beam.ly new file mode 100644 index 0000000000..02e7711dba --- /dev/null +++ b/input/test/auto-beam.ly @@ -0,0 +1,49 @@ +%{ + Currently (1.1.22.jcn5), the auto-beam engraver will only engrave + sensible beams (hopefully), which means that it will give up the + whole beam if: + * a rest is encountered + * another beam (entered manually) is encountered + * there's a 'gap' in the beam note's durations + + There's no smart algorithm, beginning a beam is considered when + + now / beamAutoBegin = 0 + + the beam will be ended when + + * now / beamAutoEnd = 0 +%} + +\score{ + \notes \relative c''{ + \time 2/4; + % one beam per measure + c8 c c c + c16 c c c c c c c + % from here on two beams per measure + \property Voice.beamAutoEnd = "1/4"; + c8 c c c + % manually override autobeam with weird beaming + c8 [c c] c + c8 c c r + c8 c c4 + r8 c c c + % no autobeaming + \property Voice.beamAuto = "0" + c8 c c c + } + \paper{ + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + % switch it on (perhaps a bit double, but we want to be able + % to switch it off conveniently + beamAuto = 1.; + % consider starting beam at every 4 note + % beamAutoBegin = "1/4"; + beamAutoEnd = "1/2"; + } + } +} diff --git a/input/test/bar-scripts.ly b/input/test/bar-scripts.ly index 90d842fd08..d618a2073f 100644 --- a/input/test/bar-scripts.ly +++ b/input/test/bar-scripts.ly @@ -1,7 +1,5 @@ - - -\version "1.0.14"; + \version "1.0.14"; onestaff = \type Staff = foo\notes { \property Staff.instr = instr @@ -18,10 +16,9 @@ grstaff = \notes \type GrandStaff < \type Staff = bufl { c1 c2 } > -scpaper = \paper {\translator {\OrchestralScoreContext}} - +scpaper = \paper {\translator {\OrchestralScoreContext}} +stpaper = \paper{ \translator {\BarNumberingStaffContext }} -stpaper =\paper{ \BarNumberingStaffContext } scscore = \score { \grstaff \paper { \scpaper }} @@ -31,5 +28,5 @@ stscore = \score { \onestaff \paper { \stpaper }} -\score {\stscore} -%\score {\scscore} +%\score {\stscore} +\score {\scscore} diff --git a/input/test/beam-interstaff.ly b/input/test/beam-interstaff.ly index d09e796c21..69cc8dde4e 100644 --- a/input/test/beam-interstaff.ly +++ b/input/test/beam-interstaff.ly @@ -26,6 +26,6 @@ minVerticalAlign = 3.0*\staffheight; maxVerticalAlign = 3.0*\staffheight; } - linewidth=-1.; +% linewidth=-1.; } } diff --git a/input/test/c.ly b/input/test/c.ly deleted file mode 100644 index 3067d98957..0000000000 --- a/input/test/c.ly +++ /dev/null @@ -1,51 +0,0 @@ -\version "1.0.14"; - -%{ -Would this be acceptable/good enough/convenient for entry? - - Convention/Standard Lily - - C# cis - Cb ces - Cm; Cmin c3-; c m; c min - Caug c5+; c aug; - Cdim c5-; c dim - Cmaj7 c7+; c maj - C7 c7 - Csus; Csus4 c4; c sus -%} - -scales = \notes\transpose c''\chords{ - <c1 e g> - @1c m @c min @4c dim @c aug @c sus @c maj - @1c6 @4c7 @c9 @c11 @c13 - @1c @g @d @a @e @b @fis - @1c @f @bes @es @as @des @ges - } - -keys = \notes{ - s1 - s1 s1 s1 - s1 s1 - s1 - \key g; s1 - \key d; s1 - \key a; s1 - \key e; s1 - \key b; s1 - \key fis; s1 - \key c; s1 - \key f; s1 - \key bes; s1 - \key es; s1 - \key as; s1 - \key des; s1 - \key ges; s1 - } - -\score{ - < - \type ChordNames \scales - \type Staff < \scales \keys > - > -} diff --git a/input/test/chords.ly b/input/test/chords.ly index 84f1511fa1..1133280d3f 100644 --- a/input/test/chords.ly +++ b/input/test/chords.ly @@ -19,6 +19,8 @@ scales = \notes \transpose c'' \chords{ %<c1 e g> c1-m c-min c4-dim c-aug c-sus c-maj c1-6 c4-7 c-9 c-11 c-13 + c1-7^5 c-13^5^7^9^11 + % c1-7^5 c-13^5 c1 g d a e b fis c1 f bes es as des ges } diff --git a/input/test/harmonics.fly b/input/test/harmonics.fly deleted file mode 100644 index 59d8925dc9..0000000000 --- a/input/test/harmonics.fly +++ /dev/null @@ -1,8 +0,0 @@ -% this should be normal notes: -c'1 | d2 d | e4 e - -% and this should be harmonics: -\property Voice.noteheadStyle = "harmonic" -e8 e e16 e e e32 e - - diff --git a/input/test/mark.ly b/input/test/mark.ly index a054b62147..160e6c05fe 100644 --- a/input/test/mark.ly +++ b/input/test/mark.ly @@ -22,7 +22,9 @@ two = \notes\relative c{ \paper { \translator { \OrchestralPartStaffContext markScriptPadding = "4.0"; -% markDirection = \down; + markHangOn = "Bar"; + markHangDepth = "1"; +% markDirection = \diown; } } } diff --git a/input/test/notemode-chords.ly b/input/test/notemode-chords.ly new file mode 100644 index 0000000000..6ccc59d69d --- /dev/null +++ b/input/test/notemode-chords.ly @@ -0,0 +1,8 @@ +\version "1.0.15"; + +\score{ + \notes \transpose c''{ + @c1@ @c-7@ @c-7^5@-1-3 + } + +} diff --git a/input/test/rep.ly b/input/test/rep.ly index d5af51806e..2b79795ecc 100644 --- a/input/test/rep.ly +++ b/input/test/rep.ly @@ -3,8 +3,12 @@ \type Staff \notes\relative c'{ c4 d e f \repeat 2 { g a b c } - \alternative { { c b a g } { f e d c } } - c c c c +% \alternative { { c b a g } { f e d c } } c c c c + \alternative { { c b a g } { f e d c } { c d e f } } + g g g g + \repeat 2 { c c c c } + \repeat 2 { c c c c } + g g g g } > } diff --git a/input/test/repeat.ly b/input/test/repeat.ly index 7abd8c0b8c..914b665f96 100644 --- a/input/test/repeat.ly +++ b/input/test/repeat.ly @@ -1,13 +1,18 @@ \score{ < \type Staff \notes\relative c'{ - c4 d e f + c d e f \repeat 2 { g a b c } -% \alternative { { c b a g } { f e d c } } c c c c - \alternative { { c b a g } { f e d c } { c d e f } } - g g g g - \repeat 2 { c c c c } - \repeat 2 { c c c c } + \alternative { { c b a g } { f e d c } } + } + \type Lyrics \lyrics { + De eer- ste < { maat } { moet } > + \repeat 2 { } + \alternative < + { en dan twee keer } + { een koe- plet _ } + > + en dan nog dit er ach- ter aan } > } diff --git a/input/test/tchaikovsky.ly b/input/test/tchaikovsky.ly deleted file mode 100644 index 78afbe96ed..0000000000 --- a/input/test/tchaikovsky.ly +++ /dev/null @@ -1,43 +0,0 @@ -\header{ -filename = "tchaikovsky.ly"; -title = "Extracts from 6th symphony"; -subtitle = "Ist movement"; -composer= "Pjotr Iljitsj Tchaikovsky"; -enteredby = "Maarten Storm"; -instrument= "Violoncello"; -} - -\version "1.0.14"; - -% this is an example of extreme dynamics - -% adagio mosso - 7 measures before Allegro vivo -\score{ - \notes - \relative c{ - \clef "bass"; - \key D; - <a2\ppp\cr d> <gis\rc\p\decr d'> | <a2\rced d> ~ <a8 d> r8 r4 | - a2\ppp\cr a2\rc\p\decr | <a2\rced d> ~ <a8 d> r8 r4 | - a2\pppp ~ a8 r8 r4 | a2\ppppp ~ a8 r8 r4 | r4 a8_"pizz" - r8 r2^\fermata - } - \header{ - piece="example 1"; - } -} - -% 8 measures before Andante come prima -\score{ - \notes - \relative c{ - \clef "bass"; - \key C; - <e1\sff cis'^\downbow> | <cis\sff a'^\downbow> | - <d,\ffff\decr g> ~ <d2 g> ~ <d8\p\rced g> | - } - \header{ - piece="example 2"; - } -} - diff --git a/input/twinkle.ly b/input/twinkle.ly index a49a5ff398..82a509a8a1 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -1,10 +1,9 @@ \header{ -filename = "twinkle.ly"; -title = "Twinkle Twinkle Little Star"; - -composer = "Traditional"; -enteredby = "HWN & JCN"; -copyright = "public domain"; +filename = "twinkle.ly"; +title = "Twinkle Twinkle Little Star"; +composer = "Traditional"; +enteredby = "hwn and jcn"; +copyright = "public domain"; } %{ @@ -17,7 +16,7 @@ traditional song in various languages. %} %{ -Tested Features: lyrics, interleaving lyrics and staffs +Tested Features: lyrics, interleaving lyrics and staffs, repeats %} \version "1.0.14"; @@ -55,11 +54,6 @@ global = \notes { tekst = \lyrics{ Al-4 tijd is Kort- jak- je ziek,2 midden4 in_de week maar s,_zon- dags niet.2 -% ugly hack: insertion of empty syllables creates columns on extra -% moments. The net result is more spacing. -% -% probably not necessary anymore -% midden8 _8 in_de8 _8 week4 maar s,_zon- dags niet.2 s,_Zon-4 dags gaat ze naar de kerk,2 met4 een boek vol zil- ver werk.2 Al-4 tijd is Kort- jak- je ziek,2 @@ -121,45 +115,17 @@ textiii = \lyrics{ How4 I won- der what you are!2 } -$top_lyrics = \type Lyrics = top < - \tekst -> - -$treble_staff = \type Staff = treble < - \global - \melody -> - -$bass_staff = \type Staff = bass < - \global - \accompany -> - -$middle_lyrics = \type Lyrics = middle < - \texte -> - -$bottom_lyrics = \type Lyrics = bottom < -% \global - \texti - \textii - \textiii -> - -$grand_staff = \type GrandStaff < - \$treble_staff - \$middle_lyrics - \$bass_staff -> - \score{ - \repeat 2 { < - \$treble_staff - \$middle_lyrics - \$top_lyrics - \$grand_staff - \$bottom_lyrics - > } + < + \type Staff=i \repeat 2 < \global\melody > + \type Lyrics=top \repeat 2 {} \alternative < \tekst \texte > + \type GrandStaff < + \type Staff=ii \repeat 2 < \global\melody > + \type Staff=iii \repeat 2 < \global\accompany > + > + \type Lyrics=bottom \repeat 3 {} + \alternative < \texti \textii \textiii > + > \paper{ gourlay_maxmeasures = 14.0; } diff --git a/lib/binary-source-file.cc b/lib/binary-source-file.cc index 17a712fa81..951f3a746e 100644 --- a/lib/binary-source-file.cc +++ b/lib/binary-source-file.cc @@ -61,3 +61,36 @@ Binary_source_file::line_i (char const* pos_ch_C) const return pos_ch_C - ch_C (); } +U8 +Binary_source_file::get_U8 () +{ + return *(U8*)forward_ch_C (1); +} + + +U16 +Binary_source_file::get_U16 () +{ + U16 b; + + b = get_U8 () << 8; + b |= get_U8 (); + + return b; +} + + +U32 +Binary_source_file::get_U32() +{ + U32 b; + + b = get_U8 () << 24; + b |= get_U8 () << 16; + b |= get_U8 () << 8; + b |= get_U8 (); + + return b; +} + + diff --git a/lib/include/binary-source-file.hh b/lib/include/binary-source-file.hh index 59c35b6a83..ee59497890 100644 --- a/lib/include/binary-source-file.hh +++ b/lib/include/binary-source-file.hh @@ -14,9 +14,9 @@ public: Binary_source_file (String& filename_str ); virtual ~Binary_source_file (); - U8 get_U8 () { return *(U8*)forward_ch_C (1); } - U16 get_U16 () { return *(U16*)forward_ch_C (2); } - U32 get_U32 () { return *(U32*)forward_ch_C (4); } + U8 get_U8 (); + U16 get_U16 (); + U32 get_U32 (); Byte get_Byte () {return get_U8 (); } int get_int () { return get_U32 (); } diff --git a/lib/warn.cc b/lib/warn.cc index afc6f7b9ce..ecb97a5f75 100644 --- a/lib/warn.cc +++ b/lib/warn.cc @@ -4,26 +4,26 @@ void error (String s) { - cerr << _ ("error: ") << s << '\n'; + cerr << _ ("error: ") << s << '\n'; - exit (1); + exit (1); } void non_fatal_error (String s) { - cerr << _ ("error: ") << s << '\n'; + cerr << _ ("error: ") << s << '\n'; } void warning (String m) { - cerr << _ ("warning: ") <<m <<endl; + cerr << _ ("warning: ") <<m <<endl; } void message (String m) { - cerr << m<<endl; + cerr << m<<endl; } diff --git a/lily/afm-list.cc b/lily/afm-list.cc deleted file mode 100644 index d22ff0baf7..0000000000 --- a/lily/afm-list.cc +++ /dev/null @@ -1,49 +0,0 @@ -#include "pointer.hh" -#include "main.hh" -#include "all-fonts.hh" -#include "debug.hh" -#include "warn.hh" -#include "afm.hh" - -const char * default_font_sz_ = "cmr10"; - - - -All_font_metrics::All_font_metrics (String path) -{ - search_path_.parse_path (path); - - String f = default_font_sz_ + String (".afm"); - f = search_path_.find (f); - if (f.empty_b ()) - error (_f("Can't find default font (PATH = %s)", path)); - - - afm_p_dict_[default_font_sz_] = new Adobe_font_metric (read_afm_file (f)); -} - -Adobe_font_metric * -All_font_metrics::find_font (String name) -{ - if (!afm_p_dict_.elem_b (name)) - { - String path = name + ".afm"; - path = search_path_.find (path); - if (path.empty_b ()) - { - warning (_f ("Can't find `%s'", name)); - return afm_p_dict_[default_font_sz_]; - } - - *mlog << "[" << path; - Adobe_font_metric - * afm_p = new Adobe_font_metric (read_afm_file (path)); - *mlog << "]" << flush ; - - afm_p_dict_[name] = afm_p; - } - - return afm_p_dict_[name]; -} - - diff --git a/lily/afm.cc b/lily/afm.cc index e81bf3ad10..e98155d12e 100644 --- a/lily/afm.cc +++ b/lily/afm.cc @@ -39,6 +39,9 @@ Adobe_font_char_metric::width () Adobe_font_char_metric::Adobe_font_char_metric () { + B_ = Box( Interval(0,0), Interval (0,0)); + WX_ = 0.0; + C_ = 0; C_ = -1; } @@ -51,6 +54,19 @@ Adobe_font_metric::Adobe_font_metric () } +Box +Adobe_font_char_metric::dimensions () const +{ + Box b= B_; + + b[X_AXIS] *= 1/1000.0; + b[Y_AXIS] *= 1/1000.0; + + return b; +} + + + #define APPEND_CHAR_METRIC_ELT(k) outstr += to_str (#k) + " " + to_str (k ## _) + "; " String @@ -101,19 +117,38 @@ Adobe_font_metric::str () const return outstr; } -/* - UGH. should have hashtable. - */ -Adobe_font_char_metric +Adobe_font_char_metric dummy_static_char_metric; + +Adobe_font_char_metric const & Adobe_font_metric::find_char (String nm, bool warn) const { if (warn && !name_to_metric_dict_.elem_b (nm)) { - Adobe_font_char_metric m; warning (_f ("can't find character called `%s'", nm.ch_C())); - return m; + return dummy_static_char_metric; } return char_metrics_[name_to_metric_dict_ [nm]]; } + +Character_metric * +Adobe_font_metric::get_char (int code, bool warn) const +{ + return &find_ascii (code,warn); +} + +Adobe_font_char_metric const & +Adobe_font_metric::find_ascii (int a , bool warn) const +{ + int code = ascii_to_metric_idx_[a]; + if (code>=0) + { + return char_metrics_[code]; + } + else if (warn ) + { + warning (_f ("can't find character number %d", a)); + } + return dummy_static_char_metric; +} diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc new file mode 100644 index 0000000000..e01062ba33 --- /dev/null +++ b/lily/all-font-metrics.cc @@ -0,0 +1,77 @@ +#include "pointer.hh" +#include "main.hh" +#include "all-fonts.hh" +#include "debug.hh" +#include "warn.hh" +#include "afm.hh" +#include "tfm.hh" + +const char * default_font_sz_ = "cmr10"; + + + +All_font_metrics::All_font_metrics (String path) +{ + search_path_.parse_path (path); +} + + +Adobe_font_metric * +All_font_metrics::find_afm (String name) +{ + if (!afm_p_dict_.elem_b (name)) + { + String path = name + ".afm"; + path = search_path_.find (path); + if (path.empty_b ()) + return 0; + + *mlog << "[" << path; + Adobe_font_metric + * afm_p = new Adobe_font_metric (read_afm_file (path)); + *mlog << "]" << flush ; + + afm_p_dict_[name] = afm_p; + } + return afm_p_dict_[name]; +} + +Tex_font_metric * +All_font_metrics::find_tfm (String name) +{ + if (!tfm_p_dict_.elem_b (name)) + { + String path = name + ".tfm"; + path = search_path_.find (path); + if (path.empty_b ()) + return 0; + + *mlog << "[" << path; + Tex_font_metric * tfm_p = new Tex_font_metric; + tfm_p->read_file (path); + *mlog << "]" << flush ; + + tfm_p_dict_[name] = tfm_p; + } + return tfm_p_dict_[name]; +} + + +Font_metric * +All_font_metrics::find_font (String name) +{ + Font_metric * f= find_afm (name); + if (f) + return f; + + f = find_tfm (name); + if (f) + return f; + + f = find_tfm (default_font_sz_); + if (f) + return f; + String s = _f("Can't find default font `%s\', giving up.", default_font_sz_); + s += String ("\n") + _f ("search path = %s", search_path_.str ()); + error (s); +} diff --git a/lily/atom.cc b/lily/atom.cc index e237f75b70..0d71f4e240 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -64,6 +64,12 @@ Atom::extent () const return b; } +Interval +Atom::extent (Axis a) const +{ + return dim_[a] + off_[a]; +} + Atom::Atom () diff --git a/lily/bar-column-engraver.cc b/lily/bar-column-engraver.cc deleted file mode 100644 index d3c0a1af56..0000000000 --- a/lily/bar-column-engraver.cc +++ /dev/null @@ -1,106 +0,0 @@ -/* - bar-column-grav.cc -- implement Bar_column_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - - -#include "bar-column-engraver.hh" -#include "bar-column.hh" -#include "request.hh" -#include "script.hh" -#include "bar.hh" -#include <typeinfo> - -Bar_column_engraver::Bar_column_engraver() -{ - bar_l_ =0; - barcol_p_ =0; - break_priority_i_ = 0; -} - -void -Bar_column_engraver::do_creation_processing () -{ -} - - -void -Bar_column_engraver::do_process_requests () -{ - Scalar pri = get_property ("barColumnPriority", 0); - if (pri.length_i() && pri.isnum_b ()) - { - break_priority_i_ = int(pri); - } -} - -void -Bar_column_engraver::create_column () -{ - if (!barcol_p_) - { - barcol_p_ = new Bar_column; - barcol_p_->breakable_b_ =true; - barcol_p_->break_priority_i_ = break_priority_i_; - announce_element (Score_element_info (barcol_p_, 0)); - } -} - - -void -Bar_column_engraver::acknowledge_element (Score_element_info info) -{ - Item * it = dynamic_cast <Item *> (info.elem_l_); - if (!it) - return; - Script *s = dynamic_cast<Script*> (it); - Bar *b = dynamic_cast<Bar*> (it); - if (s - && it->breakable_b_ - && info.origin_grav_l_arr_.size() == 1 - && it->break_priority_i_ == break_priority_i_) - { - create_column (); - barcol_p_->add_script (s); - } - else if (info.origin_grav_l_arr_.size() == 1 - && it->break_priority_i_ == break_priority_i_ - && it->breakable_b_ - &&b) - - { - create_column (); - barcol_p_->set_bar (b); - } -} - - -void -Bar_column_engraver::process_acknowledged () -{ -} - - - -void -Bar_column_engraver::do_pre_move_processing() -{ - if (barcol_p_) - { - typeset_element (barcol_p_); - barcol_p_ =0; - } -} - -void -Bar_column_engraver::do_post_move_processing() -{ - script_l_arr_.clear(); - bar_l_ =0; -} - - -ADD_THIS_TRANSLATOR(Bar_column_engraver); diff --git a/lily/bar-column.cc b/lily/bar-column.cc deleted file mode 100644 index 625b2da895..0000000000 --- a/lily/bar-column.cc +++ /dev/null @@ -1,36 +0,0 @@ -/* - bar-column.cc -- implement Bar_column - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - -#include "bar.hh" -#include "bar-column.hh" - -Bar_column::Bar_column() -{ - bar_l_ =0; - breakable_b_ = true; -} - -void -Bar_column::set_bar (Bar*b) -{ - Script_column::add_support (b); - bar_l_ = b; -} - -void -Bar_column::do_substitute_dependency (Score_element*o,Score_element*n) -{ - Script_column::do_substitute_dependency (o,n); - if (o == bar_l_) - { - bar_l_ = dynamic_cast<Bar *> (n); - } -} - - - diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 59ab434cf6..57436ae70f 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -31,7 +31,6 @@ Bar_engraver::do_try_music (Music*r_l) return false; bar_req_l_ = b; - return true; } @@ -69,21 +68,7 @@ Bar_engraver::create_bar () void Bar_engraver::request_bar (String type_str) { -#if 0 // will dump core at announce_element (invalid daddy_grav_l_...) create_bar (); -#else - if (!bar_p_) - { - bar_p_ = new Bar; - bar_p_->break_priority_i_ = 0; - // urg: "" != empty... - String default_type = get_property ("defaultBarType", 0); - if (default_type.length_i ()) - { - bar_p_->type_str_ = default_type; - } - } -#endif if (((type_str == "|:") && (bar_p_->type_str_ == ":|")) || ((type_str == ":|") && (bar_p_->type_str_ == "|:"))) bar_p_->type_str_ = ":|:"; @@ -119,6 +104,11 @@ Bar_engraver::do_process_requests() create_bar (); bar_p_->type_str_ = bar_req_l_->type_str_; } + else if (!now_moment ()) + { + create_bar (); + bar_p_->type_str_ = ""; + } else { Scalar always = get_property ("barAlways", 0); diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index 2d0412f427..7adc8dcdea 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -8,74 +8,33 @@ #include "bar-number-engraver.hh" -#include "script.hh" -#include "text-def.hh" -#include "paper-def.hh" -#include "command-request.hh" -#include "bar.hh" -#include "span-bar.hh" -#include "stem.hh" #include "time-description.hh" +#include "timing-engraver.hh" +#include "engraver-group.hh" +#include "g-text-item.hh" Bar_number_engraver::Bar_number_engraver() { - script_p_ =0; + axis_ = Y_AXIS; + type_ = "barNumber"; + visibility_lambda_ + = gh_eval_str ("(lambda (d) (if (= d 1) '(#f . #f) '(#t . #t)))"); } void -Bar_number_engraver::acknowledge_element (Score_element_info i) +Bar_number_engraver::do_process_requests () { - Bar *b =dynamic_cast <Bar *> (i.elem_l_); - if (script_p_ || !b) - return; + Translator *tr = daddy_grav_l ()->get_simple_translator ("Timing_engraver"); + Timing_translator *timer = dynamic_cast<Timing_translator*>(tr); + Time_description *time = &timer->time_; - /* Only put numbers on bars that are at our own level (don't put - numbers over the staffs of a GrandStaff, only over the GrandStaff - itself */ - if (i.origin_grav_l_arr_.size() != 1) - return; - - Time_description const * time = get_staff_info().time_C_; - if (!time || time->cadenza_b_) - return; - - script_p_ = new Script; - Text_def *td_p = new Text_def; - td_p->text_str_ = to_str (time->bars_i_); - - td_p->align_dir_ = LEFT; - - script_p_->dir_ = UP; - script_p_->axis_ = Y_AXIS; - script_p_->specs_p_ = td_p->clone (); - script_p_->breakable_b_ = true; - - Scalar pri = get_property ("barNumberBreakPriority", 0); - if (pri.length_i () && pri.isnum_b ()) + if (!time->whole_in_measure_ && !time->cadenza_b_ && now_moment () > Moment (0)) { - script_p_->break_priority_i_ = int (pri); + create_items (0); + + text_p_->text_str_ = to_str (time->bars_i_); + text_p_->style_str_ = "roman"; } - else - script_p_->break_priority_i_ = b->break_priority_i_; - - Scalar padding = get_property ("barScriptPadding", 0); - if (padding.length_i() && padding.isnum_b ()) - { - script_p_->padding_f_ = Real(padding); - } - - announce_element (Score_element_info (script_p_,0)); } -void -Bar_number_engraver::do_pre_move_processing() -{ - if (script_p_) - { - typeset_element (script_p_); - script_p_ =0; - } -} - - ADD_THIS_TRANSLATOR(Bar_number_engraver); diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc new file mode 100644 index 0000000000..51cbfec3b9 --- /dev/null +++ b/lily/bar-script-engraver.cc @@ -0,0 +1,100 @@ +/* + bar-script-engraver.cc -- implement Bar_script_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + */ + +#include "bar-script-engraver.hh" +#include "bar.hh" +#include "g-staff-side.hh" +#include "g-text-item.hh" +#include "lily-guile.hh" + +Bar_script_engraver::Bar_script_engraver () +{ + axis_ = Y_AXIS; + staff_side_p_ = 0; + text_p_ =0; + visibility_lambda_ + = gh_eval_str ("(lambda (d) (if (= d -1) '(#t . #t) '(#f . #f)))"); +} + +void +Bar_script_engraver::acknowledge_element (Score_element_info i) +{ + Axis other_axis = Axis((axis_ + 1)%2); + + if (staff_side_p_ && !staff_side_p_->dim_cache_[other_axis].parent_l_) + { + Bar * bar_l = dynamic_cast<Bar*> (i.elem_l_); + if (!bar_l) + return; + + /* Only put numbers on bars that are at our own level (don't put + numbers over the staffs of a GrandStaff, only over the GrandStaff + itself */ + if (i.origin_grav_l_arr_.size () == 1) + { + staff_side_p_->dim_cache_[other_axis].parent_l_ = &bar_l->dim_cache_[other_axis]; + staff_side_p_->add_support (i.elem_l_); + } + } +} + +void +Bar_script_engraver::do_pre_move_processing () +{ + if (text_p_) + { + text_p_->breakable_b_ = true; // ugh + typeset_element (text_p_); + text_p_ =0; + } + + if (staff_side_p_) + { + staff_side_p_->breakable_b_ = true; // ugh + typeset_element (staff_side_p_); + staff_side_p_ = 0; + } +} + + +void +Bar_script_engraver::create_items (Request *rq) +{ + if (staff_side_p_ || text_p_) + return; + + staff_side_p_ = new G_staff_side_item; + staff_side_p_->axis_ = axis_; + + text_p_ = new G_text_item; + + Scalar prop = get_property (type_ + "Direction", 0); + if (prop.isnum_b ()) + { + staff_side_p_->dir_ = (Direction) (int) prop; + } + else + { + staff_side_p_->dir_ = UP; + } + + staff_side_p_->set_victim(text_p_); + + Scalar padding = get_property (type_ + "ScriptPadding", 0); + if (padding.length_i() && padding.isnum_b ()) + { + staff_side_p_->padding_f_ = Real(padding); + } + + staff_side_p_->visibility_lambda_ = visibility_lambda_; + text_p_->visibility_lambda_ = visibility_lambda_; + + announce_element (Score_element_info (text_p_, rq)); + announce_element (Score_element_info (staff_side_p_, rq)); +} diff --git a/lily/bar.cc b/lily/bar.cc index 58e4ab9ed6..824e2316a1 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -14,7 +14,6 @@ #include "debug.hh" - Bar::Bar () { breakable_b_ = true; @@ -33,9 +32,8 @@ Molecule* Bar::do_brew_molecule_p () const { Paper_def *p = paper (); - Atom s = lookup_l ()->bar (type_str_, p->get_var ("barsize")); + Molecule *output = new Molecule (lookup_l ()->bar (type_str_, p->get_var ("barsize"))); - Molecule*output = new Molecule (Atom (s)); return output; } diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index ebd09d3dff..ac7a02a26b 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -33,7 +33,7 @@ Beam_engraver::do_try_music (Music *m) if (d == STOP && !beam_p_) { - m->warning ("No Beam to end"); + m->warning (_ ("No Beam to end")); return false; } reqs_drul_[d ] = c; @@ -49,7 +49,7 @@ Beam_engraver::do_process_requests () if (reqs_drul_[STOP]) { if (!beam_p_) - reqs_drul_[STOP]->warning (_("No beam to stop")); + reqs_drul_[STOP]->warning (_("No beam to end")); finished_beam_p_ = beam_p_; finished_grouping_p_ = grouping_p_; @@ -61,7 +61,7 @@ Beam_engraver::do_process_requests () { if (beam_p_) { - reqs_drul_[START]->warning ("Already have a Beam"); + reqs_drul_[START]->warning (_ ("Already have a Beam")); return; } @@ -126,7 +126,7 @@ Beam_engraver::do_removal_processing () typeset_beam (); if (beam_p_) { - warning ("Unfinished beam"); + warning (_ ("Unfinished beam")); finished_beam_p_ = beam_p_; finished_grouping_p_ = grouping_p_; typeset_beam (); @@ -146,9 +146,9 @@ Beam_engraver::acknowledge_element (Score_element_info info) Rhythmic_req *rhythmic_req = dynamic_cast <Rhythmic_req *> (info.req_l_); if (!rhythmic_req) { - String s=_("Stem must have Rhythmic structure."); + String s = _ ("Stem must have Rhythmic structure."); if (info.req_l_) - info.req_l_->warning(s); + info.req_l_->warning (s); else ::warning (s); @@ -159,7 +159,7 @@ Beam_engraver::acknowledge_element (Score_element_info info) if (rhythmic_req->duration_.durlog_i_<= 2) { rhythmic_req->warning (_ ("stem doesn't fit in beam")); - reqs_drul_[LEFT]->warning (_("beam was started here")); + reqs_drul_[LEFT]->warning (_ ("beam was started here")); return; } @@ -170,7 +170,7 @@ Beam_engraver::acknowledge_element (Score_element_info info) if (!grouping_p_->child_fit_b (start)) { - String s (_("please fix me") + ": " + String s (_ ("please fix me") + ": " + _f ("stem at %s doesn't fit in beam", now_moment ().str ())); if (info.req_l_) diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 79190f393b..df90680dc4 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -8,7 +8,6 @@ #include "chord-name-engraver.hh" #include "musical-request.hh" -#include "text-item.hh" #include "paper-def.hh" #include "lookup.hh" #include "paper-def.hh" @@ -40,11 +39,72 @@ Chord_name_engraver::do_try_music (Music* m) return false; } -/* - UGH. + /* + find tonic: after longest line of triads + */ +int +Chord_name_engraver::find_tonic_i () const +{ + int tonic_i = 0; + int longest_i = 0; + for (int i = 0; i < pitch_arr_.size (); i++) + for (int j = 0; j < pitch_arr_.size (); j++) + { + int gap = pitch_arr_[(i + j + 1) % pitch_arr_.size ()].notename_i_ + - pitch_arr_[(i + j) % pitch_arr_.size ()].notename_i_; + while (gap < 0) + gap += 7; + gap %= 7; + if (gap != 2) + { + if (j > longest_i) + { + longest_i = j; + tonic_i = i; + } + break; + } + } + + int biggest_i = 0; + if (!longest_i) + for (int i = 0; i < pitch_arr_.size (); i++) + { + int gap = pitch_arr_[i].notename_i_ + - pitch_arr_[(i - 1 + pitch_arr_.size ()) + % pitch_arr_.size ()].notename_i_; + while (gap < 0) + gap += 7; + gap %= 7; + if (gap > biggest_i) + { + biggest_i = gap; + tonic_i = i; + } + } + return tonic_i; +} + +Array<Musical_pitch> +Chord_name_engraver::rebuild_pitch_arr (int tonic_i) const +{ + Musical_pitch last (0, 0, -5); + Array<Musical_pitch> pitches; + for (int i = 0; i < pitch_arr_.size (); i++) + { + Musical_pitch p = pitch_arr_[(tonic_i + i) % pitch_arr_.size ()]; + if (p < last) + { + p.octave_i_ = last.octave_i_; + if (p < last) + p.octave_i_++; + } + pitches.push (p); + last = p; + } + return pitches; +} - Split this routine into neat packets - */ void Chord_name_engraver::do_process_requests () { @@ -65,74 +125,44 @@ Chord_name_engraver::do_process_requests () */ - - /* - find tonic: after longest line of triads - */ - int tonic_i = 0; + Musical_pitch inversion = pitch_arr_[0]; Scalar chord_inversions = get_property ("chordInversion", 0); if (chord_inversions.to_bool ()) { - int longest_i = 0; - for (int i = 0; i < pitch_arr_.size (); i++) - for (int j = 0; j < pitch_arr_.size (); j++) - { - int gap = pitch_arr_[(i + j + 1) % pitch_arr_.size ()].notename_i_ - - pitch_arr_[(i + j) % pitch_arr_.size ()].notename_i_; - while (gap < 0) - gap += 7; - gap %= 7; - if (gap != 2) - { - if (j > longest_i) - { - longest_i = j; - tonic_i = i; - } - break; - } - } - - int biggest_i = 0; - if (!longest_i) - for (int i = 0; i < pitch_arr_.size (); i++) - { - int gap = pitch_arr_[i].notename_i_ - - pitch_arr_[(i - 1 + pitch_arr_.size ()) - % pitch_arr_.size ()].notename_i_; - while (gap < 0) - gap += 7; - gap %= 7; - if (gap > biggest_i) - { - biggest_i = gap; - tonic_i = i; - } - } + tonic_i = find_tonic_i (); + if (tonic_i) + pitch_arr_ = rebuild_pitch_arr (tonic_i); } + - Musical_pitch inversion = pitch_arr_[0]; - if (tonic_i) + G_text_item* item_p = new G_text_item; + + item_p->text_str_ = banter_str (pitch_arr_, tonic_i, inversion); + + Scalar style = get_property ("textstyle", 0); + if (style.length_i ()) + item_p->style_str_ = style; + + text_p_arr_.push (item_p); + announce_element (Score_element_info (item_p, 0)); +} + +void +Chord_name_engraver::do_pre_move_processing () +{ + for (int i=0; i < text_p_arr_.size (); i++) { - Musical_pitch last (0, 0, -5); - Array<Musical_pitch> pitches; - for (int i = 0; i < pitch_arr_.size (); i++) - { - Musical_pitch p = pitch_arr_[(tonic_i + i) % pitch_arr_.size ()]; - if (p < last) - { - p.octave_i_ = last.octave_i_; - if (p < last) - p.octave_i_++; - } - pitches.push (p); - last = p; - } - pitch_arr_ = pitches; + typeset_element (text_p_arr_[i]); } + text_p_arr_.clear (); + pitch_arr_.clear (); +} - Musical_pitch tonic = pitch_arr_[0]; +String +Chord_name_engraver::banter_str (Array<Musical_pitch> pitch_arr, int tonic_i, Musical_pitch inversion) const +{ + Musical_pitch tonic = pitch_arr[0]; Array<Musical_pitch> scale; scale.push (Musical_pitch (0)); // c @@ -155,16 +185,25 @@ Chord_name_engraver::do_process_requests () + acc[tonic.accidental_i_ + 2]; String add_str; + String sub_str; String sep_str; - for (int i=1; i < pitch_arr_.size (); i++) + int last_trap = 1; + for (int i=1; i < pitch_arr.size (); i++) { - Musical_pitch p = pitch_arr_[i]; - int trap = p.notename_i_ - tonic.notename_i_ + Musical_pitch p = pitch_arr[i]; + int trap = p.notename_i_ - tonic.notename_i_ + (p.octave_i_ - tonic.octave_i_) * 7 + 1; + while (trap - last_trap > 2) + { + last_trap += 2; + sub_str += sep_str + "no" + to_str (last_trap); + sep_str = "/"; + } + last_trap = trap; int accidental = p.accidental_i_ - scale[(trap - 1) % 7].accidental_i_; if ((trap == 3) && (accidental == -1)) tonic_str += "m"; // hmm - else if (accidental || (!(trap % 2) || ((i + 1 == pitch_arr_.size ()) && (trap > 5)))) + else if (accidental || (!(trap % 2) || ((i + 1 == pitch_arr.size ()) && (trap > 5)))) { add_str += sep_str; if ((trap == 7) && (accidental == 1)) @@ -187,27 +226,7 @@ Chord_name_engraver::do_process_requests () + acc[tonic.accidental_i_ + 2]; } - - G_text_item* item_p = new G_text_item; - - item_p->text_str_ = tonic_str + "$^{" + add_str + "}$" + inversion_str; - Scalar style = get_property ("textstyle", 0); - if (style.length_i ()) - item_p->style_str_ = style; - - text_p_arr_.push (item_p); - announce_element (Score_element_info (item_p, 0)); + String str = tonic_str + "$^{" + add_str + sub_str + "}$" + inversion_str; + return str; } - -void -Chord_name_engraver::do_pre_move_processing () -{ - for (int i=0; i < text_p_arr_.size (); i++) - { - typeset_element (text_p_arr_[i]); - } - text_p_arr_.clear (); - pitch_arr_.clear (); -} - diff --git a/lily/clef-item.cc b/lily/clef-item.cc index e65cd80676..a41cb38f27 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -13,11 +13,14 @@ #include "paper-def.hh" #include "lookup.hh" #include "clef-engraver.hh" -#include "text-item.hh" +#include "g-text-item.hh" +#include "p-score.hh" void Clef_item::do_pre_processing() { + dim_cache_[Y_AXIS].translate (paper()->internote_f () * y_position_i_); + bool b= (break_status_dir() != RIGHT); change_b_ = b; @@ -39,13 +42,30 @@ Clef_item::Clef_item() octave_dir_ = CENTER; symbol_ = "treble"; y_position_i_ = -2; - - // Ugh: This should be const, I guess. - octave_marker_td_p_.set_p (new Text_def());// UGH! - octave_marker_td_p_->text_str_ = "8"; - octave_marker_td_p_->style_str_ = "italic"; } +void +Clef_item::do_add_processing () +{ + if (!break_status_dir_ // broken stuff takes care of their own texts + && octave_dir_) + { + G_text_item *g = new G_text_item; + pscore_l_->typeset_element (g); + + g->text_str_ = "8"; + g->style_str_ = "italic"; + g->dim_cache_[Y_AXIS].parent_l_ = &dim_cache_[Y_AXIS]; + g->dim_cache_[X_AXIS].parent_l_ = &dim_cache_[X_AXIS]; + add_dependency (g); // just to be sure. + + Real r = do_height ()[octave_dir_] + g->extent (Y_AXIS)[-octave_dir_]; + g->dim_cache_[Y_AXIS].set_offset (r); + } + +} + + @@ -55,26 +75,12 @@ Clef_item::do_brew_molecule_p() const String t = symbol_; if (change_b_) t += "_change"; + // Atom s = lookup_l ()-> text ("roman", to_str (break_status_dir ())); + Atom s = lookup_l ()->clef (t); Molecule*output = new Molecule (Atom (s)); - output->translate_axis (paper()->internote_f () * y_position_i_, Y_AXIS); - if (octave_dir_) { - Molecule octave_marker = Molecule(octave_marker_td_p_->get_atom(paper(), - CENTER)); - Real offset = output->extent()[Y_AXIS][octave_dir_] - - octave_marker.extent()[Y_AXIS][- octave_dir_]; - if (octave_dir_ == DOWN) - offset += octave_marker.extent()[Y_AXIS][UP] * 0.35 ; - octave_marker.translate_axis (offset, Y_AXIS); - output->add_molecule (octave_marker); - } return output; } - -#include "pointer.tcc" -template class P<Text_def>; // ugh - - diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index dd36db400b..2a28d15410 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -9,7 +9,6 @@ #include "crescendo.hh" #include "dynamic-engraver.hh" #include "musical-request.hh" -#include "text-item.hh" #include "lookup.hh" #include "paper-def.hh" #include "score-column.hh" @@ -96,7 +95,7 @@ Dynamic_engraver::do_process_requests() String loud = absd->loudness_str (); text_p_ = new G_text_item; - text_p_->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_; + text_p_->text_str_ = "dyn" + loud; // ugh Scalar prop = get_property ("dynamicStyle", 0); text_p_->style_str_ = prop.length_i () ? prop : "dynamic"; diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc index 2ca52271e6..7c727b128c 100644 --- a/lily/extender-spanner.cc +++ b/lily/extender-spanner.cc @@ -14,7 +14,6 @@ #include "p-col.hh" #include "paper-def.hh" #include "extender-spanner.hh" -#include "text-item.hh" #include "text-def.hh" Extender_spanner::Extender_spanner () @@ -92,9 +91,8 @@ Extender_spanner::do_post_processing () Direction d = LEFT; do { - Item* t = item_l_drul_[d] ? item_l_drul_[d] : item_l_drul_[(Direction)-d]; - - dy_f_drul_[d] += t->extent (Y_AXIS).length () / 2; + Item* t = item_l_drul_[d] + ? item_l_drul_[d] : item_l_drul_[(Direction)-d]; if (d == LEFT) dx_f_drul_[d] += t->extent (X_AXIS).length (); else diff --git a/lily/g-staff-side.cc b/lily/g-staff-side.cc index 3988f0b9e9..72f952d89f 100644 --- a/lily/g-staff-side.cc +++ b/lily/g-staff-side.cc @@ -9,11 +9,23 @@ #include "g-staff-side.hh" +G_staff_side_item::G_staff_side_item () +{ + dir_ = CENTER; + to_position_l_ = 0; + transparent_b_ = true; + padding_f_ = 0; +} + + void G_staff_side_item::do_pre_processing () { if (!dir_) set_default_direction (); + + if (axis_ == X_AXIS) + position_self (); } void @@ -22,13 +34,6 @@ G_staff_side_item::set_default_direction () dir_ = DOWN; } -G_staff_side_item::G_staff_side_item () -{ - dir_ = CENTER; - to_position_l_ = 0; - transparent_b_ = true; - padding_f_ = 0; -} void G_staff_side_item::set_victim (Score_element *e) @@ -55,26 +60,33 @@ G_staff_side_item::do_substitute_dependency (Score_element*o, Score_element*n) support_l_arr_.unordered_substitute (o,n); } - void -G_staff_side_item::do_post_processing () +G_staff_side_item::position_self () { if (!support_l_arr_.size ()) return ; Dimension_cache *common = common_group (typecast_array (support_l_arr_, (Graphical_element*)0), - Y_AXIS); + axis_); Interval dim; for (int i=0; i < support_l_arr_.size (); i++) { Score_element * e = support_l_arr_ [i]; - Real coord = e->relative_coordinate (common, Y_AXIS); - dim.unite (coord + e->extent (Y_AXIS)); + Real coord = e->relative_coordinate (common, axis_); + dim.unite (coord + e->extent (axis_)); } - Interval sym_dim = to_position_l_->extent (Y_AXIS); - Real off = dim_cache_[Y_AXIS].relative_coordinate (common) - padding_f_ * dir_; + Interval sym_dim = to_position_l_->extent (axis_); + Real off = dim_cache_[axis_].relative_coordinate (common) - padding_f_ * dir_; - dim_cache_[Y_AXIS].set_offset (dim[dir_] - sym_dim[-dir_] - off); + dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] - off); } + +void +G_staff_side_item::do_post_processing () +{ + if (axis_ == Y_AXIS) + position_self (); +} + diff --git a/lily/heads-engraver.cc b/lily/heads-engraver.cc index 4e894ba438..c2d52cf139 100644 --- a/lily/heads-engraver.cc +++ b/lily/heads-engraver.cc @@ -49,9 +49,6 @@ Note_heads_engraver::do_process_requests() note_p->steps_i_ = note_req_l->pitch_.steps (); // note_p->position_i_ = note_req_l->pitch_.steps (); - String noteheadstyle = get_property ("noteheadStyle", 0); - if (noteheadstyle.length_i ()) - note_p->note_head_type_str_ = noteheadstyle; Score_element_info itinf (note_p,note_req_l); announce_element (itinf); diff --git a/lily/identifier.cc b/lily/identifier.cc index b9e422a366..7fd434274c 100644 --- a/lily/identifier.cc +++ b/lily/identifier.cc @@ -13,7 +13,6 @@ #include "identifier.hh" #include "my-lily-lexer.hh" #include "debug.hh" -#include "symtable.hh" #include "script-def.hh" #include "request.hh" #include "translator.hh" @@ -85,7 +84,6 @@ Class ## _identifier::do_print () const { \ DEFAULT_PRINT(General_script_def); DEFAULT_PRINT(Translator); -DEFAULT_PRINT(Symtables); DEFAULT_PRINT(Music); DEFAULT_PRINT(Request); DEFAULT_PRINT(Score); @@ -103,7 +101,6 @@ Class ## _identifier::do_str () const { \ DUMMY_STR(Notename_table); DUMMY_STR(General_script_def); DUMMY_STR(Translator); -DUMMY_STR(Symtables); DUMMY_STR(Music); DUMMY_STR(Request); DUMMY_STR(Score); @@ -175,7 +172,6 @@ IMPLEMENT_ID_CLASS(int); IMPLEMENT_ID_CLASS(Real); IMPLEMENT_ID_CLASS(String); IMPLEMENT_ID_CLASS(General_script_def); -IMPLEMENT_ID_CLASS(Symtables); IMPLEMENT_ID_CLASS(Music); IMPLEMENT_ID_CLASS(Score); IMPLEMENT_ID_CLASS(Request); @@ -191,7 +187,6 @@ DEFAULT_ACCESSOR(Duration); DEFAULT_ACCESSOR(int); DEFAULT_ACCESSOR(Real); DEFAULT_ACCESSOR(String); -DEFAULT_ACCESSOR(Symtables); DEFAULT_ACCESSOR(Score); DEFAULT_ACCESSOR(Midi_def); DEFAULT_ACCESSOR(Paper_def); diff --git a/lily/include/afm.hh b/lily/include/afm.hh index 3be52df478..fea4592ad5 100644 --- a/lily/include/afm.hh +++ b/lily/include/afm.hh @@ -14,8 +14,9 @@ #include "box.hh" #include "array.hh" #include "dictionary.hh" +#include "font-metric.hh" -struct Adobe_font_char_metric { +struct Adobe_font_char_metric : Character_metric { int C_; Real WX_; String N_; @@ -27,9 +28,11 @@ struct Adobe_font_char_metric { String str () const; Adobe_font_char_metric (); + + Box dimensions () const; }; -struct Adobe_font_metric { +struct Adobe_font_metric : Font_metric { String FontName_; String FullName_; String FamilyName_; @@ -46,11 +49,14 @@ struct Adobe_font_metric { Array<int> ascii_to_metric_idx_; Dictionary<int> name_to_metric_dict_; - Adobe_font_char_metric find_char (String name, bool warn=true) const; - Adobe_font_char_metric find_ascii (int ascii) const; + Adobe_font_char_metric const &find_char (String name, bool warn=true) const; + Adobe_font_char_metric const &find_ascii (int ascii,bool warn) const; String str () const; Adobe_font_metric (); void read_char_metrics (Data_file &input); + + + Character_metric *get_char (int, bool) const; }; Adobe_font_metric read_afm_file (String fn); diff --git a/lily/include/all-fonts.hh b/lily/include/all-fonts.hh index da9f91e48c..f9203954bb 100644 --- a/lily/include/all-fonts.hh +++ b/lily/include/all-fonts.hh @@ -13,6 +13,7 @@ #include "dictionary.hh" #include "file-path.hh" #include "lily-proto.hh" +#include "font-metric.hh" /** Interface to all .afm files living in the filesystem. @@ -20,10 +21,13 @@ class All_font_metrics { Dictionary<Adobe_font_metric*> afm_p_dict_; + Dictionary<Tex_font_metric*> tfm_p_dict_; File_path search_path_; public: - Adobe_font_metric *find_font (String name); + Adobe_font_metric *find_afm (String name); + Tex_font_metric *find_tfm (String); + Font_metric *find_font (String name); All_font_metrics (String search_path); }; diff --git a/lily/include/atom.hh b/lily/include/atom.hh index 1fd7ef262c..22c5d15a0c 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -36,6 +36,7 @@ public: void translate_axis (Real r,Axis a); /// how big is #this#? Box extent() const; + Interval extent (Axis)const; void print() const; bool check_infinity_b () const; bool empty() const; diff --git a/lily/include/bar-column-engraver.hh b/lily/include/bar-column-engraver.hh deleted file mode 100644 index 2cb233b295..0000000000 --- a/lily/include/bar-column-engraver.hh +++ /dev/null @@ -1,37 +0,0 @@ -/* - bar-column-engraver.hh -- declare Bar_column_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - - -#ifndef BAR_COLUMN_GRAV_HH -#define BAR_COLUMN_GRAV_HH - -#include "engraver.hh" -#include "parray.hh" - -/// couple bars and appropriate scripts -class Bar_column_engraver :public Engraver { - Bar_column *barcol_p_; - Link_array<Script> script_l_arr_; - int break_priority_i_; - - Bar *bar_l_; - void create_column (); -protected: - virtual void acknowledge_element (Score_element_info); - virtual void process_acknowledged (); - virtual void do_pre_move_processing (); - virtual void do_creation_processing (); - virtual void do_process_requests (); - virtual void do_post_move_processing(); -public: - VIRTUAL_COPY_CONS(Translator); - Bar_column_engraver(); - -}; - -#endif // BAR_COLUMN_GRAV_HH diff --git a/lily/include/bar-column.hh b/lily/include/bar-column.hh deleted file mode 100644 index 8e9219c2a0..0000000000 --- a/lily/include/bar-column.hh +++ /dev/null @@ -1,30 +0,0 @@ -/* - bar-column.hh -- declare Bar_column - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - - -#ifndef BAR_COLUMN_HH -#define BAR_COLUMN_HH - -#include "script-column.hh" - -/** - The scripts over a and the bar itself. - */ -class Bar_column : public Script_column { - Bar * bar_l_; - -public: - Bar_column(); - void set_bar (Bar*); -protected: - VIRTUAL_COPY_CONS(Score_element); - void do_substitute_dependency (Score_element*,Score_element*); - -}; - -#endif // BAR_COLUMN_HH diff --git a/lily/include/bar-number-engraver.hh b/lily/include/bar-number-engraver.hh index 0497ff76d0..013dc43702 100644 --- a/lily/include/bar-number-engraver.hh +++ b/lily/include/bar-number-engraver.hh @@ -10,20 +10,13 @@ #ifndef BAR_NUMBER_GRAV_HH #define BAR_NUMBER_GRAV_HH -#include "engraver.hh" +#include "bar-script-engraver.hh" -/** - catch bars, and put a number over them. - */ -class Bar_number_engraver : public Engraver { - Script * script_p_; +class Bar_number_engraver : public Bar_script_engraver { protected: - - void acknowledge_element (Score_element_info); - void do_pre_move_processing(); + void do_process_requests (); public: VIRTUAL_COPY_CONS(Translator); Bar_number_engraver(); - }; #endif // BAR_NUMBER_GRAV_HH diff --git a/lily/include/bar-script-engraver.hh b/lily/include/bar-script-engraver.hh new file mode 100644 index 0000000000..cfd2b7c266 --- /dev/null +++ b/lily/include/bar-script-engraver.hh @@ -0,0 +1,36 @@ +/* + bar-script-engraver.hh -- declare Bar_script_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + */ + +#ifndef BAR_SCRIPT_ENGRAVER_HH +#define BAR_SCRIPT_ENGRAVER_HH +#include "engraver.hh" +#include "protected-scm.hh" + +/** + put stuff over or next to bars + */ +class Bar_script_engraver : public Engraver +{ +protected: + G_staff_side_item* staff_side_p_; + G_text_item* text_p_; + Protected_scm visibility_lambda_; + String type_; + Axis axis_; + +protected: + Bar_script_engraver (); + virtual void do_pre_move_processing (); + virtual void acknowledge_element (Score_element_info); + void create_items(Request*); +}; + + +#endif /* BAR_SCRIPT_ENGRAVER_HH */ + diff --git a/lily/include/beam-engraver.hh b/lily/include/beam-engraver.hh index 834467858f..898e8b048d 100644 --- a/lily/include/beam-engraver.hh +++ b/lily/include/beam-engraver.hh @@ -1,5 +1,5 @@ /* - cbeam-engraver.hh -- declare Beam_engraver + beam-engraver.hh -- declare Beam_engraver source file of the GNU LilyPond music typesetter @@ -7,8 +7,8 @@ */ -#ifndef CBEAM_ENGRAVER_HH -#define CBEAM_ENGRAVER_HH +#ifndef BEAM_ENGRAVER_HH +#define BEAM_ENGRAVER_HH #include "engraver.hh" #include "drul-array.hh" @@ -35,5 +35,5 @@ public: VIRTUAL_COPY_CONS (Translator); }; -#endif /* CBEAM_ENGRAVER_HH */ +#endif /* BEAM_ENGRAVER_HH */ diff --git a/lily/include/chord-name-engraver.hh b/lily/include/chord-name-engraver.hh index fb45ae53d2..72b221fe1e 100644 --- a/lily/include/chord-name-engraver.hh +++ b/lily/include/chord-name-engraver.hh @@ -30,6 +30,10 @@ public: private: Array<Musical_pitch> pitch_arr_; Link_array<Item> text_p_arr_; + + String banter_str (Array<Musical_pitch> pitch_arr, int tonic_i, Musical_pitch inversion) const; + int find_tonic_i () const; + Array<Musical_pitch> rebuild_pitch_arr (int tonic_i) const; }; #endif // CHORD_NAME_ENGRAVER_HH diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index c634382a80..9855313bce 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -18,6 +18,7 @@ class Clef_item : public Item { protected: virtual void do_pre_processing(); virtual Molecule* do_brew_molecule_p() const; + virtual void do_add_processing (); public: String symbol_; @@ -32,10 +33,6 @@ public: /// should we print an octave symbol (8), and where? (up=1, down=-1)? Direction octave_dir_; - /// text def to put above/below clef? - P<Text_def> octave_marker_td_p_; - - VIRTUAL_COPY_CONS(Score_element); Clef_item(); }; diff --git a/lily/include/const.hh b/lily/include/const.hh deleted file mode 100644 index 531d002106..0000000000 --- a/lily/include/const.hh +++ /dev/null @@ -1,12 +0,0 @@ -/* - global constants - */ -#ifndef CONST_HH -#define CONST_HH -#include <limits.h> -#include <math.h> -#include "real.hh" - -#error - -#endif diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index e15bc9b5b1..6e153eea14 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -41,14 +41,14 @@ public: Dimension_cache * parent_l_; Link_array<Dimension_cache> dependencies_l_arr_; - + Graphical_element *element_l () { return elt_l_; } Real absolute_coordinate () const; void invalidate (); void invalidate_dependencies (); Dimension_cache(Dimension_cache const&); Dimension_cache (); - void set_group_l (Graphical_axis_group*); + Real relative_coordinate (Dimension_cache *d) const; Dimension_cache*common_group (Dimension_cache const* s) const; Dimension_cache*common_group (Link_array<Dimension_cache> caches) const; diff --git a/lily/include/elem-group.hh b/lily/include/elem-group.hh deleted file mode 100644 index d1092d98bd..0000000000 --- a/lily/include/elem-group.hh +++ /dev/null @@ -1,20 +0,0 @@ -/* - elem-group.hh -- declare Horizontal_vertical_group_element - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - - -#ifndef ELEM_GROUP_HH -#define ELEM_GROUP_HH - -#include "score-element.hh" -#include "axis-group-element.hh" - - - - -#error -#endif // ELEM_GROUP_HH diff --git a/lily/include/font-metric.hh b/lily/include/font-metric.hh new file mode 100644 index 0000000000..2878cfc38b --- /dev/null +++ b/lily/include/font-metric.hh @@ -0,0 +1,36 @@ +/* + font-metric.hh -- declare Font_metric + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + */ + +#ifndef FONT_METRIC_HH +#define FONT_METRIC_HH + +#include "box.hh" +/* + sigh. + + signature -> Internal compiler error +*/ + +struct Character_metric +{ + virtual Box dimensions () const=0; + virtual ~Character_metric () {} +}; + +struct Font_metric +{ + virtual Character_metric *get_char (int ascii, bool warn) const=0; + virtual ~Font_metric () {} +}; + + + + +#endif /* FONT_METRIC_HH */ + diff --git a/lily/include/g-staff-side.hh b/lily/include/g-staff-side.hh index add3ff2d5c..47be75ff6e 100644 --- a/lily/include/g-staff-side.hh +++ b/lily/include/g-staff-side.hh @@ -12,18 +12,15 @@ #include "item.hh" -/* - DO NOT USE AS BREAKABLE ITEM! - - (-> core dump!) - */ class G_staff_side_item : public Item { + void position_self (); public: Score_element * to_position_l_; Direction dir_; Link_array<Score_element> support_l_arr_; Real padding_f_; + Axis axis_; G_staff_side_item (); void set_victim (Score_element*); diff --git a/lily/include/graphical-lisp-element.hh b/lily/include/graphical-lisp-element.hh deleted file mode 100644 index 33dc70d80f..0000000000 --- a/lily/include/graphical-lisp-element.hh +++ /dev/null @@ -1,39 +0,0 @@ -/* - graphical-lisp-element.hh -- declare Graphical_lisp_element - - source file of the GNU LilyPond music typesetter - - (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org> -*/ - - -#ifndef GRAPHICAL_LISP_ELEMENT_HH -#define GRAPHICAL_LISP_ELEMENT_HH -#error -#include "lily-guile.hh" -#include "lily-proto.hh" -#include "string.hh" - -#define virtual -#define static -#include "virtual-methods.hh" - -class Graphical_lisp_element -{ -public: - - - Graphical_lisp_element (String); - - void* access (String); - void call (String, void*); - -private: - String type_str_; -}; - -#undef virtual -#undef static - -#endif // GRAPHICAL_LISP_ELEMENT_HH - diff --git a/lily/include/item.hh b/lily/include/item.hh index 80b39df71c..b077193928 100644 --- a/lily/include/item.hh +++ b/lily/include/item.hh @@ -13,6 +13,7 @@ #include "string.hh" #include "score-element.hh" #include "drul-array.hh" +#include "protected-scm.hh" /** A horizontally fixed size element of the score. @@ -25,11 +26,26 @@ */ class Item : public virtual Score_element { + void do_break (); + void try_visibility_lambda (); + public: Link_array<Spanner> attached_span_l_arr_; Drul_array<Item*> broken_to_drul_; Item *unbroken_original_l_; + /** + + visibility_lambda :: int -> (bool . bool) + + @in + break direction + + @out + (transparent, empty) cons + + */ + Protected_scm visibility_lambda_; /// should be put in a breakable col. bool breakable_b_; Direction break_status_dir_; @@ -57,6 +73,8 @@ protected: virtual void do_print() const; virtual bool linked_b() const; + virtual void handle_prebroken_dependents (); + void copy_breakable_items(); }; diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 105b3ba493..bc9f969f73 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -16,12 +16,14 @@ #include <libguile.h> SCM ly_symbol (String name); +String symbol_to_string (SCM); SCM ly_set_scm (String name , SCM val); SCM ly_append (SCM a, SCM b); SCM ly_eval (SCM a); SCM ly_func_o (char const* name); SCM ly_quote_scm (SCM s); +void ly_display_scm (SCM s); #include "array.hh" diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index fb8f26e12f..a066878859 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -15,8 +15,6 @@ struct Abbreviation; struct Abbreviation_beam; struct Abbreviation_beam_req; struct Abbreviation_beam_engraver; -struct G_staff_side_item; -struct G_text_item; struct Abbreviation_req; struct Adobe_font_metric; struct Adobe_font_char_metric; @@ -31,6 +29,7 @@ struct Audio_note; struct Audio_note_off; struct Audio_staff; struct Audio_tempo; +struct Auto_beam_engraver; struct Axis_group_element; struct Axis_group; struct Bar; @@ -81,6 +80,8 @@ struct Engraver; struct Engraver_group_engraver; struct Extender; struct Extender_req; +struct G_staff_side_item; +struct G_text_item; struct General_script_def; struct Graphical_element; @@ -173,7 +174,7 @@ struct Performer; struct Plet; struct Plet_engraver; struct Plet_req; -struct Plet_spanner; +struct Tuplet_spanner; struct Piano_brace; struct Performer; struct Performer_group_performer; diff --git a/lily/include/lily-proto.hh.orig b/lily/include/lily-proto.hh.orig deleted file mode 100644 index b44dab4223..0000000000 --- a/lily/include/lily-proto.hh.orig +++ /dev/null @@ -1,266 +0,0 @@ -/* - lily-proto.hh -- declare class names. - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - -#ifndef LILY_PROTO_HH -#define LILY_PROTO_HH -#include "proto.hh" - -struct Absolute_dynamic_req; -struct Abbreviation; -struct Abbreviation_beam; -struct Abbreviation_beam_req; -struct Abbreviation_beam_engraver; -struct G_staff_side_item; -struct G_text_item; -struct Abbreviation_req; -struct Adobe_font_metric; -struct Adobe_font_char_metric; -struct All_font_metrics; -struct Atom; -struct Audio_element; -struct Audio_column; -struct Audio_item; -struct Audio_key; -struct Audio_time_signature; -struct Audio_note; -struct Audio_note_off; -struct Audio_staff; -struct Audio_tempo; -struct Axis_group_element; -struct Axis_group; -struct Bar; -struct Bar_column_engraver; -struct Bar_column; -struct Bar_engraver; -struct Bar_req; -struct Barcheck_req; -struct Beam; -struct Beam_engraver; -struct Beam_req; -struct Blank_req; -struct Bow; -struct Box; -struct Bracket_req; -struct Break_align_item; -struct Break_req; -struct Cadenza_req; -struct Change_iterator; -struct Change_translator; -struct Chord_name_engraver; -struct Clef_change_req; -struct Clef_item; -struct Clef_engraver; -struct Clef_performer; -struct Column_x_positions; -struct Column_info; -struct Collision; -struct Collision_engraver; -struct Command_req; -struct Command_script_req; -struct Command_tie_engraver; -struct Command_tie_req; -struct Compressed_music; -struct Compressed_music_iterator; -struct Cresc_req; -struct Crescendo ; -struct Decresc_req; -struct Dots; -struct Dot_column; -struct Directional_spanner; -struct Durational_req; -struct Dynamic; -struct Dynamic_req; -struct Element_group; -struct Element_group_item; -struct Engraver; -struct Engraver_group_engraver; -struct Extender; -struct Extender_req; -struct General_script_def; -struct Graphical_element; - -struct Graphical_axis_group; -struct Global_translator; -struct Hara_kiri_line_group_engraver; -struct Hara_kiri_vertical_group_spanner; -struct Head_column; - -struct Horizontal_align_item; -struct Horizontal_group_element; -struct Horizontal_group_item; -struct Horizontal_vertical_group; -struct Idealspacing; -struct Identifier; -struct Input_file; -struct Item; -struct Key; -struct Key_change_req; -struct Key_item; -struct Key_engraver; -struct Key_performer; -struct Keyword; -struct Keyword_table; -struct Lily_stream; -struct Line_group_engraver; -struct Line_of_score; -struct Line_of_staff; -struct Line_spacer; -struct Linestaff; -struct Local_key; -struct Local_key_item; -struct Local_key_engraver; -struct Lookup; -struct Lyric_item; -struct Lyric_req; -struct Mark_req; -struct Measure_grouping_req; -struct Melodic_req; -struct Midi_def; -struct Midi_duration; -struct Midi_header; -struct Midi_item; -struct Midi_key; -struct Midi_time_signature; -struct Midi_note; -struct Midi_note_event; -struct Midi_note_off; -struct Midi_output; -struct Midi_score; -struct Midi_stream; -struct Midi_tempo; -struct Midi_track; -struct Midi_walker; -struct Mixed_qp; -struct Molecule; -struct Multi_measure_rest; -struct Multi_measure_rest_req; -struct Multi_measure_rest_engraver; -struct Music; -struct Musical_req; -struct Musical_span_req; -struct Musical_script_req; -struct Music_list; -struct Music_list_iterator; -struct Music_output; -struct Music_output_def; -struct Musical_pitch; -struct Music_sequence; -struct Music_wrapper; -struct Music_wrapper_iterator; -struct My_lily_lexer; -struct My_lily_parser; -struct Note_column; -struct Note_column_engraver; -struct Note_performer; -struct Note_req; -struct Note_head; -struct Note_head_engraver; -struct Notename_table; -struct Offset; -struct Paper_column; -struct Paper_def; -struct Paper_outputter; -struct Paper_score; -struct Paper_stream; -struct Partial_measure_req; -struct Performance; -struct Performer; -struct Plet; -struct Plet_engraver; -struct Plet_req; -struct Plet_spanner; -struct Piano_brace; -struct Performer; -struct Performer_group_performer; -struct Property_iterator; -struct Rational; -struct Request; -struct Request_column; -struct Relative_octave_music; -struct Repeat_engraver; -struct Repeated_music; -struct Repeated_music_iterator; -struct Rest; -struct Rest_collision; -struct Rest_collision_engraver; -struct Rest_req; -struct Rhythmic_grouping; -struct Rhythmic_head; -struct Rhythmic_grouping_req; -struct Rhythmic_req; -struct Scope; -struct Separating_group_spanner; -struct Score; -struct Score_column; -struct Score_element; -struct Score_element_info; -struct Score_performer; -struct Script; -struct Script_column; -struct Script_def; -struct Script_engraver; -struct Script_req; -struct Simple_music; -struct Simultaneous_music; -struct Single_malt_grouping_item; -struct Skip_req; -struct Slur; -struct Slur_engraver; -struct Slur_req; -struct Spacing_req; -struct Span_bar; -struct Span_score_bar; -struct Span_dynamic_req; -struct Span_req; -struct Spanner; -struct Spring_spacer; -struct Staff_bracket; -struct Staff_performer; -struct Staff_side; -struct Staff_symbol; -struct Stem; -struct Stem_beam_engraver; -struct Stem_req; -struct String; -struct Symtable; -struct Symtables; -struct Super_element; -struct Translation_property; -struct Tempo_req; -struct Text_def; -struct Text_gob; -struct Text_item ; -struct Text_engraver; -struct Text_req; -struct Text_spanner; -struct Tie; -struct Tie_engraver; -struct Tie_req; -struct Time_description; -struct Time_signature; -struct Time_signature_change_req; -struct Time_signature_engraver; -struct Time_signature_performer; -struct Translator; -struct Translator_group; -struct Timing_req; -struct Vertical_brace; -struct Vertical_spanner; -struct Vertical_group_element; -struct Vertical_group_spanner; -struct Vertical_align_spanner; -struct Vertical_align_engraver; -struct Volta_spanner; -struct Align_element; -struct Sequential_music; -struct Request_chord; - -typedef Rational Moment; -typedef Scope Header; - -#endif // LILY_PROTO_HH diff --git a/lily/include/linespace.hh b/lily/include/linespace.hh deleted file mode 100644 index 8b230ff516..0000000000 --- a/lily/include/linespace.hh +++ /dev/null @@ -1,94 +0,0 @@ -/* - linespace.hh -- declare Spacing_problem - - source file of the GNU LilyPond music typesetter - - (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - -#error - -#ifndef LINESPACE_HH -#define LINESPACE_HH - -#include "plist.hh" -#include "array.hh" -#include "vector.hh" -#include "interval.hh" -#include "pointer.hh" - - -/** the problem, given by the columns (which include constraints) and - intercolumn spacing. The problem is: - - Generate a spacing which - \begin{itemize} - \item - Satisfies spacing constraints (notes can't be printed through each other) - \item - Looks good, ie tries to conform to an ideal spacing as much as possible. - \end{itemize} - This is converted by regarding idealspacing as "springs" attached - to columns. The equilibrium of one spring is the ideal - distance. The columns have a size, this imposes "hard" constraints - on the distances. This transforms the problem into a quadratic - programming problem with linear constraints. - - The quality is given by the total potential energy in the - springs. The lower the energy, the better the configuration. - - TODO: make item widths work per pstaff. - -*/ -class Spacing_problem { - PointerList<Idealspacing *> ideal_p_list_; - Array<Column_info> cols; - Array<Column_info> loose_col_arr_; - - /// mark column #i# as being loose. - void loosen_column (int i); - /// the index of #c# in #cols# - int col_id (Paper_column const *c) const; - - /// generate an (nonoptimal) solution - Vector find_initial_solution() const; - - /// check if problem is too tight - bool check_feasible() const; - - /// does #this# contain the column #w#? - bool contains (Paper_column const *w); - - /// make the energy function - void make_matrices (Matrix &quad, Vector &lin,Real&) const; - - /// generate the LP constraints - void make_constraints (Mixed_qp& lp) const; - - - void handle_loose_cols(); - void position_loose_cols (Vector &) const; - void print_ideal (Idealspacing const *) const; - Vector try_initial_solution() const; - void calcideal(); - - Score_column* scol_l (int); - void connect (int i,int j, Real,Real); -public: - static Line_spacer *constructor() { - return new Line_spacer; - } - Array<Paper_column*> error_pcol_l_arr() const; - - virtual Array<Real> solve() const; - virtual void add_column (Paper_column *, bool fixed=false, Real fixpos=0.0); - - - virtual Vector default_solution() contains { - return try_initial_solution() ; - } - virtual bool check_constraints (Vector v) const; - virtual void OK() const; - virtual void print() const; - virtual void prepare(); -}; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index c0fc047926..78a0126786 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -15,8 +15,6 @@ #include "fproto.hh" #include "scalar.hh" #include "direction.hh" -#include "curve.hh" -#include "symtable.hh" #include "box.hh" /** handy interface to symbol table @@ -26,28 +24,21 @@ class Lookup public: Lookup (); Lookup (Lookup const&); - Lookup (Symtables const&); - ~Lookup (); + Atom simple_bar (String s, Real w) const; Molecule accidental (int, bool cautionary) const; - void add (String, Symtable*); Atom afm_find (String, bool warn=true) const; Atom ball (int) const; - // - Atom special_ball (int, String) const; - // - Atom bar (String, Real height) const; + Molecule bar (String, Real height) const; Atom beam (Real, Real, Real) const; Atom clef (String) const; Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const; Atom dots () const; - Atom dynamic (String) const; Atom extender (Real) const; Atom fill (Box b) const; Atom flag (int, Direction) const; Atom hairpin (Real width, bool decresc, bool continued) const; Atom plet (Real dy, Real dx, Direction dir) const; - void print () const; Atom rest (int, bool outside) const; Atom rule_symbol (Real height, Real width) const; Atom script (String idx) const; @@ -62,7 +53,6 @@ public: Atom time_signature (Array<int>) const; Paper_def * paper_l_; - Symtables *symtables_p_; String font_name_; Adobe_font_metric * afm_l_; diff --git a/lily/include/main.hh b/lily/include/main.hh index 2b63cb1604..bcad25c6a0 100644 --- a/lily/include/main.hh +++ b/lily/include/main.hh @@ -7,6 +7,7 @@ */ #ifndef MAIN_HH #define MAIN_HH + #include "lily-proto.hh" void debug_init(); @@ -16,7 +17,6 @@ void clear_scores(); void add_score (Score* s); void set_default_output (String s); String find_file (String); -String get_version_str(); void call_constructors (); extern Sources* source_global_l; diff --git a/lily/include/mark-engraver.hh b/lily/include/mark-engraver.hh index f498b34f5c..d78c4286c6 100644 --- a/lily/include/mark-engraver.hh +++ b/lily/include/mark-engraver.hh @@ -10,31 +10,21 @@ #ifndef MARK_ENGRAVER_HH #define MARK_ENGRAVER_HH -#include "engraver.hh" - -class G_staff_side_item; -class G_text_item; +#include "bar-script-engraver.hh" /** */ -class Mark_engraver : public Engraver +class Mark_engraver : public Bar_script_engraver { public: Mark_engraver (); - VIRTUAL_COPY_CONS(Translator); - - protected: virtual bool do_try_music (Music *req_l); virtual void do_process_requests (); - virtual void do_pre_move_processing (); - virtual void acknowledge_element (Score_element_info); - + virtual void do_post_move_processing (); private: Mark_req * mark_req_l_; - G_staff_side_item* staff_side_p_; - G_text_item* text_p_; }; #endif // MARK_ENGRAVER_HH diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh index 7907be0ae4..757a26ac34 100644 --- a/lily/include/molecule.hh +++ b/lily/include/molecule.hh @@ -23,7 +23,7 @@ struct Molecule { Molecule() { } Molecule (Atom const &a); - void add_at_edge (Axis a, Direction d, const Molecule &m); + void add_at_edge (Axis a, Direction d, const Molecule &m, Real padding); void add_molecule (Molecule const &m); void translate (Offset); @@ -31,7 +31,7 @@ struct Molecule { void add_atom (Atom const & a) ; /// how big is #this#? Box extent() const; - + Interval extent (Axis) const; Molecule (const Molecule&s); void print() const; diff --git a/lily/include/multi-measure-rest-engraver.hh b/lily/include/multi-measure-rest-engraver.hh index b9d47c9158..e4e7c3fb31 100644 --- a/lily/include/multi-measure-rest-engraver.hh +++ b/lily/include/multi-measure-rest-engraver.hh @@ -29,10 +29,7 @@ protected: virtual void do_post_move_processing (); private: - Moment rest_stop_mom_; -// Moment rest_item_creation_mom_; - Moment rest_start_mom_; - + Drul_array<Moment> rest_moments_; int start_measure_i_; Multi_measure_rest_req* multi_measure_req_l_; diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index 1bf988c09e..f42a50cfa0 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -66,21 +66,6 @@ public: REQUESTMETHODS(Spacing_req); }; -/// Put a text above or below (?) this staff. -class Text_req : public virtual Musical_req { -public: - /// preferred position (above/below) - Direction dir_; - /// the characteristics of the text - Text_def *tdef_p_; - - Text_req (int d, Text_def*); - ~Text_req(); - Text_req (Text_req const&); - - REQUESTMETHODS(Text_req); -}; - /** a syllable or lyric is a string with rhythm. */ class Lyric_req : public Rhythmic_req { @@ -185,7 +170,8 @@ public: for FP, SF, SFZ (FP is *not* louder than FFF) */ enum Loudness { - FFFFFF, FFFFF, FFFF, FFF, FF, F, MF, MP, P, PP, PPP, PPPP, PPPPP, PPPPPP, FP, SF, SFF, SFZ, SP, SPP, RFZ }; + FFF, FF, F, MF, MP, P, PP, PPP, FP, SF, SFZ + }; static String loudness_static_str (Loudness); REQUESTMETHODS(Dynamic_req); }; diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh index 853fee3581..1cc0bad9b8 100644 --- a/lily/include/note-head.hh +++ b/lily/include/note-head.hh @@ -18,8 +18,6 @@ class Note_head : public Rhythmic_head { public: - String note_head_type_str_; - /// position of top line (5 linestaff: 8) int position_i_; diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index 898c2b6082..df73bea785 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -10,7 +10,7 @@ #ifndef PAPER_DEF_HH #define PAPER_DEF_HH #include "lily-proto.hh" - +#include "lily-guile.hh" #include "real.hh" #include "moment.hh" @@ -47,8 +47,8 @@ public: Array<Interval> shape_int_a_; - - Real get_var (String) const; + Real get_realvar (SCM symbol) const; + Real get_var (String id) const; void reinit (); Paper_def (); void set_lookup (int, Lookup*); diff --git a/lily/include/parseconstruct.hh b/lily/include/parseconstruct.hh index 7a85104846..ff329dd1a3 100644 --- a/lily/include/parseconstruct.hh +++ b/lily/include/parseconstruct.hh @@ -12,7 +12,6 @@ String * get_scriptdef (char c); Request* get_script_req (char); Request*get_script_req (int d , Script_def*def); -Request*get_text_req (int d , Text_def*def); Request*get_grouping_req (Array<int> i_arr); #endif // PARSECONSTRUCT_HH diff --git a/lily/include/piano-brace.hh b/lily/include/piano-brace.hh index afc7b43e68..c16ed213ec 100644 --- a/lily/include/piano-brace.hh +++ b/lily/include/piano-brace.hh @@ -25,7 +25,7 @@ public: protected: virtual Interval do_width() const; virtual void do_post_processing(); - virtual Atom get_bar_sym (Real) const; + virtual Molecule get_bar_sym (Real) const; }; diff --git a/lily/include/repeat-engraver.hh b/lily/include/repeat-engraver.hh index e3d6f9ef3a..cef330a718 100644 --- a/lily/include/repeat-engraver.hh +++ b/lily/include/repeat-engraver.hh @@ -31,7 +31,8 @@ protected: private: Link_array<Repeated_music> repeated_music_arr_; Link_array<Music> alternative_music_arr_; - Link_array<Bar> bar_p_arr_; + // Link_array<Bar> bar_p_arr_; + Array<bool> bar_b_arr_; Link_array<Volta_spanner> volta_p_arr_; Array<Moment> stop_mom_arr_; Array<Moment> alternative_start_mom_arr_; diff --git a/lily/include/scope.hh b/lily/include/scope.hh index f9980f2db8..bf3e3e6318 100644 --- a/lily/include/scope.hh +++ b/lily/include/scope.hh @@ -12,13 +12,29 @@ #include "dictionary.hh" #include "lily-proto.hh" +#include "lily-guile.hh" +#include "dictionary-iter.hh" +#include "protected-scm.hh" -class Scope : public Dictionary<Identifier*> { +class Scope : private Hash_table<Protected_scm,Identifier*> { public: void print () const; + bool elem_b (String ) const; + bool elem_b (SCM s) const; + Identifier *&elem (String); + Identifier *&elem (SCM s); Scope (); + Scope (Scope const &); ~Scope (); + friend class Scope_iter; +}; + +class Scope_iter : public Hash_table_iter<Protected_scm,Identifier*> { +public: + Scope_iter(Scope const&); + String key () const; + SCM scm_key () const; }; #endif /* SCOPE_HH */ diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index c36e446816..919333c9a6 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -106,6 +106,7 @@ protected: virtual void do_break_processing (); virtual void handle_broken_dependencies (); virtual void handle_prebroken_dependencies (); + virtual void handle_prebroken_dependents (); virtual Link_array<Score_element> get_extra_dependencies () const; virtual void do_unlink (); virtual void do_junk_links (); diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh index 22a710d7f5..410b527a1b 100644 --- a/lily/include/span-bar.hh +++ b/lily/include/span-bar.hh @@ -31,7 +31,7 @@ protected: virtual void do_substitute_dependency (Score_element*,Score_element*); virtual Molecule * do_brew_molecule_p() const; - virtual Atom get_bar_sym (Real dy) const; + virtual Molecule get_bar_sym (Real dy) const; }; #endif // SPAN_BAR_HH diff --git a/lily/include/staff-bracket.hh b/lily/include/staff-bracket.hh index f63a113141..3360ac32cd 100644 --- a/lily/include/staff-bracket.hh +++ b/lily/include/staff-bracket.hh @@ -20,7 +20,7 @@ public: protected: virtual Interval do_width() const; virtual void do_post_processing(); - virtual Atom get_bar_sym (Real) const; + virtual Molecule get_bar_sym (Real) const; }; diff --git a/lily/include/staff-margin-engraver.hh b/lily/include/staff-margin-engraver.hh index 2ad18843d8..240b44f794 100644 --- a/lily/include/staff-margin-engraver.hh +++ b/lily/include/staff-margin-engraver.hh @@ -10,25 +10,18 @@ #ifndef STAFF_MARGIN_ENGRAVER_HH #define STAFF_MARGIN_ENGRAVER_HH -#include "engraver.hh" +#include "bar-script-engraver.hh" /** put (instrument) text to left of line */ -class Staff_margin_engraver : public Engraver +class Staff_margin_engraver : public Bar_script_engraver { public: VIRTUAL_COPY_CONS(Translator); - - Staff_margin_engraver (); - protected: void acknowledge_element (Score_element_info); - void do_pre_move_processing (); - -private: - Script * script_p_; }; #endif // STAFF_MARGIN_ENGRAVER_HH diff --git a/lily/include/symtable.hh b/lily/include/symtable.hh deleted file mode 100644 index b0f8a77bf6..0000000000 --- a/lily/include/symtable.hh +++ /dev/null @@ -1,40 +0,0 @@ -/* - symtable.hh -- declare Symtable, Symtables - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - - -#ifndef SYMTABLE_HH -#define SYMTABLE_HH - -#include "dictionary.hh" -#include "string.hh" -#include "atom.hh" - -struct Symtable : public Dictionary<Atom> { - String id_str; - - Atom lookup (String) const; - void print() const; -}; - - -struct Symtables : private Dictionary<Symtable*> -{ - Symtables(); - Symtables (Symtables const&); - ~Symtables(); - - Symtable* operator()(String s); - void add (String, Symtable*); - void print() const; - - String font_name_; -}; - - -#endif - diff --git a/lily/include/text-item.hh b/lily/include/text-item.hh deleted file mode 100644 index 536fbd86ef..0000000000 --- a/lily/include/text-item.hh +++ /dev/null @@ -1,36 +0,0 @@ -/* - text-item.hh -- part of GNU LilyPond - - (c) 1996--1998 Han-Wen Nienhuys -*/ - -#ifndef TEXT_ITEM_HH -#define TEXT_ITEM_HH - -#include "text-def.hh" -#include "item.hh" -#include "staff-side.hh" - -/** - print a fixed width text above or below the staff. - */ -class Text_item : public Item ,public Staff_side -{ -public: - /// do I have width? - bool fat_b_; - - Text_item (General_script_def* ,Direction dir=CENTER); - General_script_def* tdef_p_; - -protected: - virtual ~Text_item (); - virtual Interval symbol_height () const; - virtual Molecule* do_brew_molecule_p () const; - virtual void do_pre_processing (); - virtual Real get_position_f () const; -}; - - -#endif // TEXT_HH - diff --git a/lily/include/tfm.hh b/lily/include/tfm.hh index 685c921201..182fded427 100644 --- a/lily/include/tfm.hh +++ b/lily/include/tfm.hh @@ -4,7 +4,10 @@ source file of the GNU LilyPond music typesetter (c) 1999 Jan Nieuwenhuizen <janneke@gnu.org> - + + + revamped code from GNU Fontutils-0.6 + */ #ifndef TFM_HH @@ -13,6 +16,7 @@ #include "string.hh" #include "array.hh" #include "lily-proto.hh" +#include "font-metric.hh" /* The type. */ typedef long Fix; @@ -121,7 +125,7 @@ struct Tfm_kern Real kern; }; -struct Tex_font_char_metric +struct Tex_font_char_metric : Character_metric { bool exists_b_; Char_code code_; @@ -132,14 +136,18 @@ struct Tex_font_char_metric String str () const; Tex_font_char_metric (); + + Box dimensions () const; }; -class Tex_font_metric +class Tex_font_metric : public Font_metric { public: + Character_metric *get_char (int, bool) const; + Tex_font_metric (); - Tex_font_char_metric find_ascii (int ascii, bool warn=true) const; + Tex_font_char_metric const &find_ascii (int ascii, bool warn=true) const; String str () const; /// the reader @@ -160,7 +168,7 @@ private: void read_char_metrics (Binary_source_file* input); Tex_font_char_metric read_char_metric (Binary_source_file* input, Char_code code); Tex_font_char_metric read_char (Binary_source_file* input); - void read_lig_kern_program (Binary_source_file* input, Array <Tfm_ligature>* ligature_arr_p, Array <Tfm_kern>* kern_arr_p); + void read_lig_kern_program (Binary_source_file* input, Array<Tfm_ligature>* ligature_arr_p, Array <Tfm_kern>* kern_arr_p); }; diff --git a/lily/include/tuplet-engraver.hh b/lily/include/tuplet-engraver.hh index b76f12e440..f376092f76 100644 --- a/lily/include/tuplet-engraver.hh +++ b/lily/include/tuplet-engraver.hh @@ -22,7 +22,7 @@ public: protected: Link_array<Compressed_music> compressed_music_arr_; Array<Moment> stop_moments_; - Link_array<Plet_spanner> started_span_p_arr_; + Link_array<Tuplet_spanner> started_span_p_arr_; virtual void do_removal_processing (); diff --git a/lily/include/tuplet-spanner.hh b/lily/include/tuplet-spanner.hh index 356e4a51e0..4310faac2c 100644 --- a/lily/include/tuplet-spanner.hh +++ b/lily/include/tuplet-spanner.hh @@ -4,18 +4,18 @@ (c) 1997--1998 Jan Nieuwenhuizen <janneke@gnu.org> */ -#ifndef PLET_SPANNER_HH -#define PLET_SPANNER_HH +#ifndef Tuplet_spanner_HH +#define Tuplet_spanner_HH #include "text-def.hh" #include "pointer.hh" #include "directional-spanner.hh" /** supportable plet: triplets, eentweetjes, ottava, etc. */ -class Plet_spanner : public Directional_spanner +class Tuplet_spanner : public Directional_spanner { public: - Plet_spanner (); + Tuplet_spanner (); void add_column (Note_column*); void set_beam (Beam*); @@ -36,5 +36,5 @@ protected: virtual void do_substitute_dependency (Score_element*,Score_element*); }; -#endif // PLET_SPANNER_HH +#endif // Tuplet_spanner_HH diff --git a/lily/include/volta-spanner.hh b/lily/include/volta-spanner.hh index a64f7ef08a..eca97a8252 100644 --- a/lily/include/volta-spanner.hh +++ b/lily/include/volta-spanner.hh @@ -26,6 +26,7 @@ public: Link_array<Bar> column_arr_; Link_array<Note_column> note_column_arr_; bool last_b_; + bool visible_b_; protected: virtual Molecule* do_brew_molecule_p () const; diff --git a/lily/item.cc b/lily/item.cc index 7ae4f06b53..2ba9b27045 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -21,8 +21,6 @@ Item::Item () broken_to_drul_[LEFT] = broken_to_drul_[RIGHT]=0; } - - void Item::do_print() const { @@ -42,7 +40,7 @@ Item::hpos_f() const Line_of_score * Item::line_l() const { - Graphical_element *g =parent_l (X_AXIS); + Graphical_element *g = parent_l (X_AXIS); if (!g) return 0; return dynamic_cast <Score_element *> (g)-> line_l (); @@ -63,36 +61,63 @@ Item::copy_breakable_items() Direction i=LEFT; do { - Item * item_p = dynamic_cast<Item*>(clone()); + Score_element * dolly = clone(); + Item * item_p = dynamic_cast<Item*>(dolly); item_p->break_status_dir_ = i; pscore_l_->typeset_element (item_p); - item_p->handle_prebroken_dependencies(); new_copies[i] =item_p; } while (flip(&i) != LEFT); broken_to_drul_= new_copies; + + do + { + broken_to_drul_[i]->handle_prebroken_dependencies(); + broken_to_drul_[i]->try_visibility_lambda(); + } + while (flip(&i) != LEFT); + try_visibility_lambda (); } void -Item::do_breakable_col_processing() +Item::try_visibility_lambda () { - if (!breakable_b_) - return; - - if (!column_l ()->breakable_b_) - return; + if (visibility_lambda_) + { + SCM args = scm_listify (gh_int2scm (break_status_dir_), SCM_UNDEFINED); + SCM result = gh_apply (visibility_lambda_, args); + int trans = gh_scm2bool (gh_car (result)); + int empty = gh_scm2bool (gh_cdr (result)); + + if (empty) + set_empty (true); + if (trans) + transparent_b_ = true; + } +} +void +Item::do_break () +{ copy_breakable_items(); handle_prebroken_dependencies(); - + /* Otherwise the broken items won't be pre_process()'ed. */ add_dependency (broken_to_drul_[LEFT]); - add_dependency (broken_to_drul_[RIGHT]); + add_dependency (broken_to_drul_[RIGHT]); + } +void +Item::do_breakable_col_processing() +{ + if (breakable_b_) + do_break (); + +} Item* Item::find_prebroken_piece (Line_of_score*l) const { @@ -176,8 +201,34 @@ Item::Item (Item const &s) unbroken_original_l_ = &s; /* do not copy attached_span_l_arr_ */ breakable_b_ = s.breakable_b_; + visibility_lambda_ = s.visibility_lambda_; broken_to_drul_[LEFT] = broken_to_drul_[RIGHT] =0; break_status_dir_ = s.break_status_dir_; break_priority_i_ = s.break_priority_i_; } + +void +Item::handle_prebroken_dependents () +{ + Dimension_cache * dim = dim_cache_[X_AXIS].parent_l_; + if (!dim) + return; + + Item * parent = dynamic_cast<Item*> (dim->element_l ()); + if (parent && parent->broken_to_drul_[LEFT]) + { + if(!(broken_to_drul_[LEFT] || broken_to_drul_[RIGHT])) + do_break (); + + Direction d = LEFT; + do + { + broken_to_drul_[d]->dim_cache_[X_AXIS].parent_l_ = + &parent->broken_to_drul_[d]->dim_cache_[X_AXIS]; + parent->broken_to_drul_[d]->add_dependency (broken_to_drul_[d]); + } + while ((flip (&d))!=LEFT); + } +} + diff --git a/lily/key-item.cc b/lily/key-item.cc index 268d847686..152148dac9 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -73,7 +73,9 @@ Key_item::calculate_position(int p, int a) const } /* - TODO space the `natural' signs wider + TODO + - space the `natural' signs wider + - dehair this */ Molecule* Key_item::do_brew_molecule_p() const @@ -97,7 +99,7 @@ Key_item::do_brew_molecule_p() const { Molecule m =lookup_l ()->accidental (0,false); m.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS); - output->add_at_edge (X_AXIS, RIGHT, m); + output->add_at_edge (X_AXIS, RIGHT, m,0); } } @@ -109,14 +111,14 @@ Key_item::do_brew_molecule_p() const Interval x(0, inter); Interval y(0,0); - output->add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y))); + output->add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y)),0); } for (int i =0; i < pitch_arr_.size(); i++) { Molecule m =lookup_l ()->accidental (acc_arr_[i],false); m.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS); - output->add_at_edge (X_AXIS, RIGHT, m); + output->add_at_edge (X_AXIS, RIGHT, m, 0); } if (pitch_arr_.size()) { @@ -124,7 +126,7 @@ Key_item::do_brew_molecule_p() const Interval (0, paper()->note_width ()), Interval (0,0)))); - output->add_at_edge (X_AXIS, RIGHT, m); + output->add_at_edge (X_AXIS, RIGHT, m,0 ); } return output; } diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 26e32488b8..265a14578a 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -42,8 +42,14 @@ ly_symbol (String name) return gh_car (scm_intern (name.ch_C(), name.length_i())); } +String +symbol_to_string (SCM s) +{ + return String((Byte*)SCM_CHARS (s), (int) SCM_LENGTH(s)); +} + SCM -ly_set_scm (String name , SCM val) +ly_set_scm (String name, SCM val) { return scm_sysintern (name.ch_C(), val); @@ -75,3 +81,10 @@ read_lily_scm_file (String fn) *mlog << ']' << flush; } + +void +ly_display_scm (SCM s) +{ + gh_display (s); + gh_newline (); +} diff --git a/lily/lily-version.cc b/lily/lily-version.cc index 18696cbd31..5dcfcdcac5 100644 --- a/lily/lily-version.cc +++ b/lily/lily-version.cc @@ -1,21 +1,35 @@ -#include <stdio.h> +/* + lily-version.cc -- implement version strings + + source file of the GNU LilyPond music typesetter + + (c) 1999 Jan Nieuwenhuizen <janneke@gnu.org> +*/ #include "config.hh" #include "version.hh" +#include "lily-version.hh" -#define VERSION_SZ MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL - -static char *s = "GNU LilyPond " VERSION_SZ ; +#define VERSION MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL +String +version_str () +{ + String str = VERSION; + return str; +} -char const * -lily_version_number_sz() +String +gnu_lilypond_str () { - return VERSION_SZ; + String str = "GNU LilyPond"; + return str; } -char const * -lily_version_sz() +String +gnu_lilypond_version_str () { - return s; + String str = gnu_lilypond_str () + " " + version_str (); + return str; } + diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index 43177a7322..92c6e2300a 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -74,7 +74,7 @@ Local_key_item::do_brew_molecule_p() const accidental_pitch_arr_[i].cautionary_b_)); m.translate_axis (dy, Y_AXIS); - octave_mol_p->add_at_edge (X_AXIS, RIGHT, m); + octave_mol_p->add_at_edge (X_AXIS, RIGHT, m, 0); } if (octave_mol_p) @@ -89,7 +89,7 @@ Local_key_item::do_brew_molecule_p() const { Box b(Interval (0, paper()->internote_f ()), Interval (0,0)); Molecule m (lookup_l ()->fill (b)); - output->add_at_edge (X_AXIS, RIGHT, m); + output->add_at_edge (X_AXIS, RIGHT, m, 0); } Interval x_int; diff --git a/lily/lookup.cc b/lily/lookup.cc index f777dee42a..757cf25535 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -15,7 +15,6 @@ #include "lookup.hh" #include "debug.hh" #include "dimensions.hh" -#include "symtable.hh" #include "scalar.hh" #include "paper-def.hh" #include "string-convert.hh" @@ -24,6 +23,8 @@ #include "lily-guile.hh" #include "all-fonts.hh" #include "afm.hh" +#include "scope.hh" +#include "molecule.hh" SCM array_to_list (SCM *a , int l) @@ -40,30 +41,17 @@ array_to_list (SCM *a , int l) Lookup::Lookup () { paper_l_ = 0; - symtables_p_ = new Symtables; afm_l_ = 0; } Lookup::Lookup (Lookup const& s) { font_name_ = s.font_name_; - paper_l_ = s.paper_l_; - symtables_p_ = new Symtables (*s.symtables_p_); + paper_l_ = 0; afm_l_ = 0; } -Lookup::Lookup (Symtables const& s) -{ - font_name_ = s.font_name_; - paper_l_ = 0; - symtables_p_ = new Symtables (s); - afm_l_ = 0; -} -Lookup::~Lookup () -{ - delete symtables_p_; -} Molecule Lookup::accidental (int j, bool cautionary) const @@ -71,28 +59,21 @@ Lookup::accidental (int j, bool cautionary) const Molecule m(afm_find (String ("accidentals") + String ("-") + to_str (j))); if (cautionary) { - m.add_at_edge(X_AXIS, LEFT, - Molecule(afm_find (String ("accidentals") + String ("-(")))) -; - m.add_at_edge(X_AXIS, RIGHT, - Molecule(afm_find (String ("accidentals") + String ("-)")))) -; + Atom open = afm_find (String ("accidentals") + String ("-(")); + Atom close = afm_find (String ("accidentals") + String ("-)")); + m.add_at_edge(X_AXIS, LEFT, Molecule(open), 0); + m.add_at_edge(X_AXIS, RIGHT, Molecule(close), 0); } return m; } -void -Lookup::add (String s, Symtable*p) -{ - symtables_p_->add (s, p); -} Atom Lookup::afm_find (String s, bool warn) const { if (!afm_l_) - ((Lookup*)this)->afm_l_ = all_fonts_global_p->find_font (font_name_); + ((Lookup*)this)->afm_l_ = all_fonts_global_p->find_afm (font_name_); Adobe_font_char_metric m = afm_l_->find_char (s, warn); @@ -101,14 +82,13 @@ Lookup::afm_find (String s, bool warn) const return a; a.dim_ = m.B_; - // a.dim_[X_AXIS] *= 1 / 1000.0; - // a.dim_[Y_AXIS] *= 1 / 1000.0; + a.dim_[X_AXIS] *= 1 / 1000.0; + a.dim_[Y_AXIS] *= 1 / 1000.0; a.lambda_ = gh_list (ly_symbol ("char"), gh_int2scm (m.code ()), SCM_UNDEFINED); - a.str_ = "afm_find: " + s; a.font_ = font_name_; return a; } @@ -123,29 +103,92 @@ Lookup::ball (int j) const } Atom -Lookup::special_ball (int j, String kind_of_ball) const +Lookup::simple_bar (String type, Real h) const { - if (j > 2) - j = 2; + SCM thick = ly_symbol ("barthick_" + type); + Real w = 0.1 PT; + if (paper_l_->scope_p_->elem_b (thick)) + { + w = paper_l_->get_realvar (thick); + } + + Atom a; + a.lambda_ = gh_list (ly_symbol ("filledbox"), + gh_double2scm (0), + gh_double2scm (w), + gh_double2scm (h/2), + gh_double2scm (h/2), + SCM_UNDEFINED); - return afm_find (String ("balls") + String ("-") + kind_of_ball); + a.dim_[X_AXIS] = Interval(0,w); + a.dim_[Y_AXIS] = Interval (-h/2, h/2); + return a; } -Atom + +Molecule Lookup::bar (String str, Real h) const { + Real kern = paper_l_->get_var ("bar_kern"); + Real thinkern = paper_l_->get_var ("bar_thinkern"); + Atom thin = simple_bar ("thin", h); + Atom thick = simple_bar ("thick", h); + Atom colon = afm_find ("dots-repeatcolon"); - Atom a = (*symtables_p_) ("bars")->lookup (str); - - - a.lambda_ = gh_list (ly_symbol (a.str_.ch_C()), - gh_double2scm (h), - SCM_UNDEFINED); + Molecule m; + if (str == "") + { + return fill (Box (Interval(0,0),Interval (-h/2, h/2))); + } + else if (str == "|") + { + return thin; + } + else if (str == "|.") + { + m.add_at_edge (X_AXIS, LEFT, thick, 0); + m.add_at_edge (X_AXIS, LEFT, thin,kern); + } + else if (str == ".|") + { + m.add_at_edge (X_AXIS, RIGHT, thick, kern); + m.add_at_edge (X_AXIS, RIGHT, thin, 0); + } + else if (str == ":|") + { + m.add_at_edge (X_AXIS, LEFT, thick, 0); + m.add_at_edge (X_AXIS, LEFT, thin, kern); + m.add_at_edge (X_AXIS, LEFT, colon, kern); + } + else if (str == "|:") + { + m.add_at_edge (X_AXIS, RIGHT, thick,0); + m.add_at_edge (X_AXIS, RIGHT, thin,kern); + m.add_at_edge (X_AXIS, RIGHT, colon,kern); + } + else if (str == ":|:") + { + m.add_at_edge (X_AXIS, LEFT, thick,kern/2); + m.add_at_edge (X_AXIS, LEFT, thin,kern); + m.add_at_edge (X_AXIS, LEFT, colon,kern); + m.add_at_edge (X_AXIS, RIGHT, thick,kern); + m.add_at_edge (X_AXIS, RIGHT, thin,kern); + m.add_at_edge (X_AXIS, RIGHT, colon,kern); + } + else if (str == "||") + { + m.add_at_edge (X_AXIS, RIGHT, thin,0); + m.add_at_edge (X_AXIS, RIGHT, thin,thinkern); + } - a.dim_.y () = Interval (-h/2, h/2); - a.font_ = font_name_; - return a; + else if (str == ".|.") + { + m.add_at_edge (X_AXIS, RIGHT, thick, 0); + m.add_at_edge (X_AXIS, RIGHT, thick, kern); + } + + return m; } Atom @@ -207,7 +250,6 @@ Lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const ly_quote_scm (array_to_list (sc, 4)), SCM_UNDEFINED); - a.str_ = "dashed_slur"; return a; } @@ -217,20 +259,18 @@ Lookup::dots () const return afm_find (String ("dots") + String ("-") + String ("dot")); } -Atom -Lookup::dynamic (String st) const -{ - return (*symtables_p_) ("dynamics")->lookup (st); -} Atom Lookup::extender (Real width) const { - Atom a = (*symtables_p_) ("param")->lookup ("extender"); - a.lambda_ = gh_list (ly_symbol (a.str_), + Atom a; + a.lambda_ = gh_list (ly_symbol ("extender"), gh_double2scm (width), SCM_UNDEFINED); - a.str_ = "extender"; + + a.dim_[X_AXIS] = Interval (0, width); + a.dim_[Y_AXIS] = Interval (0,0); + a.font_ = font_name_; return a; } @@ -251,16 +291,6 @@ Lookup::flag (int j, Direction d) const return a; } -void -Lookup::print () const -{ -#ifndef NPRINT - DOUT << "Lookup {\n"; - symtables_p_->print (); - DOUT << "}\n"; -#endif -} - Atom Lookup::rest (int j, bool o) const { @@ -323,9 +353,9 @@ Lookup::stem (Real y1, Real y2) const Real stem_width = paper_l_->get_var ("stemthickness"); - a.lambda_ = gh_list (ly_symbol ("stem"), - gh_double2scm(-stem_width /2), - gh_double2scm(stem_width), + a.lambda_ = gh_list (ly_symbol ("filledbox"), + gh_double2scm(stem_width /2), + gh_double2scm(stem_width/2), gh_double2scm(y2), gh_double2scm(-y1), SCM_UNDEFINED); @@ -361,21 +391,23 @@ static Dictionary<char const *> cmr_dict (cmr_init); Atom Lookup::text (String style, String text) const { - Atom a = (*symtables_p_) ("style")->lookup (style); - - a.lambda_ = gh_list(ly_symbol (a.str_), + Atom a; + a.lambda_ = gh_list(ly_symbol ("set" + style), gh_str02scm (text.ch_C()), SCM_UNDEFINED); - - Real font_w = a.dim_.x ().length (); - Real font_h = a.dim_.y ().length (); + Real font_h = paper_l_->get_var ("font_normal"); + if (paper_l_->scope_p_->elem_b ("font_" + style)) + { + font_h = paper_l_->get_var ("font_" + style); + } + if (cmr_dict.elem_b (style)) { style = String (cmr_dict [style]) + to_str ((int)font_h); // ugh } Real w = 0; - Adobe_font_metric* afm_l = all_fonts_global_p->find_font (style); + Font_metric* afm_l = all_fonts_global_p->find_font (style); DOUT << "\nChars: "; for (int i = 0; i < text.length_i (); i++) @@ -385,16 +417,11 @@ Lookup::text (String style, String text) const ; else { - int c = text[i]; - int code = afm_l->ascii_to_metric_idx_[c]; - if (code >=0) - { - Adobe_font_char_metric m = afm_l->char_metrics_[code]; - w += m.B_.x ().length (); - DOUT << to_str (m.B_.x ().length ()) << " "; - } + Character_metric *c = afm_l->get_char (text[i],false); + w += c->dimensions()[X_AXIS].length (); } } + DOUT << "\n" << to_str (w) << "\n"; a.dim_.x () = Interval (0, w); a.font_ = font_name_; @@ -402,14 +429,21 @@ Lookup::text (String style, String text) const } +/* + TODO: should return a molecule with 2 stacked nums. + */ Atom Lookup::time_signature (Array<int> a) const { - Atom s ((*symtables_p_) ("param")->lookup ("time_signature")); - s.lambda_ = gh_list (ly_symbol (s.str_), + Atom s; + s.lambda_ = gh_list (ly_symbol ("generalmeter"), gh_int2scm (a[0]), gh_int2scm (a[1]), SCM_UNDEFINED); + + Real r = paper_l_->interline_f () ; + s.dim_[Y_AXIS] = Interval (-2*r, 2*r); + s.dim_[X_AXIS] = Interval (0, 2*r); return s; } @@ -422,6 +456,7 @@ Lookup::vbrace (Real &y) const SCM_UNDEFINED ); a.dim_[Y_AXIS] = Interval (-y/2,y/2); + a.dim_[X_AXIS] = Interval (0,0); a.font_ = font_name_; return a; } @@ -488,7 +523,6 @@ Lookup::vbracket (Real &y) const a.lambda_ = gh_list (ly_symbol ("bracket"), gh_double2scm (y), SCM_UNDEFINED); - a.str_ = "vbracket"; a.dim_[Y_AXIS] = Interval (-y/2,y/2); a.dim_[X_AXIS] = Interval (0,4 PT); return a; @@ -502,7 +536,7 @@ Lookup::volta (Real w, bool last_b) const gh_double2scm (w), gh_int2scm (last_b), SCM_UNDEFINED); - a.str_ = "volta"; + Real interline_f = paper_l_->interline_f (); a.dim_[Y_AXIS] = Interval (-interline_f, interline_f); diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index c5447ad97e..b2942c91fc 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -8,15 +8,9 @@ */ #include "musical-request.hh" -#include "text-item.hh" -#include "paper-def.hh" -#include "lookup.hh" -#include "paper-def.hh" #include "main.hh" #include "dimensions.hh" #include "g-text-item.hh" - - #include "engraver.hh" #include "array.hh" #include "lily-proto.hh" @@ -71,6 +65,8 @@ Lyric_engraver::do_process_requests() Scalar style = get_property ("textstyle", 0); if (style.length_i ()) item_p->style_str_ = style; + // urg, when/how can one get the height of this thing? + item_p->translate (Offset (0, - i * 12 PT)); text_p_arr_.push (item_p); announce_element (Score_element_info (item_p, request_l)); diff --git a/lily/main.cc b/lily/main.cc index 4e41395e42..64c5f17575 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -11,6 +11,7 @@ #include <assert.h> #include <locale.h> #include "lily-guile.hh" +#include "lily-version.hh" #include "all-fonts.hh" #include "proto.hh" @@ -128,8 +129,8 @@ usage () " -V, --ignore-version ignore mudela version\n" ); cout << _ ( - " -w, --warranty show warranty and copyright\n" - ); + " -w, --warranty show warranty and copyright\n" + ); cout << '\n'; cout << _ ("GNU LilyPond was compiled with the following settings:"); cout << '\n'; @@ -143,9 +144,9 @@ usage () #ifdef STRING_UTILS_INLINED "STRING_UTILS_INLINED " #endif - "datadir=" DIR_DATADIR - "\n" - "localedir=" DIR_LOCALEDIR + "datadir=" DIR_DATADIR + "\n" + "localedir=" DIR_LOCALEDIR "\n"; @@ -157,8 +158,8 @@ about () { cout << '\n'; cout << - #include "BLURB.hh" - cout << '\n'; +#include "BLURB.hh" + cout << '\n'; cout << _ ("GNU LilyPond is Free software, see --warranty"); cout << '\n'; cout << '\n'; @@ -181,25 +182,25 @@ notice () cout << " " + _ ("Jan Nieuwenhuizen <janneke@gnu.org>") + "\n"; cout << '\n'; cout << _ ( - " This program is free software; you can redistribute it and/or\n" - "modify it under the terms of the GNU General Public License version 2\n" - "as published by the Free Software Foundation.\n" - "\n" - " This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" - "General Public License for more details.\n" - "\n" - " You should have received a copy (refer to the file COPYING) of the\n" - "GNU General Public License along with this program; if not, write to\n" - "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" - "USA.\n"); + " This program is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU General Public License version 2\n" + "as published by the Free Software Foundation.\n" + "\n" + " This program is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" + "General Public License for more details.\n" + "\n" + " You should have received a copy (refer to the file COPYING) of the\n" + "GNU General Public License along with this program; if not, write to\n" + "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" + "USA.\n"); } void identify () { - *mlog << get_version_str () << endl; + *mlog << gnu_lilypond_version_str () << endl; } void @@ -234,33 +235,22 @@ setup_paths () global_path.parse_path (env_sz); - char *suffixes[] = {"ly", "afm", "scm", "init", 0}; + char *suffixes[] = {"ly", "afm", "scm", "tfm", 0}; for (char **s = suffixes; *s; s++){ - if (!prefix_directory.empty_b()) - global_path.add (prefix_directory + to_str ('/') + String (*s)); - else - global_path.add (String (DIR_DATADIR) + to_str ('/') + String(*s)); + if (!prefix_directory.empty_b()) + global_path.add (prefix_directory + to_str ('/') + String (*s)); + else + global_path.add (String (DIR_DATADIR) + to_str ('/') + String(*s)); } } -#define TESTING_TFM -#ifdef TESTING_TFM -#include "tfm.hh" -#endif void main_prog (int argc, char **argv) { + call_constructors (); default_outname_base_global = "lelie"; all_fonts_global_p = new All_font_metrics (global_path.str ()); - -#ifdef TESTING_TFM - Tex_font_metric tfm; - tfm.read_file ("cmr10.tfm"); - String str = tfm.str (); - cout << str; - return; -#endif int p=0; const char *arg ; @@ -308,13 +298,12 @@ main_prog (int argc, char **argv) exit( exit_status_i_); } + int main (int argc, char **argv) { identify (); - call_constructors (); debug_init (); // should be first - setup_paths (); oparser_global_p = new Getopt_long(argc, argv,theopts); diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index 0322590da1..f824634208 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -5,31 +5,28 @@ (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org> */ - -#include "mark-engraver.hh" -#include "text-def.hh" -#include "script.hh" -#include "paper-def.hh" #include "command-request.hh" -#include "time-description.hh" +#include "mark-engraver.hh" #include "engraver-group.hh" -#include "staff-sym.hh" #include "g-text-item.hh" -#include "g-staff-side.hh" -#include "stem.hh" -#include "rhythmic-head.hh" -#include "align-element.hh" -#include "vertical-group-element.hh" + ADD_THIS_TRANSLATOR (Mark_engraver); Mark_engraver::Mark_engraver () { mark_req_l_ = 0; - staff_side_p_ = 0; - text_p_ = 0; + axis_ = Y_AXIS; + type_ = "mark"; +} + +void +Mark_engraver::do_post_move_processing () +{ + mark_req_l_ = 0; } + bool Mark_engraver::do_try_music (Music* r_l) { @@ -43,77 +40,12 @@ Mark_engraver::do_try_music (Music* r_l) void Mark_engraver::do_process_requests () -{ - if (!mark_req_l_ || staff_side_p_) - return; - - staff_side_p_ = new G_staff_side_item; - - text_p_ = new G_text_item; - - text_p_->text_str_ = mark_req_l_->str_; - // text_p_->align_dir_ = CENTER; - - text_p_->style_str_ = text_p_->text_str_.index_any_i ("0123456789") >= 0 - ? "mark" : "Large"; - - Scalar prop = get_property ("markDirection", 0); - if (prop.isnum_b ()) - { - staff_side_p_->dir_ = (Direction) (int) prop; - } - else - { - staff_side_p_->dir_ = UP; - } - - staff_side_p_->set_victim(text_p_); - - Scalar padding = get_property ("markScriptPadding", 0); - if (padding.length_i() && padding.isnum_b ()) - { - staff_side_p_->padding_f_ = Real(padding); - } - // Scalar break_priority = get_property ("markBreakPriority", 0); - // if (break_priority.length_i() && break_priority.isnum_b ()) - // { - // staff_side_p_->break_priority_i_ = int(break_priority); - // } - - - announce_element (Score_element_info (text_p_, mark_req_l_)); - announce_element (Score_element_info (staff_side_p_, mark_req_l_)); -} - -void -Mark_engraver::do_pre_move_processing () -{ - if (staff_side_p_) - { - Staff_symbol* s_l = get_staff_info().staff_sym_l_; - if (s_l != 0) - { - staff_side_p_->add_support (s_l); - } - typeset_element (text_p_); - typeset_element (staff_side_p_); - text_p_ = 0; - staff_side_p_ = 0; - mark_req_l_ = 0; - } -} - -void -Mark_engraver::acknowledge_element (Score_element_info i) { - if (staff_side_p_) + if (mark_req_l_) { - if (dynamic_cast<Stem *> (i.elem_l_) || - // dynamic_cast<Align_element *> (i.elem_l_) || - dynamic_cast<Vertical_group_element *> (i.elem_l_) || - dynamic_cast<Rhythmic_head *> (i.elem_l_)) - { - staff_side_p_->add_support (i.elem_l_); - } + create_items (mark_req_l_); + text_p_->text_str_ = mark_req_l_->str_; + text_p_->style_str_ = text_p_->text_str_.index_any_i ("0123456789") >= 0 + ? "mark" : "Large"; } } diff --git a/lily/molecule.cc b/lily/molecule.cc index def5674fcf..4e0bb33766 100644 --- a/lily/molecule.cc +++ b/lily/molecule.cc @@ -21,6 +21,15 @@ Molecule::extent() const return b; } +Interval +Molecule::extent(Axis a) const +{ + Interval i; + for (iter_top (atoms_,c); c.ok(); c++) + i.unite (c->extent(a)); + return i; +} + void Molecule::translate (Offset o) { @@ -46,16 +55,15 @@ Molecule::add_molecule (Molecule const &m) void -Molecule::add_at_edge (Axis a, Direction d, Molecule const &m) +Molecule::add_at_edge (Axis a, Direction d, Molecule const &m, Real padding) { - if (!atoms_.size()) - { - add_molecule (m); - return; - } - Real offset = extent ()[a][d] - m.extent ()[a][-d]; + Real my_extent= atoms_.size() + ? extent ()[a][d] + : 0.0; + + Real offset = my_extent - m.extent ()[a][-d]; Molecule toadd (m); - toadd.translate_axis (offset, a); + toadd.translate_axis (offset + d * padding, a); add_molecule (toadd); } diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 6f3ba9597a..8dd071d6d5 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -24,8 +24,8 @@ ADD_THIS_TRANSLATOR (Multi_measure_rest_engraver); Multi_measure_rest_engraver::Multi_measure_rest_engraver () { start_measure_i_ = 0; - rest_stop_mom_ =0; - // rest_item_creation_mom_ = 0; + rest_moments_[START] = + rest_moments_[STOP] =0; multi_measure_req_l_ = 0; mmrest_p_ = 0; } @@ -49,13 +49,13 @@ Multi_measure_rest_engraver::do_try_music (Music* req_l) { if (multi_measure_req_l_) if (!multi_measure_req_l_->equal_b (mr) - || rest_start_mom_ != now_moment ()) + || rest_moments_[START] != now_moment ()) return false; multi_measure_req_l_ = mr; - rest_start_mom_ = now_moment (); + rest_moments_[START] = now_moment (); - rest_stop_mom_ = rest_start_mom_ + multi_measure_req_l_->duration_.length (); + rest_moments_[STOP] = rest_moments_[START] + multi_measure_req_l_->duration_.length (); return true; } return false; @@ -78,7 +78,7 @@ Multi_measure_rest_engraver::do_pre_move_processing () { Moment now (now_moment ()); Time_description const *time = get_staff_info().time_C_; - if (mmrest_p_ && (now >= rest_start_mom_) + if (mmrest_p_ && (now >= rest_moments_[START]) && !time->whole_in_measure_ && (mmrest_p_->column_arr_.size () >= 2)) { @@ -107,7 +107,7 @@ Multi_measure_rest_engraver::do_post_move_processing () mmrest_p_ = 0; } - if (now >= rest_stop_mom_) + if (now >= rest_moments_[STOP]) { multi_measure_req_l_ = 0; mmrest_p_ = 0; diff --git a/lily/music-output-def.cc b/lily/music-output-def.cc index 83d97ab59b..4622d11526 100644 --- a/lily/music-output-def.cc +++ b/lily/music-output-def.cc @@ -13,6 +13,7 @@ #include "dictionary-iter.hh" #include "identifier.hh" #include "main.hh" +#include "lily-guile.hh" int Music_output_def::get_next_default_count () const @@ -39,7 +40,7 @@ Music_output_def::Music_output_def (Music_output_def const &s) scope_p_ = new Scope (*s.scope_p_); translator_p_dict_p_ = new Scope (*s.translator_p_dict_p_); - for (Dictionary_iter<Identifier*> i (*translator_p_dict_p_); i.ok (); i++) + for (Scope_iter i (*translator_p_dict_p_); i.ok (); i++) { Translator * t = i.val ()->access_content_Translator (false); t-> output_def_l_ = this; @@ -53,7 +54,7 @@ Music_output_def::assign_translator (Translator*tp) if (translator_p_dict_p_->elem_b (s)) delete translator_p_dict_p_->elem (s); - (*translator_p_dict_p_)[s] = new Translator_identifier (tp, 0); + translator_p_dict_p_->elem (s) = new Translator_identifier (tp, 0); tp ->output_def_l_ = this; } @@ -61,10 +62,10 @@ Translator* Music_output_def::find_translator_l (String name) const { if (translator_p_dict_p_->elem_b (name)) - return (*translator_p_dict_p_)[name]->access_content_Translator (false); + return translator_p_dict_p_->elem (name)->access_content_Translator (false); if (global_translator_dict_p->elem_b (name)) - return (*global_translator_dict_p)[name]; + return global_translator_dict_p->elem(name); return 0; } @@ -95,9 +96,12 @@ Music_output_def::print () const String Music_output_def::get_default_output () const { - if (safe_global_b || !scope_p_->elem_b ("output")) + static SCM output_sym; + if (!output_sym) + output_sym = scm_protect_object (ly_symbol ("output")); + if (safe_global_b || !scope_p_->elem_b (output_sym)) return ""; - Identifier * id = (*scope_p_) ["output"]; + Identifier * id = scope_p_->elem (output_sym); String *p = id->access_content_String (false); return p ? *p : String (""); diff --git a/lily/musical-request.cc b/lily/musical-request.cc index 573e86f499..540bc6b6a0 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -305,34 +305,6 @@ Script_req::~Script_req () delete scriptdef_p_; } - -Text_req::~Text_req () -{ - delete tdef_p_; - tdef_p_ = 0; -} - -Text_req::Text_req (Text_req const& src) -{ - tdef_p_ = new Text_def (*src.tdef_p_); - dir_ = src.dir_; -} - -Text_req::Text_req (int dir_i, Text_def* tdef_p) -{ - dir_ = Direction (dir_i); - tdef_p_ = tdef_p; -} - -void -Text_req::do_print () const -{ -#ifndef NPRINT - DOUT << " dir " << dir_; - tdef_p_->print (); -#endif -} - void Skip_req::do_print () const { @@ -368,9 +340,6 @@ Dynamic_req::loudness_static_str (Loudness l) { switch (l) { - case FFFFFF: return "ffffff"; - case FFFFF : return "fffff"; - case FFFF: return "ffff"; case FFF: return "fff"; case FF: return "ff"; case F: return "f"; @@ -379,17 +348,9 @@ Dynamic_req::loudness_static_str (Loudness l) case P: return "p"; case PP: return "pp"; case PPP: return "ppp"; - case PPPP: return "pppp"; - case PPPPP: return "ppppp"; - case PPPPPP: return "pppppp"; - case FP: return "fp"; case SF: return "sf"; - case SFF: return "sff"; case SFZ: return "sfz"; - case SP: return "sp"; - case SPP: return "spp"; - case RFZ: return "rfz"; } return ""; } diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 059ab68ddd..d7acdd9f79 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -62,9 +62,7 @@ static Keyword_ent the_key_tab[]={ {"script", SCRIPT}, {"shape", SHAPE}, {"skip", SKIP}, - {"table", TABLE}, {"spandynamic", SPANDYNAMIC}, - {"symboltables", SYMBOLTABLES}, {"tempo", TEMPO}, {"translator", TRANSLATOR}, {"type", TYPE}, @@ -93,9 +91,11 @@ My_lily_lexer::lookup_keyword (String s) Identifier* My_lily_lexer::lookup_identifier (String s) { + SCM sym = ly_symbol (s.ch_C()); + for (int i = scope_l_arr_.size (); i--; ) - if (scope_l_arr_[i]->elem_b (s)) - return (*scope_l_arr_[i])[s]; + if (scope_l_arr_[i]->elem_b (sym)) + return scope_l_arr_[i]->elem(sym); return 0; } @@ -136,7 +136,7 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool ) warning ( _f ("Identifier name is a keyword (`%s')", name_str)); } - (*scope_l_arr_.top ())[name_str] = i; + scope_l_arr_.top ()->elem (name_str) = i; } My_lily_lexer::~My_lily_lexer() diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index 5f733ef6db..d29b14ff5f 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -165,7 +165,7 @@ My_lily_parser::get_chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, for (int i = 0; i < sub_arr_p->size (); i++) { Musical_pitch p = tonic; - Musical_pitch q = (*add_arr_p)[i]; + Musical_pitch q = (*sub_arr_p)[i]; // duh, c7 should mean <c bes> if (q.notename_i_ == 6) q.accidental_i_--; @@ -257,11 +257,19 @@ My_lily_parser::get_chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, int j = 0; for (; j < sub_arr_p->size (); j++) if (p == (*sub_arr_p)[j]) - break; + { + sub_arr_p->del (j); + j = -1; + break; + } if (j == sub_arr_p->size ()) pitch_arr.push (p); } + for (int i = 0; i < sub_arr_p->size (); i++) + warning (_f ("invalid subtraction: not part of chord: %s", + (*sub_arr_p)[i].str ())); + if (inversion_p) { int i = 0; @@ -270,7 +278,8 @@ My_lily_parser::get_chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, && (pitch_arr[i].accidental_i_ == inversion_p->accidental_i_)) break; if (i == pitch_arr.size ()) - warning (_ ("invalid inversion pitch (not part of chord)")); + warning (_f ("invalid inversion pitch: not part of chord: %s", + inversion_p->str ())); else { Array<Musical_pitch> pitches; @@ -333,7 +342,6 @@ My_lily_parser::get_parens_request (int t) reqs.push (new Tie_req); break; - /* fall through */ case '[': case ']': { diff --git a/lily/note-head.cc b/lily/note-head.cc index f26cfc4c51..10cb7b1c25 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -65,24 +65,10 @@ Note_head::do_brew_molecule_p() const ? 0 : (abs(position_i_) - staff_size_i_/2) /2; - //Atom s = lookup_l()->ball (balltype_i_); - - Atom s; // = lookup_l()->ball (balltype_i_); - - if (note_head_type_str_.length_i ()) { - if (note_head_type_str_ == "normal") - note_head_type_str_ = ""; - s = lookup_l()->special_ball (balltype_i_, note_head_type_str_); - } - else - s = lookup_l()->ball (balltype_i_); + Atom s = lookup_l()->ball (balltype_i_); out = new Molecule (Atom (s)); out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS); - - //out = new Molecule (Atom (s)); - //out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS); - if (streepjes_i) { int dir = sign (position_i_); diff --git a/lily/paper-def.cc b/lily/paper-def.cc index e347d9d964..626881eea5 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -22,9 +22,17 @@ #include "paper-outputter.hh" #include "paper-stream.hh" + +#define SCMVAR(s) { static SCM sym; \ + if (!sym)\ + sym = scm_protect_object (ly_symbol (#s));\ + return get_realvar (sym); } + + Paper_def::Paper_def () { lookup_p_tab_p_ = new Hash_table<int, Lookup*>; + lookup_p_tab_p_->hash_func_ = int_hash; } @@ -42,6 +50,8 @@ Paper_def::Paper_def (Paper_def const&s) : Music_output_def (s) { lookup_p_tab_p_ = new Hash_table<int, Lookup*>; + lookup_p_tab_p_->hash_func_ = int_hash; + for (Hash_table_iter<int, Lookup*> ai(*s.lookup_p_tab_p_); ai.ok (); ai++) { Lookup * l = new Lookup (*ai.val ()); @@ -53,12 +63,18 @@ Paper_def::Paper_def (Paper_def const&s) Real Paper_def::get_var (String s) const { + return get_realvar (ly_symbol (s)); +} + +Real +Paper_def::get_realvar (SCM s) const +{ if (!scope_p_->elem_b (s)) - error (_f ("unknown paper variable: `%s\'", s)); + error (_f ("unknown paper variable: `%s\'", symbol_to_string (s))); Real * p = scope_p_->elem (s)->access_content_Real (false); if (!p) { - error (_ ("not a real variable")); + error (_("not a real variable")); return 0.0; } @@ -83,13 +99,13 @@ Paper_def::line_dimensions_int (int n) const Real Paper_def::beam_thickness_f () const { - return get_var ("beam_thickness"); +SCMVAR(beam_thickness); } Real Paper_def::linewidth_f () const { - return get_var ("linewidth"); +SCMVAR(linewidth); } Real @@ -131,49 +147,50 @@ Paper_def::set_lookup (int i, Lookup*l) (*lookup_p_tab_p_)[i] = l; } + Real Paper_def::interline_f () const { - return get_var ("interline"); + SCMVAR(interline) } Real Paper_def::rule_thickness () const { - return get_var ("rulethickness"); + SCMVAR(rulethickness); } Real Paper_def::staffline_f () const { - return get_var ("rulethickness"); + SCMVAR(rulethickness) } Real Paper_def::staffheight_f () const { - return get_var ("staffheight"); + SCMVAR(staffheight) } Real Paper_def::interbeam_f (int multiplicity_i) const { if (multiplicity_i <= 3) - return get_var ("interbeam"); + SCMVAR(interbeam) else - return get_var ("interbeam4"); + SCMVAR(interbeam4) } Real Paper_def::internote_f () const { - return get_var ("interline") /2.0 ; + return interline_f () /2.0 ; } Real Paper_def::note_width () const { - return get_var ("notewidth"); +SCMVAR(notewidth) } void @@ -185,8 +202,7 @@ Paper_def::print () const for (Hash_table_iter<int, Lookup*> ai(*lookup_p_tab_p_); ai.ok (); ai++) { - DOUT << "Lookup: " << ai.key () ; - ai.val ()->print (); + DOUT << "Lookup: " << ai.key () << " = " << ai.val ()->font_name_ << '\n'; } DOUT << "}\n"; @@ -215,8 +231,6 @@ Paper_def::reset_default_count() default_count_i_ = 0; } -extern char const* lily_version_number_sz (); - Paper_outputter* Paper_def::paper_outputter_p (Paper_stream* os_p, Header* header_l, String origin_str) const { diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index b023ea14ea..8ad55ac3a1 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -23,6 +23,7 @@ #include "main.hh" #include "scope.hh" #include "identifier.hh" +#include "lily-version.hh" Paper_outputter::Paper_outputter (Paper_stream *s) { @@ -50,12 +51,13 @@ Paper_outputter::output_header () String creator; if (no_timestamps_global_b) - creator = "GNU LilyPond\n"; + creator = gnu_lilypond_str (); else - creator = get_version_str (); + creator = gnu_lilypond_version_str (); + String generate; if (no_timestamps_global_b) - generate = "."; + generate = ".\n"; else { generate = _ (", at "); @@ -167,7 +169,7 @@ Paper_outputter::output_scheme (SCM scm) void Paper_outputter::output_scope (Scope *scope, String prefix) { - for (Dictionary_iter<Identifier*> i (*scope); i.ok (); i++) + for (Scope_iter i (*scope); i.ok (); i++) { if (dynamic_cast<String_identifier*> (i.val ())) { @@ -197,7 +199,7 @@ Paper_outputter::output_version () if (no_timestamps_global_b) id_str += "."; else - id_str += String (", ") + get_version_str (); + id_str += String (", ") + version_str (); output_String_def ( "LilyIdString", id_str); } diff --git a/lily/parser.yy b/lily/parser.yy index 405d9c1e30..50e13b4fa3 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -15,7 +15,6 @@ #include "scalar.hh" #include "translation-property.hh" #include "script-def.hh" -#include "symtable.hh" #include "lookup.hh" #include "misc.hh" #include "my-lily-lexer.hh" @@ -47,7 +46,7 @@ // mmm Mudela_version oldest_version ("1.0.14"); -Mudela_version version ("1.0.14"); +Mudela_version version ("1.0.15"); // needed for bison.simple's malloc() and free() @@ -94,8 +93,6 @@ Paper_def* current_paper = 0; Array<Musical_pitch> *pitch_arr; Array<String> * strvec; Array<int> *intvec; - Atom * symbol; - Box *box; Notename_table *chordmodifiertab; Duration *duration; General_script_def * script; @@ -118,8 +115,6 @@ Paper_def* current_paper = 0; Scalar *scalar; Simultaneous_music *chord; String *string; - Symtable * symtable; - Symtables* symtables; Tempo_req *tempo; Text_def * textdef; Translator* trans; @@ -189,8 +184,6 @@ yylex (YYSTYPE *s, void * v_l) %token SHAPE %token SKIP %token SPANDYNAMIC -%token SYMBOLTABLES -%token TABLE %token TEMPO %token TIME_T %token TIMES @@ -229,7 +222,6 @@ yylex (YYSTYPE *s, void * v_l) %type <outputdef> output_def %type <scope> mudela_header mudela_header_body -%type <box> box %type <i> open_request_parens close_request_parens %type <i> sub_quotes sup_quotes %type <music> simple_element request_chord command_element Simple_music Composite_music @@ -241,9 +233,7 @@ yylex (YYSTYPE *s, void * v_l) %type <id> identifier_init simple_identifier_init block_identifier %type <duration> steno_duration notemode_duration %type <duration> entered_notemode_duration explicit_duration -%type <interval> dinterval %type <intvec> intastint_list int_list -%type <symtables> symtables symtables_body %type <pitch> explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch %type <pitch> steno_tonic_pitch @@ -271,14 +261,11 @@ yylex (YYSTYPE *s, void * v_l) %type <script> script_definition script_body mudela_script gen_script_def %type <textdef> text_def finger %type <string> script_abbreviation -%type <symbol> symboldef -%type <symtable> symtable symtable_body %type <trans> translator_spec translator_spec_body %type <tempo> tempo_request %type <notenametab> notenames_body notenames_block chordmodifiers_block -/* 5 extra for notemode_chord */ -%expect 15 +%expect 7 %left '-' '+' @@ -431,9 +418,6 @@ block_identifier: $$ = new Midi_def_identifier ($1, MIDI_IDENTIFIER); } - | symtables { - $$ = new Symtables_identifier ($1, IDENTIFIER); - } | translator_spec { $$ = new Translator_identifier ($1, TRANS_IDENTIFIER); } @@ -606,8 +590,10 @@ paper_def_body: THIS->lexer_p_->scope_l_arr_.push (p->scope_p_); $$ = p; } - | paper_def_body int '=' symtables { // ugh, what a syntax - Lookup * l = new Lookup (*$4); + | paper_def_body int '=' FONT STRING { // ugh, what a syntax + Lookup * l = new Lookup; + l->font_name_ = *$5; + delete $5; $$->set_lookup ($2, l); } | paper_def_body assignment ';' { @@ -1395,7 +1381,7 @@ simple_element: THIS->parser_error (_ ("have to be in Chord mode for chords")); $$ = $1; } - | '@' notemode_chord { + | '@' notemode_chord '@' { if (!THIS->lexer_p_->note_state_b ()) THIS->parser_error (_ ("have to be in Note mode for @chords")); $$ = $2; @@ -1403,12 +1389,12 @@ simple_element: ; chord: - steno_tonic_pitch notemode_duration chord_additions chord_subtractions chord_inversion { + steno_tonic_pitch duration_length chord_additions chord_subtractions chord_inversion { $$ = THIS->get_chord (*$1, $3, $4, $5, *$2); }; notemode_chord: - steno_musical_pitch notemode_duration chord_additions chord_subtractions notemode_chord_inversion { + steno_musical_pitch duration_length chord_additions chord_subtractions notemode_chord_inversion { $$ = THIS->get_chord (*$1, $3, $4, $5, *$2); }; @@ -1416,12 +1402,9 @@ chord_additions: { $$ = new Array<Musical_pitch>; } - | '-' { - $$ = new Array<Musical_pitch>; - } - | chord_additions chord_addsub { + | chord_additions '-' chord_addsub { $$ = $1; - $$->push (*$2); + $$->push (*$3); } ; @@ -1449,19 +1432,19 @@ notemode_chord_inversion: ; chord_note: - UNSIGNED { + unsigned { $$ = new Musical_pitch; $$->notename_i_ = ($1 - 1) % 7; $$->octave_i_ = $1 > 7 ? 1 : 0; $$->accidental_i_ = 0; } - | UNSIGNED '+' { + | unsigned '+' { $$ = new Musical_pitch; $$->notename_i_ = ($1 - 1) % 7; $$->octave_i_ = $1 > 7 ? 1 : 0; $$->accidental_i_ = 1; } - | UNSIGNED '-' { + | unsigned '-' { $$ = new Musical_pitch; $$->notename_i_ = ($1 - 1) % 7; $$->octave_i_ = $1 > 7 ? 1 : 0; @@ -1473,12 +1456,9 @@ chord_subtractions: { $$ = new Array<Musical_pitch>; } - | '^' { - $$ = new Array<Musical_pitch>; - } - | chord_subtractions chord_addsub { + | chord_subtractions '^' chord_addsub { $$ = $1; - $$->push (*$2); + $$->push (*$3); } ; @@ -1540,70 +1520,8 @@ string: -/* - symbol tables -*/ -symtables: - SYMBOLTABLES '{' symtables_body '}' { $$ = $3; } - ; - -symtables_body: - { - $$ = new Symtables; - } - | IDENTIFIER { - $$ = $1->access_content_Symtables (true); - } - | symtables_body FONT STRING { - $$->font_name_ = *$3; - delete $3; - } - | symtables_body STRING '=' symtable { - $$->add (*$2, $4); - delete $2; - } - ; -symtable: - TABLE '{' symtable_body '}' { $$ = $3; } - ; -symtable_body: - { $$ = new Symtable; } - | symtable_body STRING symboldef { - $$->elem (*$2) = *$3; - delete $2; - delete $3; - } - ; - -symboldef: - STRING unsigned box { - // ignore #args - $$ = new Atom (*$1, *$3); - delete $1; - delete $3; - } - | STRING unsigned { - Box b (Interval (0,0), Interval (0,0)); - // ignore #args - $$ = new Atom (*$1, b); - delete $1; - } - ; - -box: - dinterval dinterval { - $$ = new Box (*$1, *$2); - delete $1; - delete $2; - } - ; - -dinterval: real real { - $$ = new Interval ($1, $2); - } - ; %% diff --git a/lily/performance.cc b/lily/performance.cc index 7ae2ea35be..49dc2f308b 100644 --- a/lily/performance.cc +++ b/lily/performance.cc @@ -19,6 +19,7 @@ #include "performance.hh" #include "score.hh" #include "file-results.hh" +#include "lily-version.hh" Performance::Performance () { @@ -53,9 +54,10 @@ Performance::output_header_track (Midi_stream& midi_stream_r) // perhaps multiple text events? String str = String (_("Creator: ")); if (no_timestamps_global_b) - str += "GNU LilyPond\n"; + str += gnu_lilypond_str (); else - str += get_version_str() + "\n"; + str += gnu_lilypond_version_str(); + str += "\n"; Midi_text creator (Midi_text::TEXT, str); midi_track.add (Moment (0), &creator); diff --git a/lily/piano-brace.cc b/lily/piano-brace.cc index 6d17cbc6ad..a1094140a2 100644 --- a/lily/piano-brace.cc +++ b/lily/piano-brace.cc @@ -18,7 +18,7 @@ Piano_brace::Piano_brace () extra_move_left_f_ = 0.0; } -Atom +Molecule Piano_brace::get_bar_sym (Real dy) const { Atom a = lookup_l ()->vbrace (dy); diff --git a/lily/repeat-engraver.cc b/lily/repeat-engraver.cc index f8d438d258..51a657dad4 100644 --- a/lily/repeat-engraver.cc +++ b/lily/repeat-engraver.cc @@ -93,72 +93,37 @@ Repeat_engraver::acknowledge_element (Score_element_info i) void Repeat_engraver::do_removal_processing () { - for (int i = 0; i < bar_p_arr_.size (); i++) - if (bar_p_arr_[i]) - typeset_element (bar_p_arr_[i]); for (int i = 0; i < volta_p_arr_.size (); i++) if (volta_p_arr_[i]) typeset_element (volta_p_arr_[i]); } -#define URG - void Repeat_engraver::do_process_requests () { Moment now = now_moment (); - Time_description const *time = get_staff_info().time_C_; Bar_engraver* bar_engraver_l = dynamic_cast <Bar_engraver*> - (paper ()->find_translator_l ("Bar_engraver")); - for (int i = bar_p_arr_.size (); i < repeated_music_arr_.size (); i++) + (daddy_grav_l ()->get_simple_translator ("Bar_engraver")); + for (int i = bar_b_arr_.size (); i < repeated_music_arr_.size (); i++) { -#ifndef URG - //suck me plenty - // nou hw, ik heb 't geprobeerd, maar ik snap er geen ruk van: - // zodra ik het via gevonden bar-engraver doe, dumpt ze koor - // in create_bar::announce_element, of ze zet helemaal geen ":|". - // het lijkt erop alsof ik een heel andere bar-engraver vind - // dan die ik zoek, ofzo?? if (bar_engraver_l && (now > Moment (0))) - bar_engraver_l->request_bar (":|"); - else -#endif - if (now > Moment (0)) - { - Bar* bar_p = new Bar; - bar_p-> type_str_ = "|:"; - bar_p_arr_.push (bar_p); -#ifndef URG - announce_element (Score_element_info (bar_p, - repeated_music_arr_[i])); -#endif - } + bar_engraver_l->request_bar ("|:"); + bar_b_arr_.push (true); } - for (int i = 0; i < bar_p_arr_.size (); i++) + for (int i = 0; i < bar_b_arr_.size (); i++) { - if (!bar_p_arr_[i] && (now >= stop_mom_arr_[i])) + if (!bar_b_arr_[i] && (now >= stop_mom_arr_[i])) { -#ifndef URG - //suck me plenty if (bar_engraver_l) - bar_engraver_l->request_bar ("|:"); - else -#endif - { - Bar* bar_p = new Bar; - bar_p-> type_str_ = ":|"; - bar_p_arr_[i] = bar_p; -#ifndef URG - announce_element (Score_element_info (bar_p, - repeated_music_arr_[i])); -#endif - } + bar_engraver_l->request_bar (":|"); } } int bees = volta_p_arr_.size (); for (int i = volta_p_arr_.size (); i < alternative_music_arr_.size (); i++) { Volta_spanner* v = new Volta_spanner; + Scalar prop = get_property ("voltaVisibility", 0); + v->visible_b_ = prop.to_bool (); if (i == alternative_music_arr_.size () - 1) v->last_b_ = true; Text_def* t = new Text_def; @@ -173,31 +138,21 @@ void Repeat_engraver::do_pre_move_processing () { Moment now = now_moment (); - for (int i = bar_p_arr_.size (); i--; ) + for (int i = bar_b_arr_.size (); i--; ) { - if (bar_p_arr_[i]) - { - if (now > Moment (0)) - typeset_element (bar_p_arr_[i]); - else - delete bar_p_arr_[i]; - bar_p_arr_[i] = 0; - } + if (bar_b_arr_[i]) + bar_b_arr_[i] = false; if (now >= stop_mom_arr_[i]) { - bar_p_arr_.del (i); + bar_b_arr_.del (i); stop_mom_arr_.del (i); repeated_music_arr_.del (i); } } - Time_description const *time = get_staff_info().time_C_; for (int i = volta_p_arr_.size (); i--; ) { if (volta_p_arr_[i] && (now >= alternative_stop_mom_arr_[i]) && (volta_p_arr_[i]->column_arr_.size () >= 1)) - // if (volta_p_arr_[i] && (now > alternative_stop_mom_arr_[i]) - // && !time->whole_in_measure_ - // && (volta_p_arr_[i]->column_arr_.size () > 1)) { typeset_element (volta_p_arr_[i]); volta_p_arr_[i] = 0; diff --git a/lily/scope.cc b/lily/scope.cc index 7ff133cc28..39e91b3065 100644 --- a/lily/scope.cc +++ b/lily/scope.cc @@ -16,7 +16,7 @@ void Scope::print () const { bool init_b = false; // ugh - for (Dictionary_iter<Identifier*> ai (*this); ai.ok(); ai++) + for (Scope_iter ai (*this); ai.ok(); ai++) { if (ai.val()->init_b_ == init_b) { @@ -28,7 +28,7 @@ Scope::print () const Scope::~Scope () { - for (Dictionary_iter<Identifier*> ai (*this); ai.ok(); ai++) + for (Scope_iter ai (*this); ai.ok(); ai++) { DOUT << "deleting: " << ai.key() << '\n'; delete ai.val (); @@ -36,15 +36,64 @@ Scope::~Scope () } Scope::Scope (Scope const&s) - : Dictionary<Identifier*> (s) + : Hash_table<Protected_scm,Identifier*> (s) { - for (Dictionary_iter<Identifier*> ai (s); ai.ok(); ai++) + for (Scope_iter ai (s); ai.ok(); ai++) { - (*this)[ai.key ()] = ai.val ()->clone (); + (*this)[ai.scm_key ()] = ai.val ()->clone (); } } +unsigned int scm_hash (Protected_scm s) +{ + return scm_ihashv (s, ~1u); +} + Scope::Scope () -{} +{ + hash_func_ = scm_hash; +} + +bool +Scope::elem_b (String s) const +{ + return elem_b (ly_symbol (s.ch_C())); +} + + +Identifier *& +Scope::elem (String s) +{ + return elem (ly_symbol (s.ch_C())); +} + +Scope_iter::Scope_iter (Scope const &s) + : Hash_table_iter<Protected_scm,Identifier*>(s) +{ +} +String +Scope_iter::key () const +{ + SCM s= Hash_table_iter<Protected_scm,Identifier*>::key (); + return symbol_to_string (s); +} + +bool +Scope::elem_b (SCM s) const +{ + return Hash_table<Protected_scm,Identifier*> ::elem_b (s); +} + +Identifier* & +Scope::elem (SCM s) +{ + return Hash_table<Protected_scm,Identifier*> ::elem (s); +} + +SCM +Scope_iter::scm_key () const +{ + return Hash_table_iter<Protected_scm,Identifier*>::key (); +} diff --git a/lily/score-bar.cc b/lily/score-bar.cc index 3ee87e09e5..a25e7ed3c4 100644 --- a/lily/score-bar.cc +++ b/lily/score-bar.cc @@ -10,3 +10,14 @@ #include "score-bar.hh" + +void +Score_bar::do_pre_processing () +{ + type_str_ = "|"; + if (break_status_dir() != RIGHT) + { + set_empty (true); + transparent_b_ = true; + } +} diff --git a/lily/score-element.cc b/lily/score-element.cc index c5e5fed03c..c78a0bef0d 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -376,6 +376,11 @@ Score_element::handle_prebroken_dependencies() substitute_dependency (old_arr[i], new_arr[i]); } +void +Score_element::handle_prebroken_dependents() +{ +} + void Score_element::junk_links () diff --git a/lily/score-priority-engraver.cc b/lily/score-priority-engraver.cc index 264ed283a5..a23e06a157 100644 --- a/lily/score-priority-engraver.cc +++ b/lily/score-priority-engraver.cc @@ -16,6 +16,7 @@ Score_priority_engraver::Score_priority_engraver() { + align_p_tab_.hash_func_ = int_hash; } void diff --git a/lily/scores.cc b/lily/scores.cc index 5ac2645737..8ed0c3b163 100644 --- a/lily/scores.cc +++ b/lily/scores.cc @@ -17,6 +17,7 @@ #include "file-results.hh" #include "my-lily-parser.hh" #include "source.hh" +#include "lily-version.hh" Sources* source_global_l = 0; Array<String> inclusion_global_array; @@ -36,7 +37,7 @@ void write_dependency_file (String fn, Array<String> targets, if (!f) warning (_f ("can't open file: `%s\'", fn)); - f << "# Automatically generated by " << get_version_str () << '\n'; + f << "# Automatically generated by " << gnu_lilypond_version_str () << '\n'; String out; for (int i=0; i < targets.size (); i ++) out += targets[i] + " "; diff --git a/lily/single-malt-grouping-item.cc b/lily/single-malt-grouping-item.cc index bd5101039a..69140eb024 100644 --- a/lily/single-malt-grouping-item.cc +++ b/lily/single-malt-grouping-item.cc @@ -33,7 +33,12 @@ Single_malt_grouping_item::my_width () const for (int i=0; i < item_l_arr_.size (); i++) { Item *il = item_l_arr_[i]; - assert (pc == il->column_l ()); + if (pc != il->column_l ()) + { + /* this shouldn't happen, but let's continue anyway. */ + warning (_("Single_malt_grouping_item: I've been drinking too much (fixme)")); + continue; /*UGH UGH*/ + } w.unite (il->extent (X_AXIS) + il->relative_coordinate (&pc->dim_cache_[X_AXIS], X_AXIS)); } diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 4b37e846ee..fab0b28aaa 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -36,7 +36,9 @@ Span_bar::set_align (Align_element *a) Interval Span_bar::do_width () const { - return lookup_l ()->bar (type_str_, 40 PT).dim_.x (); // ugh + Molecule m = lookup_l ()->bar (type_str_, 40 PT); + + return m.extent (X_AXIS); } void @@ -80,7 +82,7 @@ Span_bar::evaluate_empty () } } -Atom +Molecule Span_bar::get_bar_sym (Real dy) const { if (dy < paper ()->staffheight_f () / 2) @@ -104,8 +106,7 @@ Span_bar::do_brew_molecule_p () const y_int.unite (y + spanning_l_arr_[i]->extent(Y_AXIS)); } - Atom s = get_bar_sym (y_int.length ()); - Molecule*output = new Molecule (Atom (s)); + Molecule*output = new Molecule (get_bar_sym (y_int.length ())); output->translate_axis (y_int.center (), Y_AXIS); return output; } diff --git a/lily/span-score-bar.cc b/lily/span-score-bar.cc index c6a4243907..0e80464e42 100644 --- a/lily/span-score-bar.cc +++ b/lily/span-score-bar.cc @@ -16,16 +16,6 @@ Span_score_bar::Span_score_bar() { } -void -Score_bar::do_pre_processing () -{ - type_str_ = "|"; - if (break_status_dir() != RIGHT) - { - set_empty (true); - transparent_b_ = true; - } -} void Span_score_bar::do_pre_processing() diff --git a/lily/staff-bracket.cc b/lily/staff-bracket.cc index 9a6fcb660f..2e1bd73419 100644 --- a/lily/staff-bracket.cc +++ b/lily/staff-bracket.cc @@ -12,13 +12,12 @@ #include "lookup.hh" #include "main.hh" -Atom +Molecule Staff_bracket::get_bar_sym (Real dy) const { Atom a = lookup_l ()->vbracket (dy); - a.translate_axis (- 1.33 * a.extent ().x ().length (), X_AXIS); - return a; + return Molecule (a); } Interval diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index 4caa965039..4a24e656a5 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -7,20 +7,18 @@ */ #include "staff-margin-engraver.hh" -#include "script.hh" -#include "text-def.hh" -#include "paper-def.hh" -#include "command-request.hh" #include "bar.hh" -#include "stem.hh" #include "time-description.hh" - +#include "g-text-item.hh" ADD_THIS_TRANSLATOR (Staff_margin_engraver); Staff_margin_engraver::Staff_margin_engraver () { - script_p_ = 0; + axis_ = X_AXIS; + type_ = "margin"; + visibility_lambda_ + = gh_eval_str ("(lambda (d) (if (= d 1) '(#f . #f) '(#t . #t)))"); } @@ -40,51 +38,25 @@ Staff_margin_engraver::Staff_margin_engraver () void Staff_margin_engraver::acknowledge_element (Score_element_info i) { - Item * it = dynamic_cast <Item *> (i.elem_l_); + Bar * b =dynamic_cast<Bar *> (i.elem_l_); + if (!b) + return ; - if (!it - || script_p_ - || !(dynamic_cast<Bar *> (it)) - || (i.origin_grav_l_arr_.size() != 1)) + if (i.origin_grav_l_arr_.size() != 1) return; - String string = get_property ("instrument", 0); + + String long_str = get_property ("instrument", 0); String str = get_property ("instr", 0); if (now_moment () > Moment (0)) - string = str; + long_str = str; - if (!string.length_i ()) + if (!long_str.empty_b ()) return; - script_p_ = new Script; - script_p_->axis_ = X_AXIS; - - Text_def *td_p =new Text_def; - td_p->align_dir_ = LEFT; - td_p->text_str_ = string; - script_p_->dir_ = LEFT; - script_p_->specs_p_ = td_p; - script_p_->breakable_b_ = true; - - - Scalar pri = get_property ("marginBreakPriority", 0); - if (pri.length_i () && pri.isnum_b ()) - { - script_p_->break_priority_i_ = int (pri); - } - else - script_p_ ->break_priority_i_ = it->break_priority_i_; - - announce_element (Score_element_info (script_p_, 0)); + create_items (0); + text_p_->text_str_ = long_str; + Bar_script_engraver::acknowledge_element(i); } -void -Staff_margin_engraver::do_pre_move_processing () -{ - if (script_p_) - { - typeset_element (script_p_); - script_p_ =0; - } -} diff --git a/lily/staff-sym.cc b/lily/staff-sym.cc index 45bc674b8d..72cb1a93d1 100644 --- a/lily/staff-sym.cc +++ b/lily/staff-sym.cc @@ -46,8 +46,6 @@ Staff_symbol::do_brew_molecule_p() const Real w = extent (X_AXIS).length (); Real left_dx = -spanned_drul_[LEFT]->extent (X_AXIS)[LEFT]; Real right_dx = spanned_drul_[RIGHT]->extent (X_AXIS)[RIGHT]; - // w += right_dx+ left_dx; - Paper_def * p = paper(); Atom rule = lookup_l ()->rule_symbol (p->get_var ("rulethickness"), diff --git a/lily/super-element.cc b/lily/super-element.cc index 095ee454be..0704e8c4e2 100644 --- a/lily/super-element.cc +++ b/lily/super-element.cc @@ -27,6 +27,7 @@ enum Score_element_status { ORPHAN=0, // not yet added to pstaff VIRGIN, // added to pstaff PREBROKEN, + PREBROKEN_SECOND, PRECALCING, PRECALCED, // calcs before spacing done SPACING, @@ -60,6 +61,7 @@ void Super_element::breakable_col_processing () { calculate_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing); + calculate_dependencies (PREBROKEN_SECOND, PREBROKEN_SECOND, &Score_element::handle_prebroken_dependents); } void diff --git a/lily/symtable.cc b/lily/symtable.cc deleted file mode 100644 index ccf1eb1610..0000000000 --- a/lily/symtable.cc +++ /dev/null @@ -1,94 +0,0 @@ -/* - symtable.cc -- implement Symbol_table - - source file of the GNU LilyPond music typesetter - - (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> -*/ - -#include "misc.hh" -#include "debug.hh" -#include "real.hh" -#include "atom.hh" -#include "dictionary-iter.hh" -#include "symtable.hh" - -Symtables::Symtables() -{ -} - - -Symtables::Symtables (Symtables const &s) - : Dictionary<Symtable*> (s) -{ - font_name_ = s.font_name_; - - for (Dictionary_iter< Symtable*> i (s); i.ok(); i++) - { - add (i.key(), new Symtable (*i.val ())); - } -} - -Symtables::~Symtables() -{ - for (Dictionary_iter<Symtable*> i (*this); i.ok(); i++) - { - delete i.val(); - } -} - -Atom -Symtable::lookup (String s) const -{ - if (elem_b (s)) - { - Atom a (elem(s)); - return a; - } - else - { - warning (_f ("Symtable `%s\': unknown symbol: `%s\'", id_str, s)); - Atom sy; - return sy; - } -} - -Symtable* -Symtables::operator()(String s) -{ - if (!elem_b (s)) - { - error (_f ("Symtable `%s\' unknown", s)); - /* - We can 't return, because we would dump core anyway. - */ - return 0; - } - else - return elem(s); -} -void -Symtables::print() const -{ - for (Dictionary_iter<Symtable*> i (*this); i.ok(); i++) - { - DOUT << "table \'" << i.key () << "\' {\n"; - i.val()->print (); - DOUT << "}\n"; - } -} -void -Symtable::print() const -{ - for (Dictionary_iter<Atom> i (*this); i.ok(); i++) - { - DOUT << "\'" << i.key() << "\'->" << i.val ().str () << '\n'; - } -} - -void -Symtables::add (String s, Symtable*p) -{ - p-> id_str = s; - Dictionary<Symtable*>::elem (s) = p; -} diff --git a/lily/text-item.cc b/lily/text-item.cc index ba8e2911bb..bf1b597654 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -2,11 +2,11 @@ text-item.cc -- implement Text_item source file of the GNU LilyPond music typesetter - + (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl> */ - +#if 0 #include "musical-request.hh" #include "paper-def.hh" #include "text-item.hh" @@ -15,6 +15,7 @@ #include "lookup.hh" #include "debug.hh" + Text_item::Text_item (General_script_def* tdef_l, Direction d) { dir_ = d; @@ -87,3 +88,4 @@ Text_item::do_brew_molecule_p () const +#endif diff --git a/lily/tfm.cc b/lily/tfm.cc index 14a83e2776..d06707a66d 100644 --- a/lily/tfm.cc +++ b/lily/tfm.cc @@ -36,7 +36,12 @@ real_to_fix (Real r) #endif - +Box +Tex_font_char_metric::dimensions () const +{ + Real d = -depth_; + return Box (Interval (0, width_),Interval ( d <? height_, d >? height_)); +} Tex_font_char_metric::Tex_font_char_metric () { @@ -67,17 +72,26 @@ Tex_font_metric::Tex_font_metric () { } -Tex_font_char_metric +static Tex_font_char_metric dummy_static_char_metric; + +Tex_font_char_metric const & Tex_font_metric::find_ascii (int ascii, bool warn) const { - if (warn && (ascii_to_metric_idx_[ascii] == -1)) + if (ascii_to_metric_idx_[ascii] >= 0) + return char_metrics_[ascii_to_metric_idx_ [ascii]]; + else if (warn) + { - Tex_font_char_metric m; warning (_f ("can't find ascii character `%d'", ascii)); - return m; + } - - return char_metrics_[ascii_to_metric_idx_ [ascii]]; + return dummy_static_char_metric; +} + +Character_metric* +Tex_font_metric::get_char (int a, bool w) const +{ + return &find_ascii (a, w); } diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 534d3f2f31..8e8d58a76d 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -93,7 +93,6 @@ Timing_translator::do_process_requests() time_.whole_in_measure_ = 0; // resync time_.error_b_ = true; } - } else if (Cadenza_req *cr = dynamic_cast <Cadenza_req *> (tr_l)) { diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index ea76b89d45..5bcfa0aa56 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -38,7 +38,7 @@ Tuplet_engraver::do_process_requests () for (int i= started_span_p_arr_.size (); i < compressed_music_arr_.size (); i++) { - Plet_spanner* glep = new Plet_spanner; + Tuplet_spanner* glep = new Tuplet_spanner; started_span_p_arr_.push (glep); Text_def *t = new Text_def; diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc index e6d43c2b33..8793d78271 100644 --- a/lily/tuplet-spanner.cc +++ b/lily/tuplet-spanner.cc @@ -1,5 +1,5 @@ /* - plet-spanner.cc -- implement Plet_spanner + plet-spanner.cc -- implement Tuplet_spanner source file of the GNU LilyPond music typesetter @@ -21,7 +21,7 @@ #include "text-def.hh" #include "note-column.hh" -Plet_spanner::Plet_spanner () +Tuplet_spanner::Tuplet_spanner () { beam_l_ =0; bracket_visibility_b_ = true; @@ -33,7 +33,7 @@ Plet_spanner::Plet_spanner () } Molecule* -Plet_spanner::do_brew_molecule_p () const +Tuplet_spanner::do_brew_molecule_p () const { Molecule* mol_p = new Molecule; @@ -64,7 +64,7 @@ Plet_spanner::do_brew_molecule_p () const } void -Plet_spanner::do_add_processing () +Tuplet_spanner::do_add_processing () { if (column_arr_.size ()) { @@ -74,7 +74,7 @@ Plet_spanner::do_add_processing () } void -Plet_spanner::do_post_processing () +Tuplet_spanner::do_post_processing () { if (column_arr_.size()) translate_axis (column_arr_[0]->extent (Y_AXIS)[dir_], Y_AXIS); @@ -89,7 +89,7 @@ Plet_spanner::do_post_processing () } void -Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n) +Tuplet_spanner::do_substitute_dependency (Score_element* o, Score_element* n) { if (Note_column *onc = dynamic_cast <Note_column *> (o)) column_arr_.substitute (onc, dynamic_cast<Note_column*> (n)); @@ -99,9 +99,9 @@ Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n) beam_l_ = dynamic_cast<Beam*> (n); } } - + void -Plet_spanner::set_default_dir () +Tuplet_spanner::set_default_dir () { dir_ = UP; for (int i=0; i < column_arr_.size (); i ++) @@ -115,14 +115,14 @@ Plet_spanner::set_default_dir () } void -Plet_spanner::set_beam (Beam *b) +Tuplet_spanner::set_beam (Beam *b) { beam_l_ = b; add_dependency (b); } void -Plet_spanner::add_column (Note_column*n) +Tuplet_spanner::add_column (Note_column*n) { column_arr_.push (n); add_dependency (n); diff --git a/lily/version.cc b/lily/version.cc deleted file mode 100644 index 787f001831..0000000000 --- a/lily/version.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "main.hh" -#include "string.hh" - -char const * lily_version_sz(); - -String -get_version_str() -{ - String s = lily_version_sz(); - return s; -} diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index b0c5ea4b7d..0a376776ac 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -12,17 +12,21 @@ #include "lookup.hh" #include "molecule.hh" #include "note-column.hh" -#include "p-col.hh" // urg -#include "bar.hh" #include "p-col.hh" +#include "bar.hh" #include "paper-def.hh" #include "volta-spanner.hh" #include "stem.hh" #include "text-def.hh" +#include "pointer.tcc" + +template class P<Text_def>; // UGH + Volta_spanner::Volta_spanner () { last_b_ = false; + visible_b_ = true; number_p_.set_p (new Text_def); number_p_->align_dir_ = LEFT; dot_p_.set_p (new Text_def); @@ -37,9 +41,12 @@ Volta_spanner::do_brew_molecule_p () const if (!column_arr_.size ()) return mol_p; + if (!visible_b_) + return mol_p; + Real internote_f = paper ()->internote_f (); Real dx = internote_f; - Real w = extent (X_AXIS).length () - 2 * dx; + Real w = extent (X_AXIS).length () - dx; Atom volta (lookup_l ()->volta (w, last_b_)); Real h = volta.dim_.y ().length (); Atom num (number_p_->get_atom (paper (), LEFT)); @@ -65,7 +72,7 @@ Volta_spanner::do_brew_molecule_p () const mol_p->add_atom (volta); mol_p->add_atom (num); mol_p->add_atom (dot); - mol_p->translate (Offset (dx, dy)); + mol_p->translate (Offset (0, dy)); return mol_p; } @@ -75,12 +82,9 @@ Volta_spanner::do_add_processing () if (column_arr_.size ()) { set_bounds (LEFT, column_arr_[0]); - // set_bounds (RIGHT, column_arr_.top ()); - // huh? - // array.top () == last element?? - // list.top () == first element - set_bounds (RIGHT, column_arr_[column_arr_.size () - 1]); + set_bounds (RIGHT, column_arr_.top ()); } + number_p_->style_str_ = "number-1"; dot_p_->text_str_ = "."; dot_p_->style_str_ = "bold"; diff --git a/init/GNUmakefile b/ly/GNUmakefile index 6513297576..6513297576 100644 --- a/init/GNUmakefile +++ b/ly/GNUmakefile diff --git a/init/accordion-defs.ly b/ly/accordion-defs.ly index 12c4723467..12c4723467 100644 --- a/init/accordion-defs.ly +++ b/ly/accordion-defs.ly diff --git a/init/book-fragment.ly b/ly/book-fragment.ly index 46fd731997..46fd731997 100644 --- a/init/book-fragment.ly +++ b/ly/book-fragment.ly diff --git a/init/book-init.ly b/ly/book-init.ly index 7cb2e6b12b..7cb2e6b12b 100644 --- a/init/book-init.ly +++ b/ly/book-init.ly diff --git a/init/catalan.ly b/ly/catalan.ly index 99ae0dc723..99ae0dc723 100644 --- a/init/catalan.ly +++ b/ly/catalan.ly diff --git a/init/center-fragment.ly b/ly/center-fragment.ly index 72be0acd36..72be0acd36 100644 --- a/init/center-fragment.ly +++ b/ly/center-fragment.ly diff --git a/init/center.ly b/ly/center.ly index 500c25aad5..500c25aad5 100644 --- a/init/center.ly +++ b/ly/center.ly diff --git a/init/chord-modifiers.ly b/ly/chord-modifiers.ly index 48cc2f09f4..48cc2f09f4 100644 --- a/init/chord-modifiers.ly +++ b/ly/chord-modifiers.ly diff --git a/init/declarations.ly b/ly/declarations.ly index 69b33ac2ce..69b33ac2ce 100644 --- a/init/declarations.ly +++ b/ly/declarations.ly diff --git a/init/deutsch.ly b/ly/deutsch.ly index ef247f87f3..ef247f87f3 100644 --- a/init/deutsch.ly +++ b/ly/deutsch.ly diff --git a/ly/dynamic.ly b/ly/dynamic.ly new file mode 100644 index 0000000000..737a4ffe77 --- /dev/null +++ b/ly/dynamic.ly @@ -0,0 +1,21 @@ +% +% declare the standard dynamic identifiers. +% + +ppp = \absdynamic {7 } +pp = \absdynamic { 6 } +p = \absdynamic { 5 } +mp = \absdynamic { 4 } +mf = \absdynamic { 3 } +f = \absdynamic { 2 } % f is a notename too. +ff = \absdynamic { 1 } +fff = \absdynamic { 0 } + +fp = \absdynamic { 8 } +sf = \absdynamic { 9 } +sfz = \absdynamic { 10 } + +cr = \spandynamic { 1 1 } +decr = \spandynamic { -1 1 } +rc = \spandynamic { 1 2 } % stop a crescendo +rced = \spandynamic { 1 2 } % stop a decrescendo diff --git a/init/english.ly b/ly/english.ly index de66eda7d7..de66eda7d7 100644 --- a/init/english.ly +++ b/ly/english.ly diff --git a/init/engraver.ly b/ly/engraver.ly index 089b29a1b9..0b83367fef 100644 --- a/init/engraver.ly +++ b/ly/engraver.ly @@ -6,6 +6,7 @@ StaffContext=\translator { \type "Line_group_engraver_group"; \name Staff ; barAuto = "1"; + voltaVisibility = "1"; %{ The Hara_kiri_line_group_engraver is a Line_group_engraver @@ -40,7 +41,6 @@ StaffContext=\translator { %} %{ - \consists "Bar_column_engraver"; \consists "Bar_number_engraver"; %} %{ @@ -70,6 +70,8 @@ StaffContext=\translator { \accepts "Staff"; \accepts "RhythmicStaff"; \accepts "GrandStaff"; + \accepts "PianoStaff"; + \accepts "Lyrics"; \accepts "ChordNames"; } @@ -126,7 +128,12 @@ GrandStaffContext=\translator{ \accepts "Staff"; }; \translator{\GrandStaffContext} - +\translator{\GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + \name "PianoStaff"; + +} \translator { \type "Line_group_engraver_group"; % \type "Hara_kiri_line_group_engraver"; @@ -137,6 +144,8 @@ GrandStaffContext=\translator{ \accepts "Staff"; \accepts "RhythmicStaff"; \accepts "GrandStaff"; + \accepts "PianoStaff"; + \accepts "Lyrics"; \accepts "ChordNames"; } @@ -179,7 +188,6 @@ ScoreContext = \translator { \consists "Timing_engraver"; - \consists "Bar_column_engraver"; \consists "Span_score_bar_engraver"; \consists "Score_priority_engraver"; \consists "Priority_horizontal_align_engraver"; @@ -193,6 +201,7 @@ ScoreContext = \translator { \accepts "ChordNames"; \accepts "GrandStaff"; \accepts "ChoirStaff"; + \accepts "PianoStaff"; }; \translator { \ScoreContext } @@ -200,7 +209,6 @@ ScoreWithNumbers = \translator { \type "Score_engraver"; % uncomment to bar numbers on a whole system. - \consists "Bar_column_engraver"; \consists "Bar_number_engraver"; }; @@ -218,7 +226,6 @@ BarNumberingStaffContext = \translator { barColumnPriority = "0"; marginBreakPriority = "-4"; \consists "Mark_engraver"; - \consists "Bar_column_engraver"; \consists "Bar_number_engraver"; }; @@ -252,7 +259,6 @@ OrchestralPartStaffContext = \translator { barColumnPriority = "0"; marginBreakPriority = "-4"; \consists "Mark_engraver"; - \consists "Bar_column_engraver"; \consists "Bar_number_engraver"; }; @@ -268,7 +274,6 @@ OrchestralScoreContext= \translator { \consists "Timing_engraver"; - \consists "Bar_column_engraver"; \consists "Bar_number_engraver"; \consists "Mark_engraver"; \consists "Span_score_bar_engraver"; @@ -283,4 +288,6 @@ OrchestralScoreContext= \translator { \accepts "Lyrics"; \accepts "ChordNames"; \accepts "GrandStaff"; + \accepts "PianoStaff"; + }; diff --git a/init/fragment.ly b/ly/fragment.ly index 3ddb7de69a..3ddb7de69a 100644 --- a/init/fragment.ly +++ b/ly/fragment.ly diff --git a/init/init.fly b/ly/init.fly index cacdd4b865..cacdd4b865 100644 --- a/init/init.fly +++ b/ly/init.fly diff --git a/init/init.ly b/ly/init.ly index c01291c340..c01291c340 100644 --- a/init/init.ly +++ b/ly/init.ly diff --git a/init/italiano.ly b/ly/italiano.ly index dd600a4396..dd600a4396 100644 --- a/init/italiano.ly +++ b/ly/italiano.ly diff --git a/init/midi.ly b/ly/midi.ly index 114d34f20f..114d34f20f 100644 --- a/init/midi.ly +++ b/ly/midi.ly diff --git a/init/nederlands.ly b/ly/nederlands.ly index 9b652a6bd2..9b652a6bd2 100644 --- a/init/nederlands.ly +++ b/ly/nederlands.ly diff --git a/init/norsk.ly b/ly/norsk.ly index 714eb10e46..714eb10e46 100644 --- a/init/norsk.ly +++ b/ly/norsk.ly diff --git a/init/paper.ly b/ly/paper.ly index 794a69b345..794a69b345 100644 --- a/init/paper.ly +++ b/ly/paper.ly diff --git a/init/paper11.ly b/ly/paper11.ly index dac7cbd31b..8dc410b4e8 100644 --- a/init/paper11.ly +++ b/ly/paper11.ly @@ -1,6 +1,5 @@ % paper11.ly -\include "table11.ly"; paper_eleven = \paper { staffheight = 11.0\pt; @@ -12,7 +11,8 @@ paper_eleven = \paper { arithmetic_basicspace = 2.; arithmetic_multiplier = 4.8\pt; - 0=\symboltables { \table_eleven } + 0=\font "feta11" + \include "params.ly"; } diff --git a/init/paper13.ly b/ly/paper13.ly index 96f5e61266..fa73ad312e 100644 --- a/init/paper13.ly +++ b/ly/paper13.ly @@ -1,7 +1,5 @@ % paper13.ly -\include "table13.ly"; - paper_thirteen = \paper { staffheight = 13.0\pt; @@ -13,7 +11,7 @@ paper_thirteen = \paper { arithmetic_basicspace = 2.; arithmetic_multiplier = 4.8\pt; - 0=\symboltables { \table_thirteen } + 0=\font "feta13" \include "params.ly"; } diff --git a/init/paper16.ly b/ly/paper16.ly index dc67fabdf3..8a40d38949 100644 --- a/init/paper16.ly +++ b/ly/paper16.ly @@ -1,9 +1,5 @@ % paper16.ly -\include "table13.ly"; -\include "table11.ly"; -\include "table16.ly"; - \version "1.0.14"; @@ -14,7 +10,15 @@ paper_sixteen = \paper { % ugh, see table16 for sizes quartwidth = 5.28\pt; wholewidth = 7.92\pt; + + font_large = 12.; + font_Large = 10.; + font_normal = 8.; + font_finger = 4.; + "font_number-1" = 5.; + + arithmetic_basicspace = 2.; arithmetic_multiplier = 4.8\pt; @@ -23,9 +27,9 @@ paper_sixteen = \paper { scmsetting = "(display \"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\");\n"; scmsetting = "(display \"\\\\input lilyponddefs \\\\musixsixteendefs\");\n"; - 0 = \symboltables { \table_sixteen } - -1 = \symboltables { \table_thirteen } - -2 = \symboltables { \table_eleven } + 0 = \font "feta16" + -1 = \font "feta13" + -2 = \font "feta11" \include "params.ly"; } diff --git a/init/paper20.ly b/ly/paper20.ly index 69c36b358d..2f4958a23c 100644 --- a/init/paper20.ly +++ b/ly/paper20.ly @@ -1,15 +1,17 @@ % paper20.ly -\include "table20.ly"; - - \include "table13.ly"; - \include "table16.ly"; \version "1.0.14"; paper_twenty = \paper { staffheight = 20.0\pt; + font_large = 12.; + font_Large = 12.; + font_normal = 10.; + font_finger = 5.; + "font_number-1" = 7.; + % ugh see table20 for sizes quartwidth = 6.61\pt; wholewidth = 9.90\pt; @@ -23,9 +25,9 @@ paper_twenty = \paper { scmsetting = "(display \"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\");\n"; scmsetting = "(display \"\\\\input lilyponddefs \\\\musixtwentydefs\");\n"; - -2 = \symboltables { \table_thirteen } - -1 = \symboltables { \table_sixteen } - 0 = \symboltables { \table_twenty } + -2 = \font "feta13" + -1 = \font "feta16" + 0 = \font "feta20" \include "params.ly"; } diff --git a/init/paper26.ly b/ly/paper26.ly index f8d662b64c..67640bda89 100644 --- a/init/paper26.ly +++ b/ly/paper26.ly @@ -1,7 +1,5 @@ % paper26.ly -\include "table26.ly"; - paper_twentysix = \paper { staffheight = 26.0\pt; @@ -12,7 +10,7 @@ paper_twentysix = \paper { arithmetic_basicspace = 2.; arithmetic_multiplier = 6.\pt; - 0=\symboltables { \table_twentysix } + 0=\font "feta26" \include "params.ly"; linewidth = \linewidth20; textheight = \textheight20; diff --git a/init/params.ly b/ly/params.ly index 650f51783b..1989c2b2a2 100644 --- a/init/params.ly +++ b/ly/params.ly @@ -100,5 +100,16 @@ on a line. Decreasing it greatly reduces computation time %} gourlay_maxmeasures = 10.; castingalgorithm = \Gourlay; + +%{ +Ross. page 151 +%} +bar_kern = 0.5 * \interline; +bar_thinkern = 0.75 * \interline; +barthick_thick = 0.5* \interline; +barthick_thin = 0.1*\interline; + + \include "engraver.ly"; + diff --git a/init/part-paper.ly b/ly/part-paper.ly index 162984e5b3..162984e5b3 100644 --- a/init/part-paper.ly +++ b/ly/part-paper.ly diff --git a/init/performer.ly b/ly/performer.ly index 105243f5c5..105243f5c5 100644 --- a/init/performer.ly +++ b/ly/performer.ly diff --git a/init/property.ly b/ly/property.ly index 5ae7c273d3..d572351c07 100644 --- a/init/property.ly +++ b/ly/property.ly @@ -57,6 +57,12 @@ barAlways 1 generate bar at every moment barAuto 0 none barAuto 1 auto-generate bar every measure +[Staff] +beamAuto 0/1 auto-beam on/off +beamAutoEnd "num/den" end auto-beam +beamAutoEnd8 "num/den" end auto-beam of 8ths +beamAutoEnd16 "num/den" end auto-beam of 16ths + timeSignatureStyle C Use C and stroked C for 4/4,2/2 timeSignatureStyle old Use old style mensuration marks timeSignatureStyle 1 Use single number @@ -64,6 +70,8 @@ timeSignatureStyle "" Use normal two-digit time signature timeSignatureStyle Cn/m Set symbol explicitly, n/m=2/2 or 4/4 timeSignatureStyle oldn/m Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4. +[Staff] +voltaVisibility 0/1 on/off [Staff?] instrument ascii midi instrument table lookup diff --git a/init/script.ly b/ly/script.ly index 7c96a45122..7c96a45122 100644 --- a/init/script.ly +++ b/ly/script.ly diff --git a/init/svenska.ly b/ly/svenska.ly index d5422ce646..d5422ce646 100644 --- a/init/svenska.ly +++ b/ly/svenska.ly diff --git a/make/lilypond-vars.make b/make/lilypond-vars.make index 8809726e7c..5c53037cd5 100644 --- a/make/lilypond-vars.make +++ b/make/lilypond-vars.make @@ -1,6 +1,6 @@ export PATH:=$(topdir)/lily/out:$(topdir)/buildscripts/out:$(PATH) export MFINPUTS:=$(topdir)/mf/$(PATHSEP)$(MFINPUTS)$(PATHSEP)$(PATHSEP) -export TEXINPUTS:=$(topdir)/tex/$(PATHSEP)$(topdir)/ps/$(PATHSEP)$(TEXINPUTS)$(PATHSEP)$(PATHSEP) -export LILYINCLUDE:=$(topdir)/scm$(PATHSEP)$(topdir)/init$(PATHSEP)$(topdir)/mf/out$(PATHSEP)$(LILYINCLUDE) +export TEXINPUTS:=$(topdir)/tex/$(PATHSEP)$(topdir)/ps/$(PATHSEP)$(TEXINPUTS)$(PATHSEP)..$(PATHSEP)$(PATHSEP) +export LILYINCLUDE:=$(topdir)/scm$(PATHSEP)$(topdir)/ly$(PATHSEP)$(topdir)/mf/out$(PATHSEP)$(PATHSEP)$(topdir)/tfm:$(LILYINCLUDE) diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index 55fb08b15a..291318a82d 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ Begin3 Titel: LilyPond -Versie: 1.1.23 -Inschrijf datum: 20JAN99 +Versie: 1.1.24 +Inschrijf datum: 25JAN99 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.23.tar.gz + 770k lilypond-1.1.24.tar.gz Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.23.tar.gz + 770k lilypond-1.1.24.tar.gz Copi-eer voorwaarden: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index e75b2cef3e..ad9601aeb7 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.1.23 -Entered-date: 20JAN99 +Version: 1.1.24 +Entered-date: 25JAN99 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.23.tar.gz + 770k lilypond-1.1.24.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.23.tar.gz + 770k lilypond-1.1.24.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 553585de9f..1ae0955c19 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.1.23 +Version: 1.1.24 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.23.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.24.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> diff --git a/make/toplevel.make.in b/make/toplevel.make.in index 43374bd1ba..aefe381a0d 100644 --- a/make/toplevel.make.in +++ b/make/toplevel.make.in @@ -9,7 +9,7 @@ depth = . # descent order into subdirectories: # SUBDIRS = scripts buildscripts flower lib lily mf mi2mu po debian \ - Documentation init input tex make mutopia test intl stepmake\ + Documentation ly input tex make mutopia test intl stepmake\ ps scm # diff --git a/mf/GNUmakefile b/mf/GNUmakefile index b533da3a4f..69c1f018d9 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -12,10 +12,8 @@ FET_FILES = $(wildcard feta[0-9]*.mf) feta-din10.mf \ LYTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.ly)) LOG_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.log)) TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex)) -AFM_IN_FILES = $(wildcard *.afm.in) -AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm)) \ - $(addprefix $(outdir)/, $(AFM_IN_FILES:.in=)) XPM_FONTS = feta20 +AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm)) ALL_GEN_FILES=$(LYTABLES) $(TEXTABLES) $(LOG_FILES) $(AFM_FILES) diff --git a/mf/cmbx12.afm.in b/mf/cmbx12.afm.in deleted file mode 100644 index 845e102db1..0000000000 --- a/mf/cmbx12.afm.in +++ /dev/null @@ -1,133 +0,0 @@ -FontName cmr -StartFontMetrics -StartCharMetrics -C 0; Character-0; B 0.00 0.00 9.83040 7.19440 -C 1; Character-1; B 0.00 0.00 9.83040 7.19440 -C 2; Character-2; B 0.00 0.00 9.17504 7.19440 -C 3; Character-3; B 0.00 0.00 8.25269 7.19440 -C 4; Character-4; B 0.00 0.00 7.86432 7.19440 -C 5; Character-5; B 0.00 0.00 9.22360 7.19440 -C 6; Character-6; B 0.00 0.00 8.51968 7.19440 -C 7; Character-7; B 0.00 0.00 9.17504 7.19440 -C 8; Character-8; B 0.00 0.00 8.51968 7.19440 -C 9; Character-9; B 0.00 0.00 9.17504 7.19440 -C 10; Character-10; B 0.00 0.00 8.51968 7.19440 -C 11; Character-11; B 0.00 0.00 6.88128 7.28177 -C 12; Character-12; B 0.00 0.00 6.55360 7.28177 -C 13; Character-13; B 0.00 0.00 6.55360 7.28177 -C 14; Character-14; B 0.00 0.00 9.83040 7.28177 -C 15; Character-15; B 0.00 0.00 9.83040 7.28177 -C 16; Character-16; B 0.00 0.00 3.27680 4.66033 -C 17; Character-17; B 0.00 0.00 3.60448 4.66033 -C 18; Character-18; B 0.00 0.00 5.89824 7.28177 -C 19; Character-19; B 0.00 0.00 5.89824 7.28177 -C 20; Character-20; B 0.00 0.00 5.89824 6.62641 -C 21; Character-21; B 0.00 0.00 5.89824 7.28177 -C 22; Character-22; B 0.00 0.00 5.89824 6.21473 -C 23; Character-23; B 0.00 0.00 8.90805 7.28177 -C 24; Character-24; B 0.00 0.00 5.24288 0 -C 25; Character-25; B 0.00 0.00 6.01961 7.28177 -C 26; Character-26; B 0.00 0.00 8.51968 4.66033 -C 27; Character-27; B 0.00 0.00 9.17504 4.66033 -C 28; Character-28; B 0.00 0.00 5.89824 5.67979 -C 29; Character-29; B 0.00 0.00 10.67995 7.19440 -C 30; Character-30; B 0.00 0.00 11.99067 7.19440 -C 31; Character-31; B 0.00 0.00 9.17504 7.70412 -C 32; Character-32; B 0.00 0.00 3.27680 4.66033 -C 33; Character-33; B 0.00 0.00 3.59235 7.28177 -C 34; Character-34; B 0.00 0.00 6.09243 7.28177 -C 35; Character-35; B 0.00 0.00 9.83040 7.28177 -C 36; Character-36; B 0.00 0.00 5.89824 7.86432 -C 37; Character-37; B 0.00 0.00 9.83040 7.86432 -C 38; Character-38; B 0.00 0.00 9.17504 7.28177 -C 39; Character-39; B 0.00 0.00 3.27680 7.28177 -C 40; Character-40; B 0.00 0.00 4.58752 7.86432 -C 41; Character-41; B 0.00 0.00 4.58752 7.86432 -C 42; Character-42; B 0.00 0.00 5.89824 7.86432 -C 43; Character-43; B 0.00 0.00 9.17504 6.55360 -C 44; Character-44; B 0.00 0.00 3.27680 1.50491 -C 45; Character-45; B 0.00 0.00 3.93216 4.66033 -C 46; Character-46; B 0.00 0.00 3.27680 1.50491 -C 47; Character-47; B 0.00 0.00 5.89824 7.86432 -C 48; Character-48; B 0.00 0.00 5.89824 6.75749 -C 49; Character-49; B 0.00 0.00 5.89824 6.75749 -C 50; Character-50; B 0.00 0.00 5.89824 6.75749 -C 51; Character-51; B 0.00 0.00 5.89824 6.75749 -C 52; Character-52; B 0.00 0.00 5.89824 6.75749 -C 53; Character-53; B 0.00 0.00 5.89824 6.75749 -C 54; Character-54; B 0.00 0.00 5.89824 6.75749 -C 55; Character-55; B 0.00 0.00 5.89824 6.75749 -C 56; Character-56; B 0.00 0.00 5.89824 6.75749 -C 57; Character-57; B 0.00 0.00 5.89824 6.75749 -C 58; Character-58; B 0.00 0.00 3.27680 4.66033 -C 59; Character-59; B 0.00 0.00 3.27680 4.66033 -C 60; Character-60; B 0.00 0.00 3.59235 5.24288 -C 61; Character-61; B 0.00 0.00 9.17504 4.05159 -C 62; Character-62; B 0.00 0.00 5.57056 5.24288 -C 63; Character-63; B 0.00 0.00 5.57056 7.28177 -C 64; Character-64; B 0.00 0.00 9.17504 7.28177 -C 65; Character-65; B 0.00 0.00 8.90805 7.19440 -C 66; Character-66; B 0.00 0.00 8.38619 7.19440 -C 67; Character-67; B 0.00 0.00 8.51968 7.19440 -C 68; Character-68; B 0.00 0.00 9.04155 7.19440 -C 69; Character-69; B 0.00 0.00 7.74296 7.19440 -C 70; Character-70; B 0.00 0.00 7.41528 7.19440 -C 71; Character-71; B 0.00 0.00 9.27213 7.19440 -C 72; Character-72; B 0.00 0.00 9.22360 7.19440 -C 73; Character-73; B 0.00 0.00 4.39335 7.19440 -C 74; Character-74; B 0.00 0.00 6.09243 7.19440 -C 75; Character-75; B 0.00 0.00 9.23573 7.19440 -C 76; Character-76; B 0.00 0.00 7.08760 7.19440 -C 77; Character-77; B 0.00 0.00 11.18968 7.19440 -C 78; Character-78; B 0.00 0.00 9.22360 7.19440 -C 79; Character-79; B 0.00 0.00 8.85949 7.19440 -C 80; Character-80; B 0.00 0.00 8.05851 7.19440 -C 81; Character-81; B 0.00 0.00 8.85949 7.19440 -C 82; Character-82; B 0.00 0.00 8.79883 7.19440 -C 83; Character-83; B 0.00 0.00 6.55360 7.19440 -C 84; Character-84; B 0.00 0.00 8.20413 7.19440 -C 85; Character-85; B 0.00 0.00 9.06583 7.19440 -C 86; Character-86; B 0.00 0.00 8.90805 7.19440 -C 87; Character-87; B 0.00 0.00 12.18485 7.19440 -C 88; Character-88; B 0.00 0.00 8.90805 7.19440 -C 89; Character-89; B 0.00 0.00 8.90805 7.19440 -C 90; Character-90; B 0.00 0.00 7.20896 7.19440 -C 91; Character-91; B 0.00 0.00 3.27680 7.86432 -C 92; Character-92; B 0.00 0.00 6.09243 7.28177 -C 93; Character-93; B 0.00 0.00 3.27680 7.86432 -C 94; Character-94; B 0.00 0.00 5.89824 7.28177 -C 95; Character-95; B 0.00 0.00 3.27680 7.28177 -C 96; Character-96; B 0.00 0.00 3.27680 7.28177 -C 97; Character-97; B 0.00 0.00 5.73440 4.66033 -C 98; Character-98; B 0.00 0.00 6.55360 7.28177 -C 99; Character-99; B 0.00 0.00 5.24288 4.66033 -C 100; Character-100; B 0.00 0.00 6.55360 7.28177 -C 101; Character-101; B 0.00 0.00 5.38245 4.66033 -C 102; Character-102; B 0.00 0.00 3.60448 7.28177 -C 103; Character-103; B 0.00 0.00 5.89824 4.66033 -C 104; Character-104; B 0.00 0.00 6.55360 7.28177 -C 105; Character-105; B 0.00 0.00 3.27680 7.28177 -C 106; Character-106; B 0.00 0.00 3.60448 7.28177 -C 107; Character-107; B 0.00 0.00 6.22592 7.28177 -C 108; Character-108; B 0.00 0.00 3.27680 7.28177 -C 109; Character-109; B 0.00 0.00 9.83040 4.66033 -C 110; Character-110; B 0.00 0.00 6.55360 4.66033 -C 111; Character-111; B 0.00 0.00 5.89824 4.66033 -C 112; Character-112; B 0.00 0.00 6.55360 4.66033 -C 113; Character-113; B 0.00 0.00 6.22592 4.66033 -C 114; Character-114; B 0.00 0.00 4.81812 4.66033 -C 115; Character-115; B 0.00 0.00 4.65307 4.66033 -C 116; Character-116; B 0.00 0.00 4.58752 6.65763 -C 117; Character-117; B 0.00 0.00 6.55360 4.66033 -C 118; Character-118; B 0.00 0.00 6.22592 4.66033 -C 119; Character-119; B 0.00 0.00 8.51968 4.66033 -C 120; Character-120; B 0.00 0.00 6.22592 4.66033 -C 121; Character-121; B 0.00 0.00 6.22592 4.66033 -C 122; Character-122; B 0.00 0.00 5.24288 4.66033 -C 123; Character-123; B 0.00 0.00 5.89824 4.66033 -C 124; Character-124; B 0.00 0.00 11.79648 4.66033 -C 125; Character-125; B 0.00 0.00 5.89824 7.28177 -C 126; Character-126; B 0.00 0.00 5.89824 7.28177 -C 127; Character-127; B 0.00 0.00 5.89824 7.28177 -EndCharMetrics -EndFontMetrics diff --git a/mf/cmr10.afm.in b/mf/cmr10.afm.in deleted file mode 100644 index 78a59e7e2b..0000000000 --- a/mf/cmr10.afm.in +++ /dev/null @@ -1,133 +0,0 @@ -FontName cmr -StartFontMetrics -StartCharMetrics -C 0; Character-0; B 0.00 0.00 8.73816 7.16526 -C 1; Character-1; B 0.00 0.00 8.73816 7.16526 -C 2; Character-2; B 0.00 0.00 8.15562 7.16526 -C 3; Character-3; B 0.00 0.00 7.28179 7.16526 -C 4; Character-4; B 0.00 0.00 6.99053 7.16526 -C 5; Character-5; B 0.00 0.00 7.86434 7.16526 -C 6; Character-6; B 0.00 0.00 7.57307 7.16526 -C 7; Character-7; B 0.00 0.00 8.15562 7.16526 -C 8; Character-8; B 0.00 0.00 7.57307 7.16526 -C 9; Character-9; B 0.00 0.00 8.15562 7.16526 -C 10; Character-10; B 0.00 0.00 7.57307 7.16526 -C 11; Character-11; B 0.00 0.00 6.11672 7.28178 -C 12; Character-12; B 0.00 0.00 5.82544 7.28178 -C 13; Character-13; B 0.00 0.00 5.82544 7.28178 -C 14; Character-14; B 0.00 0.00 8.73816 7.28178 -C 15; Character-15; B 0.00 0.00 8.73816 7.28178 -C 16; Character-16; B 0.00 0.00 2.91272 4.51470 -C 17; Character-17; B 0.00 0.00 3.20400 4.51470 -C 18; Character-18; B 0.00 0.00 5.24290 7.28178 -C 19; Character-19; B 0.00 0.00 5.24290 7.28178 -C 20; Character-20; B 0.00 0.00 5.24290 6.59002 -C 21; Character-21; B 0.00 0.00 5.24290 7.28178 -C 22; Character-22; B 0.00 0.00 5.24290 5.95357 -C 23; Character-23; B 0.00 0.00 7.86434 7.28178 -C 24; Character-24; B 0.00 0.00 4.66035 0.0 -C 25; Character-25; B 0.00 0.00 5.24291 7.28178 -C 26; Character-26; B 0.00 0.00 7.57307 4.51470 -C 27; Character-27; B 0.00 0.00 8.15562 4.51470 -C 28; Character-28; B 0.00 0.00 5.24290 5.53416 -C 29; Character-29; B 0.00 0.00 9.46634 7.16526 -C 30; Character-30; B 0.00 0.00 10.63142 7.16526 -C 31; Character-31; B 0.00 0.00 8.15562 7.67499 -C 32; Character-32; B 0.00 0.00 2.91272 4.51470 -C 33; Character-33; B 0.00 0.00 2.91272 7.28178 -C 34; Character-34; B 0.00 0.00 5.24290 7.28178 -C 35; Character-35; B 0.00 0.00 8.73816 7.28178 -C 36; Character-36; B 0.00 0.00 5.24290 7.86432 -C 37; Character-37; B 0.00 0.00 8.73816 7.86432 -C 38; Character-38; B 0.00 0.00 8.15562 7.28178 -C 39; Character-39; B 0.00 0.00 2.91272 7.28178 -C 40; Character-40; B 0.00 0.00 4.07781 7.86432 -C 41; Character-41; B 0.00 0.00 4.07781 7.86432 -C 42; Character-42; B 0.00 0.00 5.24290 7.86432 -C 43; Character-43; B 0.00 0.00 8.15562 6.11670 -C 44; Character-44; B 0.00 0.00 2.91272 1.10683 -C 45; Character-45; B 0.00 0.00 3.49526 4.51470 -C 46; Character-46; B 0.00 0.00 2.91272 1.10683 -C 47; Character-47; B 0.00 0.00 5.24290 7.86432 -C 48; Character-48; B 0.00 0.00 5.24290 6.75749 -C 49; Character-49; B 0.00 0.00 5.24290 6.75749 -C 50; Character-50; B 0.00 0.00 5.24290 6.75749 -C 51; Character-51; B 0.00 0.00 5.24290 6.75749 -C 52; Character-52; B 0.00 0.00 5.24290 6.75749 -C 53; Character-53; B 0.00 0.00 5.24290 6.75749 -C 54; Character-54; B 0.00 0.00 5.24290 6.75749 -C 55; Character-55; B 0.00 0.00 5.24290 6.75749 -C 56; Character-56; B 0.00 0.00 5.24290 6.75749 -C 57; Character-57; B 0.00 0.00 5.24290 6.75749 -C 58; Character-58; B 0.00 0.00 2.91272 4.51470 -C 59; Character-59; B 0.00 0.00 2.91272 4.51470 -C 60; Character-60; B 0.00 0.00 2.91272 5.24288 -C 61; Character-61; B 0.00 0.00 8.15562 3.84696 -C 62; Character-62; B 0.00 0.00 4.95163 5.24288 -C 63; Character-63; B 0.00 0.00 4.95163 7.28178 -C 64; Character-64; B 0.00 0.00 8.15562 7.28178 -C 65; Character-65; B 0.00 0.00 7.86434 7.16526 -C 66; Character-66; B 0.00 0.00 7.42744 7.16526 -C 67; Character-67; B 0.00 0.00 7.57307 7.16526 -C 68; Character-68; B 0.00 0.00 8.00998 7.16526 -C 69; Character-69; B 0.00 0.00 7.13616 7.16526 -C 70; Character-70; B 0.00 0.00 6.84490 7.16526 -C 71; Character-71; B 0.00 0.00 8.22843 7.16526 -C 72; Character-72; B 0.00 0.00 7.86434 7.16526 -C 73; Character-73; B 0.00 0.00 3.78653 7.16526 -C 74; Character-74; B 0.00 0.00 5.38853 7.16526 -C 75; Character-75; B 0.00 0.00 8.15562 7.16526 -C 76; Character-76; B 0.00 0.00 6.55362 7.16526 -C 77; Character-77; B 0.00 0.00 9.61197 7.16526 -C 78; Character-78; B 0.00 0.00 7.86434 7.16526 -C 79; Character-79; B 0.00 0.00 8.15562 7.16526 -C 80; Character-80; B 0.00 0.00 7.13616 7.16526 -C 81; Character-81; B 0.00 0.00 8.15562 7.16526 -C 82; Character-82; B 0.00 0.00 7.71870 7.16526 -C 83; Character-83; B 0.00 0.00 5.82544 7.16526 -C 84; Character-84; B 0.00 0.00 7.57307 7.16526 -C 85; Character-85; B 0.00 0.00 7.86434 7.16526 -C 86; Character-86; B 0.00 0.00 7.86434 7.16526 -C 87; Character-87; B 0.00 0.00 10.77706 7.16526 -C 88; Character-88; B 0.00 0.00 7.86434 7.16526 -C 89; Character-89; B 0.00 0.00 7.86434 7.16526 -C 90; Character-90; B 0.00 0.00 6.40798 7.16526 -C 91; Character-91; B 0.00 0.00 2.91272 7.86432 -C 92; Character-92; B 0.00 0.00 5.24290 7.28178 -C 93; Character-93; B 0.00 0.00 2.91272 7.86432 -C 94; Character-94; B 0.00 0.00 5.24290 7.28178 -C 95; Character-95; B 0.00 0.00 2.91272 7.00301 -C 96; Character-96; B 0.00 0.00 2.91272 7.28178 -C 97; Character-97; B 0.00 0.00 5.24290 4.51470 -C 98; Character-98; B 0.00 0.00 5.82544 7.28178 -C 99; Character-99; B 0.00 0.00 4.66035 4.51470 -C 100; Character-100; B 0.00 0.00 5.82544 7.28178 -C 101; Character-101; B 0.00 0.00 4.66035 4.51470 -C 102; Character-102; B 0.00 0.00 3.20400 7.28178 -C 103; Character-103; B 0.00 0.00 5.24290 4.51470 -C 104; Character-104; B 0.00 0.00 5.82544 7.28178 -C 105; Character-105; B 0.00 0.00 2.91272 7.00301 -C 106; Character-106; B 0.00 0.00 3.20400 7.00301 -C 107; Character-107; B 0.00 0.00 5.53418 7.28178 -C 108; Character-108; B 0.00 0.00 2.91272 7.28178 -C 109; Character-109; B 0.00 0.00 8.73816 4.51470 -C 110; Character-110; B 0.00 0.00 5.82544 4.51470 -C 111; Character-111; B 0.00 0.00 5.24290 4.51470 -C 112; Character-112; B 0.00 0.00 5.82544 4.51470 -C 113; Character-113; B 0.00 0.00 5.53416 4.51470 -C 114; Character-114; B 0.00 0.00 4.10694 4.51470 -C 115; Character-115; B 0.00 0.00 4.13606 4.51470 -C 116; Character-116; B 0.00 0.00 4.07781 6.44958 -C 117; Character-117; B 0.00 0.00 5.82544 4.51470 -C 118; Character-118; B 0.00 0.00 5.53418 4.51470 -C 119; Character-119; B 0.00 0.00 7.57307 4.51470 -C 120; Character-120; B 0.00 0.00 5.53418 4.51470 -C 121; Character-121; B 0.00 0.00 5.53418 4.51470 -C 122; Character-122; B 0.00 0.00 4.66035 4.51470 -C 123; Character-123; B 0.00 0.00 5.24290 4.51470 -C 124; Character-124; B 0.00 0.00 10.48579 4.51470 -C 125; Character-125; B 0.00 0.00 5.24290 7.28178 -C 126; Character-126; B 0.00 0.00 5.24290 7.00301 -C 127; Character-127; B 0.00 0.00 5.24290 7.00301 -EndCharMetrics -EndFontMetrics diff --git a/mf/cmr8.afm.in b/mf/cmr8.afm.in deleted file mode 100644 index b06a7bc375..0000000000 --- a/mf/cmr8.afm.in +++ /dev/null @@ -1,133 +0,0 @@ -FontName cmr -StartFontMetrics -StartCharMetrics -C 0; Character-0; B 0.00 0.00 7.73700 7.16526 -C 1; Character-1; B 0.00 0.00 7.73700 7.16526 -C 2; Character-2; B 0.00 0.00 7.22120 7.16526 -C 3; Character-3; B 0.00 0.00 6.43840 7.16526 -C 4; Character-4; B 0.00 0.00 6.18960 7.16526 -C 5; Character-5; B 0.00 0.00 6.95420 7.16526 -C 6; Character-6; B 0.00 0.00 6.70540 7.16526 -C 7; Character-7; B 0.00 0.00 7.22120 7.16526 -C 8; Character-8; B 0.00 0.00 6.70540 7.16526 -C 9; Character-9; B 0.00 0.00 7.22120 7.16526 -C 10; Character-10; B 0.00 0.00 6.70540 7.16526 -C 11; Character-11; B 0.00 0.00 5.41590 7.28178 -C 12; Character-12; B 0.00 0.00 5.15800 7.28178 -C 13; Character-13; B 0.00 0.00 5.15800 7.28178 -C 14; Character-14; B 0.00 0.00 7.73700 7.28178 -C 15; Character-15; B 0.00 0.00 7.73700 7.28178 -C 16; Character-16; B 0.00 0.00 2.57900 4.51470 -C 17; Character-17; B 0.00 0.00 2.83690 4.51470 -C 18; Character-18; B 0.00 0.00 4.64220 7.28178 -C 19; Character-19; B 0.00 0.00 4.64220 7.28178 -C 20; Character-20; B 0.00 0.00 4.64220 6.59002 -C 21; Character-21; B 0.00 0.00 4.64220 7.28178 -C 22; Character-22; B 0.00 0.00 4.64220 6.01474 -C 23; Character-23; B 0.00 0.00 6.95420 7.28178 -C 24; Character-24; B 0.00 0.00 4.12640 0 -C 25; Character-25; B 0.00 0.00 4.64220 7.28178 -C 26; Character-26; B 0.00 0.00 6.70540 4.51470 -C 27; Character-27; B 0.00 0.00 7.22120 4.51470 -C 28; Character-28; B 0.00 0.00 4.64220 5.53416 -C 29; Character-29; B 0.00 0.00 8.37720 7.16526 -C 30; Character-30; B 0.00 0.00 9.40880 7.16526 -C 31; Character-31; B 0.00 0.00 7.22120 7.67498 -C 32; Character-32; B 0.00 0.00 2.57900 4.51470 -C 33; Character-33; B 0.00 0.00 2.57900 7.28178 -C 34; Character-34; B 0.00 0.00 4.64220 7.28178 -C 35; Character-35; B 0.00 0.00 7.73700 7.28178 -C 36; Character-36; B 0.00 0.00 4.64220 7.86432 -C 37; Character-37; B 0.00 0.00 7.73700 7.86432 -C 38; Character-38; B 0.00 0.00 7.22120 7.28178 -C 39; Character-39; B 0.00 0.00 2.57900 7.28178 -C 40; Character-40; B 0.00 0.00 3.61060 7.86432 -C 41; Character-41; B 0.00 0.00 3.61060 7.86432 -C 42; Character-42; B 0.00 0.00 4.64220 7.86432 -C 43; Character-43; B 0.00 0.00 7.22120 6.33520 -C 44; Character-44; B 0.00 0.00 2.57900 1.16508 -C 45; Character-45; B 0.00 0.00 3.09480 4.51470 -C 46; Character-46; B 0.00 0.00 2.57900 1.16508 -C 47; Character-47; B 0.00 0.00 4.64220 7.86432 -C 48; Character-48; B 0.00 0.00 4.64220 6.75750 -C 49; Character-49; B 0.00 0.00 4.64220 6.75750 -C 50; Character-50; B 0.00 0.00 4.64220 6.75750 -C 51; Character-51; B 0.00 0.00 4.64220 6.75750 -C 52; Character-52; B 0.00 0.00 4.64220 6.75750 -C 53; Character-53; B 0.00 0.00 4.64220 6.75750 -C 54; Character-54; B 0.00 0.00 4.64220 6.75750 -C 55; Character-55; B 0.00 0.00 4.64220 6.75750 -C 56; Character-56; B 0.00 0.00 4.64220 6.75750 -C 57; Character-57; B 0.00 0.00 4.64220 6.75750 -C 58; Character-58; B 0.00 0.00 2.57900 4.51470 -C 59; Character-59; B 0.00 0.00 2.57900 4.51470 -C 60; Character-60; B 0.00 0.00 2.57900 5.24288 -C 61; Character-61; B 0.00 0.00 7.22120 3.96348 -C 62; Character-62; B 0.00 0.00 4.38430 5.24288 -C 63; Character-63; B 0.00 0.00 4.38430 7.28178 -C 64; Character-64; B 0.00 0.00 7.22120 7.28178 -C 65; Character-65; B 0.00 0.00 6.95420 7.16526 -C 66; Character-66; B 0.00 0.00 6.57190 7.16526 -C 67; Character-67; B 0.00 0.00 6.70540 7.16526 -C 68; Character-68; B 0.00 0.00 7.08770 7.16526 -C 69; Character-69; B 0.00 0.00 6.31400 7.16526 -C 70; Character-70; B 0.00 0.00 6.05610 7.16526 -C 71; Character-71; B 0.00 0.00 7.28340 7.16526 -C 72; Character-72; B 0.00 0.00 6.95420 7.16526 -C 73; Character-73; B 0.00 0.00 3.34360 7.16526 -C 74; Character-74; B 0.00 0.00 4.76660 7.16526 -C 75; Character-75; B 0.00 0.00 7.21210 7.16526 -C 76; Character-76; B 0.00 0.00 5.79820 7.16526 -C 77; Character-77; B 0.00 0.00 8.50160 7.16526 -C 78; Character-78; B 0.00 0.00 6.95420 7.16526 -C 79; Character-79; B 0.00 0.00 7.22120 7.16526 -C 80; Character-80; B 0.00 0.00 6.31400 7.16526 -C 81; Character-81; B 0.00 0.00 7.22120 7.16526 -C 82; Character-82; B 0.00 0.00 6.82980 7.16526 -C 83; Character-83; B 0.00 0.00 5.15800 7.16526 -C 84; Character-84; B 0.00 0.00 6.70540 7.16526 -C 85; Character-85; B 0.00 0.00 6.95420 7.16526 -C 86; Character-86; B 0.00 0.00 6.95420 7.16526 -C 87; Character-87; B 0.00 0.00 9.53320 7.16526 -C 88; Character-88; B 0.00 0.00 6.95420 7.16526 -C 89; Character-89; B 0.00 0.00 6.95420 7.16526 -C 90; Character-90; B 0.00 0.00 5.67380 7.16526 -C 91; Character-91; B 0.00 0.00 2.57900 7.86432 -C 92; Character-92; B 0.00 0.00 4.64220 7.28178 -C 93; Character-93; B 0.00 0.00 2.57900 7.86432 -C 94; Character-94; B 0.00 0.00 4.64220 7.28178 -C 95; Character-95; B 0.00 0.00 2.57900 7.03212 -C 96; Character-96; B 0.00 0.00 2.57900 7.28178 -C 97; Character-97; B 0.00 0.00 4.64220 4.51470 -C 98; Character-98; B 0.00 0.00 5.15800 7.28178 -C 99; Character-99; B 0.00 0.00 4.12640 4.51470 -C 100; Character-100; B 0.00 0.0 5.15800 7.28178 -C 101; Character-101; B 0.00 0.0 4.12640 4.51470 -C 102; Character-102; B 0.00 0.0 2.83690 7.28178 -C 103; Character-103; B 0.00 0.0 4.64220 4.51470 -C 104; Character-104; B 0.00 0.0 5.15800 7.28178 -C 105; Character-105; B 0.00 0.0 2.57900 7.03212 -C 106; Character-106; B 0.00 0.0 2.83690 7.03212 -C 107; Character-107; B 0.00 0.0 4.90010 7.28178 -C 108; Character-108; B 0.00 0.0 2.57900 7.28178 -C 109; Character-109; B 0.00 0.0 7.73700 4.51470 -C 110; Character-110; B 0.00 0.0 5.15800 4.51470 -C 111; Character-111; B 0.00 0.0 4.64220 4.51470 -C 112; Character-112; B 0.00 0.0 5.15800 4.51470 -C 113; Character-113; B 0.00 0.0 4.90010 4.51470 -C 114; Character-114; B 0.00 0.0 3.61818 4.51470 -C 115; Character-115; B 0.00 0.0 3.66218 4.51470 -C 116; Character-116; B 0.00 0.0 3.61060 6.44958 -C 117; Character-117; B 0.00 0.0 5.15800 4.51470 -C 118; Character-118; B 0.00 0.0 4.90010 4.51470 -C 119; Character-119; B 0.00 0.0 6.70540 4.51470 -C 120; Character-120; B 0.00 0.0 4.90010 4.51470 -C 121; Character-121; B 0.00 0.0 4.90010 4.51470 -C 122; Character-122; B 0.00 0.0 4.12640 4.51470 -C 123; Character-123; B 0.00 0.0 4.64220 4.51470 -C 124; Character-124; B 0.00 0.0 9.28440 4.51470 -C 125; Character-125; B 0.00 0.0 4.64220 7.28178 -C 126; Character-126; B 0.00 0.0 4.64220 7.03212 -C 127; Character-127; B 0.00 0.0 4.64220 7.03212 -EndCharMetrics -EndFontMetrics diff --git a/mf/cmti10.afm.in b/mf/cmti10.afm.in deleted file mode 100644 index 78e1f43073..0000000000 --- a/mf/cmti10.afm.in +++ /dev/null @@ -1,133 +0,0 @@ -FontName cmr -StartFontMetrics -StartCharMetrics -C 0; Character-0; B 0.00 0.00 8.57498 7.16526 -C 1; Character-1; B 0.00 0.00 8.57498 7.16526 -C 2; Character-2; B 0.00 0.00 8.03904 7.16526 -C 3; Character-3; B 0.00 0.00 7.25843 7.16526 -C 4; Character-4; B 0.00 0.00 6.96717 7.16526 -C 5; Character-5; B 0.00 0.00 7.79437 7.16526 -C 6; Character-6; B 0.00 0.00 7.50310 7.16526 -C 7; Character-7; B 0.00 0.00 8.03904 7.16526 -C 8; Character-8; B 0.00 0.00 7.50310 7.16526 -C 9; Character-9; B 0.00 0.00 8.03904 7.16526 -C 10; Character-10; B 0.00 0.00 7.50310 7.16526 -C 11; Character-11; B 0.00 0.00 6.43123 7.28178 -C 12; Character-12; B 0.00 0.00 5.89530 7.28178 -C 13; Character-13; B 0.00 0.00 6.16326 7.28178 -C 14; Character-14; B 0.00 0.00 9.24490 7.28178 -C 15; Character-15; B 0.00 0.00 9.37888 7.28178 -C 16; Character-16; B 0.00 0.00 3.21562 4.51470 -C 17; Character-17; B 0.00 0.00 3.48358 4.51470 -C 18; Character-18; B 0.00 0.00 5.35936 7.28178 -C 19; Character-19; B 0.00 0.00 5.35936 7.28178 -C 20; Character-20; B 0.00 0.00 5.35936 6.59002 -C 21; Character-21; B 0.00 0.00 5.35936 7.28178 -C 22; Character-22; B 0.00 0.00 5.35936 5.88949 -C 23; Character-23; B 0.00 0.00 8.71672 7.28178 -C 24; Character-24; B 0.00 0.00 4.82342 0 -C 25; Character-25; B 0.00 0.00 5.62733 7.28178 -C 26; Character-26; B 0.00 0.00 7.50310 4.51470 -C 27; Character-27; B 0.00 0.00 7.50310 4.51470 -C 28; Character-28; B 0.00 0.00 5.35936 5.53416 -C 29; Character-29; B 0.00 0.00 9.25654 7.16526 -C 30; Character-30; B 0.00 0.00 10.32842 7.16526 -C 31; Character-31; B 0.00 0.00 8.03904 7.67499 -C 32; Character-32; B 0.00 0.00 2.67968 4.51470 -C 33; Character-33; B 0.00 0.00 3.21562 7.28178 -C 34; Character-34; B 0.00 0.00 5.39432 7.28178 -C 35; Character-35; B 0.00 0.00 8.57498 7.28178 -C 36; Character-36; B 0.00 0.00 8.06453 7.28178 -C 37; Character-37; B 0.00 0.00 8.57498 7.86432 -C 38; Character-38; B 0.00 0.00 8.03904 7.28178 -C 39; Character-39; B 0.00 0.00 3.21562 7.28178 -C 40; Character-40; B 0.00 0.00 4.28749 7.86432 -C 41; Character-41; B 0.00 0.00 4.28749 7.86432 -C 42; Character-42; B 0.00 0.00 5.35936 7.86432 -C 43; Character-43; B 0.00 0.00 8.03904 5.88949 -C 44; Character-44; B 0.00 0.00 3.21562 1.10683 -C 45; Character-45; B 0.00 0.00 3.75155 4.51470 -C 46; Character-46; B 0.00 0.00 3.21562 1.10683 -C 47; Character-47; B 0.00 0.00 5.35936 7.86432 -C 48; Character-48; B 0.00 0.00 5.35936 6.75749 -C 49; Character-49; B 0.00 0.00 5.35936 6.75749 -C 50; Character-50; B 0.00 0.00 5.35936 6.75749 -C 51; Character-51; B 0.00 0.00 5.35936 6.75749 -C 52; Character-52; B 0.00 0.00 5.35936 6.75749 -C 53; Character-53; B 0.00 0.00 5.35936 6.75749 -C 54; Character-54; B 0.00 0.00 5.35936 6.75749 -C 55; Character-55; B 0.00 0.00 5.35936 6.75749 -C 56; Character-56; B 0.00 0.00 5.35936 6.75749 -C 57; Character-57; B 0.00 0.00 5.35936 6.75749 -C 58; Character-58; B 0.00 0.00 3.21562 4.51470 -C 59; Character-59; B 0.00 0.00 3.21562 4.51470 -C 60; Character-60; B 0.00 0.00 3.21562 5.24288 -C 61; Character-61; B 0.00 0.00 8.03904 3.84696 -C 62; Character-62; B 0.00 0.00 5.35936 5.24288 -C 63; Character-63; B 0.00 0.00 5.35936 7.28178 -C 64; Character-64; B 0.00 0.00 8.03904 7.28178 -C 65; Character-65; B 0.00 0.00 7.79437 7.16526 -C 66; Character-66; B 0.00 0.00 7.38077 7.16526 -C 67; Character-67; B 0.00 0.00 7.50310 7.16526 -C 68; Character-68; B 0.00 0.00 7.91670 7.16526 -C 69; Character-69; B 0.00 0.00 7.11280 7.16526 -C 70; Character-70; B 0.00 0.00 6.84483 7.16526 -C 71; Character-71; B 0.00 0.00 8.11186 7.16526 -C 72; Character-72; B 0.00 0.00 7.79437 7.16526 -C 73; Character-73; B 0.00 0.00 4.04282 7.16526 -C 74; Character-74; B 0.00 0.00 5.50499 7.16526 -C 75; Character-75; B 0.00 0.00 8.06234 7.16526 -C 76; Character-76; B 0.00 0.00 6.57686 7.16526 -C 77; Character-77; B 0.00 0.00 9.40218 7.16526 -C 78; Character-78; B 0.00 0.00 7.79437 7.16526 -C 79; Character-79; B 0.00 0.00 8.03904 7.16526 -C 80; Character-80; B 0.00 0.00 7.11280 7.16526 -C 81; Character-81; B 0.00 0.00 8.03904 7.16526 -C 82; Character-82; B 0.00 0.00 7.64874 7.16526 -C 83; Character-83; B 0.00 0.00 5.89530 7.16526 -C 84; Character-84; B 0.00 0.00 7.50310 7.16526 -C 85; Character-85; B 0.00 0.00 7.79437 7.16526 -C 86; Character-86; B 0.00 0.00 7.79437 7.16526 -C 87; Character-87; B 0.00 0.00 10.47405 7.16526 -C 88; Character-88; B 0.00 0.00 7.79437 7.16526 -C 89; Character-89; B 0.00 0.00 7.79437 7.16526 -C 90; Character-90; B 0.00 0.00 6.43123 7.16526 -C 91; Character-91; B 0.00 0.00 3.21562 7.86432 -C 92; Character-92; B 0.00 0.00 5.39432 7.28178 -C 93; Character-93; B 0.00 0.00 3.21562 7.86432 -C 94; Character-94; B 0.00 0.00 5.35936 7.28178 -C 95; Character-95; B 0.00 0.00 3.21562 7.00301 -C 96; Character-96; B 0.00 0.00 3.21562 7.28178 -C 97; Character-97; B 0.00 0.00 5.35936 4.51470 -C 98; Character-98; B 0.00 0.00 4.82342 7.28178 -C 99; Character-99; B 0.00 0.00 4.82342 4.51470 -C 100; Character-100; B 0.00 0.00 5.35936 7.28178 -C 101; Character-101; B 0.00 0.00 4.82342 4.51470 -C 102; Character-102; B 0.00 0.00 3.21562 7.28178 -C 103; Character-103; B 0.00 0.00 4.82342 4.51470 -C 104; Character-104; B 0.00 0.00 5.35936 7.28178 -C 105; Character-105; B 0.00 0.00 3.21562 6.87194 -C 106; Character-106; B 0.00 0.00 3.21562 6.87194 -C 107; Character-107; B 0.00 0.00 4.82342 7.28178 -C 108; Character-108; B 0.00 0.00 2.67968 7.28178 -C 109; Character-109; B 0.00 0.00 8.57498 4.51470 -C 110; Character-110; B 0.00 0.00 5.89530 4.51470 -C 111; Character-111; B 0.00 0.00 5.35936 4.51470 -C 112; Character-112; B 0.00 0.00 5.35936 4.51470 -C 113; Character-113; B 0.00 0.00 4.82342 4.51470 -C 114; Character-114; B 0.00 0.00 4.42147 4.51470 -C 115; Character-115; B 0.00 0.00 4.28749 4.51470 -C 116; Character-116; B 0.00 0.00 3.48358 6.44958 -C 117; Character-117; B 0.00 0.00 5.62733 4.51470 -C 118; Character-118; B 0.00 0.00 4.82342 4.51470 -C 119; Character-119; B 0.00 0.00 6.96717 4.51470 -C 120; Character-120; B 0.00 0.00 4.86421 4.51470 -C 121; Character-121; B 0.00 0.00 5.09139 4.51470 -C 122; Character-122; B 0.00 0.00 4.28749 4.51470 -C 123; Character-123; B 0.00 0.00 5.35936 4.51470 -C 124; Character-124; B 0.00 0.00 10.71872 4.51470 -C 125; Character-125; B 0.00 0.00 5.35936 7.28178 -C 126; Character-126; B 0.00 0.00 5.35936 7.00301 -C 127; Character-127; B 0.00 0.00 5.35936 7.00301 -EndCharMetrics -EndFontMetrics diff --git a/mf/cmti8.afm.in b/mf/cmti8.afm.in deleted file mode 100644 index b06a7bc375..0000000000 --- a/mf/cmti8.afm.in +++ /dev/null @@ -1,133 +0,0 @@ -FontName cmr -StartFontMetrics -StartCharMetrics -C 0; Character-0; B 0.00 0.00 7.73700 7.16526 -C 1; Character-1; B 0.00 0.00 7.73700 7.16526 -C 2; Character-2; B 0.00 0.00 7.22120 7.16526 -C 3; Character-3; B 0.00 0.00 6.43840 7.16526 -C 4; Character-4; B 0.00 0.00 6.18960 7.16526 -C 5; Character-5; B 0.00 0.00 6.95420 7.16526 -C 6; Character-6; B 0.00 0.00 6.70540 7.16526 -C 7; Character-7; B 0.00 0.00 7.22120 7.16526 -C 8; Character-8; B 0.00 0.00 6.70540 7.16526 -C 9; Character-9; B 0.00 0.00 7.22120 7.16526 -C 10; Character-10; B 0.00 0.00 6.70540 7.16526 -C 11; Character-11; B 0.00 0.00 5.41590 7.28178 -C 12; Character-12; B 0.00 0.00 5.15800 7.28178 -C 13; Character-13; B 0.00 0.00 5.15800 7.28178 -C 14; Character-14; B 0.00 0.00 7.73700 7.28178 -C 15; Character-15; B 0.00 0.00 7.73700 7.28178 -C 16; Character-16; B 0.00 0.00 2.57900 4.51470 -C 17; Character-17; B 0.00 0.00 2.83690 4.51470 -C 18; Character-18; B 0.00 0.00 4.64220 7.28178 -C 19; Character-19; B 0.00 0.00 4.64220 7.28178 -C 20; Character-20; B 0.00 0.00 4.64220 6.59002 -C 21; Character-21; B 0.00 0.00 4.64220 7.28178 -C 22; Character-22; B 0.00 0.00 4.64220 6.01474 -C 23; Character-23; B 0.00 0.00 6.95420 7.28178 -C 24; Character-24; B 0.00 0.00 4.12640 0 -C 25; Character-25; B 0.00 0.00 4.64220 7.28178 -C 26; Character-26; B 0.00 0.00 6.70540 4.51470 -C 27; Character-27; B 0.00 0.00 7.22120 4.51470 -C 28; Character-28; B 0.00 0.00 4.64220 5.53416 -C 29; Character-29; B 0.00 0.00 8.37720 7.16526 -C 30; Character-30; B 0.00 0.00 9.40880 7.16526 -C 31; Character-31; B 0.00 0.00 7.22120 7.67498 -C 32; Character-32; B 0.00 0.00 2.57900 4.51470 -C 33; Character-33; B 0.00 0.00 2.57900 7.28178 -C 34; Character-34; B 0.00 0.00 4.64220 7.28178 -C 35; Character-35; B 0.00 0.00 7.73700 7.28178 -C 36; Character-36; B 0.00 0.00 4.64220 7.86432 -C 37; Character-37; B 0.00 0.00 7.73700 7.86432 -C 38; Character-38; B 0.00 0.00 7.22120 7.28178 -C 39; Character-39; B 0.00 0.00 2.57900 7.28178 -C 40; Character-40; B 0.00 0.00 3.61060 7.86432 -C 41; Character-41; B 0.00 0.00 3.61060 7.86432 -C 42; Character-42; B 0.00 0.00 4.64220 7.86432 -C 43; Character-43; B 0.00 0.00 7.22120 6.33520 -C 44; Character-44; B 0.00 0.00 2.57900 1.16508 -C 45; Character-45; B 0.00 0.00 3.09480 4.51470 -C 46; Character-46; B 0.00 0.00 2.57900 1.16508 -C 47; Character-47; B 0.00 0.00 4.64220 7.86432 -C 48; Character-48; B 0.00 0.00 4.64220 6.75750 -C 49; Character-49; B 0.00 0.00 4.64220 6.75750 -C 50; Character-50; B 0.00 0.00 4.64220 6.75750 -C 51; Character-51; B 0.00 0.00 4.64220 6.75750 -C 52; Character-52; B 0.00 0.00 4.64220 6.75750 -C 53; Character-53; B 0.00 0.00 4.64220 6.75750 -C 54; Character-54; B 0.00 0.00 4.64220 6.75750 -C 55; Character-55; B 0.00 0.00 4.64220 6.75750 -C 56; Character-56; B 0.00 0.00 4.64220 6.75750 -C 57; Character-57; B 0.00 0.00 4.64220 6.75750 -C 58; Character-58; B 0.00 0.00 2.57900 4.51470 -C 59; Character-59; B 0.00 0.00 2.57900 4.51470 -C 60; Character-60; B 0.00 0.00 2.57900 5.24288 -C 61; Character-61; B 0.00 0.00 7.22120 3.96348 -C 62; Character-62; B 0.00 0.00 4.38430 5.24288 -C 63; Character-63; B 0.00 0.00 4.38430 7.28178 -C 64; Character-64; B 0.00 0.00 7.22120 7.28178 -C 65; Character-65; B 0.00 0.00 6.95420 7.16526 -C 66; Character-66; B 0.00 0.00 6.57190 7.16526 -C 67; Character-67; B 0.00 0.00 6.70540 7.16526 -C 68; Character-68; B 0.00 0.00 7.08770 7.16526 -C 69; Character-69; B 0.00 0.00 6.31400 7.16526 -C 70; Character-70; B 0.00 0.00 6.05610 7.16526 -C 71; Character-71; B 0.00 0.00 7.28340 7.16526 -C 72; Character-72; B 0.00 0.00 6.95420 7.16526 -C 73; Character-73; B 0.00 0.00 3.34360 7.16526 -C 74; Character-74; B 0.00 0.00 4.76660 7.16526 -C 75; Character-75; B 0.00 0.00 7.21210 7.16526 -C 76; Character-76; B 0.00 0.00 5.79820 7.16526 -C 77; Character-77; B 0.00 0.00 8.50160 7.16526 -C 78; Character-78; B 0.00 0.00 6.95420 7.16526 -C 79; Character-79; B 0.00 0.00 7.22120 7.16526 -C 80; Character-80; B 0.00 0.00 6.31400 7.16526 -C 81; Character-81; B 0.00 0.00 7.22120 7.16526 -C 82; Character-82; B 0.00 0.00 6.82980 7.16526 -C 83; Character-83; B 0.00 0.00 5.15800 7.16526 -C 84; Character-84; B 0.00 0.00 6.70540 7.16526 -C 85; Character-85; B 0.00 0.00 6.95420 7.16526 -C 86; Character-86; B 0.00 0.00 6.95420 7.16526 -C 87; Character-87; B 0.00 0.00 9.53320 7.16526 -C 88; Character-88; B 0.00 0.00 6.95420 7.16526 -C 89; Character-89; B 0.00 0.00 6.95420 7.16526 -C 90; Character-90; B 0.00 0.00 5.67380 7.16526 -C 91; Character-91; B 0.00 0.00 2.57900 7.86432 -C 92; Character-92; B 0.00 0.00 4.64220 7.28178 -C 93; Character-93; B 0.00 0.00 2.57900 7.86432 -C 94; Character-94; B 0.00 0.00 4.64220 7.28178 -C 95; Character-95; B 0.00 0.00 2.57900 7.03212 -C 96; Character-96; B 0.00 0.00 2.57900 7.28178 -C 97; Character-97; B 0.00 0.00 4.64220 4.51470 -C 98; Character-98; B 0.00 0.00 5.15800 7.28178 -C 99; Character-99; B 0.00 0.00 4.12640 4.51470 -C 100; Character-100; B 0.00 0.0 5.15800 7.28178 -C 101; Character-101; B 0.00 0.0 4.12640 4.51470 -C 102; Character-102; B 0.00 0.0 2.83690 7.28178 -C 103; Character-103; B 0.00 0.0 4.64220 4.51470 -C 104; Character-104; B 0.00 0.0 5.15800 7.28178 -C 105; Character-105; B 0.00 0.0 2.57900 7.03212 -C 106; Character-106; B 0.00 0.0 2.83690 7.03212 -C 107; Character-107; B 0.00 0.0 4.90010 7.28178 -C 108; Character-108; B 0.00 0.0 2.57900 7.28178 -C 109; Character-109; B 0.00 0.0 7.73700 4.51470 -C 110; Character-110; B 0.00 0.0 5.15800 4.51470 -C 111; Character-111; B 0.00 0.0 4.64220 4.51470 -C 112; Character-112; B 0.00 0.0 5.15800 4.51470 -C 113; Character-113; B 0.00 0.0 4.90010 4.51470 -C 114; Character-114; B 0.00 0.0 3.61818 4.51470 -C 115; Character-115; B 0.00 0.0 3.66218 4.51470 -C 116; Character-116; B 0.00 0.0 3.61060 6.44958 -C 117; Character-117; B 0.00 0.0 5.15800 4.51470 -C 118; Character-118; B 0.00 0.0 4.90010 4.51470 -C 119; Character-119; B 0.00 0.0 6.70540 4.51470 -C 120; Character-120; B 0.00 0.0 4.90010 4.51470 -C 121; Character-121; B 0.00 0.0 4.90010 4.51470 -C 122; Character-122; B 0.00 0.0 4.12640 4.51470 -C 123; Character-123; B 0.00 0.0 4.64220 4.51470 -C 124; Character-124; B 0.00 0.0 9.28440 4.51470 -C 125; Character-125; B 0.00 0.0 4.64220 7.28178 -C 126; Character-126; B 0.00 0.0 4.64220 7.03212 -C 127; Character-127; B 0.00 0.0 4.64220 7.03212 -EndCharMetrics -EndFontMetrics diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index 410e4375bf..5ef657ad80 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -241,8 +241,8 @@ fet_endchar; -%if test = 0: -%else: +if test = 0: +else: def draw_harmonic_notehead(expr harmwid) = save beamheight, head_width, head_char_width; save holeheight, stem_width; @@ -269,8 +269,8 @@ def draw_harmonic_notehead(expr harmwid) = % ht# = noteheight#; head_char_width = 1.54 noteheight; head_char_width# := 1.54 ht#; - %schuif_op = head_char_width - head_width; %ugh - %schuif_op# := head_char_width# - head_width#; + schuif_op = head_char_width - head_width; %ugh + schuif_op# := head_char_width# - head_width#; % set_char_box(0, head_char_width#, noteheight#/2, noteheight#/2); set_char_box(0, head_width#, head_width#/2, head_width#/2); % 2 beamheight + holeheight = noteheight; @@ -288,15 +288,15 @@ def draw_harmonic_notehead(expr harmwid) = penpos8(thick, 225); % 1.5 noteheight = head_width; - z1l = (0, 0); + z1l = (schuif_op, 0); z2l = z1l; -% z3l = (head_width/2,-head_width/2); - z3l = (head_width/2, -noteheight/2); +% z3l = (schuif_op + head_width/2,-head_width/2); + z3l = (schuif_op + head_width/2, -noteheight/2); z4l = z3l; - z5l = (head_width, 0); + z5l = (schuif_op + head_width, 0); z6l = z5l; -% z7l = (head_width/2, head_width/2); - z7l = (head_width/2, noteheight/2); +% z7l = (schuif_op + head_width/2, head_width/2); + z7l = (schuif_op + head_width/2, noteheight/2); z8l = z7l; pickup pencircle; %scaled stemthick; @@ -319,7 +319,7 @@ fet_endchar; fet_beginchar("Harmonic ledger", "harmonicl", "harmonicledger") draw_ledger(harmonic_wid#); fet_endchar; -%fi +fi fet_endgroup("balls"); diff --git a/mi2mu/mudela-item.cc b/mi2mu/mudela-item.cc index da7335ddf7..12b1b1f3ec 100644 --- a/mi2mu/mudela-item.cc +++ b/mi2mu/mudela-item.cc @@ -93,6 +93,38 @@ Mudela_key::notename_str (int pitch_i) notename_str += "es"; accidental_i--; + /* + By tradition, all scales now consist of a sequence of 7 notes each + with a distinct name, from amongst a b c d e f g. But, minor scales + have a wide second interval at the top - the 'leading note' is + sharped. (Why? it just works that way! Anything else doesn't sound as + good and isn't as flexible at saying things. In medieval times, + scales only had 6 notes to avoid this problem - the hexachords.) + + So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat + for the leading note would skip the name c and duplicate the name d. + Why isn't c-sharp put in the key signature? Tradition. (It's also + supposedly based on the Pythagorean theory of the cycle of fifths, + but that really only applies to major scales...) + + Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other + flat minor keys end up with a natural leading note. And there you + have it. + + John Sankey <bf250@freenet.carleton.ca> + + */ + + /* ok, bit ugly, but here we go */ + + if (minor_i_ && (accidentals_i_ == -1)) + if (notename_str == "des") + notename_str = "cis"; + + if (minor_i_ && (accidentals_i_ == -2)) + if (notename_str == "ges") + notename_str = "fis"; + String de_octavate_str = to_str (',', (Mudela_note::c0_pitch_i_c_ + 11 - pitch_i) / 12); String octavate_str = to_str ('\'', (pitch_i - Mudela_note::c0_pitch_i_c_) / 12); return notename_str +de_octavate_str + octavate_str; diff --git a/mi2mu/mudela-score.cc b/mi2mu/mudela-score.cc index b7e234b97d..a18fe02d92 100644 --- a/mi2mu/mudela-score.cc +++ b/mi2mu/mudela-score.cc @@ -144,7 +144,23 @@ Mudela_score::output (String filename_str) if (mudela_staff_p_list_.size() > 1) mudela_stream << ">\n"; +#if 0 mudela_stream << "\\paper{}\n"; +#else + /* + let's put some auto-beam stuff in place as long as it's optional + */ + mudela_stream << "\\paper{\n"; + mudela_stream << "\\translator{\n"; + mudela_stream << "\\VoiceContext\n"; + mudela_stream << "\\consists \"Auto_beam_engraver\";\n"; + mudela_stream << "beamAuto = 1.;\n"; + mudela_stream << "beamAutoEnd8 = \"2/4\";\n"; + mudela_stream << "beamAutoEnd16 = \"1/4\";\n"; + mudela_stream << "beamAutoEnd32 = \"1/4\";\n"; + mudela_stream << "}\n"; + mudela_stream << "}\n"; +#endif mudela_stream << "\\midi{\n"; // let's not use silly 0 track diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly index 064f48f605..44dbc39647 100644 --- a/mutopia/Coriolan/violino-2.ly +++ b/mutopia/Coriolan/violino-2.ly @@ -220,10 +220,10 @@ violino2 = \notes \relative c { r8 as' des,4\sf ~ des()c | r8 as' des,4\sf ~ des()c | % looks lot like viola... - [f16 f as as]f4:16[d16 d g g]d4:| + [f16 f as as]f4:16[d16 d g g]d4: | %225 - [c16 c g' g]c,4:16[c16 c f f]c4:| - [b16 b f' f]b,4:16[c16 c f f]c4:| + [c16 c g' g]c,4:16[c16 c f f]c4: | + [b16 b f' f]b,4:16[c16 c f f]c4: | [d16 d f f]d4:16[c16 c f f]c4:| [d8 g,] g'4. as8 as4 ~ | [as8 as] f4. f8 g4 | diff --git a/mutopia/D.Scarlatti/GNUmakefile b/mutopia/D.Scarlatti/GNUmakefile index 2d7fc58cf0..cd768eeb70 100644 --- a/mutopia/D.Scarlatti/GNUmakefile +++ b/mutopia/D.Scarlatti/GNUmakefile @@ -2,7 +2,7 @@ depth = ../.. -examples= +examples=sonata-k3-l378 LOCALSTEPMAKE_TEMPLATES=mutopia include $(depth)/make/stepmake.make diff --git a/mutopia/D.Scarlatti/progress.ly b/mutopia/D.Scarlatti/progress.ly new file mode 100644 index 0000000000..fe16c92147 --- /dev/null +++ b/mutopia/D.Scarlatti/progress.ly @@ -0,0 +1,809 @@ + %{ +Here are the first four sonatas with barring, stem directions +etc., laid out so that two note shapes can be used when that is +ready. (Freenet will chop some of the code lines - I've got it +as one Mudela line per bar.) As you will quickly see, K.4 raises +some notation and collision problems. I've used the modern +tied-notes syntax you prefer, instead of the way Scarlatti wrote +it (bar1.jpeg). Scarlatti had a point, didn't he! (150 years +later, Longo agreed - bar1 is from his edition.) + +Harpsichord music is written much closer than organ (or piano) +music because harpsichords rely on the transfer of energy from +one string directly to other harmonically-related strings to +build power and maintain sound. That only happens when the +strings are close to each other on the soundboard. In fact, that +is one of the ways of judging what instrument a keyboard piece +was written for - organ pipes don't talk to each other, organ +sound is always fighting for clarity, and close harmonies sound +thick, so good organ music is much more widely spaced. K.4 is +typical of mainstream harpsichord music. + +I'll work on the musical aspects of the notation - Lily can be +told to do it one way as easily as the other. (I really +appreciate that.) But, would you give some thought to the best +way of dealing with 'multi-voice' collisions? In the long term, +particularly if you go ahead with automating beaming, you will +need a general anti-collision system. But, for the next 6 months +or so, to keep the Scarlatti project going, might it be faster +to provide for setting the stem length of individual notes? Or +some other similar workaround? + +Oh yes - when the middle note of a chord is trilled, Scarlatti +wrote the praller directly in front of the note, whether the +note was on a line or a space. And, he wrote most of the K.3 +fermatae on top of a bar line to indicate that a sound gap was +wanted, not that the prior note be extended in length. + +John + +---------------------------------------------------- +%} + +---------------------------------------------------- + +\score { + \header {title="Domenico Scarlatti - Sonata K.3 L.378"; + description="Presto";} + % vOne is right hand outside part, vTwo r.h. inside part, + % vThree left hand outside, vFour l.h. inside. + \notes { + \type Staff=staffOne < + \property Staff.nolines=11 + \property Voice.pletvisibility=0 + \time 2/2; + \clef alto; + \type Voice=vOne <{ +% 1 +\stemup s1 +% 2 +s4 [e'16 d' c' b] a4 s | +% 3 +s4 a' e' c'' | +% 4 +b'4 a'2 gis'4 | +% 5 +s4 c'' a' e'' | +% 6 +d''4 c''2 b'4 | +% 7 +s4 c'' g' f'' | +% 8 +e''4 d''2 cis''4 | +% 9 +s4 d'' a' g'' | +% 10 +fis''4 e''2 dis''4 | +% 11 +[e''8 d''] c''2 b'4~b' +% 12 +a'2 g'4~g' +% 13 +fis'2 e'4~e' +% 14 +d'2 c'4~c' +% 15 +b2 a4 | +% 16 +s4 c' dis' fis' | +% 17 +a'4 c'' dis'' fis'' | +% 18 +a''4 c'''2 [b''8 a''] | +% 19 +g''4 f'' e'' d''^\fermata | +s1 s +% 22 +\stemdown s4 a, b, cis | +% 23 +d4 e f2 | +% 24 +\stemup f4 aes b d' | +% 25 +f'4 aes' b' d'' | +% 26 +f''4 aes''2 [g''8 f''] | +% 27 +ees''4 d'' c'' d'' | +% 28 +g'4 b' c'' \stemdown f | +% 29 +e4 e'2 \stemup d''4 | +% 30 +e'4 b' c'' \stemdown b, | +% 31 +a,4 a \stemup c'' d'' | +% 32 +a4 b c' d' | +% 33 +e'4 f' g' a' | +% 34 +b'4 [a'8 g'] g''4 c'' | +% 35 +c''4~[c''16 b' c'' d''] d''4.^\prall c''8 | +% 36 +c''4 c''' b'' bes'' +% 37 +a'' aes''2 g''4~g'' +% 38 +f''2 dis''4~dis'' +% 39 +d''2 c''4~c'' +% 40 +b'4 c'' d'' | +% 41 +e'4 f' g' a' | +% 42 +b'4 [a'8 g'] g''4 c'' | +% 43 +c''4~[c''16 b' c'' d''] d''4.^\prall c''8 | +% 44 +c''4 [g''16 f'' e'' d''] c''4 s | +% 45 +s4 [g16 f e d] c4 s | +% 46 +s4 c'' g' a' | +% 47 +e''4 c'' d'' b' | +% 48 +e'2. s4 | +% 49 +s4 [g'16 f' e' d'] c'4 s | +% 50 +s4 c'' g' ees''~ees'' +% 51 +d''2 c''4 | +% 52 +bes'4 s2 [d'16 c' bes a] | +% 53 +g4 s2 g''4 | +% 54 +g''4 d'' f'' e'' | +% 55 +d''4 [a''16 g'' f'' e''] d''4 s | +% 56 +s4 [a16 g f e] d4 s | +% 57 +s4 d'' a' f'' | +% 58 +f'' e''4 bes'2 | +% 59 +cis''4 s2. | +% 60 +\stemdown s4 a' gis' g' | +% 61 +fis'4 f' e'2 | +% 62 +dis'4 d' cis' c' | +% 63 +b4 bes a2 | +% 64 +gis4 g fis f | +% 65 +\stemup s4 e gis b | +% 66 +d'4 f' gis' b' | +% 67 +d''4 f''2 e''8 d'' | +% 68 +c''4 b' a' g'^\fermata | +s1 s +% 71 +\stemdown s4 d e fis | +% 72 +g4 a bes2 | +% 73 +\stemup e'4 g' bes' e'' | +% 74 +bes''2. [a''8 gis''] | +% 75 +a''4 g''2 [f''8 e''] | +% 76 +f''4 e''2 [d''8 cis''] | +% 77 +d''4 c''2 [b'8 a'] | +% 78 +gis'4 gis'' a'' \stemdown d | +% 79 +c4 c'2 \stemup b''4 | +% 80 +c''4 gis'' a'' \stemdown g, | +% 81 +f,4 f2 \stemup b''4 | +% 82 +f'4 gis' a' b' | +% 83 +c''4 d'' e'' f'' | +% 84 +gis'4 [a'8 b'] e'4 d'' | +% 85 +c''4 d'' b'2 | +% 86 +a'4 a'' gis'' g'' | +% 87 +fis''4 f''2 e''4~e'' +% 88 +d''2 c''4~c'' +% 89 +b'2 a'4~a' +% 90 +gis'4 a' d'' | +% 91 +a'2 gis' | +% 92 +a'4 s2 [e'16 d' c' b] | +% 93 +a4 s2 d''4 | +% 94 +c''2 gis' | +% 95 +a'2. s4 | +} { +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +s s s s s s s s s s s s s +% 46 +s2. f''4 | +% 47 +g'2 f' | +% 48 +c''2. s4 | +s1 s +% 51 +g'2 fis' | +s1 +% 53 +s2. bes'4 | +% 54 +a'4 f'' d'' cis'' | +% 55 +f''4 s2. | +s1 s +% 58 +bes'2 e''4 d'' | +% 59 +a'4 s2. | +s1 s s s s s s s s s s s s s s s s s s s s s s s s +% 85 +a'2 gis' | +s1 s s s s +% 91 +e'2 b' | +s1 +% 93 +s2. a'4 | +% 94 +a'2 b' +} { +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +% 91 +c''4 d''4 s2 | +s1 +% 93 +s2. f'4 | +% 94 +e'2 e'2 + }> + \type Voice=vTwo < + { + %- right hand unchorded notes - + }> + \type Voice=vThree <{ +% 1 +\stemdown s2. [e''16 d'' c'' b'] | +% 2 +a'4 s2 [e16 d c b,] | +% 3 +a,4 s2 a4 | +% 4 +e4 c' b2 | +% 5 +a4 s2 c'4 | +% 6 +g4 e' d'2 | +% 7 +c'4 s2 d'4 | +% 8 +a4 f' e'2 | +% 9 +d'4 s2 e'4 | +% 10 +b4 g' fis'2 | +% 11 +e'2 dis'4 d' | +% 12 +cis'4 c' b2 | +% 13 +bes4 a gis g | +% 14 +fis4 f e2 | +% 15 +dis4 d cis c | +% 16 +b,2 s | +s1 +% 18 +s4 b, cis dis | +% 19 +e4 f g2 | +% 20 +\stemup g4 bes cis' e' | +% 21 +g'4 bes' cis'' e'' | +% 22 +g''4 bes''2 [a''8 g''] | +% 23 +f''4 e'' d'' c''^\fermata | +s1 s +% 26 +\stemdown s4 g, a, b, | +% 27 +c4 d dis f | +% 28 +g4 g'2 \stemup d''4 | +% 29 +g'4 b' c'' \stemdown d | +% 30 +c4 c'2 \stemup d''4 | +% 31 +c'4 b'2 \stemdown g,4 | +% 32 +f,4 f e d | +% 33 +c4 d e f | +% 34 +g,4 g e f | +% 35 +g4 f g g, | +% 36 +c2 s +% 37 +s4 c'' b' bes' | +% 38 +a'4 gis' g'2 | +% 39 +fis'4 f' e' dis' | +% 40 +d4 d' c' b | +% 41 +c4 d e f | +% 42 +g,4 g e f | +% 43 +g4 f g g, | +% 44 +c2 s4 [g'16 f' e' d'] | +% 45 +c'4 s2 [g,16 f, e, d,] | +% 46 +c,4 c s f | +% 47 +g2 g, | +% 48 +c2. [g''16 f'' e'' d''] | +% 49 +c''4 s2 [g16 f e d] | +% 50 +c4 s2 c'4 | +% 51 +d'2 d | +% 52 +g4 [d''16 c'' bes' a'] g'4 s2 +% 53 +[d16 c bes, a,] g,4 g | +% 54 +a2 a, | +% 55 +d2 s4 [a'16 g' f' e'] | +% 56 +d'4 s2 [a,16 g, f, e,] | +% 57 +d,4 s2 d'4 | +% 58 +g2 g, | +% 59 +a,4 \stemup a'' gis'' g'' | +% 60 +fis''4 f''2 e''4~e'' +% 61 +d''2 c''4~c'' +% 62 +b'2 a'4~a' +% 63 +g'2 f'4~f' +% 64 +e'2 d'4 | +% 65 +\stemdown e,2^\fermata s | +s1 +% 67 +s4 e fis gis | +% 68 +a4 b c'2 | +% 69 +\stemup fis4 a c' ees' | +% 70 +fis'4 a' c'' ees'' | +% 71 +c'''2. [bes''8 a''] | +% 72 +bes''4 a'' g'' f'' | +s1 +% 74 +\stemdown s4 c d e | +% 75 +f2 e | +% 76 +d2 c | +% 77 +b,2 a, | +% 78 +e4 e'2 \stemup b''4 | +% 79 +e''4 gis'' a'' \stemdown b, | +% 80 +a,4 a2 \stemup b''4 | +% 81 +a'4 gis'' a'' \stemdown e, | +% 82 +d,4 d' c' b | +% 83 +a4 b c' d' | +% 84 +e4 d' c' d' | +% 85 +e'4 d' e' e | +% 86 +a2 s | +% 87 +s4 a' gis' g' | +% 88 +fis'4 f' e'2 | +% 89 +dis'4 d' cis' c' | +% 90 +d'2 c'4 d | +% 91 +e4 d e e, | +% 92 +a,4 [e''16 d'' c'' b'] a'4 s2 +% 93 +[e16 d c b,] a,4 d | +% 94 +e2 e, | +% 95 +a,2. +} { +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s s +s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s s +% 90 +b2 a4 + } > + \type Voice=vFour < + { + %- left hand unchorded notes - + } + >>} + \paper{barsize=50.0; \translator {\StaffContext \consists +Bar_number_engraver;}} +} + +---------------------------------------------------- + +\score { + \header {title="Domenico Scarlatti - Sonata K.4 L.390"; + description="Allegro";} + % vOne is right hand outside part, vTwo r.h. inside part, + % vThree left hand outside, vFour l.h. inside. + \notes { + \type Staff=staffOne < + \property Staff.nolines=11 + \keysignature bes; + \time 4/4; + \clef alto; + \type Voice=vOne < +{ +% 1 +\stemup \skip 4..*15/7; g'16 | +% 2 +[g'16 bes' a' c''] [bes' d'' c'' ees''] d''4. g''8 | +% 3 +[fis''8 g''] [a'' c''] [bes' c''] [d'' g'] | +% 4 +[fis'8 g'] [a' c'] [bes c'] [d' g'] | +% 5 +[fis'8 g'] a' \stemdown d [g bes,] [c d] | +% 6 +[g,8 g8.] s16 \stemup ees'8 [f' a'] [bes'16 ees'' d'' c''] | +% 7 +[d''8 ees''] [f'' bes'] \stemdown [f' d'] [ees'16 g' b d'] | +% 8 +[c'16 ees' d' f'] [ees' g' f' aes'] \stemup [b' d'' cis'' e''] +[d''8 e''] | +% 9 +[f''8 g''] [a'' d''] \stemdown [a16 cis' b d'] [cis' e' a cis'] | +% 10 +\stemup [f'8 g'] [a' d'] [cis' d'] [e'16 g' f' e'] | +% 11 +[f'16 a' d''8]~[d''16 e'' c''8]~[c''16 d'' bes' g'] [a' e'' f''8] +| +% 12 +e''8 d''4~[d''16 cis''] [d'' bes' a' g'] [a' bes' cis'' a'] | +% 13 +[bes'16 cis'' d'' e''] [a' g'' f'' e''] [f'' e'' d'' c''] [d'' +e'' f'' g''] | +% 14 +[a''16 cis'' d'' e''] a' \stemdown [f' e' d'] a,4~a,16 \stemup +[d'' cis'' b'] | +% 15 +[a''16 cis'' d'' e''] [a' d'' cis'' b'] cis''4~[cis''16 cis'' d'' +e''] | +% 16 +[a'8 a''8]~[a''16 g'' f'' e''] [f''8 e''16 d''] [cis''8 d''] | +% 17 +cis''4 \stemdown [cis'16 a g f] [e8 a] d \stemup g' | +% 18 +[a'16 cis' d' e'] a \stemdown [f e d] a,4~a,16 \stemup [d' cis' +b] | +% 19 +cis'4~[cis'16 cis' d' e'] [a8 a']~[a'16 g' f' e'] | +% 20 +[f'16 a' d''8]~[d''16 e'' cis''8] d''4 [a'8 g'] | +% 21 +fis'8 d'4 cis'8 [d'8. e'16] [fis'8. g'16]~ +% 22 +[g'16 a'8 fis'16] [bes'8. cis''16] [cis''8 d''] r8. d'16 | +% 23 +[d'16 fis' e' g'] [fis' a' g' bes'] a'4. bes'8 | +% 24 +[c''8 d''] [ees'' fis'] [g' a'] [bes' b'] | +% 25 +[c''8 d''] [ees'' g''] [f'' ees''] [d'' c''] | +% 26 +[g''16 b' c'' d''] g' \stemdown [ees' d' c'] g,4~g,16 \stemup +[c'' b' a'] | +% 27 +[g''16 b' c'' d''] [g' c'' b' a'] b'4~b'16 \stemdown [f' ees' d'] +| +% 28 +g8 \stemup g''8~[g''16 f'' ees'' d''] ees''8 \stemdown f [g aes] +| +% 29 +g,8 \stemup [ees'16 f'] [d'8 ees'] [f' g'] g'16 \stemdown [c' bes +a] | +% 30 +[g16 g'] \stemup cis''8 [d''16 c''' bes'' a''] [bes''8 a''16 g''] +[fis''8 g''] | +% 31 +[a''16 fis'' g'' a''] d'' \stemdown [bes' a' g'] d,4~d,16 \stemup +[g'' fis'' e''] | +% 32 +[fis''16 fis'' g'' a''] d'' \stemdown [bes' a' g'] [d'' a' fis' +a'] s \stemup [fis''16 g'' a''] | +% 33 +d''8 g''8~[g''16 c''' bes'' a''] [bes''8 a''16 g''] [fis''8 g''] +| +% 34 +[a''16 a' bes' c''] \stemdown [fis' d' c' bes] [a8 d] g s | +% 35 +d4~d16 \stemup [g' fis' e'] [d'' fis' g' a'] d' \stemdown [bes a +g] | +% 36 +d,4~d,16 \stemup [g' fis' e'] d'' [fis' g' a'] [d' g'] [fis' e'] +| +% 37 +d''4~d''16 [fis' g' a'] d' \stemdown [bes a g] [d a g fis] | +% 38 +[g8 ees] [d d,] g,4 \stemup [bes'16 g' a' fis'] | +% 39 +bes'8 g'4 fis'8 [g'8. a'16] [bes'8 c''] | +% 40 +[d''8. d''16] [ees''8 fis'' ] [fis'' g''] r8. s16 | +} +{ +s1 s s s s s s s s s s +%12 +cis''8 s s4 s2 | +s1 s s s +% 17 +<e''4 a'> s4 s2 | +s1 s s s +%22 +s4 s8. a'16 d'4 s4 | +s1 +%24 +s2 s4. d'8 | +%25 +ees'8 f' g' s s2 | +s1 s s +%29 +s4. c'8 s4 ees'16 +} + > + \type Voice=vTwo < + { +s1 s s s s s s s s s +% 11 +\stemdown s4. [c''16 g'] fis'8 s8 [a'8. b'16] | +% 12 +s16 \skip 4..*71/7; +% 16 +[f''16 a' bes'8]~[bes'16 a'8 g'16] | +s1 s s +% 20 +[f'8. f'16] [e'8. g'16]~[g' bes' a' g'] [fis' d' e' cis'] | +% 21 +[d'16 c' bes a] [g bes a g] [fis a g8] [a16 d bes8] | +% 22 +[ces'8 d']~[d'16 g' e' g'] s2 | +s1 s +% 25 +s4. \skip 4..*64/7; +% 29 +c'8 [f'16 d' ees' d'] \skip 4..*12/7; +% 30 +[bes''16 d'' ees''8]~[ees''16 d''8 c''16] | +% 31 +\skip 4..*40/7; +% 33 +[bes''16 d'' ees''8]~[ees''16 d''8 c''16] | +% 34 +\skip 4..*48/7; | +% 37 +fis'4~fis'16 \skip 4..*27/7; | +% 39 +[g'16 f' ees' d'] [c' ees' d' c']~[c' bes c'8]~[c'16 d'8 fis'16]~ +% 40 +[fis'16 a' bes' g']~[g' c'' a'd'] <g'4 bes'> +} > + \type Voice=vThree < +{ +% 1 +\stemdown \skip 4..*23/7; +% 2 +g16 [g bes a c'] [bes d' c' ees'] | +% 3 +[d'16 fis' e' g'] [fis' a' d' fis'] [g bes a c'] [bes d' c' ees'] +| +% 4 +[d16 fis e g] [fis a d fis] [g, bes, a, c] [bes, d c ees] | +% 5 +[d16 fis e g] fis \stemup [c' bes a] [bes d' g'8]~ [g'16 a' +fis'8] | +% 6 +[g'16 ees' d' c'] \stemdown [d' bes a g] [a ees' d' c'] [d'8 a] | +% 7 +[bes16 d' c' ees'] [d' f' ees' g'] \stemup [a' c'' b' d''] [c''8 +d''] | +% 8 +[ees''8 f''] [g'' c''] \stemdown [g' e'] [f'16 a' cis' e'] | +% 9 +[d'16 f' e' g'] [f' a' g' bes'] \stemup [cis''8 d''] [e'' g'] | +% 10 +\stemdown [d16 f e g] [f a g bes] [a, cis b, d] [cis8 a,] | +% 11 +[d8 f] [g a] [d g] [cis d] | +% 12 +a2 d' | +% 13 +[g'8 e'] [f' cis'] d' a'4 g'8 | +% 14 +a,4~a,16 \stemup [d'' cis'' b'] [a'' cis'' d'' e''] a' \stemdown +[f' e' d'] | +% 15 +a,4~a,16 [f' e' d'] [a' e' cis' e'] [a g' f' e'] | +% 16 +[a16 f' e' d'] [a e' d' cis'] [d'8 g] [a bes] | +% 17 +a,16 \stemup [e' f' g'] [e'8 f'] [g' f'16 e'] f' \stemdown [d' +cis' b] | +% 18 +a,4~a,16 \stemup [d' cis' b] [a' cis' d' e'] a \stemdown [f e d] +| +% 19 +[a16 e cis e] [a, g f e] [a, f e d] [a, e d cis] | +% 20 +[d8 g] [a a,] d,2 | +% 21 +d,2 d, | +% 22 +d,2 d,4 \skip 4..*11/7; +% 23 +d16 [d fis e g] [fis a g bes] | +% 24 +[a16 c' bes d'] [c' ees' d' c'] [bes c' a bes] [g a f g] | +% 25 +[ees16 f d ees] [c d bes, c] [aes, bes, g, aes,] [f, aes, g, f,] +| +% 26 +g,4~g,16 \stemup [c'' b' a'] [g'' b' c'' d''] g' \stemdown [ees' +d' c'] | +% 27 +g,4~g,16 [ees' d' c'] [g' d' b d'] g \stemup [b' c'' d''] | +% 28 +[g'16 ees'] \stemdown [d' c'] [g d' c' b] [c' g'] \stemup [d'' +c''] [b'8 c''] | +% 29 +[d''16 d'] \stemdown g8 [b16 g f ees] [d8 g] c \stemup a' | +% 30 +bes'8 \stemdown [fis'16 e'] [fis'8 d'] [g' c'] [d' ees'] | +% 31 +d,4~d,16 \stemup [g'' fis'' e''] [fis'' fis'' g'' a''] d'' +\stemdown [bes' a' g'] | +% 32 +d4~d16 \stemup [g'' fis'' e''] fis''4 \stemdown [d'16 c'' bes' +a'] | +% 33 +[d'16 bes' a' g'] [d' a' g' fis'] [g'8 c'] [d' ees'] | +% 34 +[d8 d'] \stemup [a' bes'] [c'' bes'16 a'] [bes'8 c''] | +% 35 +[d''16 fis' g' a'] d' \stemdown [bes a g] d,4~d,16 \stemup [g' +fis' e'] | +% 36 +[d''16 fis' g' a'] d' \stemdown [bes a g] d,4~d,16 [bes a g] | +% 37 +[d'16 a fis a] [d c' bes a] d8 \stemup d''8. [c''16 bes' a'] | +% 38 +[bes'16 d'' g''8]~[g''16 a''8 fis''16] g''4 s4 | +% 39 +\stemdown g,2 g, | +% 40 +g,2 g,4 +} +{s1 s s s s s s s s s s s s s s s +%17 +s4 s8 d' s2 | +s1 s s s s s s s s s s +% 29 +g'16 s8. s2 s8 fis' | +%30 +g8 s s2. | +s1 s s +%34 +s4. g'8} +{s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s +% 29 +b'16} + > + \type Voice=vFour < + { +\stemdown \skip 4..*74/7; +% 5 +[g'16 bes a8.] c'16~c' +% 6 +\skip 4..*81/7; +% 11 +\stemup [f16 f' e'8] \skip 4..*11/7; +% 12 +\stemdown [e'16 f' d'] [e' f' g'8] s [fis'16 e'] [fis' g' a' +fis'] | +% 13 +s2 s8 a'4 g'8 | +% 14 +\skip 4..*48/7; | +% 17 +s2 [g'16 e' d' cis'] \skip 4..*39/7; +% 20 +\skip 4..*135/7; +% 28 +aes'8 [b16 g'8 f'16] | +% 29 +s16 \skip 4..*13/7; s8 | +% 30 +s8 \skip 4..*68/7; +% 34 +s8 [c''16 g'8 fis'16] [bes'' g' f' ees'] | +% 35 +\skip 4..*50/7; +% 38 +[g''16 c''] [bes'8 a'] s16 [ees'' d'' c''] +} >>} + \paper{barsize=50.0; \translator {\StaffContext \consists +Bar_number_engraver;}} +} + +---------------------------------------------------- + diff --git a/mutopia/D.Scarlatti/sonata-k1-l366.ly b/mutopia/D.Scarlatti/sonata-k1-l366.ly index aae16dbbb2..1da1230281 100644 --- a/mutopia/D.Scarlatti/sonata-k1-l366.ly +++ b/mutopia/D.Scarlatti/sonata-k1-l366.ly @@ -26,83 +26,93 @@ John %} \score { -\header {title ="Domenico Scarlatti - Sonata K.1 L.366";} -% staffOne is right hand, staffTwo left hand +\header {title ="Domenico Scarlatti - Sonata K.1 L.366"; + description="Allegro";} +% vOne is right hand outside part, vTwo r.h. inside part, +% vThree left hand outside, vFour l.h. inside. \notes { -\type GrandStaff = staffAll < \type Staff = staffOne < -\property Voice.pletvisibility = 0 +\property Staff.nolines=11 \keysignature bes; \time 4/4; -\clef treble; +\clef alto; \type Voice = vOne < { % 1 -[d''16 e'' f'' g''] [a'' a' cis'' a'] d''4. e''8 | +\stemup [d''16 e'' f'' g''] [a'' a' cis'' a'] d''4. e''8 | % 2 -[f''16 d'' g'' e''] [a'' f'' e'' d''] [cis''8 a''] a''4^\prall | +[f''16 d'' g'' e''] [a'' f'' e'' d''] [cis''8 a''] a''4^\prall~ % 3 -[a''16 g'' f'' e''] [d'' c'' bes' a'] [bes'8 bes'] [g' bes'] | +[a''16 g'' f'' e''] [d'' c'' bes' a'] bes'8 \stemdown bes' [g' +bes'] | % 4 -[e'8 e'] [e' e'] f f'' f''4^\prall | +[e'8 e'] [e' e'] f \stemup f'' f''4^\prall~ % 5 -[f''16 e'' d'' c''] [bes' a' g' f'] [g'8 g'] [e' e'] | +[f''16 e'' d'' c''] [bes' a' g' f'] g'8 \stemdown g' [e' e'] | % 6 [e'8 a] [a a] [d e] [f g] | % 7 a16 s b s cis' s d' s e' s f' s g' s a' s | % 8 -b'16 s cis'' s d'' s e'' s [f'' d'' bes' g'] [e'' cis'' a' cis''] | +b'16 s cis'' s d'' s e'' s [f'' d'' bes' g'] [e'' cis'' a' cis''] +| % 9 -a''4 g''4^\prallmordent [f''16 d'' bes' g'] [e'' cis'' a' cis''] | +\stemup a''4 g''4^\prallmordent \stemdown [f''16 d'' bes' g'] +[e'' cis'' a' cis''] | % 10 -[f''16 d'' g'' e''] [a'' f'' e'' d''] [cis'' a' d'' b'] [e'' g' f' -e'] | +\stemup [f''16 d'' g'' e''] [a'' f'' e'' d''] [cis'' a' d'' b'] +[e'' g' f' e'] | % 11 [f'16 d' g' e'] [a' f' e' d'] [cis' a d' b] [e' cis' f' d'] | % 12 -[g'16 e' d' cis'] [f'8 g'^\prallmordent] [a'16 e' f' d'] [e' cis' d' -b] | +g'16 \stemdown [ e' d' cis'] \stemup f'8 [g'16^\prall f'32 g'] +[a'16 e' f' d'] \stemdown [e' cis' d' b] | % 13 -[cis'16 a b aes] cis'4 a,4^\prall^"\\textnatural" r | +[cis'16 a b aes] \stemup cis'4 a,4^\prall^"\\textnatural" +r^\fermata | \break % 14 [a'16 b' cis'' d''] [e'' cis'' f'' d''] e''4. a'8 | % 15 -[b'16 g' cis'' a'] [d'' b' e'' cis''] [fis'' d'' g'' e''] [a'' c'' -bes' a'] | +[b'16 g' cis'' a'] [d'' b' e'' cis''] [fis'' d'' g'' e''] [a'' +c'' bes' a'] | % 16 -[bes'16 g' c'' a'] [d'' bes' a' g'] [fis' d' g' e'] [a' c' bes a] | +[bes'16 g' c'' a'] [d'' bes' a' g'] [fis' d' g' e'] [a' c' bes a] +| % 17 -g16 s a s bes s c' s d' s e' s f' s g' s | +\stemdown g16 s a s bes s c' s d' s e' s f' s g' s | % 18 -[a'16 f' d' bes] [g' e' c' e'] c''4 bes'4^\prallmordent | +[a'16 f' d' bes] [g' e' c' e'] \stemup c''4 bes'4^\prall | % 19 [c''8 f''] [bes' e''] [a'16 f' c'' a'] [f'' c'' a'' f''] | % 20 -[e''16 g'' c'' e''] [g'8 fis'] g'16 s g8 [g g,] | +[e''16 g'' c'' e''] g'8 \stemdown fis' g'16 s g8 [g g,] | % 21 -[d8 d'] d'16 [d'' c'' b'] [c'' a' e'' c''] [a'' e'' c''' a''] | +[d8 d'] d'16 \stemup [d'' c'' b'] [c'' a' e'' c''] [a'' e'' c''' +a''] | % 22 -[gis''16 b'' e'' aes''] [b' d'' cis'' b'] [cis''8 a'] [a' a'] | +[gis''16 b'' e'' aes''] [b' d'' cis'' b'] \stemdown [cis''8 a'] +[a' a'] | % 23 -f,8 a' [f' f'16 a'] [bes'8 g''] g''4^\prall | +f,8 a' [f' f'16 a'] \stemup [bes'8 g''] g''4^\prall~ | % 24 -[g''16 f'' e'' d''] [c'' bes' a'] s f,8 f' [f' f'] | +[g''16 f'' e'' d''] [c'' bes' a'] s \stemdown f,8 f' [f' f'] | % 25 -d,8 d' [f' d'16 f'] [g'8 e''] e''4^\prall | +d,8 d' [f' d'16 f'] \stemup [g'8 e''] e''4^\prall~ | % 26 -[e''16 d'' cis'' b'] [a' g' f' e'] [f' d' g' e'] [a' f' bes' g'] | +[e''16 d'' cis'' b'] [a' g' f' e'] [f' d' g' e'] [a' f' bes' g'] +| % 27 -[f'16 d' g' e'] [a' f' bes' g'] f' s g' s a' s bes' s | +\stemdown [f'16 d' g' e'] [a' f' bes' g'] \stemup f' s g' s a' s +bes' s | % 28 -[a'8 d''] [g' cis''] [f'16 d' bes g] [e' cis' a cis'] | +[a'8 d''] [g' cis''] \stemdown [f'16 d' bes g] [e' cis' a cis'] | % 29 -[a'8 d''] [g' e''] [f'16 d' g' e'] [a' f' b' g'] | +\stemup [a'8 d''] [g' e''] [f'16 d' g' e'] [a' f' b' g'] | % 30 -[cis''16 a' d'' e''] [f'' d'' e'' cis''] [d'' a' bes' g'] [a' f' g' -e'] | +[cis''16 a' d'' e''] [f'' d'' e'' cis''] [d'' a' bes' g'] +\stemdown [a' f' g' e'] | % 31 -[f'16 d' e' cis'] d'4 d4^\prall r4 | +[f'16 d' e' cis'] d'4 \stemup d4^\prall r4^\fermata | } { s1 s % 3 @@ -124,9 +134,9 @@ s2 s8 a' a' a' | % 25 s8 f' d' s s2 | % 26 -s2 d''4 s | +\stemup s2 d''4 s | % 27 -d'16 s e' s f' s g' s s2 | +\stemdown d'16 s e' s f' s g' s s2 | % 28 s8 f'' s e'' s2 | % 29 @@ -135,30 +145,28 @@ s8 f'' s cis'' \type Voice = vTwo < {s1 s s s s %6 -s2 d'16 s s4. | +\stemdown s2 d'16 s s4. | s1 s s s s s s s s s s s s s s s s s s %26 -s2 d''4 s | +\stemup s2 d''4 s | %27 -s2 d''4} ->> -\type Staff = staffTwo < -\property Voice.pletvisibility = 0 -\keysignature bes; -\time 4/4; -\clef treble; +s2 d''4 s2 +s1 +%29 +s2 d''8} +> \type Voice = vThree < { % 1 -s2 [d'16 e' f' g'] [a' a cis' a] | +\stemdown s2 [d'16 e' f' g'] [a' a cis' a] | % 2 [d'8 e'] [f' g'] [a' a'] [a' a'] | % 3 -[a'8 a'] [a' f'] g g'' g''4^\prall | +[a'8 a'] [a' f'] g \stemup g'' g''4^\prall~ % 4 -[g''16 f'' e'' d''] [c'' bes' a' g'] [a'8 a'] [f' a'] | +[g''16 f'' e'' d''] [c'' bes' a' g'] a'8 \stemdown a' [f' a'] | % 5 -[d'8 f'] [d' d'] e e'' e''4^\prall | +[d'8 f'] [d' d'] e \stemup e'' e''4^\prall~ % 6 [e''16 d'' cis'' b'] [a' g' f' e'] [f' d' g' e'] [a' f' e' d'] | % 7 @@ -166,15 +174,16 @@ s2 [d'16 e' f' g'] [a' a cis' a] | % 8 [d''16 b' e'' cis''] [f'' d'' g'' e''] a''4 g''4^\prallmordent | % 9 -[f''16 d'' bes' g'] [e'' cis'' a' cis''] a''4 g''4^\prallmordent | +\stemdown [f''16 d'' bes' g'] [e'' cis'' a' cis''] \stemup a''4 +g''4^\prallmordent | % 10 -[d'8 e'] [f' g'] [a b] [cis' a] | +\stemdown [d'8 e'] [f' g'] [a b] [cis' a] | % 11 [d8 e] [f g] a16 s b s cis' s d' s | % 12 -e16 [g' f' e'] [d'8 bes] a,4 s8 f' | +e16 \stemup [g' f' e'] \stemdown [d'8 bes] a,4 s8 \stemup f' | % 13 -[e'8 d'] [a16 e cis e] s2 | +[e'8 d'] \stemdown [a16 e cis e] s2 | % 14 s2 [a16 b cis' d'] [e' cis' f' d'] | % 15 @@ -182,35 +191,38 @@ g'16 s a' s b' s cis'' s [d'8 e'] [fis' d'] | % 16 [g8 a8] [bes c'] [d e] [fis d] | % 17 -[bes16 g c' a] [d' bes e' c'] [f' d' g' e'] [a' f' bes' g'] | +\stemup [bes16 g c' a] [d' bes e' c'] [f' d' g' e'] [a' f' bes' +g'] | % 18 -c''4 bes'4^\prallmordent [a'16 f' d' bes] [g' e' c' e'] | +c''4 bes'4^\prall \stemdown [a'16 f' d' bes] [g' e' c' e'] | % 19 [a'16 f' d' bes] [g' e' c' e'] f' s f8 [f f,] | % 20 -[c8 c'] [c'16 c'' bes' a'] [bes' g' d'' bes'] [g'' d'' bes'' g''] | +[c8 c'] c'16 \stemup [c'' bes' a'] [bes' g' d'' bes'] [g'' d'' +bes'' g''] | % 21 -[f''16 a'' d'' f''] [a'8 gis'] a'16 s a8 [a a,] | +[f''16 a'' d'' f''] a'8 \stemdown gis' a'16 s a8 [a a,] | % 22 -[e8 e,] [e, e,] a, a'' a''4^\prall^"\\textflat" | +[e8 e,] [e, e,] a, \stemup a'' a''4^\prall^"\\textflat"~ | % 23 -[a''16 g'' f'' e''] [d'' c'' bes'] s g,8 bes' [bes' bes'] | +[a''16 g'' f'' e''] [d'' c'' bes'] s \stemdown g,8 bes' [bes' +bes'] | % 24 -e,8 e' [g' e'16 g'] [a'8 f''] f''4^\prall | +e,8 e' [g' e'16 g'] \stemup [a'8 f''] f''4^\prall~ | % 25 -[f''16 e'' d'' c''] [bes' a' g'] s e,8 g' [g' g'] | +[f''16 e'' d'' c''] [bes' a' g'] s \stemdown e,8 g' [g' g'] | % 26 a,8 a [e' a] d'16 s e' s f' s g' s | % 27 s2 [d'16 d' e' e'] [f' f' g' g'] | % 28 -[f'16 d' bes g] [e' cis' a cis'] [a'8 d''] [g' e''] | +[f'16 d' bes g] [e' cis' a cis'] \stemup [a'8 d''] [g' e''] | % 29 -[f'16 d' bes g] [e' cis' a cis'] [d8 e] [f g] | +\stemdown [f'16 d' bes g] [e' cis' a cis'] [d8 e] [f g] | % 30 -[a8 g] [a a,] d4 s8 bes' | +[a8 g] [a a,] d4 s8 \stemup bes' | % 31 -[a'8 g'] [f'16 a f a] s2 | +[a'8 g'] f'16 \stemdown [a f a] s2 | } { s1 s % 3 @@ -222,21 +234,20 @@ f'8 d' f' s s2 | s1 s s s s s s s s s s s s s s s s % 23 s2 s8 g' g' g' | -% 24 +ii% 24 s8 g' e' s s2 | % 25 s2 s8 e' e' e' | % 26 s8 e' a s s2 | -% 27 -d''4 s s2 | +s1 % 28 s2 s8 f'' s cis'' | } > \type Voice = vFour < {s1 s s s s s s s s %10 -d''16 s s4. a'16 s s4. | +\stemdown d''16 s s4. a'16 s s4. | %11 d'16 s s4. s2 | s1 s s @@ -244,13 +255,14 @@ s1 s s s2 d''16 s s4. | %16 g'16 s s4. d'16 s s4. | -s1 s s s s s s s s s s s +s1 s s s s s s s s s +%27 +\stemup d''4 s2. | +s1 %29 -s2 d'16} ->> +\stemdown s2 d'16} +> >} -\paper{indent=0.0; \translator {\ScoreContext \consists +\paper{barsize=50.0; \translator {\StaffContext \consists Bar_number_engraver;}} } - - diff --git a/mutopia/D.Scarlatti/sonata-k2-l388.ly b/mutopia/D.Scarlatti/sonata-k2-l388.ly new file mode 100644 index 0000000000..e7e77332dc --- /dev/null +++ b/mutopia/D.Scarlatti/sonata-k2-l388.ly @@ -0,0 +1,338 @@ + + +\score { + \header {title="Domenico Scarlatti - Sonata K.2 L.388"; + description="Presto";} + % vOne is right hand outside part, vTwo r.h. inside part, + % vThree left hand outside, vFour l.h. inside. + \notes { + \type Staff=staffOne < + \property Staff.nolines=11 + \property Voice.pletvisibility=0 + \keysignature fis; + \time 3/8; + \clef alto; + \type Voice=vOne <{ +%1 +\stemup [g''8 g' g'] | +% 2 +g'4.^\prall | +% 3 +[g'16 d' b' g' d'' b'] | +% 4 +g''4. | +% 5 +[b'8 c'' d''] | +% 6 +c''4 b'8 | +% 7 +[c''16 a'' b' g'' a' fis''] | +% 8 +[b'16 g'' a' fis'' g''8] | +% 9 +\stemdown [g'8 a' b'] | +% 10 +[a'8 fis' g'] | +% 11 +[c'8 d' d] | +% 12 +[g8 d g,] | +% 13 +[b'16 d'' a' d'' g' cis''] | +% 14 +[fis'16 d'' e'' cis'' d'' a'] | +% 15 +\stemup [g''8 fis'' e''] | +% 16 +a''8 s4 | +% 17 +[d''16 a' cis'' a' b' gis'] | +% 18 +[e''16 a' b' gis' a' e'] | +% 19 +\stemdown [fis'8 e' d'] | +% 20 +cis'8 s4 | +% 21 +\stemup [d''16 g' a'' fis' cis'' e'] | +% 22 +[d''16 a' fis'] s8. | +% 23 +\stemdown [b8 a g] | +% 24 +fis8 s16 \stemup [d' fis' a'] | +% 25 +[d''16 g' a'' f' cis'' e'] | +% 26 +[d''16 a' f'] s8. | +% 27 +\stemdown [bes8 a g] | +% 28 +f8 s16 \stemup [d' f' a'] | +% 29 +[d''16 g' cis'' fis' b' e'] | +% 30 +[a'16 d' g' cis' fis' d'] | +% 31 +[g'16 e' fis' d' e' cis'] | +% 32 +[d'8 cis' b] | +% 33 +[a8 g' fis'] | +% 34 +[e'8 d'8. cis'16] | +% 35 +[d'16 a fis' d' a' fis'] | +% 36 +[d''16 a' fis'' d'' a'' a'] | +% 37 +d''4. | \break +% 38 +[d''8 d' d'] | +% 39 +d'4.^\prall | +% 40 +[d'16 a fis' d' a' fis'] | +% 41 +d''4.^\prall | +% 42 +[fis'8 g' a'] | +% 43 +g'4^\prall fis'8 | +% 44 +[g'16 e'' fis' d'' e' cis''] | +% 45 +[fis'16 d'' e' cis'' d''8] | +% 46 +\stemdown [d'8 e' fis'] | +% 47 +[e'8 cis' d'] | +% 48 +[g8 a a,] | +% 49 +[d8 a, d,] | +% 50 +\stemup [d''16 a' c'' a' b' gis'] | +% 51 +[e''16 a' b' gis' a' e'] | +% 52 +\stemdown [f'8 e' d'] | +% 53 +c'8 s4 | +% 54 +[e'8 d' c'] | +% 55 +b8 s4 | +% 56 +\stemup [c''16 g' b' g' a' fis'] | +% 57 +[d''16 g' a' fis' g' d'] | +% 58 +\stemdown [e'16 c'' d' b' c' a'] | +% 59 +[b16 g' a fis' g g'] | +% 60 +[c'8 d' e'] | +% 61 +d'8 s4 | +% 62 +[e8 d c] | +% 63 +b,8 s \stemup [b16 d'] | +% 64 +[g'16 c' d'' b fis' a] | +% 65 +[g'16 d' b g] s8 | +% 66 +\stemdown [ees8 d c] | +% 67 +bes,8 s \stemup [ais16 d'] | +% 68 +[g'16 c' d'' bes fis' a] | +% 69 +[g'16 d' ais g] s8 | +% 70 +[g''16 c'' fis'' b' e'' a'] | +% 71 +[d''16 g' c'' fis' b' g'] | +% 72 +[c''16 a' b' g' a' fis'] | +% 73 +[g'8 fis' e'] | +% 74 +[d'8 c' b] | +% 75 +[a16 c' b g' a fis'] | +% 76 +[g'16 d' b g b d'] | +% 77 +[g'16 d' b' g' d'' d'] | +% 78 +g'4. |} +{s1 s s s s +%6 +d4 + }> + \type Voice=vThree <{ +% 1 +\stemdown s4. | +% 2 +[g8 g, g,] | +% 3 +g,4. | +% 4 +[g16 d b g d' b] | +% 5 +[g'8 a' b'] | +% 6 +[a'8 fis' g'] | +% 7 +[c'8 d' fis'] | +% 8 +[g'8 d' g] | +% 9 +\stemup [b'8 c'' d''] | +% 10 +c''4^\prall b'8 | +% 11 +[c''16 a'' b' g'' a' fis''] | +% 12 +[b'16 g'' a' fis'' g''8] | +% 13 +[g''8 fis'' e''] | +% 14 +a''8 s4 | +% 15 +\stemdown [b'16 d'' a' d'' g' cis''] | +% 16 +[fis'16 d'' e'' cis'' d'' a'] | +% 17 +[fis'8 e' d'] | +% 18 +cis'8 s4 | +% 19 +\stemup [d''16 a' cis'' a' b' gis'] | +% 20 +[e''16 a' b' gis' a' e'] | +% 21 +\stemdown [b8 a g] | +% 22 +fis8 s16 \stemup [d' fis' a'] | +% 23 +[d''16 g' a'' fis' cis'' e'] | +% 24 +[d''16 a' fis'] s8. | +% 25 +\stemdown [bes8 a g] | +% 26 +f8 s16 \stemup [d' f' a'] | +% 27 +[d''16 g' a'' f' cis'' e'] | +% 28 +[d''16 a' f'] s8. | +% 29 +\stemdown [b8 a g] | +% 30 +[fis8 e d] | +% 31 +[g8 a a,] | +% 32 +[b,16 g a, fis g, e] | +% 33 +[fis,16 d e, cis d, d] | +% 34 +[g,16 e a, fis e8] | +% 35 +d,4. | +% 36 +d,4. | +% 37 +d,4. | +% 38 +s4. | +% 39 +[d8 d, d,] | +% 40 +d,4. | +% 41 +[d16 a, fis d a fis] | +% 42 +[d'8 e' fis'] | +% 43 +[e'8 cis' d'] | +% 44 +[g8 a cis'] | +% 45 +[d'8 a d] | +% 46 +\stemup [fis'8 g' a'] | +% 47 +g'4^\prall fis'8 | +% 48 +[g'16 e'' fis' d'' e' cis''] | +% 49 +[fis'16 d'' e' cis'' d''8] | +% 50 +\stemdown [f'8 e' d'] | +% 51 +c'8 s4 | +% 52 +\stemup [d''16 a' c'' a' b' gis'] | +% 53 +[e''16 a' b' gis' a' e'] | +% 54 +[c''16 g' b' g' a' fis'] | +% 55 +[d''16 g' a' fis' g' d'] | +% 56 +\stemdown [e'8 d' c'] | +% 57 +b8 s4 | +% 58 +\stemup [g''8 fis'' e''] | +% 59 +[d''8 c'' b'] | +% 60 +[a'16 b' c'' b' a' g'] | +% 61 +[a'16 fis' g' e' fis' d'] | +% 62 +[g'16 c' d'' b fis' a] | +% 63 +[g'16 d' b g] s8 | +% 64 +\stemdown [e8 d c] | +% 65 +b,8 s \stemup [b16 d'] | +% 66 +[g'16 c' d'' bes fis' a] | +% 67 +[g'16 d' bes g] s8 | +% 68 +\stemdown [ees8 d c] | +% 69 +bes,8 s [bes16 d'] | +% 70 +[e'8 d' c'] | +% 71 +[b8 a g] | +% 72 +[c'8 d' d] | +% 73 +[e16 c' d b c a] | +% 74 +[b,16 g a, fis g, g] | +% 75 +[c8 d d,] | +% 76 +g,4. | +% 77 +g,4. | +% 78 +g,4. | + } > + >} + \paper{barsize=50.0; \translator {\StaffContext \consists +Bar_number_engraver;}} +} + diff --git a/mutopia/D.Scarlatti/sonata-k3-l378.ly b/mutopia/D.Scarlatti/sonata-k3-l378.ly new file mode 100644 index 0000000000..0ff9b9ee04 --- /dev/null +++ b/mutopia/D.Scarlatti/sonata-k3-l378.ly @@ -0,0 +1,255 @@ + \header { + composer = "Domenico Scarlatti"; + title="Sonata K.3" + opus="L.378"; + movement="Presto"; + copyright = "General Public License"; +} + +tolower = \translator Staff = lower +toupper = \translator Staff = upper + +RHtoL = { \tolower \stemdown } +RHtoR = { \toupper \stemup } +LHtoR = { \toupper \stemup } +LHtoL = { \tolower \stemdown } + +\score { + \notes + \type PianoStaff < + \type Staff = upper <\type Voice = mainV <{ + % 1 + \stemup s1 + s4 [e'16 d' c' b] a4 s | + s4 a' e' c'' | + b'4 a'2 gis'4 | + s4 c'' a' e'' | + % 5 + d''4 c''2 b'4 | + s4 c'' g' f'' | + e''4 d''2 cis''4 | + s4 d'' a' g'' | + fis''4 e''2 dis''4 | + % 10 + [e''8 d''] c''2 b'4~b' + a'2 g'4~g' + fis'2 e'4~e' + d'2 c'4~c' + b2 a4 | + % 15 + s4 c' dis' fis' | + a'4 c'' dis'' fis'' | + a''4 c'''2 [b''8 a''] | + g''4 f'' e'' d''^\fermata | + s1 + % 20 + s + s4 \RHtoL a, b, cis | + d4 e f2 | + \RHtoR f4 aes b d' | + f'4 aes' b' d'' | + % 25 + f''4 aes''2 [g''8 f''] | + ees''4 d'' c'' d'' | + g'4 b' c'' \RHtoL f | + e4 e'2 \RHtoR d''4 | + e'4 b' c'' \RHtoL b, | + % 30 + a,4 a \RHtoR c'' d'' | + a4 b c' d' | + e'4 f' g' a' | + b'4 [a'8 g'] g''4 c'' | + c''4~[c''16 b' c'' d''] d''4.^\prall c''8 | + % 35 + c''4 c''' b'' bes'' + a'' aes''2 g''4~g'' + f''2 dis''4~dis'' + d''2 c''4~c'' + b'4 c'' d'' | + % 40 + e'4 f' g' a' | + b'4 [a'8 g'] g''4 c'' | + c''4~[c''16 b' c'' d''] d''4.^\prall c''8 | + c''4 [g''16 f'' e'' d''] c''4 s | + s4 [g16 f e d] c4 s | + s4 c'' g' + < + { f''4 e'' c'' d'' b' c''2. } + \type Voice = anotherV { a'4 g'2 f'2 e'2. } + > s4 | + + + s4 [g'16 f' e' d'] c'4 s | + s4 c'' g' ees'' ~ + < { ees'' d''2 c''4 } + \type Voice = anotherV { \stemdown g'2 fis'2 } + > + | + bes'4 s2 [d'16 c' bes a] | + g4 s2 <bes'4 g''> | + <a' g''> <d'' f''> <d'' f''> <cis'' e''> | + d''4 [a''16 g'' f'' e''] d''4 s | + s4 [a16 g f e] d4 s | + s4 d'' a' f'' | + < + { f''4 e'' e'' d'' } + \type Voice = anotherV { \stemdown bes'2 bes'2 } + > | + < a'4 cis''> s2. | + \RHtoL s4 a' gis' g' | + fis'4 f' e'2 | + dis'4 d' cis' c' | + b4 bes a2 | + gis4 g fis f | + \RHtoR s4 e gis b | + d'4 f' gis' b' | + d''4 f''2 e''8 d'' | + c''4 b' a' g'^\fermata | + s1 s + \RHtoL s4 d e fis | + g4 a bes2 | + \RHtoR e'4 g' bes' e'' | + bes''2. [a''8 gis''] | + a''4 g''2 [f''8 e''] | + f''4 e''2 [d''8 cis''] | + d''4 c''2 [b'8 a'] | + gis'4 gis'' a'' \RHtoL d | + c4 c'2 \RHtoR b''4 | + c''4 gis'' a'' \RHtoL g, | + f,4 f2 \RHtoR b''4 | + f'4 gis' a' b' | + c''4 d'' e'' f'' | + gis'4 [a'8 b'] e'4 d'' | + < \type Voice = mainV { c''4 d'' s2 } + \type Voice = anotherV { \stemdown a'2 <b'2 gis'> } + > + a'4 a'' gis'' g'' | + fis''4 f''2 e''4~e'' + d''2 c''4~c'' + b'2 a'4~a' + gis'4 a' d'' | + < \type Voice = mainV { c''4 d'' s2 } + \type Voice = anotherV { \stemdown <a'2 e'> <gis' b'> } | + > + a'4 s2 [e'16 d' c' b] | + a4 s2 <f'4 a' d''4> | %% added some chording. + <e'2 a' c''> <e' gis' b'> | + a'2. | + }>> + + + \type Staff = lower <{ + + \stemdown s2. [e''16 d'' c'' b'] | + + a'4 + s2 + \clef bass; % HWN + [e16 d c b,] | + a,4 s2 a4 | + e4 c' b2 | + a4 s2 c'4 | + g4 e' d'2 | + c'4 s2 d'4 | + a4 f' e'2 | + d'4 s2 e'4 | + b4 g' fis'2 | + e'2 dis'4 d' | + cis'4 c' b2 | + bes4 a gis g | + fis4 f e2 | + dis4 d cis c | + b,2 s | + s1 + s4 b, cis dis | + e4 f g2 | + \LHtoR g4 bes cis' e' | + g'4 bes' cis'' e'' | + g''4 bes''2 [a''8 g''] | + f''4 e'' d'' c''^\fermata | + s1 s + \LHtoL s4 g, a, b, | + c4 d dis f | + g4 g'2 \LHtoR d''4 | + g'4 b' c'' \LHtoL d | + c4 c'2 \LHtoR d''4 | + c'4 b'2 \LHtoL g,4 | + f,4 f e d | + c4 d e f | + g,4 g e f | + g4 f g g, | + c2 s + \LHtoR %% added. HWN + s4 c'' b' bes' | + a'4 gis' g'2 | + fis'4 f' e' dis' + \LHtoL + | + d4 d' c' b | + c4 d e f | + g,4 g e f | + g4 f g g, | + c2 s4 [g'16 f' e' d'] | + c'4 s2 [g,16 f, e, d,] | + c,4 c s f | + g2 g, | + c2. \LHtoR [g''16 f'' e'' d''] | + + c''4 \LHtoL + s2 [g16 f e d] | + c4 s2 c'4 | + d'2 d | + g4 + \LHtoR + [d''16 c'' bes' a'] g'4 \LHtoL s2 + [d16 c bes, a,] g,4 g | + a2 a, | + d2 s4 \LHtoR [a'16 g' f' e'] | + d'4 \LHtoL s2 [a,16 g, f, e,] | + d,4 s2 d'4 | + g2 g, | + a,4 \LHtoR a'' gis'' g'' | + fis''4 f''2 e''4~e'' + d''2 c''4~c'' + b'2 a'4~a' + g'2 f'4~f' + e'2 d'4 | + \LHtoL e,2^\fermata s | + s1 + s4 e fis gis | + a4 b c'2 | + \LHtoR fis4 a c' ees' | + fis'4 a' c'' ees'' | + c'''2. [bes''8 a''] | + bes''4 a'' g'' f'' | + s1 + \LHtoL s4 c d e | + f2 e | + d2 c | + b,2 a, | + e4 e'2 \LHtoR b''4 | + e''4 gis'' a'' \LHtoL b, | + a,4 a2 \LHtoR b''4 | + a'4 gis'' a'' \LHtoL e, | + d,4 d' c' b | + a4 b c' d' | + e4 d' c' d' | + e'4 d' e' e | + a2 s | + s4 a' gis' g' | + fis'4 f' e'2 | + dis'4 d' cis' c' | + <d'2 b> <c'4 a> d | + e4 d e e, | + a,4 \LHtoR [e''16 d'' c'' b'] a'4 \LHtoL s2 + [e16 d c b,] a,4 d | + e2 e, | + a,2. + } + > > + + + \paper{ + barsize=50.0; + } +} diff --git a/mutopia/D.Scarlatti/sonata-k4-l390.ly b/mutopia/D.Scarlatti/sonata-k4-l390.ly new file mode 100644 index 0000000000..9e3c788094 --- /dev/null +++ b/mutopia/D.Scarlatti/sonata-k4-l390.ly @@ -0,0 +1,313 @@ + +\score { + \header {title="Domenico Scarlatti - Sonata K.4 L.390"; + description="Allegro";} + % vOne is right hand outside part, vTwo r.h. inside part, + % vThree left hand outside, vFour l.h. inside. + \notes { + \type Staff=staffOne < + \property Staff.nolines=11 + \keysignature bes; + \time 4/4; + \clef alto; + \type Voice=vOne < +{ +% 1 +\stemup \skip 4..*15/7; g'16 | +% 2 +[g'16 bes' a' c''] [bes' d'' c'' ees''] d''4. g''8 | +% 3 +[fis''8 g''] [a'' c''] [bes' c''] [d'' g'] | +% 4 +[fis'8 g'] [a' c'] [bes c'] [d' g'] | +% 5 +[fis'8 g'] a' \stemdown d [g bes,] [c d] | +% 6 +[g,8 g8.] s16 \stemup ees'8 [f' a'] [bes'16 ees'' d'' c''] | +% 7 +[d''8 ees''] [f'' bes'] \stemdown [f' d'] [ees'16 g' b d'] | +% 8 +[c'16 ees' d' f'] [ees' g' f' aes'] \stemup [b' d'' cis'' e''] +[d''8 e''] | +% 9 +[f''8 g''] [a'' d''] \stemdown [a16 cis' b d'] [cis' e' a cis'] | +% 10 +\stemup [f'8 g'] [a' d'] [cis' d'] [e'16 g' f' e'] | +% 11 +[f'16 a' d''8]~[d''16 e'' c''8]~[c''16 d'' bes' g'] [a' e'' f''8] +| +% 12 +e''8 d''4~[d''16 cis''] [d'' bes' a' g'] [a' bes' cis'' a'] | +% 13 +[bes'16 cis'' d'' e''] [a' g'' f'' e''] [f'' e'' d'' c''] [d'' +e'' f'' g''] | +% 14 +[a''16 cis'' d'' e''] a' \stemdown [f' e' d'] a,4~a,16 \stemup +[d'' cis'' b'] | +% 15 +[a''16 cis'' d'' e''] [a' d'' cis'' b'] cis''4~[cis''16 cis'' d'' +e''] | +% 16 +[a'8 a''8]~[a''16 g'' f'' e''] [f''8 e''16 d''] [cis''8 d''] | +% 17 +cis''4 \stemdown [cis'16 a g f] [e8 a] d \stemup g' | +% 18 +[a'16 cis' d' e'] a \stemdown [f e d] a,4~a,16 \stemup [d' cis' +b] | +% 19 +cis'4~[cis'16 cis' d' e'] [a8 a']~[a'16 g' f' e'] | +% 20 +[f'16 a' d''8]~[d''16 e'' cis''8] d''4 [a'8 g'] | +% 21 +fis'8 d'4 cis'8 [d'8. e'16] [fis'8. g'16]~ +% 22 +[g'16 a'8 fis'16] [bes'8. cis''16] [cis''8 d''] r8. d'16 | +% 23 +[d'16 fis' e' g'] [fis' a' g' bes'] a'4. bes'8 | +% 24 +[c''8 d''] [ees'' fis'] [g' a'] [bes' b'] | +% 25 +[c''8 d''] [ees'' g''] [f'' ees''] [d'' c''] | +% 26 +[g''16 b' c'' d''] g' \stemdown [ees' d' c'] g,4~g,16 \stemup +[c'' b' a'] | +% 27 +[g''16 b' c'' d''] [g' c'' b' a'] b'4~b'16 \stemdown [f' ees' d'] +| +% 28 +g8 \stemup g''8~[g''16 f'' ees'' d''] ees''8 \stemdown f [g aes] +| +% 29 +g,8 \stemup [ees'16 f'] [d'8 ees'] [f' g'] g'16 \stemdown [c' bes +a] | +% 30 +[g16 g'] \stemup cis''8 [d''16 c''' bes'' a''] [bes''8 a''16 g''] +[fis''8 g''] | +% 31 +[a''16 fis'' g'' a''] d'' \stemdown [bes' a' g'] d,4~d,16 \stemup +[g'' fis'' e''] | +% 32 +[fis''16 fis'' g'' a''] d'' \stemdown [bes' a' g'] [d'' a' fis' +a'] s \stemup [fis''16 g'' a''] | +% 33 +d''8 g''8~[g''16 c''' bes'' a''] [bes''8 a''16 g''] [fis''8 g''] +| +% 34 +[a''16 a' bes' c''] \stemdown [fis' d' c' bes] [a8 d] g s | +% 35 +d4~d16 \stemup [g' fis' e'] [d'' fis' g' a'] d' \stemdown [bes a +g] | +% 36 +d,4~d,16 \stemup [g' fis' e'] d'' [fis' g' a'] [d' g'] [fis' e'] +| +% 37 +d''4~d''16 [fis' g' a'] d' \stemdown [bes a g] [d a g fis] | +% 38 +[g8 ees] [d d,] g,4 \stemup [bes'16 g' a' fis'] | +% 39 +bes'8 g'4 fis'8 [g'8. a'16] [bes'8 c''] | +% 40 +[d''8. d''16] [ees''8 fis'' ] [fis'' g''] r8. s16 | +} +{ +s1 s s s s s s s s s s +%12 +cis''8 s s4 s2 | +s1 s s s +% 17 +<e''4 a'> s4 s2 | +s1 s s s +%22 +s4 s8. a'16 d'4 s4 | +s1 +%24 +s2 s4. d'8 | +%25 +ees'8 f' g' s s2 | +s1 s s +%29 +s4. c'8 s4 ees'16 +} + > + \type Voice=vTwo < + { +s1 s s s s s s s s s +% 11 +\stemdown s4. [c''16 g'] fis'8 s8 [a'8. b'16] | +% 12 +s16 \skip 4..*71/7; +% 16 +[f''16 a' bes'8]~[bes'16 a'8 g'16] | +s1 s s +% 20 +[f'8. f'16] [e'8. g'16]~[g' bes' a' g'] [fis' d' e' cis'] | +% 21 +[d'16 c' bes a] [g bes a g] [fis a g8] [a16 d bes8] | +% 22 +[ces'8 d']~[d'16 g' e' g'] s2 | +s1 s +% 25 +s4. \skip 4..*64/7; +% 29 +c'8 [f'16 d' ees' d'] \skip 4..*12/7; +% 30 +[bes''16 d'' ees''8]~[ees''16 d''8 c''16] | +% 31 +\skip 4..*40/7; +% 33 +[bes''16 d'' ees''8]~[ees''16 d''8 c''16] | +% 34 +\skip 4..*48/7; | +% 37 +fis'4~fis'16 \skip 4..*27/7; | +% 39 +[g'16 f' ees' d'] [c' ees' d' c']~[c' bes c'8]~[c'16 d'8 fis'16]~ +% 40 +[fis'16 a' bes' g']~[g' c'' a'd'] <g'4 bes'> +} > + \type Voice=vThree < +{ +% 1 +\stemdown \skip 4..*23/7; +% 2 +g16 [g bes a c'] [bes d' c' ees'] | +% 3 +[d'16 fis' e' g'] [fis' a' d' fis'] [g bes a c'] [bes d' c' ees'] +| +% 4 +[d16 fis e g] [fis a d fis] [g, bes, a, c] [bes, d c ees] | +% 5 +[d16 fis e g] fis \stemup [c' bes a] [bes d' g'8]~ [g'16 a' +fis'8] | +% 6 +[g'16 ees' d' c'] \stemdown [d' bes a g] [a ees' d' c'] [d'8 a] | +% 7 +[bes16 d' c' ees'] [d' f' ees' g'] \stemup [a' c'' b' d''] [c''8 +d''] | +% 8 +[ees''8 f''] [g'' c''] \stemdown [g' e'] [f'16 a' cis' e'] | +% 9 +[d'16 f' e' g'] [f' a' g' bes'] \stemup [cis''8 d''] [e'' g'] | +% 10 +\stemdown [d16 f e g] [f a g bes] [a, cis b, d] [cis8 a,] | +% 11 +[d8 f] [g a] [d g] [cis d] | +% 12 +a2 d' | +% 13 +[g'8 e'] [f' cis'] d' a'4 g'8 | +% 14 +a,4~a,16 \stemup [d'' cis'' b'] [a'' cis'' d'' e''] a' \stemdown +[f' e' d'] | +% 15 +a,4~a,16 [f' e' d'] [a' e' cis' e'] [a g' f' e'] | +% 16 +[a16 f' e' d'] [a e' d' cis'] [d'8 g] [a bes] | +% 17 +a,16 \stemup [e' f' g'] [e'8 f'] [g' f'16 e'] f' \stemdown [d' +cis' b] | +% 18 +a,4~a,16 \stemup [d' cis' b] [a' cis' d' e'] a \stemdown [f e d] +| +% 19 +[a16 e cis e] [a, g f e] [a, f e d] [a, e d cis] | +% 20 +[d8 g] [a a,] d,2 | +% 21 +d,2 d, | +% 22 +d,2 d,4 \skip 4..*11/7; +% 23 +d16 [d fis e g] [fis a g bes] | +% 24 +[a16 c' bes d'] [c' ees' d' c'] [bes c' a bes] [g a f g] | +% 25 +[ees16 f d ees] [c d bes, c] [aes, bes, g, aes,] [f, aes, g, f,] +| +% 26 +g,4~g,16 \stemup [c'' b' a'] [g'' b' c'' d''] g' \stemdown [ees' +d' c'] | +% 27 +g,4~g,16 [ees' d' c'] [g' d' b d'] g \stemup [b' c'' d''] | +% 28 +[g'16 ees'] \stemdown [d' c'] [g d' c' b] [c' g'] \stemup [d'' +c''] [b'8 c''] | +% 29 +[d''16 d'] \stemdown g8 [b16 g f ees] [d8 g] c \stemup a' | +% 30 +bes'8 \stemdown [fis'16 e'] [fis'8 d'] [g' c'] [d' ees'] | +% 31 +d,4~d,16 \stemup [g'' fis'' e''] [fis'' fis'' g'' a''] d'' +\stemdown [bes' a' g'] | +% 32 +d4~d16 \stemup [g'' fis'' e''] fis''4 \stemdown [d'16 c'' bes' +a'] | +% 33 +[d'16 bes' a' g'] [d' a' g' fis'] [g'8 c'] [d' ees'] | +% 34 +[d8 d'] \stemup [a' bes'] [c'' bes'16 a'] [bes'8 c''] | +% 35 +[d''16 fis' g' a'] d' \stemdown [bes a g] d,4~d,16 \stemup [g' +fis' e'] | +% 36 +[d''16 fis' g' a'] d' \stemdown [bes a g] d,4~d,16 [bes a g] | +% 37 +[d'16 a fis a] [d c' bes a] d8 \stemup d''8. [c''16 bes' a'] | +% 38 +[bes'16 d'' g''8]~[g''16 a''8 fis''16] g''4 s4 | +% 39 +\stemdown g,2 g, | +% 40 +g,2 g,4 +} +{s1 s s s s s s s s s s s s s s s +%17 +s4 s8 d' s2 | +s1 s s s s s s s s s s +% 29 +g'16 s8. s2 s8 fis' | +%30 +g8 s s2. | +s1 s s +%34 +s4. g'8} +{s1 s s s s s s s s s s s s s s s s s s s s s s s s s s s +% 29 +b'16} + > + \type Voice=vFour < + { +\stemdown \skip 4..*74/7; +% 5 +[g'16 bes a8.] c'16~c' +% 6 +\skip 4..*81/7; +% 11 +\stemup [f16 f' e'8] \skip 4..*11/7; +% 12 +\stemdown [e'16 f' d'] [e' f' g'8] s [fis'16 e'] [fis' g' a' +fis'] | +% 13 +s2 s8 a'4 g'8 | +% 14 +\skip 4..*48/7; | +% 17 +s2 [g'16 e' d' cis'] \skip 4..*39/7; +% 20 +\skip 4..*135/7; +% 28 +aes'8 [b16 g'8 f'16] | +% 29 +s16 \skip 4..*13/7; s8 | +% 30 +s8 \skip 4..*68/7; +% 34 +s8 [c''16 g'8 fis'16] [bes'' g' f' ees'] | +% 35 +\skip 4..*50/7; +% 38 +[g''16 c''] [bes'8 a'] s16 [ees'' d'' c''] +} >>} + \paper{barsize=50.0; \translator {\StaffContext \consists +Bar_number_engraver;}} +} diff --git a/mutopia/E.Satie/GNUmakefile b/mutopia/E.Satie/GNUmakefile new file mode 100644 index 0000000000..ff57490f11 --- /dev/null +++ b/mutopia/E.Satie/GNUmakefile @@ -0,0 +1,10 @@ +# + +depth = ../.. + +examples=gnossienne-4 petite-ouverture-a-danser +LOCALSTEPMAKE_TEMPLATES=mutopia + +include $(depth)/make/stepmake.make + + diff --git a/mutopia/gnossienne-4.ly b/mutopia/E.Satie/gnossienne-4.ly index baa756e238..f0c9e553a2 100644 --- a/mutopia/gnossienne-4.ly +++ b/mutopia/E.Satie/gnossienne-4.ly @@ -158,4 +158,3 @@ lower = \type Voice=two \notes \relative c{ } } -% EOF diff --git a/mutopia/E.Satie/petite-ouverture-a-danser.ly b/mutopia/E.Satie/petite-ouverture-a-danser.ly new file mode 100644 index 0000000000..4625686861 --- /dev/null +++ b/mutopia/E.Satie/petite-ouverture-a-danser.ly @@ -0,0 +1,165 @@ +\header { + filename = "petite-ouverture-a-danser.ly"; + title = "Petite Ouverture \\`a danser"; + subtitle = "4"; + source = ""; + composer = "Erik Satie (1866-1925)"; + enteredby = "jcn"; + copyright = "Public Domain"; +} + +%{ + Tested Features: +%} + +\version "1.0.14"; + +\include "nederlands.ly" + +global = \notes { + \key a \minor; + \time 2/4; + s2*10 + \bar "||"; + s2*11 + \bar "||"; + \time 3/4; + s2. + \bar "||"; + \time 2/4; + s2*4 + \bar "||"; + \time 3/4; + s2.*2 + \bar "||"; + \time 2/4; + s2*18 + \bar ".|"; +} + +i = \type Staff \notes\relative c''{ + \type Voice=i + \stemup + + c8.( es16 bes4 ~ | )bes8 r c8.( bes16 | des4 c8. bes16 | c4 ~ ) c8 r | + c4( f,8. as16 | bes4 ~ )bes8 r | f8.( es16 f4 | es )f | + g8.( es16 f4 ~ | )f f8 r + + % Au mouvement + f4 ( g | a2 ~ | )a | a4-- a-> ~ | a8 r b!8.( a16 | )b4 c-- ~ | + c8 r b8.( d16 | a4 ~ )a8 r | d4( cis | c! b8. d16 | a4 ~ )a8 r + + a8.( g16 a4 ~ ) a8 r | + + a4-> ~ a8 r | g8.( a16 )fis4 | e8.( d16 e4 | fis ~ ) fis8 r + + d4( d-- ~ )d8 r e4( f!2 ~ | + + f4 ~ )f8 r | es4( g | as bes ~ | )bes c( | )b!2 | c4( d | )bes2 | c4~ c8 r | + + % copy from begin: 1-10 + c8.( es16 bes4 ~ | )bes8 r c8.( bes16 | des4 c8. bes16 | c4 ~ ) c8 r | + c4( f,8. as16 | bes4 ~ )bes8 r | f8.( es16 f4 | es )f | +% g8.( es16 f4 ~ | )f f8 r ? + g8.( es16 f4 ~ | )f ~ f8 r + +} + +ii = \type Staff \notes\relative c'{ + \type Voice=ii + \stemdown + + r8 <es as> r <des f> | r <es g> r <es as> | r <f as> r <f as> | + r <es g> r <es g> | r <es as> r <as, des> | r <des f> r <des f> | + r <as des> r <bes des> | r bes r <as c> | r <g des'> r <bes d> | + r <a! c> r <a c> + + % Au movement + r <as des> r <c e> | r <c f> r <d! f> | r <cis e> r <cis e> | + r <c! f> r <d f> | r <d f> r <d g> | r <e g> r <e g> | r <e g> r <d g> | + r <d fis> r <d fis> | r <fis b> r <fis a> | r <e a> r <d g> | + r <d fis> r <d fis> | + + r <cis e> r <cis fis> r <cis f> | + + r <cis e> r <cis e> | r <b d> r <a d> | r <g b> r <a cis> | + r <a cis> r <a cis> | + + \translator Staff=bass\stemup + r <g b> r <fis a> r <fis a> | r <g bes> + \translator Staff=treble\stemdown + r <a c> r <a d> | + + r <bes d> r <bes d> | r <g c> r <bes d> | r <c es> r <d g> | + r <d f> r <es g> | r <e! g> r <d fis> | r <e a> r <fis a> | + r <es g> r <es g> | r <es g> r <es g> | + + + % copy from begin: 1-10 + r8 <es as> r <des f> | r <es g> r <es as> | r <f as> r <f as> | + r <es g> r <es g> | r <es as> r <as, des> | r <des f> r <des f> | + r <as des> r <bes des> | r bes r <as c> | r <g des'> r <bes d> | + r <a! c> r <a c> + +} + +lower = \type Staff \notes \relative c{ + \type Voice=iii + + <as4 as'> <es es'> | r <as as'> | <des, des'> <f f'> | <c c'> r | + <as as'> <des des'> | <bes bes'> r | <des des'> <bes bes'> | + <g g'> <f f'> | <c' c'> <bes bes'> | <f f'> r | + + % Au movement + <des' des'> <c c'> | <f f'> <d! d'!> | <a a'> r | <f' f'> <d d'> | + r <f f'> | <e e'> <c c'> | r <g g'> | <d' d'> r | <b b'> <fis fis'> | + <a a'> <b b'> | <d d'> r | + + <a a'> <fis fis'> r | + + <a a'> r | <b b'> <d d'> | <e e'> <a, a'> | <fis fis'> r | + + <g g'> <d d'> r | <g g'> <f! f'!> <d' d'> | + + <bes bes'> r | <c c'> <bes bes'> | <as as'> <g g'> | <d' d'> <c c'> | + <e! e'!> <b! b'!> | <a a'> <d d'> | <es es> r | <c c'> r + + % copy from begin: 1-10 + <as'4 as'> <es es'> | r <as as'> | <des, des'> <f f'> | <c c'> r | + <as as'> <des des'> | <bes bes'> r | <des des'> <bes bes'> | + <g g'> <f f'> | <c' c'> <bes bes'> | <f f'> r | + +} + +\score { + \type GrandStaff < + \type Staff = treble < + \global + \clef violin; + \i + \ii + > + \type Staff = bass < + \global + \clef bass; + \lower + > + > + + \paper { + gourlay_maxmeasures = 5.; + textheight = 295.\mm; + \translator{ \OrchestralScoreContext } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + } + } + \midi { + \tempo 4 = 60; + } +} + diff --git a/mutopia/F.Schubert/AnSylvia.ly b/mutopia/F.Schubert/AnSylvia.ly index 919d880d03..b9f51c010f 100644 --- a/mutopia/F.Schubert/AnSylvia.ly +++ b/mutopia/F.Schubert/AnSylvia.ly @@ -32,8 +32,8 @@ pianoRH=\notes \relative c'' { %4 <[d a' b> <d a' b> <d g! b> <d g b>] <[d g a> <d g a> <d fis a> <d fis a>] | - \bar "|:"; %5 + \repeat 2 { <[b_. d g( \pp > <b_. d g> <b_. d g> <)b_. d g>] <[b_. d g(> <b_. d g> <b_. d g> <)b_. d g>] | @@ -131,7 +131,7 @@ pianoRH=\notes \relative c'' { %29 <[d a' b> <d a' b> <d g! b> <d g b>] <[d g a> <d g a> < d fis! a> <d fis a>] - \bar ":|"; + } %30 <b2 d2 g2> r2 \bar "|."; @@ -144,7 +144,7 @@ pianoLH=\notes \relative c { )b4-. [d,8.( d16] )c'4-. [d,8. d16] | %4 d'4-. d,-. d'-. [d,8.( d16 ] - \bar "|:"; + \repeat 2 { %5 )g4-. d_. r4 [g8.( g16] | %6 @@ -195,7 +195,7 @@ pianoLH=\notes \relative c { )b4 [d,8.( d16] )c'4-. [d,8. d16] | %29 d'4-. d,-. d'-. [d,8.( d16 ] - \bar ":|"; + } %30 )g2 r2 \bar "|."; @@ -206,7 +206,7 @@ tune=\notes \relative c'' { \property Voice.dynamicdir = "1" r1 | r1 |r1 | r1 | - \bar "|:"; + \repeat 2 { %5 b2. g4 | %6 @@ -255,7 +255,7 @@ tune=\notes \relative c'' { \! g2 r2 | %27 r1 | r1 | r1 - \bar ":|"; + } r1 \bar "|."; } diff --git a/mutopia/GNUmakefile b/mutopia/GNUmakefile index 9a2952a512..13cb1b548b 100644 --- a/mutopia/GNUmakefile +++ b/mutopia/GNUmakefile @@ -2,7 +2,7 @@ depth = .. -SUBDIRS = J.S.Bach Coriolan W.A.Mozart F.Schubert D.Zipoli Hymns D.Scarlatti L.Mozart +SUBDIRS = J.S.Bach Coriolan W.A.Mozart F.Schubert D.Zipoli Hymns D.Scarlatti L.Mozart E.Satie examples= gallina LOCALSTEPMAKE_TEMPLATES=mutopia diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly index 274263993a..2b1d22055e 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly @@ -14,83 +14,81 @@ copyright = "public domain"; \version "1.0.14"; -% urg, this all changed and was never fixed -% 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 { - \property Voice . textstyle = "italic" +% upper = \type Staff \notes\relative c { +upper = \type Staff=upper \notes\relative c { + \type Voice=i + \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] - r [g,( c )d] r [b-1( d-2 \!)g-5] | - r16\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 [c,-1 e-3 f-4] r [g, d'-3 f-5] | +% 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 + r g,( c )d r b-1( d-2 \!)g-5 | + r16\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 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 [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 [c, g' a-4] r [c, f-2 a] - r [d, f-2 b-5] r [e, g-2 c-5] | - r\p [d, g c-5] r [d, g b-4] - r [c, g'-3 b-5] r [c, fis-2 a-4] | - r [b, d a'-5] r [b, d g-4] - r [a, c g'-5] r [a, c f!-4] | +% 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 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 c, g' a-4 r c, f-2 a + r d, f-2 b-5 r e, g-2 c-5 | + r\p d, g c-5 r d, g b-4 + r c, g'-3 b-5 r c, fis-2 a-4 | + 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 } + < + { \stemup f4 r } + \type Voice=ii { \stemdown <g,4 d'> r } > - \onevoice - % s - % ugh beam across staffs slur starts at lower staff - \translator Staff=bass\stemup - r16 [g,,-5( b-4 d ] - [f-1 \translator Staff=treble\stemdown g16-1 b d] | \stemup )b - \translator Staff=bass\stemdown - [g-5( b-4 d-2] f-1 - \translator Staff=treble\stemup - [g16-1 b-2 d] )b - \translator Staff=bass\stemup + \stemboth + \translator Staff=lower\stemup + r16 g,,-5( b-4 d + [ f-1 \translator Staff=upper\stemdown g16-1 b d ] | + \stemup )b + \translator Staff=lower\stemdown + [ g-5( b-4 d-2 ] f-1 + \translator Staff=upper\stemup + [ g16-1 b-2 d ] )b + \translator Staff=lower\stemup \clef "violin"; - [g-4 b-2 d-1] + [ g-4 b-2 d-1 ] \stemup % urg, below translator change affects previous beam too!? % howto separate translator command from previous beam end? - \skip 4*0; - [\translator Staff=treble f-2 g-3 b-5 f-2] | + \translator Staff=upper f-2 g-3 b-5 f-2 | \stemboth - [e-1\f c'-5( g-3 f-2] [e-1 c'-5 g-3 e-2] - [)d c'-5( f,-3 e-2] [d-1 b'-5 f-3 d-2] | - [)c b'-5( e,-3 d-2] [c-1 a'-5 e-3 c-2] - [)b-1 a'-5( d,-3 c-2] [b-1 g'-5 d-3 b-2] | -% [)a g'-5 c,-4 b] [a-"poco a poco dim." fis'-5 c-2 a-1] - [)a g'-5 c,-4 b] [a fis'-5 c-2 a-1] - [b-2 f' d-4 c] [b f' d-4 b-2] | - [g e' c-3 b] [a e'-5 c-3 a-1] - [fis-2 d' b-3 a] [g-1 d'-5 b-4 g-2] | - [e c'-5 a-4 g-3] [fis-2 c'-5 a-4 fis-2] - [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] - [es-2 fis-3 a-4 c-5] - \type Staff=treble < - { \voiceone r [c8 b16] } - { \voicetwo [d,8 f-2] } + e-1\f c'-5( g-3 f-2 e-1 c'-5 g-3 e-2 + )d c'-5( f,-3 e-2 d-1 b'-5 f-3 d-2 | + )c b'-5( e,-3 d-2 c-1 a'-5 e-3 c-2 + )b-1 a'-5( d,-3 c-2 b-1 g'-5 d-3 b-2 | +% )a g'-5 c,-4 b a-"poco a poco dim." fis'-5 c-2 a-1 + )a g'-5 c,-4 b a fis'-5 c-2 a-1 + b-2 f' d-4 c b f' d-4 b-2 | + g e' c-3 b a e'-5 c-3 a-1 + fis-2 d' b-3 a g-1 d'-5 b-4 g-2 | + e c'-5 a-4 g-3 fis-2 c'-5 a-4 fis-2 + 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 + es-2 fis-3 a-4 c-5 + < + { \stemup r c8 b16 } + \type Voice=ii { \stemdown d,8 f-2 } > - \onevoice | + \stemboth | <c1\mf g e> \bar "|."; } -two = \type Voice=three \notes\relative c{ - \property Voice . textstyle = "roman" +% lower = \type Staff \notes\relative c{ +lower = \type Staff=lower \notes\relative c{ + \type Voice=i + \property Voice . textstyle = "roman" c4-5 e-3 g-\mordent^"(\\textsharp)" g,4 | d'4-\mordent-5 f-3 a-\mordent^"(\\textsharp)" a,4 | e'-5 e'-\mordent-1 a,-4 b-\upprall | @@ -99,49 +97,48 @@ two = \type Voice=three \notes\relative c{ f4-1 e d-3-\prall c | g'-\mordent^"(\\textsharp)" g, g'-\mordent g, | g'-\mordent g, g'-\mordent g, | - g' r s s | s s s s \clef bass; | - \type Staff=bass < - { \voicethree g1 ~ g ~ g ~ g ~ g ~ g ~ g } - { \voicefour g,1 ~ g ~ g ~ g ~ g ~ g ~ g } + g' r s s | s s s s \clef "bass"; | + < + { \stemup g1 ~ g ~ g ~ g ~ g ~ g ~ g } + \type Voice=ii { \stemdown g,1 ~ g ~ g ~ g ~ g ~ g ~ g } > <c,1 c,> \bar "|."; } -global = \notes{ +global = \notes{ \time 4/4; } -treble_staff = \type Staff = treble < - \global - \one -> - -bass_staff = \type Staff = bass < - \clef "bass"; - \global - \two -> - -grand_staff = \type GrandStaff < - \treble_staff - \bass_staff -> - \score{ - % Moderato - \grand_staff -% \include "preludes-paper.ly"; + % Moderato + \type GrandStaff < + \type Staff = upper < + \global + \upper + > + \type Staff = lower < + \global + \clef "bass"; + \lower + > + > \paper{ + \include "preludes-paper.ly"; % no slur damping slur_slope_damping = 10.0; - % linewidth= 193.\mm; - linewidth= 180.\mm; gourlay_maxmeasures = 4.0; \translator{ - \GrandStaffContext - minVerticalAlign = 3.0*\staffheight; - maxVerticalAlign = 3.0*\staffheight; + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = "1"; + beamAutoEnd8 = "1/2"; + beamAutoEnd16 = "1/4"; } } \midi{ \tempo 4 = 80; } diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly index 13ed9b83e0..d8bf07e300 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly @@ -11,84 +11,86 @@ copyright = "public domain"; } \version "1.0.14"; -one = \notes\relative c{ - \property Voice . textstyle = "italic" - r8\mf [c'-1( e-2 g-4] [e-2 c-1 bes'-5 g-3] | - [)a-4\< c,-1( f-2 a-4] [f c c'-5 a-3] | - [)b-4 g-1( b-2 d-4] [b-2 g f'-5 \!d-3] | +upper = \type Staff \notes\relative c{ + \type Voice=i + \property Voice . textstyle = "italic" + r8\mf c'-1( e-2 g-4 e-2 c-1 bes'-5 g-3 | + )a-4\< c,-1( f-2 a-4 f c c'-5 a-3 | + )b-4 g-1( b-2 d-4 b-2 g f'-5 \!d-3 | < - {\voiceone )e2-4\f r4 e-5 } - \type Voice = second {\voicetwo <c2 g > r4 <c g > } + {\stemup )e2-4\f r4 e-5 } + \type Voice = ii {\stemdown <c2 g > r4 <c g > } > - \onevoice | - \type Staff < - { \voiceone d2-4 r4 d-4 } - \type Voice = second { \voicetwo <c2 a > r4 <c a > } + \stemboth | + < + { \stemup d2-4 r4 d-4 } + \type Voice = ii { \stemdown <c2 a > r4 <c a > } > - \onevoice | - \type Staff < - { \voiceone d8 } - \type Voice = second { \voicetwo <b 8 g > } + \stemboth | + < + { \stemup d8 } + \type Voice = ii { \stemdown <b 8 g > } > - \onevoice - [g, 8-1\mf( b-2 d-4] + \stemboth + g, 8-1\mf( b-2 d-4 < - { \voiceone )b 4 e-5 } - \type Voice = second { \voicetwo g, 4 b } + { \stemup )b 4 e-5 } + \type Voice = ii { \stemdown g, 4 b } > - \onevoice | - \type Staff < - { \voiceone c2 r4 < {c-5 ~ c8} {a 4 ~ a 8} > } - { \voicetwo c2 r4 e, 4 ~ e 8 } + \stemboth | + < + { \stemup c2 r4 < {c-5 ~ c8} {a 4 ~ a 8} > } + \type Voice=ii { \stemdown c2 r4 e, 4 ~ e 8 } > - \onevoice - [d,-1\p( fis-2 a-4] [fis-2 d-1 c'-5 a-3] | - [)b-4\< g-1( b-2 d-4] [ b-2 g-1 f'!-5 d-3] | - [)e-4 g,-1( c-2 e-4] [c-2 g g'-5 e-3] | - [)fis-4 a,-1( c-2 fis-4] [c a a'-5 \!fis-3] | + \stemboth + d,-1\p( fis-2 a-4 fis-2 d-1 c'-5 a-3 | + )b-4\< g-1( b-2 d-4 b-2 g-1 f'!-5 d-3 | + )e-4 g,-1( c-2 e-4 c-2 g g'-5 e-3 | + )fis-4 a,-1( c-2 fis-4 c a a'-5 \!fis-3 | < - { \voiceone )g2-5\f } - \type Voice = second { \voicetwo <d2 b > } + { \stemup )g2-5\f } + \type Voice = ii { \stemdown <d2 b > } > - \onevoice + \stemboth r4 b4-2( | - [c,8-1 e-2 g c ] [g-2 e-1 bes'-4 g-2] | - [)a16->-3 g-2 f-1 e-3] [d c b !-3 a-2] - [b-3\< g-1 a b ] [c-1 d e \!f] | + c,8-1 e-2 g c g-2 e-1 bes'-4 g-2 | + )a16->-3 g-2 f-1 e-3 d c b !-3 a-2 + b-3\< g-1 a b c-1 d e \!f | g4-5\ff - \type Staff < - { \voiceone c,2-5 b 4-4 } - { \voicetwo g 2-2 d 4-1 } + < + { \stemup c,2-5 b 4-4 } + \type Voice=ii { \stemdown g 2-2 d 4-1 } > - \onevoice - \type Staff < - { \voiceone c1^5 } - { \voicetwo e, 1_1} + \stemboth + < + { \stemup c1^5 } + \type Voice=ii { \stemdown e, 1_1} > - \onevoice + \stemboth \bar "|."; } -two = \notes\relative c{ - \type Staff < - { \voiceone c1 ~ | c ~ | c } - { \voicetwo c,1 ~ | c ~ | c } +lower = \type Staff \notes\relative c{ + \type Voice=i + < + { \stemup c1 ~ | c ~ | c } + \type Voice=ii { \stemdown c,1 ~ | c ~ | c } > - \onevoice | - r8 [c-5( e-3 g-1] [e-3 c-5 c' e,-4] | - [)fis-3 d-5( fis-3 a-1] [fis-3 d-5 d' fis,-4] | + \stemboth | + r8 c-5( e-3 g-1 e-3 c-5 c' e,-4 | + )fis-3 d-5( fis-3 a-1 fis-3 d-5 d' fis,-4 | )g2-3 r4 g-2( | - [)a8 a,-5( c-4 e-2] [c-4 a-5 g' e-3] | + )a8 a,-5( c-4 e-2 c-4 a-5 g' e-3 | )fis2 r4 d-4 | g-\mordent-"(\\textsharp)" g, 4 g'-\mordent g, | % mordents in brackets... g'-\mordent g, g'-\mordent g, | g'-\mordent g, g'-\mordent g, | - [g'8 g,-5( b-4 d-2] [b-4 g-5 f'!-1 d-3] | - [)e-2 c-4 e-2 g-1] [e-3 c-5 c' e,-4] | - \property Voice . textstyle = "finger" + g'8 g,-5( b-4 d-2 b-4 g-5 f'!-1 d-3 | + )e-2 c-4 e-2 g-1 e-3 c-5 c' e,-4 | + \property Voice . textstyle = "finger" f1^"3\\_1" ~ | - [f8 d-3 e-2 c-4] g'4-1 g,^"5\\_2" | + f8 d-3 e-2 c-4 g'4-1 g,^"5\\_2" | <c1 c,1> \bar "|."; } @@ -97,30 +99,29 @@ global = \notes{ \time 4/4; } -trebleStaff = \type Staff = treble < - \global - \one -> - -bassStaff = \type Staff = bass < - \clef "bass"; - \global - \two -> - -grandStaff = \type GrandStaff < - \trebleStaff - \bassStaff -> - -a4 = \paper{ - linewidth= 193.\mm; -} - \score{ - % Moderato - \grandStaff - \paper{ \a4 } + \type GrandStaff < + \type Staff = upper < + \global + \upper + > + \type Staff = lower < + \global + \clef "bass"; + \lower + > + > + \paper{ + \include "preludes-paper.ly"; + gourlay_maxmeasures = 4.0; + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = "1"; + beamAutoEnd8 = "1/2"; + beamAutoEnd16 = "1/4"; + } + } \midi{ \tempo 4 = 100; } \header { opus = "BWV 939"; diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-3.lym4 b/mutopia/J.S.Bach/Petites-Preludes/preludes-3.lym4 index 302a8adfb9..6da0ff5e84 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-3.lym4 +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-3.lym4 @@ -20,8 +20,9 @@ copyright = "public domain"; \version "1.0.14"; -one = \notes \transpose c`` { - \textstyle "italic"; +upper = \type Staff \notes \transpose c'' { + \type Voice=i + \property Voice . textstyle = "italic" %# s(^c@ ^es@ ^g@ ^\p(\<@ ^\!@ ^)\!@ ^\>@) t(c,es,g,^\p(\<@,\!,^)\!@,\>) %# s(c es g ^(@ ^@ ^)@) @@ -47,12 +48,14 @@ one = \notes \transpose c`` { %# s(c fis a -"poco a poco cresc.") - t(c,fis,a,-"poco a poco cresc.") +%# t(c,fis,a,-"poco a poco cresc.") + s(c fis a) s(d g bes) s(d fis c`) s(cis g bes) - s(c es a !-"dim.") +%# s(c es a !-"dim.") + s(c es a !) s(bes` e g) s(a` c g) @@ -66,24 +69,25 @@ one = \notes \transpose c`` { s(fis` a` c) r16\p [g` a` c] [b` g` b` g`] r g` r g` %# s(a` c fis -"poco cresc.") - t(a`,c,fis,-"poco cresc.") +%# t(a`,c,fis,-"poco cresc.") + s(a` c fis) s(c fis a) s(b` d g) - s(b` d f -"dim.") +%# s(b` d f -"dim.") + s(b` d f) s(g` c es) s(fis` c es) s(fis` c es) - r16 [g`(\< b` d] [b` g` b` d] [es c a` )\!fis] | + r16 [g`(\< b` d] [b` g` b` d] [es c a` \!fis] | < - {\voiceone g2.-\fermata\mf} - {\voicetwo <b`2. d>} + {\stemup ) g2.-\fermata\mf} + \type Voice=ii {\stemdown <b`2. d>} > - \onevoice + \stemboth \bar "|."; } -two = \notes{ - \clef bass; +lower = \type Staff \notes{ % c4 r [g8-.(\ped )es-.\*] | c4 r [g8-.( )es-.] | c4 r [g8-.( )es-.] | @@ -145,35 +149,27 @@ two = \notes{ } global = \notes{ - \meter 3/4; + \time 3/4; \key es; } -treble_staff = \type Staff = treble < - \global - \one -> - -bass_staff = \type Staff = bass < -% bass = Staff < - \clef "bass"; - \global - \two -> - -grand_staff = \type GrandStaff < - \treble_staff - \bass_staff -> - -a4 = \paper{ - linewidth= 193.\mm; -} - \score{ % Semplice e non troppo legato - \grand_staff - \paper{ \a4 } + \type GrandStaff < + \type Staff = upper < + \global + \upper + > + \type Staff = lower < + \global + \clef "bass"; + \lower + > + > + \paper{ + \include "preludes-paper.ly"; + gourlay_maxmeasures = 4.0; + } \midi{ \tempo 4 = 100; } \header{ opus = "BWV 999"; diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly index 4301782d53..88b1233303 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly @@ -1,167 +1,179 @@ \header{ -filename = "preludes-4.ly"; +filename = "preludes-4.ly"; % blz 8 % Clavierb"uchlein f"ur W. Fr. Bach % Clav. W. Fr. Bach: 27-Praeludium ex d neutral % ca 1720 -composer = "Johann Sebastian Bach (1685-1750)"; -enteredby = "jcn"; -copyright = "public domain"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "public domain"; } \version "1.0.14"; -one = \notes\relative c{ - \property Voice . textstyle = "italic" - r16\p_"legato" - \property Voice . textstyle = "finger" - [d'-1( fis-3 d-1] [a'-2 b-3 cis-4 a-3] - [d-3 cis-2 d-1 e-2] [d-1 fis-3 e-2 d-1] | - \property Voice . textstyle = "finger" - \stemup - )cis4-2 fis-5 ~ [fis8 fis-4] e4-3 ~ | - e16\< \stemboth [a,16( cis a] [d-2 e fis d-1] - [g-3 fis g a-4] [g-3 b a \!g] | +one = \type Staff \notes\relative c { + \type Voice=i + \property Voice . textstyle = "italic" +% r16\p_"legato" + r16\p + \property Voice . textstyle = "finger" + d'-1( fis-3 d-1 a'-2 b-3 cis-4 a-3 + d-3 cis-2 d-1 e-2 d-1 fis-3 e-2 d-1 | + \property Voice . textstyle = "finger" + \stemup + )cis4-2 fis-5 ~ fis8 fis-4 e4-3 ~ | + e16\< \stemboth a,16( cis a d-2 e fis d-1 + g-3 fis g a-4 g-3 b a \!g | \stemup - )fis4-"2\\_3" [e8-2 a-5] <fis4-4 d-2> <gis-5 e-3> | +% )fis4-"2\\_3" e8-2 a-5 <fis4-4 d-2> <gis-5 e-3> | + )fis4 e8-2 a-5 <fis4-4 d-2> <gis-5 e-3> | %5 - <a4-5( e> <fis-4 d-2> <[)g!16-5 d> fis-2 g-3 a-4] + <a4-5( e> <fis-4 d-2> < )g!16-5 d> fis-2 g-3 a-4 \stemboth - [g-3 b a g] | - \property Voice . textstyle = "italic" - [fis_"dim." e fis-3 g] [fis-3 a-5 g fis] - \property Voice . textstyle = "finger" - e4-"2\\_5" ~ e16 [e,( fis g ] | - \property Voice . textstyle = "italic" - [a-4_"dim." g-1 a b] [a-2 c-4 b a] - [g-1 fis-2 g-3 a] [g-3 b a g] | + g-3 b a g | + \property Voice . textstyle = "italic" +% fis_"dim." e fis-3 g fis-3 a-5 g fis + fis e fis-3 g fis-3 a-5 g fis + \property Voice . textstyle = "finger" +% e4-"2\\_5" ~ e16 e,( fis g | + e4 ~ e16 e,( fis g | + \property Voice . textstyle = "italic" +% a-4_"dim." g-1 a b a-2 c-4 b a + a-4 g-1 a b a-2 c-4 b a + g-1 fis-2 g-3 a g-3 b a g | \stemup )fis4\p \skip 4*7; | %10 - \property Voice . textstyle = "finger" - d'4.\mf cis8-"4\\_5" ~ cis b4-5 a8-"4\\_5" ~ | - \property Voice . textstyle = "italic" - a g4-5 fis8-4 ~ [fis16 fis-4-"dim." e-3 d-2] - \property Voice . textstyle = "finger" - e4-"3\\_5" ~ | - [e16 e-5 d cis] d4-5 ~ [d16 d-5 cis b] cis4-5 | + \property Voice . textstyle = "finger" +% d'4.\mf cis8-"4\\_5" ~ cis b4-5 a8-"4\\_5" ~ | + d'4.\mf cis8 ~ cis b4-5 a8 ~ | + \property Voice . textstyle = "italic" +% a g4-5 fis8-4 ~ fis16 fis-4-"dim." e-3 d-2 + a g4-5 fis8-4 ~ fis16 fis-4 e-3 d-2 + \property Voice . textstyle = "finger" +% e4-"3\\_5" ~ | + e4 ~ | + e16 e-5 d cis d4-5 ~ d16 d-5 cis b cis4-5 | \stemboth - [fis,16-1\p a-2 d-5\< c-4] [b-1 d-2 g-5 fis-4] - [d-1 b'-5 a g] [fis-2 e-1 d-4 \!c!-3] | - [b-2 d-1 g a] [fis8-\prall e16-4 d-3] - [d8. e16~] [e d8 cis16] | + fis,16-1\p a-2 d-5\< c-4 b-1 d-2 g-5 fis-4 + d-1 b'-5 a g fis-2 e-1 d-4 \!c!-3 | + b-2 d-1 g a fis8-\prall e16-4 d-3 + d8. e16~ e d8 cis16 | %15 \stemup - r16 [d-1\< fis d] [g a b g-1] [c-3 b c d] [c e d-4 \!c] | - b4-5 a ~ [a8 g-5 ~] [g16 fis8-4 e16-3] | - [fis8-4 e-5~] [e d-5~] d4 cis-4 | - d2\p-"rall." ~ [d16 a-2( b-3 cis-4] )d4-5 | + r16 d-1\< fis d g a b g-1 c-3 b c d c e d-4 \!c | + b4-5 a ~ a8 g-5 ~ g16 fis8-4 e16-3 | + fis8-4 e-5~ e d-5~ d4 cis-4 | +% d2\p-"rall." ~ d16 a-2( b-3 cis-4 )d4-5 | + d2\p ~ d16 a-2( b-3 cis-4 )d4-5 | \bar "|."; } -two = \notes\relative c{ - \property Voice . textstyle = "finger" +two = \type Staff \notes\relative c{ + \type Voice=ii + \stemup + \property Voice . textstyle = "finger" fis4-1( e8-2 a4 a4 gis8-2 | ) a8 - \translator Staff=treble \stemdown - a'4 a8 b4.-"2\\_1" cis8 ~ | + \translator Staff=upper \stemdown +% a'4 a8 b4.-"2\\_1" cis8 ~ | + a'4 a8 b4. cis8 ~ | cis8 - \translator Staff=bass \stemup - a,8 ~ [a d] ~ d d4-> cis8 | + \translator Staff=lower \stemup + a,8 ~ a d ~ d d4-> cis8 | d8 - \translator Staff=treble \stemdown + \translator Staff=upper \stemdown d'4-> cis8-1 ~ cis b4-1 b8 | %5 r8 a4 a8 - \translator Staff=bass \stemup - [g8-1( fis-2] )e4-1 ~ | - e4 d ~ [d16 d-1 cis-2 b-1] cis4-2 ~ | - [cis8 a-3] d4.-1 d4^> cis8-2 | - \translator Staff=treble \stemdown - d4 \stemboth r16 [b-1\< d-2 b~] <g'4-5 e-3 b> - r16 [cis,-1 e-2 \!cis~] | - <a'4-5 fis-3 cis> r16 [d,-1 fis-2 d~] <b'4-5 g-3 d> - r16 [fis-1 a fis~] | + \translator Staff=lower \stemup + g8-1( fis-2 )e4-1 ~ | + e4 d ~ d16 d-1 cis-2 b-1 cis4-2 ~ | + cis8 a-3 d4.-1 d4^> cis8-2 | + \translator Staff=upper \stemdown + d4 \stemboth r16 b-1\< d-2 b~ <g'4-5 e-3 b> + r16 cis,-1 e-2 \!cis~ | + <a'4-5 fis-3 cis> r16 d,-1 fis-2 d~ <b'4-5 g-3 d> + r16 fis-1 a fis~ | %10 \stemdown fis4 e d cis | b a b4. b8 | a4 - \translator Staff=bass \stemup - r16 [b-3 fis-1 a-2] g4-1 r16 [a-3 e-1 g-2] | + \translator Staff=lower \stemup + r16 b-3 fis-1 a-2 g4-1 r16 a-3 e-1 g-2 | \skip 1*1; s16 - \translator Staff=treble \stemdown - d'8.-1 ~ [d8 c] d4 [a8 g] | + \translator Staff=upper \stemdown + d'8.-1 ~ d8 c d4 a8 g | %15 - \translator Staff=bass \stemup - [fis'8 c-1] b4-1 \stemdown <a - \translator Staff=treble \stemdown + fis8 \translator Staff=lower \stemup c'-1 b4-1 \stemdown <a + \translator Staff=upper \stemdown a'4.-2> \stemdown a'8~ | - [a g-3~] [g16 e fis8~] [fis16 d8.~] [d8. cis!16] | - \translator Staff=bass \stemup + a g-3~ g16 e fis8~ fis16 d8.~ d8. cis!16 | + \translator Staff=lower \stemup < - % { \voiceone [d,8-2 a~] a4 } - { \voiceone [d8-2 a~] a4 } - % { \voicethree [a,8-1 g] [fis16-2 e-1 fis-2 d-1] } - { \voicethree [a8-1 g] [fis16-2 e-1 fis-2 d-1] } + { \stemup d8-2 a~ a4 } + \type Voice=ii { \stemdown a8-1 g fis16-2 e-1 fis-2 d-1 } > - \voiceone - [g-1 fis-2 g-1 a-2] [g-1 b-3 a-2 g-1 ~] | - [g g-1 fis-2 e-1] fis4-2 ~ fis2 + \stemup + g-1 fis-2 g-1 a-2 g-1 b-3 a-2 g-1 ~ | + g g-1 fis-2 e-1 fis4-2 ~ fis2 \bar "|."; } three = \notes\relative c{ -% \stemdown + \type Voice=iii + \stemdown d4-3 c-4 b e-3 | - a16 [a,-5\mf( cis-3 a-5] [d-2 e-1 fis-2 d-4] - [g-1 fis-3 g a] [g b a g] | + a16 a,-5\mf( cis-3 a-5 d-2 e-1 fis-2 d-4 + g-1 fis-3 g a g b a g | )fis4 fis e a-4 | - d16 \stemboth [d,-5\f( fis-3 d-5] [a'-2 b-1 cis-2 a-4] - [d-1 cis-3 d e] [d-4 fis-2 e-1 ) d] | + d16 \stemboth d,-5\f( fis-3 d-5 a'-2 b-1 cis-2 a-4 + d-1 cis-3 d e d-4 fis-2 e-1 ) d | %5 - [cis-3 b-4 cis-3 d-2] [c-4 e-2 d-3 c-4] - \stemdown b4-5 [cis8-4 b-3(] | - [a-4 )fis-5 b-2 a-3] [gis-4 e-5 a-3 g-4] | + cis-3 b-4 cis-3 d-2 c-4 e-2 d-3 c-4 + \stemdown b4-5 cis8-4 b-3( | + a-4 )fis-5 b-2 a-3 gis-4 e-5 a-3 g-4 | fis4. d8-5 e4-5 a4-3 | \stemboth - r16 [d,-4( fis-2 d-4] [)g8-.-1 g,-.-5] - r16 [e'-4( g-2 e-4] [)a8-. a,-.-5] | - r16 [fis'-4( a fis] [)b8-. b,-.] r16 [g'-4( b g] [)d'8-. d,-.] | + r16 d,-4( fis-2 d-4 )g8-.-1 g,-.-5 + r16 e'-4( g-2 e-4 )a8-. a,-.-5 | + r16 fis'-4( a fis )b8-. b,-. r16 g'-4( b g )d'8-. d,-. | %10 - r16 [d,16-5( fis-3 d] [a'-2 b-1 cis-2 a-4] [d b-5 d-3 b] - [fis'-2 g a-2 fis-4] | - )fis16 [g,( b g] [d'-2 e fis-2 d-4] [)g8-. g,-.] r16 [cis-4( e cis] | - [)fis8-. fis,-.] \stemdown r16 [b-4( d b] [)e8-. e,-.] - r16 [a-4 cis a] | + r16 d,16-5( fis-3 d a'-2 b-1 cis-2 a-4 d b-5 d-3 b + fis'-2 g a-2 fis-4 | + )fis16 g,( b g d'-2 e fis-2 d-4 )g8-. g,-. r16 cis-4( e cis | + )fis8-. fis,-. \stemdown r16 b-4( d b )e8-. e,-. + r16 a-4 cis a | \stemboth - [d-1 e-3 fis-2 d-4] [g-1 fis-2 e-3 d-1] [cis!-3 a-5 b cis] - [d-2 e fis-2 d-4] | - [g8 e-3] \stemdown [a a,] [b8.-4 g16-5] a4-4 | + d-1 e-3 fis-2 d-4 g-1 fis-2 e-3 d-1 cis!-3 a-5 b cis + d-2 e fis-2 d-4 | + g8 e-3 \stemdown a a, b8.-4 g16-5 a4-4 | %15 - [d8-5 a'-2~] [a g-3~] [g g-3] fis4-4 | + d8-5 a'-2~ a g-3~ g g-3 fis4-4 | \stemup - r16 [g-2 b-1 g-3] [d'8.-1 c16-1] [b8.-2 bes16-3] [a8-1 g] | + r16 g-2 b-1 g-3 d'8.-1 c16-1 b8.-2 bes16-3 a8-1 g | \stemdown - r16 [a,-2 cis!-1 a'-2] [d,-1 e fis d] [e8-1 d-2] [e-1 a,-2] | - [d a-2~] [a16 a-2 b cis-2] d2 | + r16 a,-2 cis!-1 a'-2 d,-1 e fis d e8-1 d-2 e-1 a,-2 | + d a-2~ a16 a-2 b cis-2 d2 | } -four = \notes\relative c{ +four = \type Staff \notes\relative c{ \skip 1*9; -% \stemup -% \property Voice.hshift = 1 + \type Voice=iv + \stemup + \property Voice.hshift = 1 %10 a''2 fis | d s | % \property Voice.hshift = 0 \skip 1*2; | s4 - \translator Staff=bass \stemup - a4 ~ [a16 d,-2 g8-1] [fis e-1] | + \translator Staff=lower \stemup + a4 ~ a16 d,-2 g8-1 fis e-1 | %15 \stemdown d1 ~ | @@ -170,35 +182,42 @@ four = \notes\relative c{ d2 d2 } -global = \notes{ +global = \notes{ \time 4/4; \key D; } -treble_staff = \type Staff = treble < - \global - { \voiceone \one } - { \voicefour \four } -> - -bass_staff = \type Staff = bass < -% bass = Staff < - \clef "bass"; - \global -% { \voiceone \two } - { \type Voice = bone \skip 1*0; \property Voice.ydirection = \up \two } - { \voicetwo \three } -> - -grand_staff = \type GrandStaff < - \treble_staff - \bass_staff -> - \score{ - % Allegretto - \grand_staff - \include "preludes-paper.ly"; + % Allegretto + \type GrandStaff < + \type Staff = upper < + \global + \one + \four + > + \type Staff = lower < + \global + \clef "bass"; + \two + \three + > + > + \paper{ + \include "preludes-paper.ly"; + gourlay_maxmeasures = 2.0; + \translator{ + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = "1"; + beamAutoEnd8 = "1/2"; + beamAutoEnd16 = "1/4"; + } + } \midi{ \tempo 4 = 70; } \header{ opus = "BWV 925"; diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly index 9238f1324b..7f7c3b03ff 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly @@ -1,112 +1,118 @@ \header{ -filename = "preludes-5.ly"; +filename = "preludes-5.ly"; % blz 2 % Clavierb"uchlein f"ur W. Fr. Bach % Clav. W. Fr. Bach: 4-Praeludium 2 % ca 1720 -composer = "Johann Sebastian Bach (1685-1750)"; -enteredby = "jcn"; -copyright = "public domain"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "public domain"; } \version "1.0.14"; -one = \notes\relative c{ - \property Voice . textstyle = "italic" - [d'8-1\p a'-5-"legato" f-3 d-1 a'-5 f-3] | - [d-1 a'-5 f-3 d-1 a'-5 f-3] | - [d-1\< bes'-4 g-2 d-1 bes'-4 \!g-2] | - [d-1 bes'-4 g-2 d-1 bes'-5 g-3] | +upper = \type Staff \notes\relative c{ + \property Voice . textstyle = "italic" + \type Voice=i +% d'8-1\p a'-5-"legato" f-3 d-1 a'-5 f-3 | + d'8-1\p a'-5 f-3 d-1 a'-5 f-3 | + d-1 a'-5 f-3 d-1 a'-5 f-3 | + d-1\< bes'-4 g-2 d-1 bes'-4 \!g-2 | + d-1 bes'-4 g-2 d-1 bes'-5 g-3 | %5 - [cis,-1\mf g'-4 e-2 cis-1 g'-4 e-2] | - [cis-1 bes'-5 g-4 e-2 a-5 g-4] | - [f-3\< d-1 f-2 a-4 f-1 a-2] | - [d-5 a-1 d-2 f-4 d-1 \!f-2] | - [b\> f-3 e d c-3 b] | + cis,-1\mf g'-4 e-2 cis-1 g'-4 e-2 | + cis-1 bes'-5 g-4 e-2 a-5 g-4 | + f-3\< d-1 f-2 a-4 f-1 a-2 | + d-5 a-1 d-2 f-4 d-1 \!f-2 | + b\> f-3 e d c-3 b | %10 - [a gis-3 fis e d'-5 \!b-2] | + a gis-3 fis e d'-5 \!b-2 | < { - \voiceone - \property Voice . textstyle = "roman" + \stemup + \property Voice . textstyle = "roman" c4-\mordent^"(\\textsharp)"\p r r | c4-\mordent^"(\\textsharp)" r r - \property Voice . textstyle = "italic" + \property Voice . textstyle = "italic" } - { \voicetwo a4 r r | a4 r r } + \type Voice=ii { \stemdown a4 r r | a4 r r } > | - \onevoice - [a'8\mf( es-3\> d c bes!-3 a] | - [g fis-3 e!-2 d-1 c'-4 \!a] | + \stemboth + a'8\mf( es-3\> d c bes!-3 a | + g fis-3 e!-2 d-1 c'-4 \!a | %15 - [)bes8-\mordent\p( d8-5 bes-3 g-1] )g'4 | - r8 [d-5( c bes a-\prall g] | - [)a-2 c-4( a f] ) f'4 | - r8 [c-5 bes a g-\prall f] | - [g-2 bes-4 a g f-1 e-2] | + )bes8-\mordent\p( d8-5 bes-3 g-1 )g'4 | + r8 d-5( c bes a-\prall g | + )a-2 c-4( a f ) f'4 | + r8 c-5 bes a g-\prall f | + g-2 bes-4 a g f-1 e-2 | %20 - [f-3 d-1 f-2 a-3 d-5 g,-2] | + f-3 d-1 f-2 a-3 d-5 g,-2 | < { - \voiceone + \stemup % ... textnatural - [cis8-\prall e8-5-"poco cresc." cis-3 a e' cis] +% cis8-\prall e8-5-"poco cresc." cis-3 a e' cis + cis8-\prall e8-5 cis-3 a e' cis } - { \voicetwo a4 } + \type Voice=ii { \stemdown a4 } > - \onevoice - [a8 e'-5 cis a bes!-3 a] | - [g e'-5 cis-3 g e'-5 cis-3] | - [g-1 e'-5 cis g a-3 g] | - [f-"dim." d'-5 bes f d' bes] | + \stemboth + a8 e'-5 cis a bes!-3 a | + g e'-5 cis-3 g e'-5 cis-3 | + g-1 e'-5 cis g a-3 g | +% f-"dim." d'-5 bes f d' bes | + f d'-5 bes f d' bes | %25 - [f d'-5 bes f d' bes] | - [fis-2-"dim." c'-5 a-3 fis-2 c'-5 a-3] | - [fis-2 c'-5 a-3 fis-2 c'-5 a-3] | - [bes-4 g-1 fis-2 g-3 d-1 g-2] | - [bes-4 g-2 d-1 bes'-5 g-3 d-1] | + f d'-5 bes f d' bes | +% fis-2-"dim." c'-5 a-3 fis-2 c'-5 a-3 | + fis-2 c'-5 a-3 fis-2 c'-5 a-3 | + fis-2 c'-5 a-3 fis-2 c'-5 a-3 | + bes-4 g-1 fis-2 g-3 d-1 g-2 | + bes-4 g-2 d-1 bes'-5 g-3 d-1 | %30 - [e-2\p g-4 fis-3 g-1 bes-4 g-2] | - [es-1 bes'-4 g-2 es bes' g] | - [cis,-1 bes'-4 g-2 cis, bes' g] | - [cis,-1 bes'-4 g-2 cis,-1 a'-5 g-4] | - [f-3 a f d a'-5 f] | + e-2\p g-4 fis-3 g-1 bes-4 g-2 | + es-1 bes'-4 g-2 es bes' g | + cis,-1 bes'-4 g-2 cis, bes' g | + cis,-1 bes'-4 g-2 cis,-1 a'-5 g-4 | + f-3 a f d a'-5 f | %35 - [d-1 a'-5 f-3 d-1 cis-2 d-1] | - [e-3\< g-5 e-3 bes-1 g'-5 e-3] | - [bes-1 g'-5 e-3 \!cis-2 a-1 g'-5] | - [f16-4\mf d-2 c-1 bes-3] \stemup a-2 s16 s8 s4 | + d-1 a'-5 f-3 d-1 cis-2 d-1 | + e-3\< g-5 e-3 bes-1 g'-5 e-3 | + bes-1 g'-5 e-3 \!cis-2 a-1 g'-5 | + f16-4\mf d-2 c-1 bes-3 \stemup a-2 s16 s8 s4 | % ugh % s1 | s4 s4 s4 | %40 s4 s16 [d16-1-"m.d." f-2 a-4] \stemdown [d,-2-"m.g." f a] \stemup d-1 | \stemboth - [f a-4 f d] [f-4 d b d-5] [gis-2 b a gis,] | + f a-4 f d f-4 d b d-5 gis-2 b a gis, | <g'!4.-5\f e a,> a8-5 < { - \voiceone - f4-4\> ~ | [\!f8 e] [e32-4 f e8. ~] [e8 d-3] + \stemup + f4-4\> ~ | [\!f8 e] [e32-4 f e8.] ~ [e8 d-3] } - { \voicetwo <d4 a> r4 cis-2 } + \type Voice=ii { \stemdown <d4 a> r4 cis-2 } > | - \onevoice - [d8-4 c!-3 a-1 d-4 bes-2 g-1] | + \stemboth + d8-4 c!-3 a-1 d-4 bes-2 g-1 | %45 - [c-5 a-3 fis-2 bes-4 g e ] | - [a-5 fis-"dim. e rall." d g-5 e cis-2] | + c-5 a-3 fis-2 bes-4 g e | +% a-5 fis-"dim. e rall." d g-5 e cis-2 | + a-5 fis d g-5 e cis-2 | < - { \voiceone <fis2-.-5\p a,> } - { \voicetwo [d32( cis d8. ~] ) d2 } + { \stemup <fis2-.-5\p a,> } + \type Voice=ii { \stemdown [d32( cis d8.] ~ ) d2 } > | \bar "|."; } -two = \notes\relative c{ - \clef "bass"; -% [d32( cis )d8.] r4 r | +lower = \type Staff \notes\relative c{ + \type Voice=i +% d32( cis )d8. r4 r | d4-\mordent r r | d,4 r r | d'-\mordent r r | @@ -114,21 +120,21 @@ two = \notes\relative c{ d'-\mordent r r | % d r r | d,4 r r | - [d'8-2 a-5 d-2 f-1 d-4 f-2] | - [a-1 f-4 a-2 d-1 a-2 d-1] | + d'8-2 a-5 d-2 f-1 d-4 f-2 | + a-1 f-4 a-2 d-1 a-2 d-1 | gis,4-3 r r | e-4( )gis-2 e | - [a8-4 e'-1 c-2 a-4 e'-1 c-2 ] | - [g!-5 es'-1 c-1 g-5 es'-1 c-1 ] | + a8-4 e'-1 c-2 a-4 e'-1 c-2 | + g!-5 es'-1 c-1 g-5 es'-1 c-1 | fis,4-5 r r d-4( ) fis d-5 | - \property Voice . textstyle = "roman" + \property Voice . textstyle = "roman" g4-\mordent^"(\\textsharp)" r r8 f!8 | - \property Voice . textstyle = "italic" + \property Voice . textstyle = "italic" e4-\prall r r | f4-\mordent r r8 e | - d4 r8 [f-1 e d] | - [e-2 d-3 cis-4 e-1 d-2 cis-3] | + d4 r8 f-1 e d | + e-2 d-3 cis-4 e-1 d-2 cis-3 | d4-2( )c! bes-4 | a( )a' a, | a( )a' a, | @@ -150,30 +156,22 @@ two = \notes\relative c{ cis( )cis' cis, | d-4 s16 \stemdown - [g'16-1-"m.g." f e] [f-2 a d,-3 f] | - a, + [g'16-1-"m.g." f e] f-2 a d,-3 f | + a, \stemup [d-5-"m.d." c bes] + a \stemdown [ g-2 f-"m.g." e] d f-4 a-2 d-1 | \stemup - [d-5-"m.d." c bes] a - \stemdown [g-2 f-"m.g." e] [d f-4 a-2 d-1] | - \stemup -% [f-2\ped a] +% f-2\ped a [f-2-"Ped." a] \stemdown -% [d-4-"m.g." f-"cresc."] a s s8 s4\dep | - [d,-4-"m.g." f-"cresc."] a s s8 s4-"*" | +% d-4-"m.g." f-"cresc." a s s8 s4\dep | +% d,-4-"m.g." f-"cresc." a s s8 s4-"*" | + [d,-4-"m.g." f] a s s8 s4-"*" | \stemboth % ugh whole rest has duration of one bar % r1 | r4 r r | -%{ - ugh forget the 8 below: - [cis-3( e cis a] [d16-1 c bes a] | - and lily dumps koor -lilypond: ../flower/include/varray.hh:116: struct Rhythmic_grouping *& Array<Rhythmic_grouping *>::elem(int) const: Assertion `i >=0&&i<size_ failed. -Aborted (core dumped) -%} - [cis,8-3( e cis a] [d16-1 c bes a] | - [)g8 g' a-2( g-3 a-1 a,] | + cis,8-3( e cis a d16-1 c bes a | + )g8 g' a-2( g-3 a-1 a, | )d4-3 d'-1 d, | d r r | d,( )d' d, | @@ -186,36 +184,35 @@ global = \notes{ \key F; } -treble_staff = \type Staff = treble < - \global - \one -> - -bass_staff = \type Staff = bass < -% bass = Staff < - \clef "bass"; - \global - \two -> - -grand_staff = \type GrandStaff < - \treble_staff - \bass_staff -> - -widea4 = \paper { - \paper_twenty -% arithmetic_basicspace = 2.; -% arithmetic_multiplier = 6.\pt; - arithmetic_basicspace = 2.; - arithmetic_multiplier = 8.\pt; - linewidth= 193.\mm; -} - \score{ - % Moderato - \grand_staff - \paper{ \widea4 } + % Moderato + \type GrandStaff < + \type Staff = upper < + \global + \upper + > + \type Staff = lower < + \global + \clef "bass"; + \lower + > + > + \paper{ + \include "preludes-paper.ly"; + gourlay_maxmeasures = 5.0; + \translator{ + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = "1"; + beamAutoEnd8 = "3/4"; + beamAutoEnd16 = "1/4"; + } + } \midi{ \tempo 4 = 90; } \header{ piece = "5"; diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly index cb9168062a..1a11dcfc48 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly @@ -1,69 +1,73 @@ \header{ -filename = "preludes-6.ly"; +filename = "preludes-6.ly"; % blz 11 % Six Petits Preludes % Collection Johann Peter Kellner % ca 1703 - 1707 -composer = "Johann Sebastian Bach (1685-1750)"; -enteredby = "jcn"; -copyright = "public domain"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "public domain"; } \version "1.0.14"; -one = \notes\relative c{ +one = \type Staff \notes\relative c{ + \type Voice=i \skip 1; | \stemup r4 d''2-5( cis4-4 | \stemboth - [)d16-5\mf a'-4( g f] [e f-4 cis-2 d-1] - [e8.-\mordent f16] [d8.-\prall-1 cis16-3] | + )d16-5\mf a'-4( g f e f-4 cis-2 d-1 + e8.-\mordent f16 d8.-\prall-1 cis16-3 | \stemup - )cis4\> ~ [cis16 a \!d8 ~] d4 c-5 | + )cis4\> ~ cis16 a \!d8 ~ d4 c-5 | %5 b2-4 ~ b4 a-5 ~ | - [a16 a-5 \stemup g! f] g4-4\< ~ g f-3 ~ | - [\!f16 a g f] [e16 g8.-5 ~] [g16 g-5 f-4 e-3] [d-1 f8.-4 ~] | - [f16 f-3 e d] b'4 a-5 g-5 | - fis4-4 g r8\<-"rall." [g16-1( bes-2] \!e4-5 | + a16 a-5 \stemup g! f g4-4\< ~ g f-3 ~ | + \!f16 a g f e16 g8.-5 ~ g16 g-5 f-4 e-3 d-1 f8.-4 ~ | + f16 f-3 e d b'4 a-5 g-5 | +% fis4-4 g r8\<-"rall." g16-1( bes-2 \!e4-5 | + fis4-4 g r8\< g16-1( bes-2 \!e4-5 | %10 - \!)d1-5 + )d1-5 \bar "|."; } -two = \notes\relative c{ - r16\p [d''-5( c-4 bes-3] [a-2 bes-3 f-1 g-2] - [a8.-\mordent bes16-1] [g8.-\prall f16-1] | +two = \type Staff \notes\relative c{ + \type Voice=ii + r16\p d''-5( c-4 bes-3 a-2 bes-3 f-1 g-2 + a8.-\mordent bes16-1 g8.-\prall f16-1 | \stemdown )f2 e2 | - \translator Staff=bass \stemup + \translator Staff=lower \stemup r4 a,-1 bes-2 b-1 | - \translator Staff=treble \stemdown - r16 [b'-3 a-1 g-2] [f8. f16-2] e2 ~ | + \translator Staff=upper \stemdown + r16 b'-3 a-1 g-2 f8. f16-2 e2 ~ | %5 - e2 ~ e4 ~ [e16 e-2 f! d-1] | - s4 [e32 d e8.~] e4 d4 ~ | - d4. [cis16-2 d-1] cis4 d-1 ~ | - d8 r r16 [e-2 f d] r16 [e-2 f d] r [d-1 e-3 cis] | - r16 [e-3 d-1 c!-2] [bes! d8.] s4 r16\> [bes'-2 a-2 \!g-1] | + e2 ~ e4 ~ e16 e-2 f! d-1 | + s4 e32 d e8.~ e4 d4 ~ | + d4. cis16-2 d-1 cis4 d-1 ~ | + d8 r r16 e-2 f d r16 e-2 f d r d-1 e-3 cis | + r16 e-3 d-1 c!-2 bes! d8. s4 r16\> bes'-2 a-2 \!g-1 | %10 fis1-2 } -three = \notes\relative c{ +three = \type Staff \notes\relative c{ + \type Voice=iii \stemup f2-1( e-2 | \stemboth - [)d16 d'( c bes] [a-4 bes-2 f-5 g-4] - [a8.-\mordent bes16-2] - [g8.-\prall-4 f16-5] | + )d16 d'( c bes a-4 bes-2 f-5 g-4 + a8.-\mordent bes16-2 + g8.-\prall-4 f16-5 | )f2-5 g4-4 gis | - a2-2 ~ [a16 a-1( g f] [e-4 f-2 c-5 d] | + a2-2 ~ a16 a-1( g f e-4 f-2 c-5 d | %5 - [e8.-\mordent f16] [d8.-\prall-4 c16-5] \stemboth )c4.-5 d8-4 | + e8.-\mordent f16 d8.-\prall-4 c16-5 \stemboth )c4.-5 d8-4 | \stemdown - e4 ~ [e16 f-2( e-3 d-4] [cis a b cis-3] [d-4 e-3 f-2 d-4] | - \property Voice . textstyle = "finger" + e4 ~ e16 f-2( e-3 d-4 cis a b cis-3 d-4 e-3 f-2 d-4 | + \property Voice . textstyle = "finger" )bes!2-"5\\_4" a ~ | a a | d, cis'-5 | @@ -72,20 +76,21 @@ three = \notes\relative c{ \bar "|."; } -four = \notes\relative c{ +four = \type Staff \notes\relative c{ + \type Voice=iv \stemdown d2-3 cis-4 | \skip 1*3; | %5 - \translator Staff=treble \stemup \property Voice.hshift = 1 - a'4 gis-2 ~ [gis16 gis-3 fis e] + \translator Staff=upper \stemup \property Voice.hshift = 1 + a'4 gis-2 ~ gis16 gis-3 fis e \skip 4*1; - \translator Staff=bass \stemdown \property Voice.hshift = 0 + \translator Staff=lower \stemdown \property Voice.hshift = 0 \stemup b2-1 a-1 | - g a4. [gis16 a] | - gis2 <[g8 cis,> <f-3 d-1>] e4-2 | - d4. [fis16-3 g-2] r16 bes8.-1 ~ bes4 | + g a4. gis16 a | + gis2 < g8 cis,> <f-3 d-1> e4-2 | + d4. fis16-3 g-2 r16 bes8.-1 ~ bes4 | %10 \stemdown d,1-5 @@ -96,34 +101,38 @@ global = \notes{ \key F; } - -treble_staff = \type Staff = treble < - \global - \one - \two -> - -bass_staff = \type Staff = bass < -% bass = Staff < - \clef "bass"; - \global - \three - \four -> - -grand_staff = \type GrandStaff < - \treble_staff - \bass_staff -> - -a4 = \paper{ - linewidth = 193.\mm; -} - \score{ - % Allegretto - \grand_staff - \paper{ \a4 } + % Allegretto + \type GrandStaff < + \type Staff = upper < + \global + \one + \two + > + \type Staff = lower < + \global + \clef "bass"; + \three + \four + > + > + \paper{ + \include "preludes-paper.ly"; + gourlay_maxmeasures = 3.0; + \translator{ + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + \translator{ + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = "1"; + beamAutoEnd8 = "1/2"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 40; } \header{ piece = "6"; diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-paper.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-paper.ly index 3a9a6790c3..7d037022bb 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-paper.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-paper.ly @@ -1,9 +1,6 @@ -\paper{ -% linewidth= 193.\mm; - linewidth= 180.\mm; - gourlay_maxmeasures = 10.0; -% arithmetic_basicspace = 3.; -% arithmetic_multiplier = 6.\pt; - % for simple testing only! -% castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn -} +% nice, but some printers can't handle... +% linewidth= 193.\mm; +linewidth= 180.\mm; +gourlay_maxmeasures = 10.0; +%arithmetic_basicspace = 3.; +%arithmetic_multiplier = 6.\pt; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly index 08c3346aae..5206232e4d 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly @@ -22,14 +22,21 @@ copyright = "public domain"; allemande_cello_global = \notes{ \time 4/4; \key f; - \partial 16; \clef bass; - \skip 1*11; - s2. s8. - \bar ":|:"; - \skip 1*11; - s2. s4 s8 - \bar ":|"; + \repeat 2 { + \partial 16; + s16 + s1*11 | + s2 s4 s8 + \partial 16*15; + s16 + } \repeat 2 { + % urg + s32 \partial 16; s32 + s1*11 + s16*15 + \partial 16*15; + } } allemande_cello_scripts = \notes{ @@ -42,9 +49,31 @@ allemande_cello_staff = \type Staff < > \score{ - \$allemande_cello_staff - \include "scs-paper.ly"; +%{ + urg, this breaks auto-beam-engraver? + really hairy bug: 1.1.23 + extra bars get encountered!! + \paper{ + \include "scs-paper.ly"; + gourlay_maxmeasures = 4.0; + } +%} + \$allemande_cello_staff + % \paper{ \include "scs-paper.ly"; } + \paper{ + + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 45; } \header{ piece = "Allemande"; } } - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly index e0d35b837d..401eccfdc4 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly @@ -11,64 +11,67 @@ n = { \slurnormal } d = { \slurdotted } comma = "\\sethuge\\ \\ ," -allemande_a = \notes \relative c { - \voiceone a'16 | - [a8 bes16()a] \onevoice - [g()f e()d][d()cis d()e][a,8 \d bes16()g] | - [f( a )d f,] [e8 cis']\voiceone[d8. e16]\onevoice[f g a bes!] | +allemande_a = \type Staff \notes \relative c { + \type Voice=i + \stemup + a'16 | + a8 bes16()a \stemboth + g()f e()d d()cis d()e a,8 bes16()g | + f( a )d f, e8 cis' \stemup d8. e16 \stemboth f g a bes! | %3 - \voiceone[c8 \n d16()es]\onevoice[d()c bes()a][c()bes a()g][d'8. f,16] | - [e( g )bes d][c()bes a()g]\n[bes()a g()f] - <[f8. a> <f16 a]> | + \stemup c8 \n d16()es \stemboth d()c bes()a c()bes a()g d'8. f,16 | + e( g )bes d c()bes a()g \n bes()a g()f + < f8. a> <f16 a > | % urg fix - [b \n f( e )d][e \d cis'( d )cis]\voiceone[d8.( )e16]\onevoice - \n[f( e d)e] | + b \n f( e )d e \d cis'( d )cis \stemup d8.( )e16 \stemboth + \n f( e d)e | %6 - [d( c b )c][b( a gis)a][gis8-\prall fis16()e][e' c( a )g] | - \voiceone [e' a, f d] [d f d b]\onevoice - [gis( b e )gis] \d [b( d c )b] | + d( c b )c b( a gis)a gis8-\prall fis16()e e' c( a )g | + \stemup e' a, f d d f d b \stemboth + gis( b e )gis \d b( d c )b | %8 - \n[c( a f )e][d( f e )d][gis8.-\trill()a16]\d[b d e,()d] | + \n c( a f )e d( f e )d gis8.-\trill()a16 \d b d e,()d | % urg - [c( e a)d]\voiceone [b8.-\trill a16] a8 s4 s8 \onevoice | + c( e a)d \stemup b8.-\trill a16 a8 s4 s8 \stemboth | %10 - [d,!16 gis( a b a gis fis )e] \voiceone [e8 f16()e]\onevoice - [d()c b()a] | - \voiceone[d8 e16()f]\onevoice\d[e()d c()b] - \voiceone[d'16()b c()a] \onevoice [e8 gis] | - [a,8. cis16][e g!( f! )e][f( a )d gis,] a8. + d,!16 gis( a b a gis fis )e \stemup e8 f16()e \stemboth + d()c b()a | + \stemup d8 e16()f \stemboth\d e()d c()b + \stemup d'16()b c()a \stemboth e8 gis | + a,8. cis16 e g!( f! )e f( a )d gis, a8. %13 - e16 \voiceone [e8. f16] \onevoice - \n[g!()e f()a]\n[cis,( d )e bes][a8.-\trill()g16] | - [f a'(f)d][g \n b,()cis a'][g(f e)d][fis d()es c(] | + e16 \stemup e8. f16 \stemboth + \n g!()e f()a \n cis,( d )e bes a8.-\trill()g16 | + f a'(f)d g \n b,()cis a' g(f e)d fis d()es c( | %15 - [)bes g'(a, )g][fis a d c'][bes(fis)g bes][d()a bes()g] | - [es(d)es g][c()a bes()g]\d[d(c)d g]\n[bes()fis g()es] | + )bes g'(a, )g fis a d c' bes(fis)g bes d()a bes()g | + es(d)es g c()a bes()g \d d(c)d g \n bes()fis g()es | %17 - \n[c(bes)c bes'][a(c)es g,]\voiceone[fis8-\trill\d g16()a]\onevoice - [d,8 es16()c] | - [bes(d )g bes,][d,8 fis']\voiceone[g8. a16]\onevoice[bes d g, f] | + \n c(bes)c bes' a(c)es g, \stemup fis8-\trill\d g16()a \stemboth + d,8 es16()c | + bes(d )g bes, d,8 fis' \stemup g8. a16 \stemboth bes d g, f | %19 - \voiceone[e8.-\trill()f16]\onevoice [g()e c()bes] - \n[a()f' g,()f][e g'( a )bes] | + \stemup e8.-\trill()f16 \stemboth g()e c()bes + \n a()f' g,()f e g'( a )bes | % :-( - % [bes( a g )f^\comma] - [bes( a g )f^"\\sethuge{\\ \\ '}"] - [a()e f()d][bes d(f)a][d()a bes()g] | + % bes( a g )f^\comma + bes( a g )f^"\\sethuge{\\ \\ '}" + a()e f()d bes d(f)a d()a bes()g | %21 - [a,(\n)g'(\n cis())d][e()g, a()e][f()d bes()d]\d[gis, f'(e)d] | - % \n[d( cis b )a^\comma][c(a)fis d'][c a( b )d] - \n[d( cis b )a^"\\sethuge\\ \\ ,"] - [c(a)fis d'][c a( b )d] - [f!(d )gis, d'] | + a,(\n)g'(\n cis())d e()g, a()e f()d bes()d \d gis, f'(e)d | + % \n d( cis b )a^\comma c(a)fis d' c a( b )d + \n d( cis b )a^"\\sethuge\\ \\ ," + c(a)fis d' c a( b )d + f!(d )gis, d' | %23 - [cis(e g!)bes][e()a, bes()g][f()cis d()gis,][a8 cis!] | + cis(e g!)bes e()a, bes()g f()cis d()gis, a8 cis! | % knee - \stemup [d,16 \stemboth d''(c!)a][bes!(g)e cis'][d a f d] d,8. + \stemup d,16 \stemboth d''(c!)a bes!(g)e cis' d a f d d,8. } allemande_b = \notes \relative c { - \voicetwo + \type Voice=ii + \stemdown s16 | % <d'8 g' f'> s8 s2. | <f8 g, d> s8 s2. | @@ -80,17 +83,19 @@ allemande_b = \notes \relative c { s1 | f!16 s16*3 b, s16*3 s2 | s1 | - s4 e [dis8 ~ dis32 e( fis gis][a b c d! c b c )a] | + s4 e dis8 ~ dis32 e( fis gis a b c d! c b c )a | %10 s2 <a8 c,> s8 s4 | <b8 gis,> s8 s4 <e,8 a,> s8 s4 | - s1 | + s2 s4 s8. + s16 | <cis'8 g,> s8 s2. | %15 s1*3 | s2 c,8 s8 s4 | s2 g8. s16 s4 | bes8. +% } } allemande = \type Staff \notes< @@ -98,3 +103,4 @@ allemande = \type Staff \notes< \$allemande_b > + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly index c7c11ed713..f308a20612 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly @@ -22,14 +22,21 @@ copyright = "public domain"; allemande_viola_global = \notes{ \time 4/4; \key f; - \partial 16; \clef alto; - \skip 1*11; - s2. s8. - \bar ":|:"; - \skip 1*11; - s2. s4 s8 - \bar ":|"; + \repeat 2 { + \partial 16; + s16 + s1*11 | + s2 s4 s8 + \partial 16*15; + s16 + } \repeat 2 { + % urg + s32 \partial 16; s32 + s1*11 + s16*15 + \partial 16*15; + } } allemande_viola_scripts = \notes{ @@ -43,7 +50,19 @@ allemande_viola_staff = \type Staff < \score{ \$allemande_viola_staff - \include "scs-paper.ly"; +% \include "scs-paper.ly"; + \paper{ + linewidth = 180.\mm; + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 45; } \header{ piece = "Allemande"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly index bc1e61e125..94c9a8d0fa 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly @@ -22,14 +22,22 @@ copyright = "public domain"; courante_cello_global = \notes{ \time 3/4; \key f; - \partial 16; \clef bass; - \skip 2.*15; - s2 s8. - \bar ":|:"; - \skip 2.*15; - s2 s8. - \bar ":|"; + \repeat 2 { + \partial 16; + s16 + s2.*15 + % hmm + s2 s8 + \partial 16*11; + s16 + } \repeat 2 { + % urg + s32 \partial 16; s32 + s2.*15 + s16*11 + \partial 16*11; + } } courante_cello_scripts = \notes{ @@ -43,7 +51,20 @@ courante_cello_staff = \type Staff < \score{ \$courante_cello_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 55; } \header{ piece = "Courante"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly index 9a96b31235..e665ec7b1b 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly @@ -10,75 +10,83 @@ But merging melodic and scripts doen't work too well yet (see viola_scripts). n = { \slurnormal } d = { \slurdotted } -courante_a = \notes \relative c { +courante_a = \type Staff \notes \relative c { + \type Voice=i d'16 | - [d a f a] [d, f g a]\d[bes()a bes()g] | - \voiceone <g4 a> s4 \onevoice \d[g16()f g()e] | + d a f a d, f g a \d bes()a bes()g | + \stemup <g4 a> s4 \stemboth \d g16()f g()e | % urg, a good case for mean-distance-beam-dir-algorithm! - [f()d e()c!]\n[bes(a)bes a'][g f e d] | + f()d e()c! \n bes(a)bes a' g f e d | %4 - % [cis e \n a,(\d(b][[cis d e f][)g )bes-- a e] | - [cis e \n a,(b][[cis d e f][)g bes-- a e] | - % [f a \n d,(\d( e][f g a bes][)c )bes-- d c] | - [f a \n d,( e][f g a bes][)c bes-- d c] | - \n\voiceone <c4~ f,> <[c16 f,> bes a g] \onevoice [f()es d()es] | + % cis e \n a,(\d(b cis d e f )g )bes-- a e | + cis e \n a,(b cis d e f )g bes-- a e | + % f a \n d,(\d( e f g a bes )c )bes-- d c | + f a \n d,( e f g a bes )c bes-- d c | + \n\stemup <c4 f,> ~ < c16 f,> bes a g \stemboth f()es d()es | %7 - [d bes(a)bes][d bes e! bes][f' bes, g' bes,] | - \d[e,( g )c d][e f g a][bes()a bes()g]| - \n[a f(e)f][a f bes f][c' f, d' f,] | + d bes(a)bes d bes e! bes f' bes, g' bes, | + \d e,( g )c d e f g a bes()a bes()g | + \n a f(e)f a f bes f c' f, d' f, | %10 - [cis( e )a b][cis d e f][g()f g()e] | - [d,( a' )f' e]\n[d()c d()c][b()a b()a] | - \n[gis( a )b e,]\n[f()e f()d][e()c d()b] | + cis( e )a b cis d e f g()f g()e | + d,( a' )f' e \n d()c d()c b()a b()a | + \n gis( a )b e, \n f()e f()d e()c d()b | %13 - \n[c a'( b c][b a gis)a][d, a' e a] | - [f a( b c][b a gis)a][f a e a] | - [dis, a'( b c][b a gis)a][e a e gis] | - [a e cis e][a, cis e gis] a8. e'16 | + \n c a'( b c b a gis)a d, a' e a | + f a( b c b a gis)a f a e a | + dis, a'( b c b a gis)a e a e gis | + a e cis e a, cis e gis a8. + e'16 | %17 - [e cis a cis][e, f g a][bes()g cis()g] | - \voiceone d'4 ~ [d16 a d e][f d a c!]\onevoice | - \n[b16 f(d)f]\d[g, d'(f)g][b f d' f,] | + e cis a cis e, f g a bes()g cis()g | + \stemup d'4 ~ d16 a d e f d a c! \stemboth | + \n b16 f(d)f \d g, d'(f)g b f d' f, | %20 - [e g c,(d][e f g a][)bes! d c g] | - \voiceone a s16*3 s4 s4 - d, ~ [d16 e! f g] \onevoice [a bes c d] | + e g c,(d e f g a )bes! d c g | + \stemup a s16*3 s4 s4 + d, ~ d16 e! f g \stemboth a bes c d | %23 - [e, bes(a)g][a f' \n g,()f]\d[c()g' f' e] | - [f a( bes a][g f e )f][g e f d]| - [cis g' b, g'][a, g' b, g'][cis, g' a, g']| + e, bes(a)g a f' \n g,()f \d c()g' f' e | + f a( bes a g f e )f g e f d | + cis g' b, g' a, g' b, g' cis, g' a, g' | %26 - [f d f a][d a d e][f a, f d]| - [g, d'(g)a][bes g' a, f'][g, e' f, d']| - \n[cis(d)e cis][a cis bes cis][a cis g cis]| + f d f a d a d e f a, f d | + g, d'(g)a bes g' a, f' g, e' f, d' | + \n cis(d)e cis a cis bes cis a cis g cis | %29 - \n[f, d'(e f][e d cis)d][g, d' a d]| - \d[bes d(e f][e d cis)d][bes d a d]| - [gis, d'(e f][e d cis)d][a d a cis]| - [d a f a][d, f a, d] + \n f, d'(e f e d cis)d g, d' a d | + \d bes d(e f e d cis)d bes d a d | + gis, d'(e f e d cis)d a d a cis | + d a f a d, f a, d d,8. } courante_b = \notes \relative c { - \voicetwo + \type Voice=ii \stemdown s16 | s2. | %2 - \n cis4 ~ [cis16 d e f] s4 | + \n cis4 ~ cis16 d e f s4 | s2.*3 | %6 - { a,4 s2 } - s2.*11 + a,4 s2 + s2.*9 + % 16 + s2 s8. + s16 | + s2. %18 f'4 s s | s2.*2 %21 - [f16 c'(bes a][g f es d] [)es c' f, es] | + f16 c'(bes a g f es d )es c' f, es | bes4 s s + s2.*9 + s2 s8. } -courante = \type Staff \notes< +courante = \type Staff \notes< \$courante_a \$courante_b > diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly index 83e144bf3e..b21bcca92a 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly @@ -22,14 +22,22 @@ copyright = "public domain"; courante_viola_global = \notes{ \time 3/4; \key f; - \partial 16; \clef alto; - \skip 2.*15; - s2 s8. - \bar ":|:"; - \skip 2.*15; - s2 s8. - \bar ":|"; + \repeat 2 { + \partial 16; + s16 + s2.*15 + % hmm + s2 s8 + \partial 16*11; + s16 + } \repeat 2 { + % urg + s32 \partial 16; s32 + s2.*15 + s16*11 + \partial 16*11; + } } courante_viola_scripts = \notes{ @@ -43,7 +51,20 @@ courante_viola_staff = \type Staff < \score{ \$courante_viola_staff - \include "scs-paper.ly"; + %\paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 55; } \header{ piece = "Courante"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly index aaa6782df9..8a1feb0b64 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly @@ -23,13 +23,19 @@ gigue_cello_global = \notes{ \time 3/8; \key f; \clef bass; - \partial 8; - \skip 4.*31; - s4 - \bar ":|:"; - \skip 4.*44; - s4 - \bar ":|"; + \repeat 2 { + \partial 8; + s8 + s4.*31 + s4 + \partial 4; + } \repeat 2 { + % urg + s16 \partial 8; s16 + s4.*43 + s4 + \partial 4; + } } gigue_cello_scripts = \notes{ @@ -43,7 +49,19 @@ gigue_cello_staff = \type Staff < \score{ \$gigue_cello_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + beamAutoEnd16 = "3/4"; + } + } \midi{ \tempo 4 = 60; } \header{ piece = "Gigue"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly index d2beebc3d9..87aa2b5553 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly @@ -16,10 +16,8 @@ d = { \slurdotted } % * slurs/ties in two different threads (like beams): urtext, and additionals % -% urg, Thread is gone, try Voice -% gigue_notes = \type Thread = gigue \notes \relative c { - -gigue_notes = \type Voice = gigue \notes \relative c { +gigue_notes = \type Staff \notes \relative c { + \type Voice=i a'8 | d,4 bes'8 | cis,4 g'8 | f16 e f g a8 | d,4 d'8 | e,16(f)g8 bes | c,16(d)e8 c' | a16 g a bes c a | @@ -27,18 +25,18 @@ gigue_notes = \type Voice = gigue \notes \relative c { f4-\trill a8 | b,()g' cis, | d f16( c bes )a | g8()es' a, | bes d16( a g )f | e!8()cis' bes' a g16( f e)d | %15 - %\voiceone e(f g e f)d \onevoice e8()a,\comma c''! | - \voiceone e(f g e f)d \onevoice e8()a,^"\\sethuge{\\ \\ '}" c'! | - \voiceone c16(d es c d)a bes8 r bes | + %\stemup e(f g e f)d \stemboth e8()a,\comma c''! | + \stemup e(f g e f)d \stemboth e8()a,^"\\sethuge{\\ \\ '}" c'! | + \stemup c16(d es c d)a bes8 r bes | bes16(c d bes c)g a8 r a | %21 b16()c d()b c()a | d()e f()d e()c | b()c d()b c()a | e'4 gis,8 | - a16()b c()a d()b | + a16()b c()a d()b | a()b c()a d()b | %27 a()b c()a d()b | a()b c()a d()b | - f'8 e16()d c()b \onevoice | + f'8 e16()d c()b \stemboth | e,, e''(d)c b()gis | a f(e)d e()cis | a4 %33 c'!8 | @@ -50,37 +48,38 @@ gigue_notes = \type Voice = gigue \notes \relative c { %45 as(g)as fis g es' | d,8 g fis | g16 es(d)c d()bes | g4 bes'8 % what about this? - \voiceone\stemdown e,!16(f)g e f d\onevoice + \stemup\stemdown e,!16(f)g e f d\stemboth c(d e) c d bes | a(bes)c a bes g | f4 a'8 % what about this? - \voiceone\stemdown d,16(e)f d e c\onevoice bes(c)d bes c a + \stemup\stemdown d,16(e)f d e c\stemboth bes(c)d bes c a g16(a)bes g a f | e4 g'8 %57 a,16(b cis d)e g-. | f(g a cis )d f, | e(f g a)bes d,-. | cis(d)e a, bes g - \voiceone + \stemup d'()e f()d g()e | %62 d()e f()d g()e | d()e f()d g()e | d()e f()d g()e | - \onevoice + \stemboth cis bes'(a g f)e | f, a' g f e cis | %67 d bes a g a f | d a' d e f d | - \voiceone es()f g()es f()d | g()a bes()g a()f es()f g()es f()d | + \stemup es()f g()es f()d | g()a bes()g a()f es()f g()es f()d | %72 - cis'4 \onevoice d16()c | bes(a g f e)d | cis(b a g f)e | d f a d f a | + cis'4 \stemboth d16()c | bes(a g f e)d | cis(b a g f)e | d f a d f a | d4 } -gigue_b = \notes \relative c { - \voicetwo +gigue_b = \type Staff \notes \relative c { + \type Voice=ii + \stemdown s8 s4.*14 - a4. | s d | [d8 g, d'] | e4. | [f8 f, f'] | + a4. | s d | d8 g, d' | e4. | f8 f, f' | %21 - [d d d] [d d d] [d d d] | + d d d d d d d d d | % one could type r here... d4 s8 | <e c> s s | d s s | e s s | f s s | gis s4 | s4. s s4 @@ -93,49 +92,13 @@ gigue_b = \notes \relative c { s4.*7 <a,8 f> s s g s s a s s bes s s s4.*4 - [g8 g g] [g g g] [g g g] + g8 g g g g g g g g %72 <g4 e'> } -gb = \notes { [s16 s s s s s] } - -% urg, Thread is gone, try Voice -% gigue_beams = \type Thread = gigue \notes{ -gigue_beams = \type Voice = gigue \notes{ - s8 | - s4. s4. \gb - s4. \gb \gb \gb - %8 - s4. - \gb \gb \gb \gb \gb - %14 - \gb \gb \gb \gb s4. - %19 - \gb s4. \gb \gb \gb - %24 - s4. - \gb \gb \gb \gb \gb \gb \gb - s4 s8 - %33 - s4. s4. - \gb s4. \gb \gb - %39 - \gb s4. - \gb \gb \gb \gb \gb \gb \gb - %48 - s4. \gb \gb \gb - s4. \gb \gb \gb s4. - \gb \gb \gb \gb \gb - \gb \gb \gb \gb \gb - \gb \gb \gb \gb \gb - s4 [s16 s] - \gb \gb \gb -} - gigue_a = \type Voice \notes< \$gigue_notes - \$gigue_beams > gigue = \notes< diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly index 9444fda554..b52a1c798f 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly @@ -1,5 +1,5 @@ \header{ -filename = "gigue-cello.ly"; +filename = "gigue-viola.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; % piece = "Gigue"; @@ -19,32 +19,49 @@ copyright = "public domain"; \include "gigue-urtext.ly"; -gigue_cello_global = \notes{ +gigue_viola_global = \notes{ \time 3/8; \key f; - \clef bass; - \partial 8; - \skip 4.*31; - s4 - \bar ":|:"; - \skip 4.*44; - s4 - \bar ":|"; + \clef alto; + \repeat 2 { + \partial 8; + s8 + s4.*31 + s4 + \partial 4; + } \repeat 2 { + % urg + s16 \partial 8; s16 + s4.*43 + s4 + \partial 4; + } } -gigue_cello_scripts = \notes{ +gigue_viola_scripts = \notes{ } -gigue_cello_staff = \type Staff < +gigue_viola_staff = \type Staff < \notes \transpose c' \$gigue - \$gigue_cello_global - \$gigue_cello_scripts + \$gigue_viola_global + \$gigue_viola_scripts > \score{ - \$gigue_cello_staff - \include "scs-paper.ly"; -%broken + \$gigue_viola_staff + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + beamAutoEnd16 = "3/4"; + } + } \midi{ \tempo 4 = 60; } \header{ piece = "Gigue"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly index 5017b4b9b4..78e1b68390 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly @@ -24,16 +24,18 @@ menuetto_i_cello_global = \notes{ \time 3/4; \key f; \clef bass; - \skip 2.*8; - \bar ":|:"; - \skip 2.*1; - \slurdotted - \skip 2.*14; - s2._"Fine" - \bar ":|"; + \repeat 2 { + \skip 2.*8; + } \repeat 2 { + \skip 2.*1; + \slurdotted + \skip 2.*14; + s2._"Fine" + } } menuetto_i_cello_scripts = \notes{ + \type Voice=i s2. s8^"~"^1_2_4 s8 s4 s^4 s4^0_1 s_4 s @@ -61,7 +63,18 @@ menuetto_i_cello_staff = \type Staff < \score{ \$menuetto_i_cello_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + } + } \midi{ \tempo 4 = 110; } \header{ piece = "Menuetto I"; } } @@ -70,13 +83,15 @@ menuetto_ii_cello_global = \notes{ \time 3/4; \key D; \clef bass; - \skip 2.*8; - \bar ":|:"; - \skip 2.*1; - \slurdotted - \skip 2.*14; - s2._"Menuetto I da Capo" - \bar ":|"; + \repeat 2 { + \skip 2.*8; + } \repeat 2 { + \skip 2.*1; + \slurdotted + \skip 2.*14; + s2._"Menuetto I da Capo" + } + } menuetto_ii_cello_staff = \type Staff < @@ -87,7 +102,18 @@ menuetto_ii_cello_staff = \type Staff < \score{ \$menuetto_ii_cello_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + } + } \midi{ \tempo 4 = 130; } \header{ piece = "Menuetto II"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly index aeff5f2fd2..7786b53df7 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly @@ -7,40 +7,43 @@ Well, there are still some scripts in this "urtext". But merging melodic and scripts doen't work too well yet (see viola_scripts). %} -menuetto_i_a = \notes \relative c { - <d2\f f a> bes'4 | - [bes8 a bes g] a4 | - <d,4 bes> g [f8 e] | - [f8( e )d cis b a] | +menuetto_i_a = \type Staff \notes \relative c { + \type Voice=i + <d2\f f a> bes'4 | + bes8 a bes g a4 | + <d,4 bes> g f8 e | + f8( e )d cis b a | <d2 f a> bes'!4 | - [bes8 a bes g] c!4 | + bes8 a bes g c!4 | %7 <a f> <d f, bes,> <e g, g,> | <cis2. e, a,> | - <a2\f e'> [d8( e16 )f] | + <a2\f e'> d8( e16 )f | \slurdotted - [e8( d cis )e a,()g] | + e8( d cis )e a,()g | a4 ~ d cis | - [g'8( f e )f d() c] | + g'8( f e )f d() c | %13 bes2 c4 | - [a8 g a f] <d'4 e, bes> | - <c f, a,> [bes8 a g a] | - [f8( e )f a g bes] | + a8 g a f <d'4 e, bes> | + <c f, a,> bes8 a g a | + f8( e )f a g bes | <a2^\trill fis> bes4 | - [c8 bes c a] fis4^\trill | + c8 bes c a fis4^\trill | %19 % dispute -% <bes,4 g' d'> <c, g' c> <[d,8 bes'(> )a] | - <d'4 g, bes,> <c g c,> [bes8()a] | - [c8( bes a )bes g()bes] | +% <bes,4 g' d'> <c, g' c> < d,8 bes'(> )a | + <d'4 g, bes,> <c g c,> bes8()a | + c8( bes a )bes g()bes | d4 ~ cis d | - [g,8 f g e] f4 | - [g,8 g'] <{e4.^\trill ~ d8 } a4.> | + g,8 f g e f4 | + g,8 g' <{e4.^\trill d8 } a4.> ~ | <d2. a d,> | } -menuetto_i_b = \notes \relative c { +menuetto_i_b = \type Staff \notes \relative c { + \type Voice = ii + \stemdown \slurdotted \skip 2.*1; | <e8 c> \skip 8*5; | @@ -48,8 +51,9 @@ menuetto_i_b = \notes \relative c { a,8 \skip 8*5; | \skip 2.*1; | e'8 \skip 8*5; | - \onevoice - \skip 2.*3; | + \stemboth + s2.*2 | + s2. g8 \skip 8*5; | f2 e4 d8 \skip 8*5; | @@ -63,30 +67,31 @@ menuetto_i_b = \notes \relative c { % g2 f4 | g4 \skip 4*1; f4 | cis8 \skip 8*3; d4 | + s2.*2 } % UGH, fix this like in sarabande menuetto_i_a_voice_urg = \notes{ - \skip 2.*1; \voiceone - \skip 2.*1; \onevoice - \skip 2.*1; \voiceone - \skip 2.*1; \onevoice - \skip 2.*1; \voiceone - \skip 2.*1; \onevoice - \skip 2.*3; \voiceone - \skip 2.*1; \voiceone + \type Voice = i + \skip 2.*1; \stemup + \skip 2.*1; \stemboth + \skip 2.*1; \stemup + \skip 2.*1; \stemboth + \skip 2.*1; \stemup + \skip 2.*1; \stemboth + \skip 2.*3; \stemup + \skip 2.*1; \stemup \skip 2.*3; - \skip 4*2; \onevoice - \skip 4*2; \voiceone - \skip2.*1; \voiceone - \skip 4*2; \onevoice - \skip2.*1; \voiceone - \skip 2.*1; \onevoice - \skip 2*1; \voiceone + \skip 4*2; \stemboth + \skip 4*2; \stemup + \skip2.*1; \stemup + \skip 4*2; \stemboth + \skip2.*1; \stemup + \skip 2.*1; \stemboth + \skip 2*1; \stemup \skip 4*1; - \skip 2.*4; \onevoice + \skip 2.*4; \stemboth \skip 2.*1; -% \bar "|."; } menuetto_i_a_voice_urg_urg = \notes< @@ -95,9 +100,10 @@ menuetto_i_a_voice_urg_urg = \notes< > menuetto_i_b_voice_urg = \notes{ - \voicetwo + \type Voice=ii + \stemdown % urg urg, huh? - \skip 2.*8; \voicetwo + \skip 2.*8; \stemdown } menuetto_i_b_voice_urg_urg = \notes< @@ -110,42 +116,43 @@ menuetto_i = \type Staff \notes< { \$menuetto_i_b_voice_urg_urg } > -menuetto_ii = \notes \relative c { +menuetto_ii = \type Staff\notes \relative c { + \type Voice=i \slurdotted - fis4^\trill [d8( e fis )g] | + fis4^\trill d8( e fis )g | a4 fis, a' | - [g,8()b] e4 g | + g,8()b e4 g | \slurnormal - [d8( cis )b cis a g] | + d8( cis )b cis a g | % ugh, forcing knee % Lily's not yet smart enough to decide for herself. - \stemup [fis \stemboth d''( cis b a )g] | - [b( a g fis e )d] | + \stemup fis \stemboth d''( cis b a )g | + b( a g fis e )d | %7 - [cis d] g4 [fis8( g16 )a] | + cis d g4 fis8( g16 )a | <\stemdown a,2. \stemup e'> | \stemboth - cis4^\prall [e8( d cis )b] | + cis4^\prall e8( d cis )b | cis4 g, cis' | - [fis,8()a] d4 fis | - [b,8()a g()fis \slurdotted g()b] | + fis,8()a d4 fis | + b,8()a g()fis \slurdotted g()b | \slurnormal %13 - [e, d'( cis )b cis()ais] | - % check slur! [d, b' a! g fis )e] | - [d,( b' a! g fis )e] | - [g( fis e d cis )d] | - [b( cis d e fis )g] | - [a( g fis g a )b] | + e, d'( cis )b cis()ais | + % check slur! d, b' a! g fis )e | + d,( b' a! g fis )e | + g( fis e d cis )d | + b( cis d e fis )g | + a( g fis g a )b | c4 dis,, c'' | %19 - [b8()a c( b a )g] | - [fis() g a()fis g()e] | + b8()a c( b a )g | + fis() g a()fis g()e | \slurdotted - cis4^\trill [a8( b cis )d] | + cis4^\trill a8( b cis )d | \slurnormal - [e( fis g )b] a4 | - [g8()fis e()d e()cis] | + e( fis g )b a4 | + g8()fis e()d e()cis | d2. } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly index c00d23402e..36bd3e082c 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly @@ -25,19 +25,21 @@ menuetto_i_viola_global = \notes{ \time 3/4; \key f; \clef alto; - \skip 2.*8; - \bar ":|:"; - \clef violin; - \skip 2.*1; - \slurdotted - \skip 2.*3; - \clef alto; - \skip 2.*11; - s2._"Fine" - \bar ":|"; + \repeat 2 { + \skip 2.*8; + \clef violin; + \skip 2.*1; + } \repeat 2 { + \slurdotted + \skip 2.*3; + \clef alto; + \skip 2.*11; + s2._"Fine" + } } menuetto_i_viola_scripts = \notes{ + \type Voice=i s2. s8^"~"^1_2_4 s8*5 s2.*5 @@ -60,7 +62,17 @@ menuetto_i_viola_staff = \type Staff < \score{ \$menuetto_i_viola_staff - \include "scs-paper.ly"; + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + } + } \midi{ \tempo 4 = 110; } \header{ piece = "Menuetto I"; } } @@ -69,13 +81,14 @@ menuetto_ii_viola_global = \notes{ \time 3/4; \key D; \clef alto; - \skip 2.*8; - \bar ":|:"; - \skip 2.*1; - \slurdotted - \skip 2.*14; - s2._"Menuetto I da Capo" - \bar ":|"; + \repeat 2 { + \skip 2.*8; + } \repeat 2 { + \skip 2.*1; + \slurdotted + \skip 2.*14; + s2._"Menuetto I da Capo" + } } menuetto_ii_viola_staff = \type Staff < @@ -86,7 +99,17 @@ menuetto_ii_viola_staff = \type Staff < \score{ \$menuetto_ii_viola_staff - \include "scs-paper.ly"; + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "3/4"; + } + } \midi{ \tempo 4 = 130; } \header{ piece = "Menuetto II"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly index 6a8765eb4a..11eea31cc5 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly @@ -38,7 +38,10 @@ prelude_cello_staff = \type Staff < \score{ \$prelude_cello_staff - \include "scs-paper.ly"; + \paper{ + \include "scs-paper.ly"; + gourlay_maxmeasures = 7.0; + } \midi{ \tempo 4 = 40; } \header{ piece = "Pr\\'elude"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly index 005f22f01d..36cd78f859 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly @@ -7,9 +7,8 @@ Well, there are still some scripts in this "urtext". But merging melodic and scripts doen't work too well yet see viola_scripts . %} -% urg, Thread is gone, try Voice -% prelude_notes = \type Thread = prelude \notes \relative c { -prelude_notes = \type Voice = prelude \notes \relative c { +prelude_notes = \notes \relative c { + \type Voice=i d8 f a4 ~ a16 f e d | cis e g a bes4 ~ bes16 a g f | e g bes cis e8. bes16 a16 g f e | @@ -72,7 +71,7 @@ prelude_notes = \type Voice = prelude \notes \relative c { e cis b cis a b cis d e d e cis | %47 d b a b f gis b cis d cis d b | - \voiceone <cis4^\fermata e,> \onevoice r r | + \stemup <cis4^\fermata e,> \stemboth r r | bes16 g fis g es g d g es g bes d, | cis-- e! g a bes8. a16 g fis g e' | %51 @@ -80,17 +79,18 @@ prelude_notes = \type Voice = prelude \notes \relative c { d bes a g fis-- a c! es d c bes a | bes g fis g es g d g es g bes d, | %54 - \voiceone g'8. f16 - e!16 d cis b a g f e \onevoice | + \stemup g'8. f16 + e!16 d cis b a g f e \stemboth | d-- a' d e f e d c! bes! a g f | e-- a cis e g f e d cis b a g | f a d f a d, f a d bes! c! a | g, d' g a bes g fis g es' g, d' g, | - \voiceone <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,> + \stemup <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,> } prelude_b = \notes \relative c { - \voicetwo + \type Voice=ii + \stemdown s2.*47 %48 g4 s2 | @@ -101,86 +101,6 @@ prelude_b = \notes \relative c { a'2. a a a <a d,> } -% pat1 = \notes { [s8 s]s4[s16 s s s] } -pat1 = \notes { [s16 s s s]s4[s16 s s s] } -pat2 = \notes { [s16 s s s][s8.s16][s s s s] } -pat3 = \notes { [s16 s s s][s8 s s s] } - -% of course, i just type pat1, and add the \ and the silly $ later -% urg, Thread is gone, try Voice -% prelude_beams = \type Thread = prelude \notes{ -prelude_beams = \type Voice = prelude \notes{ - \$pat1 - \$pat1 - \$pat2 - \$pat3 - %5 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %10 - \$pat2 - \$pat2 - \$pat2 - \$pat1 - \$pat2 - %15 - \$pat1 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %20 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %25 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %30 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %35 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %40 - \$pat1 - \$pat2 - \$pat1 - \$pat2 - \$pat2 - %45 - \$pat2 - \$pat2 - \$pat2 - s2. - \$pat2 - %50 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - \$pat2 - %55 - \$pat2 - \$pat2 - \$pat2 - \$pat2 -} - %{ properties, urg! fig1 = \notes{ s16( s s )s } @@ -197,9 +117,8 @@ fig4 = \notes{ \slurnormal s16( s s s s s s )s } fig5 = \notes{ \slurnormal s8.()s16 } % of course, i just type fig1, and add the \ and the silly $ later -% urg, Thread is gone, try Voice -% prelude_slurs = \type Thread = prelude \notes{ -prelude_slurs = \type Voice = prelude \notes{ +prelude_slurs = \notes{ + \type Voice=i s4 s4 \$fig3 | \$fig1 s4 \$fig3 | \$fig1 s4 \$fig3 | @@ -280,9 +199,8 @@ fig4 = \notes{ \slurdotted s16( s s s s s s )s } fig5 = \notes{ \slurdotted s8.()s16 } fig6 = \notes{ \slurdotted s16()s \slurdotted s()s } -% urg, Thread is gone, try Voice -% prelude_suggested_slurs = \type Thread = prelude \notes{ -prelude_suggested_slurs = \type Voice = prelude \notes{ +prelude_suggested_slurs = \notes{ + \type Voice=i \slurdotted s2. | s2. | @@ -351,14 +269,13 @@ prelude_suggested_slurs = \type Voice = prelude \notes{ \$fig3 s2 | } -prelude_a = \type Voice \notes< +prelude_a = \notes< \$prelude_notes - \$prelude_beams \$prelude_slurs \$prelude_suggested_slurs > -prelude = \notes< +prelude = \type Staff \notes< \$prelude_a \$prelude_b > diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly index f2f4e72d43..542888a99b 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly @@ -38,7 +38,10 @@ prelude_viola_staff = \type Staff < \score{ \$prelude_viola_staff - \include "scs-paper.ly"; + \paper{ + \include "scs-paper.ly"; + gourlay_maxmeasures = 7.0; + } \midi{ \tempo 4 = 40; } \header{ piece = "Pr\\'elude"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly index 9214126eb7..226be714c7 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly @@ -23,10 +23,11 @@ sarabande_cello_global = \notes{ \time 3/4; \key f; \clef bass; - \skip 2.*12; - \bar ":|:"; - \skip 2.*16; - \bar ":|"; + \repeat 2 { + s2.*12 + } \repeat 2 { + s2.*16 + } } sarabande_cello_scripts = \notes{ @@ -40,7 +41,20 @@ sarabande_cello_staff = \type Staff < \score{ \$sarabande_cello_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 40; } \header{ piece = "Sarabande"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly index 9ea3ccc38f..0ff1a86066 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly @@ -10,49 +10,48 @@ But merging melodic and scripts doen't work too well yet (see viola_scripts). n = { \slurnormal } d = { \slurdotted } -% -% ugh, the non-shortened beamstems of voice in forced direction -% look ugly here! -sarabande_a = \notes \relative c { - \voiceone \d[d8.()e16] e4.-\trill([d16 )e] | - f4. \onevoice [e8(d)c] | - [bes g']\n[f e16(f][g a bes)d,] | - cis4.-\trill\d[b8(a)g] | +sarabande_a = \type Staff \notes \relative c { + \type Voice=i + \stemup \d d8.()e16 e4.-\trill( d16 )e | + f4. \stemboth e8(d)c | + bes g' \n f e16(f g a bes)d, | + cis4.-\trill\d b8(a)g | % copy bar 1, half bar 2 - \voiceone \d[d'8.()e16] f4.-\trill([d16 )e] | + \stemup \d d'8.()e16 f4.-\trill( d16 )e | %5 - f4. \onevoice [d8(e)f] | - \n[g bes16()a][c()bes a()g][d'8 f,] | - \voiceone e4.-\trill \onevoice \d[d8(c)bes] | + f4. \stemboth d8(e)f | + \n g bes16()a c()bes a()g d'8 f, | + \stemup e4.-\trill \stemboth \d d8(c)bes | %8 - \voiceone \n[f' g16()a] a4. [g16()f] | - [g8 a16()bes]bes4. [c16()d]| + \stemup \n f' g16()a a4. g16()f | + g8 a16()bes bes4. c16()d | % 11 - \onevoice \d [e,8()f][c, g'][f'()e] | + \stemboth \d e,8()f c, g' f'()e | f4 f,2 | - \voiceone a'4 \d a4.-\trill()bes8 | - [c bes16()a] \onevoice [fis8.-\trill()es16][d8()c] | - [bes g'][a, fis'][es'()d] | + \stemup a'4 \d a4.-\trill()bes8 | + c bes16()a \stemboth fis8.-\trill()es16 d8()c | + bes g' a, fis' es'()d | %16 - \voiceone bes4.-\trill \onevoice [a8(g)f!] | - [e bes()a f'(g)a] | - [d, as()g es'(f)g]| - [cis, bes'][a g16()f][e!8 f16()d] | - [cis8 e16()a][a,8. g'16]\n[f8()e] | + \stemup bes4.-\trill \stemboth a8(g)f! | + e bes()a f'(g)a | + d, as()g es'(f)g | + cis, bes' a g16()f e!8 f16()d | + cis8 e16()a a,8. g'16 \n f8()e | %21 - \voiceone [d e16()f]f4. [e16()d] | - [e8 f16()g]g4. [a16()bes] | - \d[a8 cis16()d][d,8 e16(f32)g][f8-\trill \n e16()d] | - d4 [d,16 a'( b cis][d e f )g] | + \stemup d e16()f f4. e16()d | + e8 f16()g g4. a16()bes | + \d a8 cis16()d d,8 e16(f32)g f8-\trill \n e16()d | + d4 d,16 a'( b cis d e f )g | %25 - [a(b c)b] c4. [b16()a] | - \d[b(cis d )cis] d4. \n[e16()f] | - \onevoice [d(cis)d f,] [a,8 e']\d[d'()cis] | + a(b c)b c4. b16()a | + \d b(cis d )cis d4. \n e16()f | + \stemboth d(cis)d f, a,8 e' \d d'()cis | d4 d,,2 | } -sarabande_b = \notes \relative c { - \voicetwo +sarabande_b = \type Staff \notes \relative c { + \type Voice=ii + \stemdown % dispute % d4 a2 | % this avoids the clash bug @@ -66,24 +65,25 @@ sarabande_b = \notes \relative c { <a4. d,> s8*3 | s2. | % 8 - <g4. c,> s8*3 | + <g4. c,> s8*3 | a4 <bes4. d> r8 | %10 bes4 <g2 f'> | s2.*2 | - \d[f'8()es] es4. r8 | + \d f'8()es es4. r8 | d4 s2 | %15 s2. | - <d4. g,> s8*3 | + <d4. g,> s8*3 | s2.*4 | %21 - bes4 g2 | + bes4 g2 | g4 <bes4. cis,> s8 | <d8 a f> r r g, a4 | s2. | f'4 fis4. s8 | <d4 g,> gis4. s8 | + s2.*2 } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly index 44d5eff18e..7d2004711a 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly @@ -23,10 +23,11 @@ sarabande_viola_global = \notes{ \time 3/4; \key f; \clef alto; - \skip 2.*12; - \bar ":|:"; - \skip 2.*16; - \bar ":|"; + \repeat 2 { + s2.*12 + } \repeat 2 { + s2.*16 + } } sarabande_viola_scripts = \notes{ @@ -40,7 +41,20 @@ sarabande_viola_staff = \type Staff < \score{ \$sarabande_viola_staff - \include "scs-paper.ly"; + % \paper { \include "scs-paper.ly"; } + \paper{ + linewidth = 180.\mm; + \translator { \BarNumberingStaffContext } + \translator{ + \VoiceContext + % add experimental auto-beaming + \consists Auto_beam_engraver; + beamAuto = 1.; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; + } + } \midi{ \tempo 4 = 40; } \header{ piece = "Sarabande"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/scs-paper.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/scs-paper.ly index baa5c359e0..926571ac47 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/scs-paper.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/scs-paper.ly @@ -1,10 +1,11 @@ -\paper{ - linewidth= 180.\mm; - gourlay_maxmeasures = 10.0; - % for simple testing only! - - - \translator { - \BarNumberingStaffContext - } +linewidth = 180.\mm; +gourlay_maxmeasures = 10.0; +\translator { \BarNumberingStaffContext } +\translator { + \StaffContext + \consists Auto_beam_engraver; + beamAuto = 1.0; + beamAutoEnd8 = "1/4"; + beamAutoEnd16 = "1/4"; + beamAutoEnd32 = "1/4"; } diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index 3ad507b208..c180b38ef4 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -10,7 +10,12 @@ } %{ - Tested Features: stem direction, multivoice, forced accidentals. + Tested Features: + * stem direction + * multivoice, + * forced accidentals + * cross-staff beaming + * auto beaming %} \version "1.0.14"; @@ -31,91 +36,91 @@ dux = \type Voice=two \notes \relative c''{ \property Voice.ydirection = "-1" - r8 [c16 b] [c8 g] [as c16 b] [c8 d ] | - [g, c16 b] [c8 d ] [f,16 g] as4 [g16 f] | - [es c' b a] [g f! es d] [c8 es' d c ] | - [bes a bes c ] [fis, g a fis] | + r8 c16 b c8 g as c16 b c8 d | + g, c16 b c8 d f,16 g as4 g16 f | + es c' b a g f! es d c8 es' d c | + bes a bes c fis, g a fis | %%5 - g4 r16 [c, d es] [f g as8~] [as16 d, es f] | - [g a bes8] ~ [bes16 es, f g] [as g f es] [d8 c'16 b!] | - % forced accident! - c4 r4 r8 [f es d ] | - r8 [as g f] [g f16 es] [f8 d] | - g4 r8 b [c c16 b] [c8 g] | -%%10 - as4 r8 a [bes bes16 a] [bes8 f] | - g4 r8 g [as as g f] | + g4 r16 c, d es f g as8~ as16 d, es f | + g a bes8 ~ bes16 es, f g as g f es d8 c'16 b! | + % forced accident! + c4 r4 r8 f es d | + r8 as g f g f16 es f8 d | + g4 r8 b c c16 b c8 g | +%%10 + as4 r8 a bes bes16 a bes8 f | + g4 r8 g as as g f | r8 \translator Staff = bass \stemup - [as, bes c ] r8 [as16 g] [as8 f8] | - [bes8 c bes as] [bes g f es] | - [f des' c bes] [c as g f] | + as, bes c r8 as16 g as8 f8 | + bes8 c bes as bes g f es | + f des' c bes c as g f | %%15 g8 - [g'16 fis] [g8 c,] - [es \translator Staff = treble \stemdown g16 fis!] [g8 a] | - [d, g16 fis] [g8 a!] [c,16 d] es4 [d16 c] | % forced accident! - bes8 r8 r16 [d e fis] [g a bes8] ~ [bes16 e, f g] | - [a bes c8] ~ [c16 fis,16 g a] [bes8 es,!16 d] [es8 g, ] | - [as f'16 es] [f8 a,8] [bes g'16 f] [g8 b, ] | + g'16 fis g8 c, + es \translator Staff = treble \stemdown g16 fis! g8 a | + d, g16 fis g8 a! c,16 d es4 d16 c | % forced accident! + bes8 r8 r16 d e fis g a bes8 ~ bes16 e, f g | + a bes c8 ~ c16 fis,16 g a bes8 es,!16 d es8 g, | + as f'16 es f8 a,8 bes g'16 f g8 b, | %%20 - [c16 f \translator Staff = bass \stemup es d] [c bes! as g] - [f8 \translator Staff = treble \stemdown as' g f] | - [es d es f] [b, c d b] | - c4 r8 e8 [f f16 e] [f8 c] | - d4 r8 d8 [es8 es16 d] [es8 bes] | - c2 ~ [c8 d16 es] [f es f d] | + c16 f \translator Staff = bass \stemup es d c bes! as g + f8 \translator Staff = treble \stemdown as' g f | + es d es f b, c d b | + c4 r8 e8 f f16 e f8 c | + d4 r8 d8 es8 es16 d es8 bes | + c2 ~ c8 d16 es f es f d | %%25 b8 r8 r b c r r es | d r r f ~ f r r f | - [es as g f] [es d es f] | - [b, c d b] [b c] r c | - [f16 d es c] ~ [c8 b] c4 r8 e | + es as g f es d es f | + b, c d b b c r c | + f16 d es c ~ c8 b c4 r8 e | %%30 - f4 r8 f [f es16 d] [es8 <f as>] | + f4 r8 f f es16 d es8 <f as> | <b, d> r <b d> r <g2 c> | } -comes = \type Voice=one \notes \relative c'' { +comes = \type Voice=one \notes \relative c'' { \voiceone R1 | R1 | - r8 [g'16 fis] [g8 c,] [es g16 fis] [g8 a] | - [d,8 g16 fis] [g8 a] [c,16 d] es4 [d16 c] | + r8 g'16 fis g8 c, es g16 fis g8 a | + d,8 g16 fis g8 a c,16 d es4 d16 c | %%5 - [bes8 es16 d] [es8 g,8] [as f'16 es] [f8 a, ] - [bes8 g'16 f] [g8 b, ] [c8 d16 es] f4 ~ | - [f8 es16 d] [c16 bes ! as g ] [f8 as' g f] - [es d es f] [b, c d b ] | - [c g'16 fis] [g8 d] es4 r8 e8 | + bes8 es16 d es8 g,8 as f'16 es f8 a, + bes8 g'16 f g8 b, c8 d16 es f4 ~ | + f8 es16 d c16 bes ! as g f8 as' g f + es d es f b, c d b | + c g'16 fis g8 d es4 r8 e8 | %%10 - [f f16 e] [f8 c8] d4 r8 d | - [es8 es16 d] [es8 bes ] [c es16 d] [es8 f] | - [bes, es16 d] [es8 f] [as,16 bes ] c4 [bes16 as ] | - \stemboth [g16 es f g] [as bes c d] [es d c d] [es f g a] | - [bes f, g as] [bes c d e] [f es d es] [ f g a b] | + f f16 e f8 c8 d4 r8 d | + es8 es16 d es8 bes c es16 d es8 f | + bes, es16 d es8 f as,16 bes c4 bes16 as | + \stemboth g16 es f g as bes c d es d c d es f g a | + bes f, g as bes c d e f es d es f g a b | %%15 - \stemup [c8 b16 a] [g f! es d] [c8 es d c] | - [bes a bes c] [fis,! g a fis] | % forced accident - [g8 d'16 c] d8 r8 r8 [e16 d] e8 r8 | - r [fis16 e] fis8 r r [g,16 f] g8 r8 | - r8 [a16 g] a8 r r [b16 a] b8 r | + \stemup c8 b16 a g f! es d c8 es d c | + bes a bes c fis,! g a fis | % forced accident + g8 d'16 c d8 r8 r8 e16 d e8 r8 | + r fis16 e fis8 r r g,16 f g8 r8 | + r8 a16 g a8 r r b16 a b8 r | %%20 - r8 [c16 b ] [c8 g ] [as c16 b ] [c8 d] | - [g, c16 b] [c8 d] [f,16 g] as4 [g16 f] | - [es8 c'16 b] [c8 g] as4 r8 a | - [bes8 bes16 a] [bes8 f8] g4 r8 g ~ | - [g as16 bes] [c b c as] f2 ~ | + r8 c16 b c8 g as c16 b c8 d | + g, c16 b c8 d f,16 g as4 g16 f | + es8 c'16 b c8 g as4 r8 a | + bes8 bes16 a bes8 f8 g4 r8 g ~ | + g as16 bes c b c as f2 ~ | %%25 - [f8 d'16 c] [d8 f,] [es es'16 d] [es8 g,] | - [f f'16 es] [f8 as,] [g16 f' es d] [c b a g] | - [c8 f es d] r [as g f] | - [g f16 es] [f8 d] [as' g] r a | - [b c] [f,16 es d c] c8 [c'16 b] [c8 g] | + f8 d'16 c d8 f, es es'16 d es8 g, | + f f'16 es f8 as, g16 f' es d c b a g | + c8 f es d r as g f | + g f16 es f8 d as' g r a | + b c f,16 es d c c8 c'16 b c8 g | %%30 - [as c16 b] [c8 <d b ! as !>] [g,8 c16 b] [c8 d] | - [f,16 g] as4 [g16 f] e2 | + as c16 b c8 <d b ! as !> g,8 c16 b c8 d | + f,16 g as4 g16 f e2 | } @@ -128,80 +133,81 @@ bassdux = \type Voice=three \notes \relative c' { %%5 R | R1 | - r8 [c16 b] [c8 g] [as c16 b] [c8 d] | - [g, c16 b] [c8 d] [f,16 g] as4 [g16 f] | - [es c' b a] [g f es d] [c d es d] [c bes! as! g] | - % -> \classic_accidentals + r8 c16 b c8 g as c16 b c8 d | + g, c16 b c8 d f,16 g as4 g16 f | + es c' b a g f es d c d es d c bes! as! g | + % -> \classic_accidentals %%10 - [f bes' as g] [f es d c] [bes c d c] [bes as g f] | - [es as' g f] [es des c bes] [as8 c' bes as] | - [g8 f g as] [d, es f d] | - [es as g f] [g es d c] | - [d bes' as g] [as f es d!] | + f bes' as g f es d c bes c d c bes as g f | + es as' g f es des c bes as8 c' bes as | + g8 f g as d, es f d | + es as g f g es d c | + d bes' as g as f es d! | %%15 - es8 r8 r4 r8 [c bes a] | - r [es' d c] [d c16 bes] [c8 d] | - [g,8 bes'16 a] [bes8 d,] [es c'16 bes] [c8 e,] | - [f d'16 c ] [d8 fis,] g4 r16 [g, a b] | - [c16 d es8~] [es16 a, bes c] [d es f8~] [f16 b, c d] | -%%20 -% es8 r r e [f f, es! d] | % -> \classic_accidentals - es8 r r e \stemdown [f f, es! d] \stemboth | - r [as' g f] [g f16 es] [f8 g] | - [c16 d es d] [c bes as g] [f bes' as g] [f es d c] | - [bes c d c] [bes as g f] [es as' g f] [es d c bes] | - [as bes c bes] [as g f es] [d g' f es] [d c b a] | + es8 r8 r4 r8 c bes a | + r es' d c d c16 bes c8 d | + g,8 bes'16 a bes8 d, es c'16 bes c8 e, | + f d'16 c d8 fis, g4 r16 g, a b | + c16 d es8~ es16 a, bes c d es f8~ f16 b, c d | +%%20 +% es8 r r e f f, es! d | % -> \classic_accidentals + es8 r r e \stemdown f f, es! d \stemboth | + r as' g f g f16 es f8 g | + c16 d es d c bes as g f bes' as g f es d c | + bes c d c bes as g f es as' g f es d c bes | + as bes c bes as g f es d g' f es d c b a | %%25 - g4 r4 r16 [g a b] [c d es f] | - [g f as g] [f es d c] [b8 c16 b] [c8 g] | - [as c16 b] [c8 d] [g, c16 b] [c8 d] | - [f,16 g] as4 [g16 f] es4 r8 es' | - [d c g' g,] + g4 r4 r16 g a b c d es f | + g f as g f es d c b8 c16 b c8 g | + as c16 b c8 d g, c16 b c8 d | + 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 } + {\voicethree c2 ~ | c1 ~ | c1 } + {\voicefour c,2 ~ | c1 ~ | c1 } > } - \score { \type GrandStaff < - \type Staff = treble < - \global - \dux - \comes - > - \type Staff = bass < - \global - \bassdux - > + \type Staff = treble < + \global + \dux + \comes + > + \type Staff = bass < + \global + \bassdux + > > - \paper { - gourlay_maxmeasures = 4.; - indent = 8.\mm; - textheight = 295.\mm; + \paper { + gourlay_maxmeasures = 4.; + indent = 8.\mm; + textheight = 295.\mm; - %hmm -% \translator { \BarNumberingScoreContext } -% \translator { \BarNumberingStaffContext } -% \translator{ \OrchestralScoreContext } - \translator{ \OrchestralScoreContext } - \translator{ - \GrandStaffContext - minVerticalAlign = 3.0*\staffheight; - maxVerticalAlign = 3.0*\staffheight; + \translator{ \OrchestralScoreContext } + \translator{ + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + \translator { + \VoiceContext + \consists Auto_beam_engraver; + beamAuto = 1.; + % eights end at 1/2, 16 at 1/4 + beamAutoEnd = "1/2"; + } + } + \header{ + opus = "BWV 847"; } - } - \header{ - opus = "BWV 847"; - } - \midi { - \tempo 4 =84; - } + \midi { + \tempo 4 =84; + } } -% EOF 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 - [<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 @@ -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 [<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 } @@ -158,10 +162,10 @@ violinoi = \notes \relative c'{ 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 @@ -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 [<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 } @@ -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/mutopia/gallina.ly b/mutopia/gallina.ly index 2d84ce1c49..b3657cf20c 100644 --- a/mutopia/gallina.ly +++ b/mutopia/gallina.ly @@ -54,16 +54,11 @@ global = \notes { \skip 1*31; \property StaffGroup.timeSignatureStyle = "1" \time 3/2; - \bar ":|:"; \tempo 2=140; \skip 1.*15; \property StaffGroup.timeSignatureStyle = "old" \time 4/4; \tempo 4=80; - \skip 1; - \bar ":|:"; - \skip 1*13; - \bar "|."; } vi1=\type Staff = vi1 < @@ -101,7 +96,8 @@ vi1=\type Staff = vi1 < r8 g [g g16 f] e4 d | r8 [d16 a ][ b8 b16 c] a2 | b1 | - + + \repeat 2 { r4 d d d d d | e1. | r4 c c c c c | @@ -117,7 +113,9 @@ vi1=\type Staff = vi1 < a4 [c8 b] a4 [b8 c] f,4 [g8 a] | d,4 g g g g g | a [d,8 c] b4 [c8 d] a2 | + } + \repeat 2 { b1 | [d8 d d d] d4 [a16 b c a] | [b8 g ][ g g16 a] [b8 g ][ g g16 a] | @@ -132,6 +130,7 @@ vi1=\type Staff = vi1 < fis4 g2 fis!4 | \cadenza 1; g\breve + } }> vi2=\type Staff = vi2 < @@ -168,6 +167,7 @@ vi2=\type Staff = vi2 < a4 g2 fis4 | g1 | + \repeat 2 { r1. | r4 [g'8 f] e4 [f8 g] c,4 [d8 e] | a,1. | @@ -183,7 +183,9 @@ vi2=\type Staff = vi2 < c,4 a a a a a | b [d8 c] b4 [c8 d] d,4 e | fis2 g fis! | + } + \repeat 2 { g1 | r1 | r1 | [g'8 g g g] g4 [d16 e f d] | @@ -197,6 +199,7 @@ vi2=\type Staff = vi2 < [a d c b ][ a g fis e] d4 d' | \cadenza 1; b\breve + } }> @@ -222,6 +225,7 @@ bc=\type Staff = bc < c B c G | d1^"3 4 3" | G1 | + \repeat 2 { g1. | c | f | d^"\\textsharp" | g | c | @@ -230,9 +234,10 @@ bc=\type Staff = bc < d^"\\textsharp" | e | f | g1 B2 | d1.^"3 4 3" | + } + \repeat 2 { G1 | - \bar ":|:"; g2 fis | g G | g1^"3 4 3" | c | G^"3 4 3" | c2 G | @@ -241,6 +246,7 @@ bc=\type Staff = bc < ) d^"3 4 3" | \cadenza 1; G\breve + } }> \score{ diff --git a/scm/lily.scm b/scm/lily.scm index 44c2eb1bcb..7b8db27f8b 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -74,7 +74,7 @@ ;;; and these suck as well. (define (setdynamic s) (text "dynamic" (string-append "\\" s))) -(define (settext s) (text "text" s)) +(define (setroman s) (text "text" s)) (define (settypewriter s) (text "typewriter" s)) (define (setnumber s) (text "number" s)) (define (setbold s) (text "bold" s)) @@ -185,8 +185,8 @@ (define (pianobrace y) (define step 1.0) - (define minht mudelapaperstaffheight) - (define maxht (* 6 minht)) + (define minht (* 2 mudelapaperstaffheight)) + (define maxht (* 7 minht)) (string-append "{\\bracefont " (char (/ (- (min y (- maxht step)) minht) step)) "}")) @@ -222,10 +222,10 @@ "\\hbox{%\n") ) - (define (stem kern width height depth) + (define (filledbox breapth width height depth) (string-append - "\\kern" (number->dim kern) - "\\vrule width " (number->dim width) + "\\kern" (number->dim (- breapth)) + "\\vrule width " (number->dim (+ breapth width)) "depth " (number->dim depth) "height " (number->dim height) " ")) @@ -281,7 +281,7 @@ (define startrepeat ,startrepeat) (define stoprepeat ,stoprepeat) (define start-line ,start-line) - (define stem ,stem) + (define filledbox ,filledbox) (define stop-line ,stop-line) (define text ,text) (define experimental-on ,experimental-on) @@ -392,7 +392,7 @@ (define (invoke-dim1 s d) (string-append - (number->string d) " " s )) + (number->string (* d (/ 72.27 72))) " " s )) (define (placebox x y s) (string-append diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index cf8de43e2f..c0c07f6408 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -14,7 +14,7 @@ Output: DVI file """ name = 'ly2dvi' -version = '0.0.10' +version = '0.0.11' errorlog = '' import sys @@ -231,7 +231,7 @@ class TeXOutput: else: pageheight = Props.get('pageheight') pagewidth = Props.get('pagewidth') - + horizontalMarginArg = ( (pagewidth - linewidth)/2 ) verticalMarginArg = ( (pageheight - textheight)/2 ) @@ -393,7 +393,7 @@ class Properties: 'pageheight' : [845, this.__overrideTable['init']], 'papersize' : ['a4paper', this.__overrideTable['init']], 'textheight' : [0, this.__overrideTable['init']], - 'linewidth' : [0, this.__overrideTable['init']], + 'linewidth' : [500, this.__overrideTable['init']], 'orientation' : ['portrait', this.__overrideTable['init']], 'language' : ['%', this.__overrideTable['init']], 'include' : [[], this.__overrideTable['init']], @@ -674,7 +674,7 @@ class Properties: else: sys.exit('ExitBadWidth', m.group(2)) else: - sys.exit('ExitBadWidth', size) + sys.stderr.write ('ly2dvi: warning: ignoring linewidth: ' + size + '\n') # # setOrientation diff --git a/tex/dyndefs.tex b/tex/dyndefs.tex index b960c3da67..4032e1351a 100644 --- a/tex/dyndefs.tex +++ b/tex/dyndefs.tex @@ -24,26 +24,16 @@ \def\dynp{{\dyn\dynnp}} \def\dynpp{{\dyn\kdynp\dynnp}} \def\dynppp{{\dyn\kdynp\kdynp\dynnp}} -\def\dynpppp{{\dyn\kdynp\kdynp\kdynp\dynnp}} -\def\dynppppp{{\dyn\kdynp\kdynp\kdynp\kdynp\dynnp}} -\def\dynpppppp{{\dyn\kdynp\kdynp\kdynp\kdynp\kdynp\dynnp}} \def\dynmp{{\dyn\dynmm\kern -0.07em\dynnp}} \def\dynmf{{\dyn\dynm\kern -0.14em\dynnf}} \def\dynf{{\dyn\dynaf}} \def\dynff{{\dyn\kdynf\dynnf}} \def\dynfff{{\dyn\kdynf\kdynf\dynnf}} -\def\dynffff{{\dyn\kdynf\kdynf\kdynf\dynnf}} -\def\dynfffff{{\dyn\kdynf\kdynf\kdynf\kdynf\dynnf}} -\def\dynffffff{{\dyn\kdynf\kdynf\kdynf\kdynf\kdynf\dynnf}} \def\dynfp{{\dyn\dynnf\kern -0.04em\dynnp}} \def\dynsf{{\dyn\dyns\kern -0.13em\dynnf}} -\def\dynsff{{\dyn\dynsf\dynnf}} \def\dynsfz{{\dyn\dynsf\dynz}} \def\dynfz{{\dyn\dynnf\dynz}} \def\dynrf{{\dyn\dynr\kern -0.1em\dynnf}} -\def\dynsp{{\dyn\dyns\kern -0.13em\dynnp}} -\def\dynspp{{\dyn\dynsp\dynnp}} -\def\dynrfz{{\dyn\dynrf\dynz}} \endinput diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 41b37ec2e8..3e7f824e5f 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -154,9 +154,12 @@ \input fetdefs +\def\deprecated#1S{%%%%%%%%% \def\emptybar{} + + \def\defaultthinbar{\thinbar{\staffheight}} \def\defaultthickbar{\thickbar{\staffheight}} %? what-s wrong with rightalign? @@ -171,10 +174,6 @@ \def\startrepeat#1{\repeatstartbar} \def\repeatbarstartrepeat#1{\repeatstopstart} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% parametric symbols -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \def\doublebar#1{\hbox{\thinbar{#1}\hskip\smallspace\thinbar{#1}}} \def\thinbar#1{\dimen0=#1% \vrule height .5\dimen0 depth .5\dimen0 width 1.6\stafflinethickness} % TODO parametric. @@ -184,6 +183,8 @@ \def\startbar#1{\leftalign{\thickbar{#1}\kern\smallspace\thinbar{#1}}} \def\finishbar#1{\rightalign{\thinbar{#1}\kern\smallspace\thickbar{#1}}} \def\fatdoublebar#1{\hbox{\phantom{\repeatcolon\kern2\smallspace}\thickbar{#1}\kern\smallspace\thickbar{#1}}} +} + \def\extender#1{\vrule width#1 height .8\stafflinethickness} |