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.
.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
--- /dev/null
+% 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}
+
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 . )
\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
\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}
\def\fetdef#1#2{%
\def#1{\hbox{\char#2}}}
-\input feta20
+\input feta20.sty
\font\fetasixteenfont=feta16
\font\fetaelevenfont=feta11
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).
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
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
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.
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
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.
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
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
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).
+++ /dev/null
-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))
-)
-
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))
Options to configure include:
---enable-guile
- Link in GUILE (experimental)
-
--enable-printing
Enable debugging print routines (lilypond -D option)
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.
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.
This is what I type in my xterm:
-
-
-
-
lilypond someinput.ly
tex someinput.tex
xdvi someinput&
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
---- ../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
- 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: :|, |:
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}
* 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
* 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
* 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
* 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.
* mi2mu empty staffs.
- * midi_instrument -> midiInstrument
-
* horizontal centering of dynamics
* \font\fontA=feta20.afm (.afm?)
- 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;
* add a Duration_convert member to Duration_iter to set parameters.
Junk global duration settings.
-
- * deps for ly2dvi
* minimum length second part broken tie
* 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
* 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:
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
- quiet/ignore-version options
- logfile output
- * piano staff
-
* elaborate Staff_side baseclass:
- scripts
- text
- 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)
- saving them
- specify number of lines
- * markers
-
INPUTLANGUAGE
* c4 4 4 4 for c4 c4 c4 c4?
* 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
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.
class Afm_file (File):
def print_f_dimen(self, f):
- f = f
+ f = f * 1000
dimstr = '%.2f' % f
export PACKAGE_NAME
prefix=$HOME/usr
sources=$prefix/src
+
#
#
. ./stepmake/bin/package-zet.sh
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
# the debugging.
# class name silence?
-Dstream 1
+Dstream 0
# yydebug
InitParser 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
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
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
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
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
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;
return i;
}
-unsigned int hash (int i)
+unsigned int int_hash (int i)
{
return (unsigned) i;
}
+
+unsigned int hash ( );
#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>
#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
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_;
--- /dev/null
+/*
+ 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 */
+
--- /dev/null
+/*
+ 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 */
+
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
{
+++ /dev/null
-# init/Makefile
-
-depth = ..
-
-INI_FILES = $(FLY_FILES) $(LY_FILES)
-EXTRA_DIST_FILES = $(SCM_FILES)
-
-INSTALLATION_DIR=$(datadir)/ly/
-INSTALLATION_FILES=$(INI_FILES)
-
-STEPMAKE_TEMPLATES=install
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
+++ /dev/null
-% a4.ly
-
-hsize = 210.0 \mm;
-vsize = 296.9 \mm;
+++ /dev/null
-% Symbols needed to print accordion music
-%
-% 2' = T
-% 4' = F
-% 8' = E
-% 16' = S
-%
-
-accDiscant = \script{ "accDiscant" 0 0 1 0 0 }
-accDiscantF = \script{ "accDiscantF" 0 0 1 0 0 }
-accDiscantE = \script{ "accDiscantE" 0 0 1 0 0 }
-accDiscantEh = \script{ "accDiscantEh" 0 0 1 0 0 }
-accDiscantFE = \script{ "accDiscantFE" 0 0 1 0 0 }
-accDiscantFEh = \script{ "accDiscantFEh" 0 0 1 0 0 }
-accDiscantEE = \script{ "accDiscantEE" 0 0 1 0 0 }
-accDiscantFEE = \script{ "accDiscantFEE" 0 0 1 0 0 }
-accDiscantEEE = \script{ "accDiscantEEE" 0 0 1 0 0 }
-accDiscantFEEE = \script{ "accDiscantFEEE" 0 0 1 0 0 }
-accDiscantS = \script{ "accDiscantS" 0 0 1 0 0 }
-accDiscantFS = \script{ "accDiscantFS" 0 0 1 0 0 }
-accDiscantES = \script{ "accDiscantES" 0 0 1 0 0 }
-accDiscantEhS = \script{ "accDiscantEhS" 0 0 1 0 0 }
-accDiscantFES = \script{ "accDiscantFES" 0 0 1 0 0 }
-accDiscantFEhS = \script{ "accDiscantFEhS" 0 0 1 0 0 }
-accDiscantEES = \script{ "accDiscantEES" 0 0 1 0 0 }
-accDiscantFEES = \script{ "accDiscantFEES" 0 0 1 0 0 }
-accDiscantEEES = \script{ "accDiscantEEES" 0 0 1 0 0 }
-accDiscantFEEES = \script{ "accDiscantFEEES" 0 0 1 0 0 }
-accDiscantSS = \script{ "accDiscantSS" 0 0 1 0 0 }
-accDiscantESS = \script{ "accDiscantESS" 0 0 1 0 0 }
-accDiscantEESS = \script{ "accDiscantEESS" 0 0 1 0 0 }
-accDiscantEEESS = \script{ "accDiscantEEESS" 0 0 1 0 0 }
-
-accFreebass = \script{ "accFreebass" 0 0 1 0 0 }
-accFreebassF = \script{ "accFreebassF" 0 0 1 0 0 }
-accFreebassE = \script{ "accFreebassE" 0 0 1 0 0 }
-accFreebassFE = \script{ "accFreebassFE" 0 0 1 0 0 }
-
-accBayanbass = \script{ "accBayanbass" 0 0 1 0 0 }
-accBayanbassT = \script{ "accBayanbassT" 0 0 1 0 0 }
-accBayanbassE = \script{ "accBayanbassE" 0 0 1 0 0 }
-accBayanbassTE = \script{ "accBayanbassTE" 0 0 1 0 0 }
-accBayanbassEE = \script{ "accBayanbassEE" 0 0 1 0 0 }
-accBayanbassTEE = \script{ "accBayanbassTEE" 0 0 1 0 0 }
-
-accStdbass = \script{ "accStdbass" 0 0 1 0 0 }
-accStdbassTp = \script{ "accStdbassTp" 0 0 1 0 0 }
-accStdbassT = \script{ "accStdbassT" 0 0 1 0 0 }
-accStdbassBp = \script{ "accStdbassBp" 0 0 1 0 0 }
-accStdbassM = \script{ "accStdbassM" 0 0 1 0 0 }
-
-accSB = \script{ "accSB" 0 0 1 0 0 }
-accBB = \script{ "accBB" 0 0 1 0 0 }
-accOldEE = \script{ "accOldEE" 0 0 1 0 0 }
-accOldEES = \script{ "accOldEES" 0 0 1 0 0 }
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly"
-
-\include "paper16.ly"
- \paper { \paper_sixteen
- linewidth = -1.\cm;
- castingalgorithm = \Wordwrap;
- "unusedentry" = "}\\def\\nolilyfooter{";
- }
-
-\score {
- \notes {
- \maininput
- }
-\paper{}
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly";
-\include "paper16.ly"
-
- \paper{
- \paper_sixteen
-}
-
-
-\maininput
+++ /dev/null
-%{
-
- Common catalan names for notes. "b" means flat (bemoll), "d" means sharp (diesi).
- Also "s" is included for sharp (sostingut). Both "diesi" and "sostingut" are approved
- by "Diccionari de la Llengua Catalana" from "Institut d'Estudis Catalans".
-
- Adapted from italiano.ly.
-
- English: a b c d e f g
- Catalan: la si do re mi fa sol
-
- For spanish naming just use the sharp sign "s" (sostenido) instead of "s"
-(sostenido) .
-%}
-
-% contributed by Jaume Obrador <jobrador@ipc4.uib.es>
-
-\notenames {
- dobb = \musicalpitch { -1 0 -2 }
- dob = \musicalpitch { -1 0 -1 }
- do = \musicalpitch { -1 0 0 }
- dod = \musicalpitch { -1 0 1 }
- dodd = \musicalpitch { -1 0 2 }
- rebb = \musicalpitch { -1 1 -2 }
- reb = \musicalpitch { -1 1 -1 }
- re = \musicalpitch { -1 1 0 }
- red = \musicalpitch { -1 1 1 }
- redd = \musicalpitch { -1 1 2 }
- mibb = \musicalpitch { -1 2 -2 }
- mib = \musicalpitch { -1 2 -1 }
- mi = \musicalpitch { -1 2 0 }
- mid = \musicalpitch { -1 2 1 }
- midd = \musicalpitch { -1 2 2 }
- fabb = \musicalpitch { -1 3 -2 }
- fab = \musicalpitch { -1 3 -1 }
- fa = \musicalpitch { -1 3 0 }
- fad = \musicalpitch { -1 3 1 }
- fadd = \musicalpitch { -1 3 2 }
- solbb = \musicalpitch { -1 4 -2 }
- solb = \musicalpitch { -1 4 -1 }
- sol = \musicalpitch { -1 4 0 }
- sold = \musicalpitch { -1 4 1 }
- soldd = \musicalpitch { -1 4 2 }
- labb = \musicalpitch { -1 5 -2 }
- lab = \musicalpitch { -1 5 -1 }
- la = \musicalpitch { -1 5 0 }
- lad = \musicalpitch { -1 5 1 }
- ladd = \musicalpitch { -1 5 2 }
- sibb = \musicalpitch { -1 6 -2 }
- sib = \musicalpitch { -1 6 -1 }
- si = \musicalpitch { -1 6 0 }
- sid = \musicalpitch { -1 6 1 }
- sidd = \musicalpitch { -1 6 2 }
-
-% For using "sostingut" notation, which is also correct
-
- dos = \musicalpitch { -1 0 1 }
- doss = \musicalpitch { -1 0 2 }
- res = \musicalpitch { -1 1 1 }
- ress = \musicalpitch { -1 1 2 }
- mis = \musicalpitch { -1 2 1 }
- miss = \musicalpitch { -1 2 2 }
- fas = \musicalpitch { -1 3 1 }
- fass = \musicalpitch { -1 3 2 }
- sols = \musicalpitch { -1 4 1 }
- solss = \musicalpitch { -1 4 2 }
- las = \musicalpitch { -1 5 1 }
- lass = \musicalpitch { -1 5 2 }
- sis = \musicalpitch { -1 6 1 }
- siss = \musicalpitch { -1 6 2 }
-}
-
-
+++ /dev/null
-% Toplevel initialisation file.
-
-
-\version "1.0.14";
-
-
-\include "declarations.ly"
-
-\include "paper16.ly";
-
- \paper {
- \paper_sixteen
- linewidth = -1.0\cm;
- castingalgorithm = \Wordwrap;
- "unusedentry" = "}\\def\\nolilyfooter{";
-}
-
-
-\score {
-% \notes\relative c {
- \notes {
- \maininput
- }
-\paper{}
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly"
-\include "paper16.ly"
-
- \paper {
- \paper_sixteen;
-% linewidth = 7.\cm;
- linewidth = 11.\cm;
-}
-
-\maininput
+++ /dev/null
-%{
- chord modifiers
-%}
-
-\chordmodifiers {
- m = \musicalpitch { 0 2 -1 }
- min = \musicalpitch { 0 2 -1 }
- aug = \musicalpitch { 0 4 1 }
- dim = \musicalpitch { 0 4 -1 }
- % urg, not actually a chord-modifier, but it works
- % c7 -> <c bes>, c 7+ -> c b
- maj = \musicalpitch { 0 6 1 }
- % sus4 should delete 2 too...
- sus = \musicalpitch { 0 3 0 }
-}
+++ /dev/null
-
-
-breve = \duration { -1 0 }
-longa = \duration { -2 0 }
-
-\include "dynamic.ly"
-\include "nederlands.ly" % dutch
-\include "chord-modifiers.ly"
-\include "script.ly"
-
-
-Gourlay = 1.0
-Wordwrap = 0.0
-
-papersize = "a4"
-
-\include "paper20.ly"
-
-\paper{
- \paper_twenty
-}
-
-% ugh
-\include "midi.ly"
-
-% declarations for standard directions
-left = -1
-right = 1
-up = 1
-down = -1
-% zillie spellink?
-center=0
-
-break = { \penalty = 10000; }
-nobreak = { \penalty = -10000; }
-
-major = 0
-minor = 3
-
-\include "property.ly"
-
-\scmfile "lily.scm";
-
-% music = "\melodic\relative c"
-
+++ /dev/null
-%
-% common german names for notes. "es" means flat, "is" means sharp
-%
-% by Roland Meier <meier@informatik.th-darmstadt.de>
-% based on swedish.ly by Mats Bengtsson.
-
-
-%
-% Please note that, while these names are used to enter *notes*, they
-% actually are *melodic*s, i.e. they represent a pitch solely. Notes
-% have a rhythmic part too. This is the reason that we don't write 'note { .. }'
-%
-\notenames {
- ceses = \musicalpitch { -1 0 -2 }
- ces = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- cis = \musicalpitch { -1 0 1 }
- cisis = \musicalpitch { -1 0 2 }
- deses = \musicalpitch { -1 1 -2 }
- des = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- dis = \musicalpitch { -1 1 1 }
- disis = \musicalpitch { -1 1 2 }
- eses = \musicalpitch { -1 2 -2 }
- es = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- eis = \musicalpitch { -1 2 1 }
- eisis = \musicalpitch { -1 2 2 }
- feses = \musicalpitch { -1 3 -2 }
- fes = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fis = \musicalpitch { -1 3 1 }
- fisis = \musicalpitch { -1 3 2 }
- geses = \musicalpitch { -1 4 -2 }
- ges = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- gis = \musicalpitch { -1 4 1 }
- gisis = \musicalpitch { -1 4 2 }
- ases = \musicalpitch { -1 5 -2 }
- as = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- ais = \musicalpitch { -1 5 1 }
- aisis = \musicalpitch { -1 5 2 }
- heses = \musicalpitch { -1 6 -2 }
- b = \musicalpitch { -1 6 -1 }
- h = \musicalpitch { -1 6 0 }
- his = \musicalpitch { -1 6 1 }
- hisis = \musicalpitch { -1 6 2 }
-
-
- %
- % upper case: 1 octave lower.
- %
-
-
- Ceses = \musicalpitch { -2 0 -2 }
- Ces = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Cis = \musicalpitch { -2 0 1 }
- Cisis = \musicalpitch { -2 0 2 }
- Deses = \musicalpitch { -2 1 -2 }
- Des = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- Dis = \musicalpitch { -2 1 1 }
- Disis = \musicalpitch { -2 1 2 }
- Eses = \musicalpitch { -2 2 -2 }
- Es = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- Eis = \musicalpitch { -2 2 1 }
- Eisis = \musicalpitch { -2 2 2 }
- Feses = \musicalpitch { -2 3 -2 }
- Fes = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fis = \musicalpitch { -2 3 1 }
- Fisis = \musicalpitch { -2 3 2 }
- Geses = \musicalpitch { -2 4 -2 }
- Ges = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Gis = \musicalpitch { -2 4 1 }
- Gisis = \musicalpitch { -2 4 2 }
- Ases = \musicalpitch { -2 5 -2 }
- As = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- Ais = \musicalpitch { -2 5 1 }
- Aisis = \musicalpitch { -2 5 2 }
- Heses = \musicalpitch { -2 6 -2 }
- B = \musicalpitch { -2 6 -1 }
- H = \musicalpitch { -2 6 0 }
- His = \musicalpitch { -2 6 1 }
- Hisis = \musicalpitch { -2 6 2 }
-
-
-}
+++ /dev/null
-%
-% 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
+++ /dev/null
-%{
- English note names spelled out in full, and abbreviated
- with s for sharp and f for flat.
-%}
-
-\notenames {
- cflatflat = \musicalpitch { -1 0 -2 }
- cflat = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- csharp = \musicalpitch { -1 0 1 }
- csharpsharp = \musicalpitch { -1 0 2 }
- dflatflat = \musicalpitch { -1 1 -2 }
- dflat = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- dsharp = \musicalpitch { -1 1 1 }
- dsharpsharp = \musicalpitch { -1 1 2 }
- eflatflat = \musicalpitch { -1 2 -2 }
- eflat = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- esharp = \musicalpitch { -1 2 1 }
- esharpsharp = \musicalpitch { -1 2 2 }
- fflatflat = \musicalpitch { -1 3 -2 }
- fflat = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fsharp = \musicalpitch { -1 3 1 }
- fsharpsharp = \musicalpitch { -1 3 2 }
- gflatflat = \musicalpitch { -1 4 -2 }
- gflat = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- gsharp = \musicalpitch { -1 4 1 }
- gsharpsharp = \musicalpitch { -1 4 2 }
- aflatflat = \musicalpitch { -1 5 -2 }
- aflat = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- asharp = \musicalpitch { -1 5 1 }
- asharpsharp = \musicalpitch { -1 5 2 }
- bflatflat = \musicalpitch { -1 6 -2 }
- bflat = \musicalpitch { -1 6 -1 }
- b = \musicalpitch { -1 6 0 }
- bsharp = \musicalpitch { -1 6 1 }
- bsharpsharp = \musicalpitch { -1 6 2 }
-
- cff = \musicalpitch { -1 0 -2 }
- cf = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- cs = \musicalpitch { -1 0 1 }
- css = \musicalpitch { -1 0 2 }
- dff = \musicalpitch { -1 1 -2 }
- df = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- ds = \musicalpitch { -1 1 1 }
- dss = \musicalpitch { -1 1 2 }
- eff = \musicalpitch { -1 2 -2 }
- ef = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- es = \musicalpitch { -1 2 1 } % es = E-flat in Dutch
- ess = \musicalpitch { -1 2 2 }
- fff = \musicalpitch { -1 3 -2 }
- ff = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fs = \musicalpitch { -1 3 1 }
- fss = \musicalpitch { -1 3 2 }
- gff = \musicalpitch { -1 4 -2 }
- gf = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- gs = \musicalpitch { -1 4 1 }
- gss = \musicalpitch { -1 4 2 }
- aff = \musicalpitch { -1 5 -2 }
- af = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- as = \musicalpitch { -1 5 1 } % as = A-flat in Dutch
- ass = \musicalpitch { -1 5 2 }
- bff = \musicalpitch { -1 6 -2 }
- bf = \musicalpitch { -1 6 -1 }
- b = \musicalpitch { -1 6 0 }
- bs = \musicalpitch { -1 6 1 }
- bss = \musicalpitch { -1 6 2 }
-
-
- %
- % upper case: 1 octave lower.
- %
-
-
- Cflatflat = \musicalpitch { -2 0 -2 }
- Cflat = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Csharp = \musicalpitch { -2 0 1 }
- Csharpsharp = \musicalpitch { -2 0 2 }
- Dflatflat = \musicalpitch { -2 1 -2 }
- Dflat = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- Dsharp = \musicalpitch { -2 1 1 }
- Dsharpsharp = \musicalpitch { -2 1 2 }
- Eflatflat = \musicalpitch { -2 2 -2 }
- Eflat = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- Esharp = \musicalpitch { -2 2 1 }
- Esharpsharp = \musicalpitch { -2 2 2 }
- Fflatflat = \musicalpitch { -2 3 -2 }
- Fflat = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fsharp = \musicalpitch { -2 3 1 }
- Fsharpsharp = \musicalpitch { -2 3 2 }
- Gflatflat = \musicalpitch { -2 4 -2 }
- Gflat = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Gsharp = \musicalpitch { -2 4 1 }
- Gsharpsharp = \musicalpitch { -2 4 2 }
- Aflatflat = \musicalpitch { -2 5 -2 }
- Aflat = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- Asharp = \musicalpitch { -2 5 1 }
- Asharpsharp = \musicalpitch { -2 5 2 }
- Bflatflat = \musicalpitch { -2 6 -2 }
- Bflat = \musicalpitch { -2 6 -1 }
- B = \musicalpitch { -2 6 0 }
- Bsharp = \musicalpitch { -2 6 1 }
- Bsharpsharp = \musicalpitch { -2 6 2 }
-
- Cff = \musicalpitch { -2 0 -2 }
- Cf = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Cs = \musicalpitch { -2 0 1 }
- Css = \musicalpitch { -2 0 2 }
- Dff = \musicalpitch { -2 1 -2 }
- Df = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- Ds = \musicalpitch { -2 1 1 }
- Dss = \musicalpitch { -2 1 2 }
- Eff = \musicalpitch { -2 2 -2 }
- Ef = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- Es = \musicalpitch { -2 2 1 }
- Ess = \musicalpitch { -2 2 2 }
- Fff = \musicalpitch { -2 3 -2 }
- Ff = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fs = \musicalpitch { -2 3 1 }
- Fss = \musicalpitch { -2 3 2 }
- Gff = \musicalpitch { -2 4 -2 }
- Gf = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Gs = \musicalpitch { -2 4 1 }
- Gss = \musicalpitch { -2 4 2 }
- Aff = \musicalpitch { -2 5 -2 }
- Af = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- As = \musicalpitch { -2 5 1 }
- Ass = \musicalpitch { -2 5 2 }
- Bff = \musicalpitch { -2 6 -2 }
- Bf = \musicalpitch { -2 6 -1 }
- B = \musicalpitch { -2 6 0 }
- Bs = \musicalpitch { -2 6 1 }
- Bss = \musicalpitch { -2 6 2 }
-
-
-}
+++ /dev/null
-%
-% setup for Request->Element conversion. Guru-only
-%
-
-StaffContext=\translator {
- \type "Line_group_engraver_group";
- \name Staff ;
- barAuto = "1";
-
-%{
- The Hara_kiri_line_group_engraver is a Line_group_engraver
- that will not typeset an empty line of staff, i.e., a line
- of staff with only rests in it. This is needed for orchestral
- scores. Comment-out Line_group_engraver_group, and uncomment
- Hara_kiri_line_group_engraver.
-%}
-% \type "Hara_kiri_line_group_engraver";
-
- \consists "Multi_measure_rest_engraver";
- \consists "Repeat_engraver";
- \consists "Bar_engraver";
- \consists "Clef_engraver";
- \consists "Key_engraver";
- \consists "Local_key_engraver";
- \consists "Time_signature_engraver";
- \consists "Staff_symbol_engraver";
- \consists "Collision_engraver";
- \consists "Rest_collision_engraver";
-
-%{
- Uncomment to get bar numbers on single staff systems:
-
- The Bar_number_engraver puts a number over a staff created
- at the same level of hierarchy. This why you have to add it
- here separately if you want to have numbers on single staff
- systems: The Bar_number_engraver in Score_engraver will only
- put numbers on bars that are Score ("system") wide. Such
- bars are only created when the toplevel system has multiple
- children-staffs.
-
-%}
-%{
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
-%}
-%{
- The Staff_margin_engraver puts the name of the instrument
- (\property Staff.instrument; Staff.instr for subsequent lines)
- to the left of a staff.
-%}
- defaultClef = treble;
-
- marginBreakPriority = "-5";
-
-%{
- \consists "Staff_margin_engraver";
-%}
- \consists "Separating_line_group_engraver";
-
- \accepts "Voice";
- dynamicStyle = "dynamic";
-};
-
-\translator{\StaffContext }
-\translator {
- \type "Line_group_engraver_group";
- \name ChoirStaff;
- \consists "Vertical_align_engraver";
- \consists "Staff_group_bar_engraver";
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "GrandStaff";
- \accepts "Lyrics";
- \accepts "ChordNames";
-}
-
-
-RhythmicStaffContext=\translator{
- \type "Line_group_engraver_group";
- numberOfStaffLines = "1";
- \consists "Pitch_squash_engraver";
- \consists "Separating_line_group_engraver";
- \name RhythmicStaff;
-
- \consists "Repeat_engraver";
- \consists "Bar_engraver";
- \consists "Time_signature_engraver";
- \consists "Staff_symbol_engraver";
- \accepts "Voice";
-};
-\translator{\RhythmicStaffContext}
-VoiceContext = \translator {
- \type "Engraver_group_engraver";
- \consists "Dynamic_engraver";
- \name Voice ;
-
- \consists "Rest_engraver";
- \consists "Dot_column_engraver";
- \consists "Stem_engraver";
- \consists "Beam_engraver";
- \consists "Abbreviation_beam_engraver";
-% \consists "Multi_measure_rest_engraver";
-
- % ugh. Order matters here.
- \consists "Text_engraver";
- \consists "Script_engraver";
- \consists "Rhythmic_column_engraver";
- \consists "Font_size_engraver";
- \consists "Slur_engraver";
- \consists "Tie_engraver";
- \consists "Tuplet_engraver";
- \consists "Note_heads_engraver" ;
- \consists "Skip_req_swallow_translator";
-};
-
-\translator {\VoiceContext}
-
-GrandStaffContext=\translator{
- \type "Line_group_engraver_group";
- \name GrandStaff;
- \consists "Span_bar_engraver";
- \consists "Vertical_align_engraver";
- \consists "Piano_bar_engraver";
- minVerticalAlign = 1.5*\staffheight;
-
- \accepts "Staff";
-};
-\translator{\GrandStaffContext}
-
-\translator {
- \type "Line_group_engraver_group";
-% \type "Hara_kiri_line_group_engraver";
- \consists "Span_bar_engraver";
- \consists "Vertical_align_engraver";
- \consists "Staff_group_bar_engraver";
- \name StaffGroup;
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "GrandStaff";
- \accepts "Lyrics";
- \accepts "ChordNames";
-}
-
-\translator{
- \type "Line_group_engraver_group";
-
- \name LyricVoice ;
- \consists "Separating_line_group_engraver";
- \consists "Lyric_engraver";
- \consists "Extender_engraver";
- \consists "Beam_req_swallow_translator";
-}
-
-\translator {
- \type "Line_group_engraver_group";
- \name Lyrics;
- \consists "Vertical_align_engraver";
- \accepts "LyricVoice";
-}
-
-\translator{
- \type "Line_group_engraver_group";
-
- \name ChordNameVoice ;
- \consists "Separating_line_group_engraver";
- \consists "Chord_name_engraver";
-}
-
-\translator {
- \type "Line_group_engraver_group";
- \name ChordNames;
- \consists "Vertical_align_engraver";
- \accepts "ChordNameVoice";
-}
-
-ScoreContext = \translator {
- \type Score_engraver;
- \name Score;
-
- \consists "Timing_engraver";
-
- \consists "Bar_column_engraver";
- \consists "Span_score_bar_engraver";
- \consists "Score_priority_engraver";
- \consists "Priority_horizontal_align_engraver";
- \consists "Vertical_align_engraver";
-
-
- \accepts "StaffGroup";
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "Lyrics";
- \accepts "ChordNames";
- \accepts "GrandStaff";
- \accepts "ChoirStaff";
-};
-\translator { \ScoreContext }
-
-ScoreWithNumbers = \translator {
- \type "Score_engraver";
-
- % uncomment to bar numbers on a whole system.
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
-
-};
-
-StupidScore = \translator {
- \type "Score_engraver";
- \name Score;
- \consists "Note_heads_engraver";
-};
-
-
-
-BarNumberingStaffContext = \translator {
- \StaffContext
- barColumnPriority = "0";
- marginBreakPriority = "-4";
- \consists "Mark_engraver";
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
-
-};
-
-
-HaraKiriStaffContext = \translator {
- \type "Hara_kiri_line_group_engraver";
- \name Staff;
- barColumnPriority = "0";
- marginBreakPriority = "-4";
-
- \consists "Repeat_engraver";
- \consists "Bar_engraver";
- \consists "Clef_engraver";
- \consists "Key_engraver";
- \consists "Time_signature_engraver";
- \consists "Local_key_engraver";
- \consists "Staff_symbol_engraver";
- \consists "Collision_engraver";
- \consists "Rest_collision_engraver";
- \consists "Staff_margin_engraver";
- \consists "Separating_line_group_engraver";
-
- \accepts "Voice";
-};
-
-% huh, Score should do HaraKiri, not Part yes?
-OrchestralPartStaffContext = \translator {
-% \HaraKiriStaffContext
- \StaffContext
- barColumnPriority = "0";
- marginBreakPriority = "-4";
- \consists "Mark_engraver";
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
-};
-
-% where to put HaraKiri here?
-OrchestralScoreContext= \translator {
- \type Score_engraver;
- \name Score;
- barScriptPadding = "2.0"; % dimension \pt
- markScriptPadding = "4.0";
- barColumnPriority = "-4";
- markBreakPriority = "-4";
- defaultClef = treble;
-
- \consists "Timing_engraver";
-
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
- \consists "Mark_engraver";
- \consists "Span_score_bar_engraver";
- \consists "Score_priority_engraver";
- \consists "Priority_horizontal_align_engraver";
- \consists "Vertical_align_engraver";
-
- \accepts "ChoirStaff";
- \accepts "StaffGroup";
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "Lyrics";
- \accepts "ChordNames";
- \accepts "GrandStaff";
-};
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly"
-
-\include "paper16.ly";
-
-\paper {
- \paper_sixteen
- linewidth = -1.0\cm;
- castingalgorithm = \Wordwrap;
- "unusedentry" = "}\\def\\nolilyfooter{";
-}
-
-
-\score {
-% \notes\relative c {
- \notes {
- \maininput
- }
- \paper { }
-
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly"
-
-\score {
- \notes\relative c {
- \maininput
- }
- \paper { }
- \midi{ }
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.0.14";
-
-
-\include "declarations.ly";
-
-\maininput
+++ /dev/null
-%{
- Common italian names for notes. "b" means flat (bemolle), "d" means sharp (diesis)
- Adapted from dutch.ly.
-
- English: a b c d e f g
- Italian: la si do re mi fa sol
-
- For french naming just change 'do' in 'ut'.
-%}
-
-% contributed by Paolo Zuliani <zuliap@easynet.it>
-
-\notenames {
- dobb = \musicalpitch { -1 0 -2 }
- dob = \musicalpitch { -1 0 -1 }
- do = \musicalpitch { -1 0 0 }
- dod = \musicalpitch { -1 0 1 }
- dodd = \musicalpitch { -1 0 2 }
- rebb = \musicalpitch { -1 1 -2 }
- reb = \musicalpitch { -1 1 -1 }
- re = \musicalpitch { -1 1 0 }
- red = \musicalpitch { -1 1 1 }
- redd = \musicalpitch { -1 1 2 }
- mibb = \musicalpitch { -1 2 -2 }
- mib = \musicalpitch { -1 2 -1 }
- mi = \musicalpitch { -1 2 0 }
- mid = \musicalpitch { -1 2 1 }
- midd = \musicalpitch { -1 2 2 }
- fabb = \musicalpitch { -1 3 -2 }
- fab = \musicalpitch { -1 3 -1 }
- fa = \musicalpitch { -1 3 0 }
- fad = \musicalpitch { -1 3 1 }
- fadd = \musicalpitch { -1 3 2 }
- solbb = \musicalpitch { -1 4 -2 }
- solb = \musicalpitch { -1 4 -1 }
- sol = \musicalpitch { -1 4 0 }
- sold = \musicalpitch { -1 4 1 }
- soldd = \musicalpitch { -1 4 2 }
- labb = \musicalpitch { -1 5 -2 }
- lab = \musicalpitch { -1 5 -1 }
- la = \musicalpitch { -1 5 0 }
- lad = \musicalpitch { -1 5 1 }
- ladd = \musicalpitch { -1 5 2 }
- sibb = \musicalpitch { -1 6 -2 }
- sib = \musicalpitch { -1 6 -1 }
- si = \musicalpitch { -1 6 0 }
- sid = \musicalpitch { -1 6 1 }
- sidd = \musicalpitch { -1 6 2 }
-}
+++ /dev/null
-
-\midi {
- \tempo 4=60;
- \include "performer.ly"
-}
+++ /dev/null
-%{
- common dutch names for notes. "es" means flat, "is" means sharp
-
-
-
-
- Please note that, while these names are used to enter *notes*, they
- actually are *melodic*s, i.e. they represent a pitch solely. Notes
- have a rhythmic part too. This is the reason that we don't write 'note { .. }'
-
-%}
-
-\notenames {
- ceses = \musicalpitch { -1 0 -2 }
- ces = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- cis = \musicalpitch { -1 0 1 }
- cisis = \musicalpitch { -1 0 2 }
- deses = \musicalpitch { -1 1 -2 }
- des = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- dis = \musicalpitch { -1 1 1 }
- disis = \musicalpitch { -1 1 2 }
- eeses = \musicalpitch { -1 2 -2 }
- eses = \musicalpitch { -1 2 -2 }
- ees = \musicalpitch { -1 2 -1 }
- es = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- eis = \musicalpitch { -1 2 1 }
- eisis = \musicalpitch { -1 2 2 }
- feses = \musicalpitch { -1 3 -2 }
- fes = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fis = \musicalpitch { -1 3 1 }
- fisis = \musicalpitch { -1 3 2 }
- geses = \musicalpitch { -1 4 -2 }
- ges = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- gis = \musicalpitch { -1 4 1 }
- gisis = \musicalpitch { -1 4 2 }
- aeses = \musicalpitch { -1 5 -2 }
- ases = \musicalpitch { -1 5 -2 }
- aes = \musicalpitch { -1 5 -1 }
- as = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- ais = \musicalpitch { -1 5 1 }
- aisis = \musicalpitch { -1 5 2 }
- beses = \musicalpitch { -1 6 -2 }
- bes = \musicalpitch { -1 6 -1 }
- b = \musicalpitch { -1 6 0 }
- bis = \musicalpitch { -1 6 1 }
- bisis = \musicalpitch { -1 6 2 }
-
-
- %
- % upper case: 1 octave lower.
- %
-
-
- Ceses = \musicalpitch { -2 0 -2 }
- Ces = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Cis = \musicalpitch { -2 0 1 }
- Cisis = \musicalpitch { -2 0 2 }
- Deses = \musicalpitch { -2 1 -2 }
- Des = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- Dis = \musicalpitch { -2 1 1 }
- Disis = \musicalpitch { -2 1 2 }
- Eses = \musicalpitch { -2 2 -2 }
- Es = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- Eis = \musicalpitch { -2 2 1 }
- Eisis = \musicalpitch { -2 2 2 }
- Feses = \musicalpitch { -2 3 -2 }
- Fes = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fis = \musicalpitch { -2 3 1 }
- Fisis = \musicalpitch { -2 3 2 }
- Geses = \musicalpitch { -2 4 -2 }
- Ges = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Gis = \musicalpitch { -2 4 1 }
- Gisis = \musicalpitch { -2 4 2 }
- Aeses = \musicalpitch { -2 5 -2 }
- Ases = \musicalpitch { -2 5 -2 }
- Aes = \musicalpitch { -2 5 -1 }
- As = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- Ais = \musicalpitch { -2 5 1 }
- Aisis = \musicalpitch { -2 5 2 }
- Beses = \musicalpitch { -2 6 -2 }
- Bes = \musicalpitch { -2 6 -1 }
- B = \musicalpitch { -2 6 0 }
- Bis = \musicalpitch { -2 6 1 }
- Bisis = \musicalpitch { -2 6 2 }
-
-
-}
-
+++ /dev/null
-
-% $Id: norsk.ly,v 1.1 1998/03/25 11:38:28 arvidg Exp arvidg $
-
-%{
-
- Common norwegian names for notes, including versions without the
- double s-es to save typing, as well as the traditional names with
- them not to confuse musicians. "es" or "ess" means flat, "is" or
- "iss" means sharp.
-
- Otherwise, the main difference from the dutch names is the that the
- "b" is called "h" in norwegian, while the dutch "bes" is a norwegian
- "b".
-
- Staying within the (proud?) naming convention for norwegian language
- setup used in LaTeX, this file is called "norsk.ly" instead of
- "norwegian.ly", even if all other languages' files use the english
- name.
-
- This file is based on "dutch.ly". Basically, I copied "dutch.ly",
- duplicated all lines containing at least one "is" or "es", changed
- every other "is" into an "iss" and every other "es" into an "ess",
- added "ass" et al, and made some b->h-related changes. There may be
- bugs in here; please tell me (or send patches) if you find any.
-
- Arvid Gr=F8tting <arvidg@ifi.uio.no>
-
-%}
-
-\notenames {
- ceses = \musicalpitch { -1 0 -2 }
- cessess = \musicalpitch { -1 0 -2 }
- ces = \musicalpitch { -1 0 -1 }
- cess = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- cis = \musicalpitch { -1 0 1 }
- ciss = \musicalpitch { -1 0 1 }
- cisis = \musicalpitch { -1 0 2 }
- cississ = \musicalpitch { -1 0 2 }
- deses = \musicalpitch { -1 1 -2 }
- dessess = \musicalpitch { -1 1 -2 }
- des = \musicalpitch { -1 1 -1 }
- dess = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- dis = \musicalpitch { -1 1 1 }
- diss = \musicalpitch { -1 1 1 }
- disis = \musicalpitch { -1 1 2 }
- dississ = \musicalpitch { -1 1 2 }
- eeses = \musicalpitch { -1 2 -2 }
- eessess = \musicalpitch { -1 2 -2 }
- eses = \musicalpitch { -1 2 -2 }
- essess = \musicalpitch { -1 2 -2 }
- ees = \musicalpitch { -1 2 -1 }
- eess = \musicalpitch { -1 2 -1 }
- es = \musicalpitch { -1 2 -1 }
- ess = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- eis = \musicalpitch { -1 2 1 }
- eiss = \musicalpitch { -1 2 1 }
- eisis = \musicalpitch { -1 2 2 }
- eississ = \musicalpitch { -1 2 2 }
- feses = \musicalpitch { -1 3 -2 }
- fessess = \musicalpitch { -1 3 -2 }
- fes = \musicalpitch { -1 3 -1 }
- fess = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fis = \musicalpitch { -1 3 1 }
- fiss = \musicalpitch { -1 3 1 }
- fisis = \musicalpitch { -1 3 2 }
- fississ = \musicalpitch { -1 3 2 }
- geses = \musicalpitch { -1 4 -2 }
- gessess = \musicalpitch { -1 4 -2 }
- ges = \musicalpitch { -1 4 -1 }
- gess = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- g = \musicalpitch { -1 4 0 }
- gis = \musicalpitch { -1 4 1 }
- giss = \musicalpitch { -1 4 1 }
- gisis = \musicalpitch { -1 4 2 }
- gississ = \musicalpitch { -1 4 2 }
- aeses = \musicalpitch { -1 5 -2 }
- aessess = \musicalpitch { -1 5 -2 }
- ases = \musicalpitch { -1 5 -2 }
- assess = \musicalpitch { -1 5 -2 }
- aes = \musicalpitch { -1 5 -1 }
- aess = \musicalpitch { -1 5 -1 }
- as = \musicalpitch { -1 5 -1 }
- ass = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- ais = \musicalpitch { -1 5 1 }
- aiss = \musicalpitch { -1 5 1 }
- aisis = \musicalpitch { -1 5 2 }
- aississ = \musicalpitch { -1 5 2 }
- bes = \musicalpitch { -1 6 -2 }
- bess = \musicalpitch { -1 6 -2 }
- b = \musicalpitch { -1 6 -1 }
- b = \musicalpitch { -1 6 -1 }
- h = \musicalpitch { -1 6 0 }
- his = \musicalpitch { -1 6 1 }
- hiss = \musicalpitch { -1 6 1 }
- hisis = \musicalpitch { -1 6 2 }
- hississ = \musicalpitch { -1 6 2 }
-
-
- %
- % upper case: 1 octave lower, as usual.
- %
-
-
- Ceses = \musicalpitch { -2 0 -2 }
- Cessess = \musicalpitch { -2 0 -2 }
- Ces = \musicalpitch { -2 0 -1 }
- Cess = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Cis = \musicalpitch { -2 0 1 }
- Ciss = \musicalpitch { -2 0 1 }
- Cisis = \musicalpitch { -2 0 2 }
- Cississ = \musicalpitch { -2 0 2 }
- Deses = \musicalpitch { -2 1 -2 }
- Dessess = \musicalpitch { -2 1 -2 }
- Des = \musicalpitch { -2 1 -1 }
- Dess = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- D = \musicalpitch { -2 1 0 }
- Dis = \musicalpitch { -2 1 1 }
- Diss = \musicalpitch { -2 1 1 }
- Disis = \musicalpitch { -2 1 2 }
- Dississ = \musicalpitch { -2 1 2 }
- Eses = \musicalpitch { -2 2 -2 }
- Essess = \musicalpitch { -2 2 -2 }
- Es = \musicalpitch { -2 2 -1 }
- Ess = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- E = \musicalpitch { -2 2 0 }
- Eis = \musicalpitch { -2 2 1 }
- Eiss = \musicalpitch { -2 2 1 }
- Eisis = \musicalpitch { -2 2 2 }
- Eississ = \musicalpitch { -2 2 2 }
- Feses = \musicalpitch { -2 3 -2 }
- Fessess = \musicalpitch { -2 3 -2 }
- Fes = \musicalpitch { -2 3 -1 }
- Fess = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fis = \musicalpitch { -2 3 1 }
- Fiss = \musicalpitch { -2 3 1 }
- Fisis = \musicalpitch { -2 3 2 }
- Fississ = \musicalpitch { -2 3 2 }
- Geses = \musicalpitch { -2 4 -2 }
- Gessess = \musicalpitch { -2 4 -2 }
- Ges = \musicalpitch { -2 4 -1 }
- Gess = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Gis = \musicalpitch { -2 4 1 }
- Giss = \musicalpitch { -2 4 1 }
- Gisis = \musicalpitch { -2 4 2 }
- Gississ = \musicalpitch { -2 4 2 }
- Aeses = \musicalpitch { -2 5 -2 }
- Aessess = \musicalpitch { -2 5 -2 }
- Ases = \musicalpitch { -2 5 -2 }
- Assess = \musicalpitch { -2 5 -2 }
- Aes = \musicalpitch { -2 5 -1 }
- Aess = \musicalpitch { -2 5 -1 }
- As = \musicalpitch { -2 5 -1 }
- Ass = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- A = \musicalpitch { -2 5 0 }
- Ais = \musicalpitch { -2 5 1 }
- Aiss = \musicalpitch { -2 5 1 }
- Aisis = \musicalpitch { -2 5 2 }
- Aississ = \musicalpitch { -2 5 2 }
- Bes = \musicalpitch { -2 6 -2 }
- Bess = \musicalpitch { -2 6 -2 }
- B = \musicalpitch { -2 6 -1 }
- H = \musicalpitch { -2 6 0 }
- His = \musicalpitch { -2 6 1 }
- Hiss = \musicalpitch { -2 6 1 }
- Hisis = \musicalpitch { -2 6 2 }
- Hississ = \musicalpitch { -2 6 2 }
-
-}
-
-
-
+++ /dev/null
-% paper.ly
-
-linewidth20 = \hsize - 2.5 * \staffheight;
-textheight20 = \vsize - 5.0 * \staffheight;
-linewidth = \staffheight/20.0 * \linewidth20;
-textheight = \staffheight/20.0 * \textheight20;
-
-indent = \linewidth / 14.0;
-
+++ /dev/null
-% paper11.ly
-
-\include "table11.ly";
-
-paper_eleven = \paper {
- staffheight = 11.0\pt;
-
- % ugh see table11 for sizes
- quartwidth = 3.63\pt;
- wholewidth = 5.45\pt;
-
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 4.8\pt;
-
- 0=\symboltables { \table_eleven }
- \include "params.ly";
-}
-
+++ /dev/null
-% paper13.ly
-
-\include "table13.ly";
-
-paper_thirteen = \paper {
- staffheight = 13.0\pt;
-
- % ugh see table13 for sizes
- quartwidth = 4.29\pt;
- wholewidth = 6.44\pt;
-
-
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 4.8\pt;
-
- 0=\symboltables { \table_thirteen }
- \include "params.ly";
-}
-
+++ /dev/null
-% paper16.ly
-
-\include "table13.ly";
-\include "table11.ly";
-\include "table16.ly";
-
-
-
-\version "1.0.14";
-
-paper_sixteen = \paper {
- staffheight = 16.0\pt;
-
- % ugh, see table16 for sizes
- quartwidth = 5.28\pt;
- wholewidth = 7.92\pt;
-
-
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 4.8\pt;
- texsetting = "\\input lilyponddefs \\musixsixteendefs ";
- pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
- 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 }
-
- \include "params.ly";
-}
+++ /dev/null
-% paper20.ly
-
-\include "table20.ly";
-
- \include "table13.ly";
- \include "table16.ly";
-
-\version "1.0.14";
-
-paper_twenty = \paper {
- staffheight = 20.0\pt;
-
- % ugh see table20 for sizes
- quartwidth = 6.61\pt;
- wholewidth = 9.90\pt;
-
-
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 6.\pt;
- texsetting = "\\input lilyponddefs \\musixtwentydefs ";
- pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
- % urg, debugging only
- 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 }
-
- \include "params.ly";
-}
-
+++ /dev/null
-% paper26.ly
-
-\include "table26.ly";
-
-paper_twentysix = \paper {
- staffheight = 26.0\pt;
-
- % ugh see table26 for sizes
- quartwidth = 8.59\pt;
- wholewidth = 12.87\pt;
-
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 6.\pt;
-
- 0=\symboltables { \table_twentysix }
- \include "params.ly";
- linewidth = \linewidth20;
- textheight = \textheight20;
-}
-
+++ /dev/null
-% params.ly
-% generic paper parameters
-
-paperfile = \papersize + ".ly";
-% paperfile = "a4.ly";
-\include \paperfile;
-\include "paper.ly";
-
-interline = \staffheight / 4.0;
-
-
-% thickness of stafflines
-staffline = \interline / 10.0;
-
-beam_thickness = 0.52 * (\interline - \staffline);
-interbeam = (2.0 * \interline - \beam_thickness) / 2.0;
-interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
-
-% stems and beams
-%
-% poor man's array size
-stem_max = 3.0;
-%
-stem_length0 = 3.5*\interline;
-stem_length1 = 2.5 * \interline;
-stem_length2 = 2.0 * \interline;
-stem_length3 = 1.5 * \interline;
-
-% only used for beams
-minimum_stem_length0 = 0.0; % not used
-minimum_stem_length1 = 1.5 * \interline;
-minimum_stem_length2 = 1.25 * \interline;
-minimum_stem_length3 = 1.0 * \interline;
-
-% stems in unnatural (forced) direction should be shortened,
-% according to [Roush & Gourlay]. Their suggestion to knock off
-% a whole staffspace seems a bit drastical: we'll do half.
-%
-forced_stem_shorten0 = 0.5 * \interline;
-forced_stem_shorten1 = \forced_stem_shorten0;
-forced_stem_shorten2 = \forced_stem_shorten1;
-forced_stem_shorten3 = \forced_stem_shorten2;
-
-% there are several ways to calculate the direction of a beam
-%
-% * MAJORITY : number count of up or down notes
-% * MEAN : mean centre distance of all notes
-% * MEDIAN : mean centre distance weighted per note
-%
-% enum Dir_algorithm { DOWN=-1, UP=1, MAJORITY=2, MEAN, MEDIAN };
-%
-DOWN = -1.0;
-UP = 1.0;
-MAJORITY = 2.0;
-MEAN = 3.0;
-MEDIAN = 4.0;
-% [Ross]: majority
-beam_dir_algorithm = \MAJORITY;
-
-% catch suspect beam slopes, set slope to zero if
-% outer stem is lengthened more than
-beam_lengthened = 0.2 * \interline;
-% and slope is running away steeper than
-beam_steep_slope = 0.2 / 1.0;
-
-% OSU: suggested gap = ss / 5;
-slur_x_gap = \interline / 5.0;
-slur_x_minimum = 2.0 * \interline;
-slur_slope_damping = 0.5;
-tie_x_minimum = \slur_x_minimum;
-tie_x_gap = \slur_x_gap;
-tie_slope_damping = 0.3;
-
-% ugh: rename to bow (in bezier.cc and fonts.doc too...)
-% slur_thickness = 1.8 * \staffline;
-slur_thickness = 1.4 * \staffline;
-slur_height_limit = \staffheight;
-
-% mmm, try bit flatter slurs
-% slur_ratio = 1.0 / 3.0;
-slur_ratio = 0.3;
-slur_clip_ratio = 1.2;
-slur_clip_height = 3.0 * \staffheight;
-slur_clip_angle = 100.0;
-slur_rc_factor = 2.4;
-
-% ugh
-notewidth = (\quartwidth + \wholewidth) / 2.0;
-
-% ugh
-barsize = \staffheight;
-rulethickness = \staffline;
-stemthickness = \staffline;
-
-
-gourlay_energybound = 100000.;
-%{
-The following bounds the number of measures
-on a line. Decreasing it greatly reduces computation time
-%}
-gourlay_maxmeasures = 10.;
-castingalgorithm = \Gourlay;
-\include "engraver.ly";
-
+++ /dev/null
-%part-paper.ly
-
-\paper {
- \translator { \OrchestralPartStaffContext }
- \translator { \ScoreContext skipBars = 1; }
- % for simple testing only!
-% castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn
-}
-
+++ /dev/null
-%
-% setup for Request->Element conversion. Guru-only
-%
-\translator {
- \type "Staff_performer";
- \accepts Voice;
- \name Staff;
- \consists "Key_performer";
- \consists "Time_signature_performer";
-}
-
-\translator
-{
- \type "Performer_group_performer";
- \name Thread ;
- \consists "Note_performer";
-}
-\translator
-{
- \type "Performer_group_performer";
- \accepts Thread;
-\name Voice;
-}
-\translator
-{
- \type "Performer_group_performer";
- \accepts Staff;
-
-\name GrandStaff;}
-
-\translator {
- \type "Performer_group_performer";
- \consists "Lyric_performer";
-\name LyricVoice;
-}
-
-\translator{
- \type "Performer_group_performer";
- \name ChoirStaff;
- \accepts Staff;
-}
-\translator {
- \type "Staff_performer";
- \accepts LyricVoice;
- \name Lyrics;
- \consists "Time_signature_performer";
-}
-\translator
-{
- \type Performer_group_performer;
-
- \name StaffGroup;
- \accepts Staff;
-}
-\translator {
- \type "Score_performer";
-
-
- \name Score;
- instrument = piano;
- \accepts Staff;
- \accepts GrandStaff;
- \accepts Lyrics;
- \accepts StaffGroup;
- \accepts ChoirStaff;
- \consists "Swallow_performer";
-}
-
+++ /dev/null
-% property.ly
-% list of properties that lily recognises
-% and some shorthands (ugh)
-
-%{
-
-PROPERTIES
-
-name value effect shorthand
-
-[Voice]
-ydirection -1 force stem down \stemdown
-ydirection 0 stem direction free \stemboth
-ydirection 1 force stem up \stemup
-
-pletvisibility 0 show nothing
-pletvisibility 1 show number
-pletvisibility 2 show (number and bracket)-if-no-beam
-pletvisibility 3 show number, and bracket-if-no-beam
-pletvisibility 4 show number, and bracket
-
-slurdash 0 normal slurs
-slurdash 1 dotted slurs
-slurdash >1 dashed slurs
-
-slurydirection -1 force stem down \slurdown
-slurydirection 0 stem direction free \slurboth
-slurydirection 1 force stem up \slurup
-
-slurydirection -1 force stem down \slurdown
-slurydirection 0 stem direction free \slurboth
-slurydirection 1 force stem up \slurup
-
-textalignment -1 left alignment of text
-textalignment 0 center alignment of text
-textalignment 1 right alignment of text
-
-[Score?]
-beamslopedamping 0 no damping \beamslopeproportional
-beamslopedamping 1 damping1) \beamslopedamped
-beamslopedamping 100000 zero slope \beamslopezero
-
-[Score?]
-beamquantisation 0 no quantisations \beamposfree
-beamquantisation 1 quantise pos and slope \beamposnormal
-beamquantisation 2 quantise avoide wedge2) \beampostraditional
-
-[Staff]
-keyoctaviation 0 Key signature only for specified octave \specialkey
-keyoctaviation 1 Key signature for all octaves \normalkey
-
-[Staff]
-barAlways 0 none
-barAlways 1 generate bar at every moment
-
-[Staff]
-barAuto 0 none
-barAuto 1 auto-generate bar every measure
-
-timeSignatureStyle C Use C and stroked C for 4/4,2/2
-timeSignatureStyle old Use old style mensuration marks
-timeSignatureStyle 1 Use single number
-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?]
-instrument ascii midi instrument table lookup
-
-[Score]
-chordInversion 0/1 Find and display chord with inversion?
-
-
-1) after beam slope damping table suggested in [Wanske]
-2) [Wanske] as well as [Ross] suggests that beams sloped upward must not
- start sitting on a staffline, and beams sloped downward must not hang
- from a staffline (similar for beam-ends). This would create a wedge
- that is traditionally being avoided because it could easily be filled-up
- with ink.
- However, avoiding these wedges restricts the freedom of beams quite a lot
- while they don't seem to be a problem in modern printing.
- In no piece of sheetmusic engraved after 1953 (Baerenreiter) i've seen
- these wedges being avoided.
-
-%}
-
-%hmm, (these) abbrevs suck, imo
-% i guess they're meant as some form of doco
-% that's what i use them for...
-stemup =
- \property Voice.ydirection = \up
-stemboth= \property Voice.ydirection = \center
-stemdown = \property Voice.ydirection = \down
-
-slurup = \notes {
- s1*0
- \property Voice.slurydirection = \up
- }
-slurboth= \notes {
- s1*0
- \property Voice.slurydirection = \center
-}
-slurdown = \notes {
- s1*0
- \property Voice.slurydirection = \down
-}
-
-shifton = \property Voice.hshift = 1
-shiftoff = \property Voice.hshift = 0
-
-onevoice = {
- \stemboth \shiftoff
-}
-
-voiceone = {
- \type Voice = one
- \stemup
-}
-
-voicetwo = {
- \type Voice = two
- \stemdown
-}
-
-voicethree = {
- \type Voice = three
- \stemup
-
-}
-
-voicefour = {
- \type Voice = four
- \stemdown
- \shifton
-}
-
-onestaff = {
- \translator Staff=one
-}
-
-staffone = {
- \translator Staff=one
- \property Staff.ydirection = \center
- \property Staff.hshift = 0
-}
-
-stafftwo = {
- \translator Staff=two
- \property Staff.ydirection = \center
- \property Staff.hshift = 0
-}
-
-staffthree = {
- \translator Staff=three
- \property Staff.ydirection = \center
- \property Staff.hshift = 0
-}
-
-stafffour = {
- \translator Staff=four
- \property Staff.ydirection = \center
- \property Staff.hshift = 0
-}
-
-% ugh, cluttering global namespace...
-none=0
-free=0
-normal=1
-traditional=2
-infinity=10000
-
-beamslopeproportional = {
- \property Score.beamslopedamping = \none
-}
-
-beamslopedamped = {
- \property Score.beamslopedamping = \normal
-}
-
-beamslopezero = {
- \property Score.beamslopedamping = \infinity
-}
-
-% this sucks, you'd want to pass an array, at least
-% (or embedded code: you still can't dictate the slope / stemlength)
-beamposfree = {
- \property Score.beamquantisation = \none
-}
-
-beamposnormal = {
- \property Score.beamquantisation = \normal
-}
-
-beampostraditional = {
- \property Score.beamquantisation = \traditional
-}
-
-slurnormal = {
- \property Voice.slurdash = 0
-}
-
-slurdotted = {
- \property Voice.slurdash = 1
-}
-
-%{
- for grace note hack, see input/test/grace.ly
-%}
-pletoff = {
- \property Voice.pletvisibility = 0
-}
-pleton = {
- \property Voice.pletvisibility = 3
-}
-tiny = {
- \property Voice.fontsize= "-2"
- \pletoff %urg
-}
-
-small = {
- \property Voice.fontsize= "-1"
-}
-
-normalsize = {
- \property Voice.fontsize= "0"
- \pleton %urg
-}
-
-%{
- [urg: try at] temporary grace note hack
- the total visible duration of the grace notes must be half
- the duration of the 'at' note: e.g.:
-
- \grace b8 \graceat c4 \ecarg
- \grace c16 b16 \graceat c4 \ecarg
-
-grace = {
- \tiny
-% it would be so cool not to have to specify these factors each time...
-% :-(
- \property Voice.pletvisibility = 0
- \[1/16
-}
-
-graceat = \melodic {
- \normalsize
- \property Voice.pletvisibility = 0
- \] \[31/32
-}
-
-ecarg = \melodic {
- \property Voice.pletvisibility = 0
- \]
- \property Voice.pletvisibility = 3
-}
-%}
-
-normalkey = {
- \property Staff.keyoctaviation = 1
-}
-
-specialkey = {
- \property Staff.keyoctaviation = 0
-}
-
+++ /dev/null
-
-% name = \script {
-% indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted priority }
-%
-
-thumb = \script { "thumb" 0 0 1 0 0 }
-accent = \script { "sforzato" 0 -1 0 0 0 }
-marcato = \script { "marcato" 0 -1 0 1 0 }
-staccatissimo = \script { "staccatissimo" 0 -1 0 1 0 }
-portato= \script { "portato" 0 -1 0 1 0 }
-fermata = \script { "fermata" 0 1 0 1 0 }
-stopped = \script { "stopped" 0 0 1 0 0 }
-staccato = \script { "staccato" 1 -1 0 0 0 }
-tenuto = \script {"tenuto" 1 -1 0 0 0 }
-upbow = \script { "upbow" 0 0 1 0 0 }
-downbow = \script { "downbow" 0 0 1 0 0 }
-lheel = \script { "upedalheel" 0 0 -1 0 0 }
-rheel = \script { "dpedalheel" 0 0 1 0 0 }
-ltoe = \script { "upedaltoe" 0 0 -1 0 0 }
-rtoe = \script { "dpedaltoe" 0 0 1 0 0 }
-turn = \script { "turn" 0 0 1 0 0 }
-open = \script { "open" 0 0 1 0 0 }
-flageolet = \script { "flageolet" 0 0 1 0 0 }
-reverseturn = \script { "reverseturn" 0 0 1 0 0 }
-
-
-% could we do without this bloat?
-%
-lbheel = \script { "bheel" 0 0 -1 0 0 }
-rbheel = \script { "bheel" 0 0 1 0 0 }
-lbtoe = \script { "btoe" 0 0 -1 0 0 }
-rbtoe = \script { "btoe" 0 0 1 0 0 }
-lfheel = \script { "fheel" 0 0 -1 0 0 }
-rfheel = \script { "fheel" 0 0 1 0 0 }
-lftoe = \script { "ftoe" 0 0 -1 0 0 }
-rftoe = \script { "ftoe" 0 0 1 0 0 }
-
-%
-% left toe: right heel:
-%
-% u -
-% - u
-% ---|-----|-- --|x----|x--
-% ---|-----|-- --|-----|---
-% --x|----x|-- --|-----|---
-% ^ -
-% - ^
-% back front back front
-%
-%
-% heu, me thought for a moment that order in table_xxx.ly was
-% being translated into priority...
-back = \script { "back" 0 -1 -1 0 0 }
-front = \script { "front" 0 -1 1 0 0 }
-
-trill =\script { "trill" 0 0 1 0
- 2000 % be above text.
-}
-
-prall =\script { "prall" 0 0 1 0 0 }
-mordent =\script { "mordent" 0 0 1 0 0 }
-prallprall =\script { "prallprall" 0 0 1 0 0 }
-prallmordent =\script { "prallmordent" 0 0 1 0 0 }
-upprall =\script { "upprall" 0 0 1 0 0 }
-downprall =\script { "downprall" 0 0 1 0 0 }
+++ /dev/null
-%
-% common Swedish names for notes. "ess" means flat, "iss" means sharp
-%
-% by Mats Bengtsson.
-
-\notenames {
- cessess = \musicalpitch { -1 0 -2 }
- cess = \musicalpitch { -1 0 -1 }
- c = \musicalpitch { -1 0 0 }
- ciss = \musicalpitch { -1 0 1 }
- cississ = \musicalpitch { -1 0 2 }
- dessess = \musicalpitch { -1 1 -2 }
- dess = \musicalpitch { -1 1 -1 }
- d = \musicalpitch { -1 1 0 }
- diss = \musicalpitch { -1 1 1 }
- dississ = \musicalpitch { -1 1 2 }
- essess = \musicalpitch { -1 2 -2 }
- ess = \musicalpitch { -1 2 -1 }
- e = \musicalpitch { -1 2 0 }
- eiss = \musicalpitch { -1 2 1 }
- eississ = \musicalpitch { -1 2 2 }
- fessess = \musicalpitch { -1 3 -2 }
- fess = \musicalpitch { -1 3 -1 }
- f = \musicalpitch { -1 3 0 }
- fiss = \musicalpitch { -1 3 1 }
- fississ = \musicalpitch { -1 3 2 }
- gessess = \musicalpitch { -1 4 -2 }
- gess = \musicalpitch { -1 4 -1 }
- g = \musicalpitch { -1 4 0 }
- giss = \musicalpitch { -1 4 1 }
- gississ = \musicalpitch { -1 4 2 }
- assess = \musicalpitch { -1 5 -2 }
- ass = \musicalpitch { -1 5 -1 }
- a = \musicalpitch { -1 5 0 }
- aiss = \musicalpitch { -1 5 1 }
- aississ = \musicalpitch { -1 5 2 }
- hessess = \musicalpitch { -1 6 -2 }
- b = \musicalpitch { -1 6 -1 }
- h = \musicalpitch { -1 6 0 }
- hiss = \musicalpitch { -1 6 1 }
- hississ = \musicalpitch { -1 6 2 }
-
-
- %
- % upper case: 1 octave lower.
- %
-
-
- Cessess = \musicalpitch { -2 0 -2 }
- Cess = \musicalpitch { -2 0 -1 }
- C = \musicalpitch { -2 0 0 }
- Ciss = \musicalpitch { -2 0 1 }
- Cississ = \musicalpitch { -2 0 2 }
- Dessess = \musicalpitch { -2 1 -2 }
- Dess = \musicalpitch { -2 1 -1 }
- D = \musicalpitch { -2 1 0 }
- Diss = \musicalpitch { -2 1 1 }
- Dississ = \musicalpitch { -2 1 2 }
- Essess = \musicalpitch { -2 2 -2 }
- Ess = \musicalpitch { -2 2 -1 }
- E = \musicalpitch { -2 2 0 }
- Eiss = \musicalpitch { -2 2 1 }
- Eississ = \musicalpitch { -2 2 2 }
- Fessess = \musicalpitch { -2 3 -2 }
- Fess = \musicalpitch { -2 3 -1 }
- F = \musicalpitch { -2 3 0 }
- Fiss = \musicalpitch { -2 3 1 }
- Fississ = \musicalpitch { -2 3 2 }
- Gessess = \musicalpitch { -2 4 -2 }
- Gess = \musicalpitch { -2 4 -1 }
- G = \musicalpitch { -2 4 0 }
- Giss = \musicalpitch { -2 4 1 }
- Gississ = \musicalpitch { -2 4 2 }
- Assess = \musicalpitch { -2 5 -2 }
- Ass = \musicalpitch { -2 5 -1 }
- A = \musicalpitch { -2 5 0 }
- Aiss = \musicalpitch { -2 5 1 }
- Aississ = \musicalpitch { -2 5 2 }
- Hessess = \musicalpitch { -2 6 -2 }
- B = \musicalpitch { -2 6 -1 }
- H = \musicalpitch { -2 6 0 }
- Hiss = \musicalpitch { -2 6 1 }
- Hississ = \musicalpitch { -2 6 2 }
-
-
-}
+++ /dev/null
-% 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
- }
-
-}
-
+++ /dev/null
-% 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
- }
-}
-
+++ /dev/null
-% 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
- }
-
-
-}
-
+++ /dev/null
-% 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
- }
-
-}
-
+++ /dev/null
-% 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
- }
-}
-
SUBDIRS=test bugs
-examples=praeludium-fuga-E twinkle-pop star-spangled-banner
+examples=praeludium-fuga-E star-spangled-banner
flexamples=
LOCALSTEPMAKE_TEMPLATES=mutopia
--- /dev/null
+\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";
+ }
+ }
+}
--- /dev/null
+
+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";
+ }
+ }
+}
--- /dev/null
+\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{ }
+}
% \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; }
}
}
$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{
{ 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.
\type Staff=staffB <
\global
\clef bass;
+ \property Staff.voltaVisibility = "0"
{\voiceone \$staff2_voice_1 }
{\voicetwo \$staff2_voice_2 }
>
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";
}
}
}
--- /dev/null
+%{
+ 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";
+ }
+ }
+}
-
-
-\version "1.0.14";
+ \version "1.0.14";
onestaff = \type Staff = foo\notes {
\property Staff.instr = instr
\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
}}
\stpaper
}}
-\score {\stscore}
-%\score {\scscore}
+%\score {\stscore}
+\score {\scscore}
minVerticalAlign = 3.0*\staffheight;
maxVerticalAlign = 3.0*\staffheight;
}
- linewidth=-1.;
+% linewidth=-1.;
}
}
+++ /dev/null
-\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 >
- >
-}
%<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
}
+++ /dev/null
-% 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
-
-
\paper {
\translator { \OrchestralPartStaffContext
markScriptPadding = "4.0";
-% markDirection = \down;
+ markHangOn = "Bar";
+ markHangDepth = "1";
+% markDirection = \diown;
}
}
}
--- /dev/null
+\version "1.0.15";
+
+\score{
+ \notes \transpose c''{
+ @c1@ @c-7@ @c-7^5@-1-3
+ }
+
+}
\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
}
>
}
\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
}
>
}
+++ /dev/null
-\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";
- }
-}
-
\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";
}
%{
%}
%{
-Tested Features: lyrics, interleaving lyrics and staffs
+Tested Features: lyrics, interleaving lyrics and staffs, repeats
%}
\version "1.0.14";
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
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;
}
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;
+}
+
+
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 (); }
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;
}
+++ /dev/null
-#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];
-}
-
-
Adobe_font_char_metric::Adobe_font_char_metric ()
{
+ B_ = Box( Interval(0,0), Interval (0,0));
+ WX_ = 0.0;
+ C_ = 0;
C_ = -1;
}
}
+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
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;
+}
--- /dev/null
+#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);
+}
return b;
}
+Interval
+Atom::extent (Axis a) const
+{
+ return dim_[a] + off_[a];
+}
+
Atom::Atom ()
+++ /dev/null
-/*
- 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);
+++ /dev/null
-/*
- 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);
- }
-}
-
-
-
return false;
bar_req_l_ = b;
-
return true;
}
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_ = ":|:";
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);
#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);
--- /dev/null
+/*
+ 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));
+}
#include "debug.hh"
-
Bar::Bar ()
{
breakable_b_ = true;
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;
}
if (d == STOP && !beam_p_)
{
- m->warning ("No Beam to end");
+ m->warning (_ ("No Beam to end"));
return false;
}
reqs_drul_[d ] = c;
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_;
{
if (beam_p_)
{
- reqs_drul_[START]->warning ("Already have a Beam");
+ reqs_drul_[START]->warning (_ ("Already have a Beam"));
return;
}
typeset_beam ();
if (beam_p_)
{
- warning ("Unfinished beam");
+ warning (_ ("Unfinished beam"));
finished_beam_p_ = beam_p_;
finished_grouping_p_ = grouping_p_;
typeset_beam ();
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);
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;
}
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_)
#include "chord-name-engraver.hh"
#include "musical-request.hh"
-#include "text-item.hh"
#include "paper-def.hh"
#include "lookup.hh"
#include "paper-def.hh"
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 ()
{
*/
-
- /*
- 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
+ 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))
+ 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 ();
-}
-
#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;
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);
+ }
+
+}
+
+
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
-
-
#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"
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";
#include "p-col.hh"
#include "paper-def.hh"
#include "extender-spanner.hh"
-#include "text-item.hh"
#include "text-def.hh"
Extender_spanner::Extender_spanner ()
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
#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
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)
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 ();
+}
+
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);
#include "identifier.hh"
#include "my-lily-lexer.hh"
#include "debug.hh"
-#include "symtable.hh"
#include "script-def.hh"
#include "request.hh"
#include "translator.hh"
DEFAULT_PRINT(General_script_def);
DEFAULT_PRINT(Translator);
-DEFAULT_PRINT(Symtables);
DEFAULT_PRINT(Music);
DEFAULT_PRINT(Request);
DEFAULT_PRINT(Score);
DUMMY_STR(Notename_table);
DUMMY_STR(General_script_def);
DUMMY_STR(Translator);
-DUMMY_STR(Symtables);
DUMMY_STR(Music);
DUMMY_STR(Request);
DUMMY_STR(Score);
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);
DEFAULT_ACCESSOR(int);
DEFAULT_ACCESSOR(Real);
DEFAULT_ACCESSOR(String);
-DEFAULT_ACCESSOR(Symtables);
DEFAULT_ACCESSOR(Score);
DEFAULT_ACCESSOR(Midi_def);
DEFAULT_ACCESSOR(Paper_def);
#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_;
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_;
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);
#include "dictionary.hh"
#include "file-path.hh"
#include "lily-proto.hh"
+#include "font-metric.hh"
/**
Interface to all .afm files living in the filesystem.
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);
};
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;
+++ /dev/null
-/*
- 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
+++ /dev/null
-/*
- 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
#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
--- /dev/null
+/*
+ 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 */
+
/*
- cbeam-engraver.hh -- declare Beam_engraver
+ beam-engraver.hh -- declare Beam_engraver
source file of the GNU LilyPond music typesetter
*/
-#ifndef CBEAM_ENGRAVER_HH
-#define CBEAM_ENGRAVER_HH
+#ifndef BEAM_ENGRAVER_HH
+#define BEAM_ENGRAVER_HH
#include "engraver.hh"
#include "drul-array.hh"
VIRTUAL_COPY_CONS (Translator);
};
-#endif /* CBEAM_ENGRAVER_HH */
+#endif /* BEAM_ENGRAVER_HH */
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
protected:
virtual void do_pre_processing();
virtual Molecule* do_brew_molecule_p() const;
+ virtual void do_add_processing ();
public:
String symbol_;
/// 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();
};
+++ /dev/null
-/*
- global constants
- */
-#ifndef CONST_HH
-#define CONST_HH
-#include <limits.h>
-#include <math.h>
-#include "real.hh"
-
-#error
-
-#endif
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;
+++ /dev/null
-/*
- 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
--- /dev/null
+/*
+ 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 */
+
#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*);
+++ /dev/null
-/*
- 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
-
#include "string.hh"
#include "score-element.hh"
#include "drul-array.hh"
+#include "protected-scm.hh"
/**
A horizontally fixed size element of the score.
*/
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_;
virtual void do_print() const;
virtual bool linked_b() const;
+ virtual void handle_prebroken_dependents ();
+
void copy_breakable_items();
};
#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"
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 Audio_note_off;
struct Audio_staff;
struct Audio_tempo;
+struct Auto_beam_engraver;
struct Axis_group_element;
struct Axis_group;
struct Bar;
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;
struct Plet;
struct Plet_engraver;
struct Plet_req;
-struct Plet_spanner;
+struct Tuplet_spanner;
struct Piano_brace;
struct Performer;
struct Performer_group_performer;
+++ /dev/null
-/*
- 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
+++ /dev/null
-/*
- 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();
-};
#include "fproto.hh"
#include "scalar.hh"
#include "direction.hh"
-#include "curve.hh"
-#include "symtable.hh"
#include "box.hh"
/** handy interface to symbol table
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;
Atom time_signature (Array<int>) const;
Paper_def * paper_l_;
- Symtables *symtables_p_;
String font_name_;
Adobe_font_metric * afm_l_;
*/
#ifndef MAIN_HH
#define MAIN_HH
+
#include "lily-proto.hh"
void debug_init();
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;
#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
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);
void add_atom (Atom const & a) ;
/// how big is #this#?
Box extent() const;
-
+ Interval extent (Axis) const;
Molecule (const Molecule&s);
void print() const;
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_;
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 {
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);
};
class Note_head : public Rhythmic_head {
public:
- String note_head_type_str_;
-
/// position of top line (5 linestaff: 8)
int position_i_;
#ifndef PAPER_DEF_HH
#define PAPER_DEF_HH
#include "lily-proto.hh"
-
+#include "lily-guile.hh"
#include "real.hh"
#include "moment.hh"
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*);
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
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;
};
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_;
#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 */
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 ();
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
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;
};
#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
+++ /dev/null
-/*
- 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
-
+++ /dev/null
-/*
- 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
-
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
#include "string.hh"
#include "array.hh"
#include "lily-proto.hh"
+#include "font-metric.hh"
/* The type. */
typedef long Fix;
Real kern;
};
-struct Tex_font_char_metric
+struct Tex_font_char_metric : Character_metric
{
bool exists_b_;
Char_code code_;
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
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);
};
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 ();
(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*);
virtual void do_substitute_dependency (Score_element*,Score_element*);
};
-#endif // PLET_SPANNER_HH
+#endif // Tuplet_spanner_HH
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;
broken_to_drul_[LEFT] = broken_to_drul_[RIGHT]=0;
}
-
-
void
Item::do_print() 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 ();
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
{
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);
+ }
+}
+
}
/*
- TODO space the `natural' signs wider
+ TODO
+ - space the `natural' signs wider
+ - dehair this
*/
Molecule*
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);
}
}
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())
{
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;
}
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);
*mlog << ']' << flush;
}
+
+void
+ly_display_scm (SCM s)
+{
+ gh_display (s);
+ gh_newline ();
+}
-#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;
}
+
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)
{
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;
#include "lookup.hh"
#include "debug.hh"
#include "dimensions.hh"
-#include "symtable.hh"
#include "scalar.hh"
#include "paper-def.hh"
#include "string-convert.hh"
#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)
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
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);
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;
}
}
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
ly_quote_scm (array_to_list (sc, 4)),
SCM_UNDEFINED);
- a.str_ = "dashed_slur";
return a;
}
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;
}
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
{
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);
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++)
;
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_;
}
+/*
+ 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;
}
SCM_UNDEFINED
);
a.dim_[Y_AXIS] = Interval (-y/2,y/2);
+ a.dim_[X_AXIS] = Interval (0,0);
a.font_ = font_name_;
return a;
}
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;
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);
*/
#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"
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));
#include <assert.h>
#include <locale.h>
#include "lily-guile.hh"
+#include "lily-version.hh"
#include "all-fonts.hh"
#include "proto.hh"
" -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';
#ifdef STRING_UTILS_INLINED
"STRING_UTILS_INLINED "
#endif
- "datadir=" DIR_DATADIR
- "\n"
- "localedir=" DIR_LOCALEDIR
+ "datadir=" DIR_DATADIR
+ "\n"
+ "localedir=" DIR_LOCALEDIR
"\n";
{
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';
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
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 ;
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);
(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)
{
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";
}
}
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)
{
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);
}
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;
}
{
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;
{
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))
{
mmrest_p_ = 0;
}
- if (now >= rest_stop_mom_)
+ if (now >= rest_moments_[STOP])
{
multi_measure_req_l_ = 0;
mmrest_p_ = 0;
#include "dictionary-iter.hh"
#include "identifier.hh"
#include "main.hh"
+#include "lily-guile.hh"
int
Music_output_def::get_next_default_count () const
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;
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;
}
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;
}
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 ("");
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
{
{
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";
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 "";
}
{"script", SCRIPT},
{"shape", SHAPE},
{"skip", SKIP},
- {"table", TABLE},
{"spandynamic", SPANDYNAMIC},
- {"symboltables", SYMBOLTABLES},
{"tempo", TEMPO},
{"translator", TRANSLATOR},
{"type", TYPE},
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;
}
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()
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_--;
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;
&& (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;
reqs.push (new Tie_req);
break;
- /* fall through */
case '[':
case ']':
{
? 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_);
#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;
}
: 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 ());
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;
}
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
(*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
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";
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
{
#include "main.hh"
#include "scope.hh"
#include "identifier.hh"
+#include "lily-version.hh"
Paper_outputter::Paper_outputter (Paper_stream *s)
{
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 ");
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 ()))
{
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);
}
#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"
// 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()
Array<Musical_pitch> *pitch_arr;
Array<String> * strvec;
Array<int> *intvec;
- Atom * symbol;
- Box *box;
Notename_table *chordmodifiertab;
Duration *duration;
General_script_def * script;
Scalar *scalar;
Simultaneous_music *chord;
String *string;
- Symtable * symtable;
- Symtables* symtables;
Tempo_req *tempo;
Text_def * textdef;
Translator* trans;
%token SHAPE
%token SKIP
%token SPANDYNAMIC
-%token SYMBOLTABLES
-%token TABLE
%token TEMPO
%token TIME_T
%token TIMES
%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
%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
%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 '-' '+'
$$ = new Midi_def_identifier ($1, MIDI_IDENTIFIER);
}
- | symtables {
- $$ = new Symtables_identifier ($1, IDENTIFIER);
- }
| translator_spec {
$$ = new Translator_identifier ($1, TRANS_IDENTIFIER);
}
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 ';' {
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;
;
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);
};
{
$$ = new Array<Musical_pitch>;
}
- | '-' {
- $$ = new Array<Musical_pitch>;
- }
- | chord_additions chord_addsub {
+ | chord_additions '-' chord_addsub {
$$ = $1;
- $$->push (*$2);
+ $$->push (*$3);
}
;
;
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;
{
$$ = new Array<Musical_pitch>;
}
- | '^' {
- $$ = new Array<Musical_pitch>;
- }
- | chord_subtractions chord_addsub {
+ | chord_subtractions '^' chord_addsub {
$$ = $1;
- $$->push (*$2);
+ $$->push (*$3);
}
;
-/*
- 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);
- }
- ;
%%
#include "performance.hh"
#include "score.hh"
#include "file-results.hh"
+#include "lily-version.hh"
Performance::Performance ()
{
// 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);
extra_move_left_f_ = 0.0;
}
-Atom
+Molecule
Piano_brace::get_bar_sym (Real dy) const
{
Atom a = lookup_l ()->vbrace (dy);
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;
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;
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)
{
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 ();
}
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 ();
+}
#include "score-bar.hh"
+
+void
+Score_bar::do_pre_processing ()
+{
+ type_str_ = "|";
+ if (break_status_dir() != RIGHT)
+ {
+ set_empty (true);
+ transparent_b_ = true;
+ }
+}
substitute_dependency (old_arr[i], new_arr[i]);
}
+void
+Score_element::handle_prebroken_dependents()
+{
+}
+
void
Score_element::junk_links ()
Score_priority_engraver::Score_priority_engraver()
{
+ align_p_tab_.hash_func_ = int_hash;
}
void
#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;
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] + " ";
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));
}
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
}
}
-Atom
+Molecule
Span_bar::get_bar_sym (Real dy) const
{
if (dy < paper ()->staffheight_f () / 2)
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;
}
{
}
-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()
#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
*/
#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)))");
}
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;
- }
-}
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"),
ORPHAN=0, // not yet added to pstaff
VIRGIN, // added to pstaff
PREBROKEN,
+ PREBROKEN_SECOND,
PRECALCING,
PRECALCED, // calcs before spacing done
SPACING,
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
+++ /dev/null
-/*
- 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;
-}
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"
#include "lookup.hh"
#include "debug.hh"
+
Text_item::Text_item (General_script_def* tdef_l, Direction d)
{
dir_ = d;
+#endif
#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 ()
{
{
}
-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);
}
time_.whole_in_measure_ = 0; // resync
time_.error_b_ = true;
}
-
}
else if (Cadenza_req *cr = dynamic_cast <Cadenza_req *> (tr_l))
{
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;
/*
- plet-spanner.cc -- implement Plet_spanner
+ plet-spanner.cc -- implement Tuplet_spanner
source file of the GNU LilyPond music typesetter
#include "text-def.hh"
#include "note-column.hh"
-Plet_spanner::Plet_spanner ()
+Tuplet_spanner::Tuplet_spanner ()
{
beam_l_ =0;
bracket_visibility_b_ = true;
}
Molecule*
-Plet_spanner::do_brew_molecule_p () const
+Tuplet_spanner::do_brew_molecule_p () const
{
Molecule* mol_p = new Molecule;
}
void
-Plet_spanner::do_add_processing ()
+Tuplet_spanner::do_add_processing ()
{
if (column_arr_.size ())
{
}
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);
}
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));
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 ++)
}
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);
+++ /dev/null
-#include "main.hh"
-#include "string.hh"
-
-char const * lily_version_sz();
-
-String
-get_version_str()
-{
- String s = lily_version_sz();
- return s;
-}
#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);
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));
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;
}
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";
--- /dev/null
+# init/Makefile
+
+depth = ..
+
+INI_FILES = $(FLY_FILES) $(LY_FILES)
+EXTRA_DIST_FILES = $(SCM_FILES)
+
+INSTALLATION_DIR=$(datadir)/ly/
+INSTALLATION_FILES=$(INI_FILES)
+
+STEPMAKE_TEMPLATES=install
+LOCALSTEPMAKE_TEMPLATES=mutopia
+
+include $(depth)/make/stepmake.make
+
--- /dev/null
+% a4.ly
+
+hsize = 210.0 \mm;
+vsize = 296.9 \mm;
--- /dev/null
+% Symbols needed to print accordion music
+%
+% 2' = T
+% 4' = F
+% 8' = E
+% 16' = S
+%
+
+accDiscant = \script{ "accDiscant" 0 0 1 0 0 }
+accDiscantF = \script{ "accDiscantF" 0 0 1 0 0 }
+accDiscantE = \script{ "accDiscantE" 0 0 1 0 0 }
+accDiscantEh = \script{ "accDiscantEh" 0 0 1 0 0 }
+accDiscantFE = \script{ "accDiscantFE" 0 0 1 0 0 }
+accDiscantFEh = \script{ "accDiscantFEh" 0 0 1 0 0 }
+accDiscantEE = \script{ "accDiscantEE" 0 0 1 0 0 }
+accDiscantFEE = \script{ "accDiscantFEE" 0 0 1 0 0 }
+accDiscantEEE = \script{ "accDiscantEEE" 0 0 1 0 0 }
+accDiscantFEEE = \script{ "accDiscantFEEE" 0 0 1 0 0 }
+accDiscantS = \script{ "accDiscantS" 0 0 1 0 0 }
+accDiscantFS = \script{ "accDiscantFS" 0 0 1 0 0 }
+accDiscantES = \script{ "accDiscantES" 0 0 1 0 0 }
+accDiscantEhS = \script{ "accDiscantEhS" 0 0 1 0 0 }
+accDiscantFES = \script{ "accDiscantFES" 0 0 1 0 0 }
+accDiscantFEhS = \script{ "accDiscantFEhS" 0 0 1 0 0 }
+accDiscantEES = \script{ "accDiscantEES" 0 0 1 0 0 }
+accDiscantFEES = \script{ "accDiscantFEES" 0 0 1 0 0 }
+accDiscantEEES = \script{ "accDiscantEEES" 0 0 1 0 0 }
+accDiscantFEEES = \script{ "accDiscantFEEES" 0 0 1 0 0 }
+accDiscantSS = \script{ "accDiscantSS" 0 0 1 0 0 }
+accDiscantESS = \script{ "accDiscantESS" 0 0 1 0 0 }
+accDiscantEESS = \script{ "accDiscantEESS" 0 0 1 0 0 }
+accDiscantEEESS = \script{ "accDiscantEEESS" 0 0 1 0 0 }
+
+accFreebass = \script{ "accFreebass" 0 0 1 0 0 }
+accFreebassF = \script{ "accFreebassF" 0 0 1 0 0 }
+accFreebassE = \script{ "accFreebassE" 0 0 1 0 0 }
+accFreebassFE = \script{ "accFreebassFE" 0 0 1 0 0 }
+
+accBayanbass = \script{ "accBayanbass" 0 0 1 0 0 }
+accBayanbassT = \script{ "accBayanbassT" 0 0 1 0 0 }
+accBayanbassE = \script{ "accBayanbassE" 0 0 1 0 0 }
+accBayanbassTE = \script{ "accBayanbassTE" 0 0 1 0 0 }
+accBayanbassEE = \script{ "accBayanbassEE" 0 0 1 0 0 }
+accBayanbassTEE = \script{ "accBayanbassTEE" 0 0 1 0 0 }
+
+accStdbass = \script{ "accStdbass" 0 0 1 0 0 }
+accStdbassTp = \script{ "accStdbassTp" 0 0 1 0 0 }
+accStdbassT = \script{ "accStdbassT" 0 0 1 0 0 }
+accStdbassBp = \script{ "accStdbassBp" 0 0 1 0 0 }
+accStdbassM = \script{ "accStdbassM" 0 0 1 0 0 }
+
+accSB = \script{ "accSB" 0 0 1 0 0 }
+accBB = \script{ "accBB" 0 0 1 0 0 }
+accOldEE = \script{ "accOldEE" 0 0 1 0 0 }
+accOldEES = \script{ "accOldEES" 0 0 1 0 0 }
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly"
+
+\include "paper16.ly"
+ \paper { \paper_sixteen
+ linewidth = -1.\cm;
+ castingalgorithm = \Wordwrap;
+ "unusedentry" = "}\\def\\nolilyfooter{";
+ }
+
+\score {
+ \notes {
+ \maininput
+ }
+\paper{}
+}
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly";
+\include "paper16.ly"
+
+ \paper{
+ \paper_sixteen
+}
+
+
+\maininput
--- /dev/null
+%{
+
+ Common catalan names for notes. "b" means flat (bemoll), "d" means sharp (diesi).
+ Also "s" is included for sharp (sostingut). Both "diesi" and "sostingut" are approved
+ by "Diccionari de la Llengua Catalana" from "Institut d'Estudis Catalans".
+
+ Adapted from italiano.ly.
+
+ English: a b c d e f g
+ Catalan: la si do re mi fa sol
+
+ For spanish naming just use the sharp sign "s" (sostenido) instead of "s"
+(sostenido) .
+%}
+
+% contributed by Jaume Obrador <jobrador@ipc4.uib.es>
+
+\notenames {
+ dobb = \musicalpitch { -1 0 -2 }
+ dob = \musicalpitch { -1 0 -1 }
+ do = \musicalpitch { -1 0 0 }
+ dod = \musicalpitch { -1 0 1 }
+ dodd = \musicalpitch { -1 0 2 }
+ rebb = \musicalpitch { -1 1 -2 }
+ reb = \musicalpitch { -1 1 -1 }
+ re = \musicalpitch { -1 1 0 }
+ red = \musicalpitch { -1 1 1 }
+ redd = \musicalpitch { -1 1 2 }
+ mibb = \musicalpitch { -1 2 -2 }
+ mib = \musicalpitch { -1 2 -1 }
+ mi = \musicalpitch { -1 2 0 }
+ mid = \musicalpitch { -1 2 1 }
+ midd = \musicalpitch { -1 2 2 }
+ fabb = \musicalpitch { -1 3 -2 }
+ fab = \musicalpitch { -1 3 -1 }
+ fa = \musicalpitch { -1 3 0 }
+ fad = \musicalpitch { -1 3 1 }
+ fadd = \musicalpitch { -1 3 2 }
+ solbb = \musicalpitch { -1 4 -2 }
+ solb = \musicalpitch { -1 4 -1 }
+ sol = \musicalpitch { -1 4 0 }
+ sold = \musicalpitch { -1 4 1 }
+ soldd = \musicalpitch { -1 4 2 }
+ labb = \musicalpitch { -1 5 -2 }
+ lab = \musicalpitch { -1 5 -1 }
+ la = \musicalpitch { -1 5 0 }
+ lad = \musicalpitch { -1 5 1 }
+ ladd = \musicalpitch { -1 5 2 }
+ sibb = \musicalpitch { -1 6 -2 }
+ sib = \musicalpitch { -1 6 -1 }
+ si = \musicalpitch { -1 6 0 }
+ sid = \musicalpitch { -1 6 1 }
+ sidd = \musicalpitch { -1 6 2 }
+
+% For using "sostingut" notation, which is also correct
+
+ dos = \musicalpitch { -1 0 1 }
+ doss = \musicalpitch { -1 0 2 }
+ res = \musicalpitch { -1 1 1 }
+ ress = \musicalpitch { -1 1 2 }
+ mis = \musicalpitch { -1 2 1 }
+ miss = \musicalpitch { -1 2 2 }
+ fas = \musicalpitch { -1 3 1 }
+ fass = \musicalpitch { -1 3 2 }
+ sols = \musicalpitch { -1 4 1 }
+ solss = \musicalpitch { -1 4 2 }
+ las = \musicalpitch { -1 5 1 }
+ lass = \musicalpitch { -1 5 2 }
+ sis = \musicalpitch { -1 6 1 }
+ siss = \musicalpitch { -1 6 2 }
+}
+
+
--- /dev/null
+% Toplevel initialisation file.
+
+
+\version "1.0.14";
+
+
+\include "declarations.ly"
+
+\include "paper16.ly";
+
+ \paper {
+ \paper_sixteen
+ linewidth = -1.0\cm;
+ castingalgorithm = \Wordwrap;
+ "unusedentry" = "}\\def\\nolilyfooter{";
+}
+
+
+\score {
+% \notes\relative c {
+ \notes {
+ \maininput
+ }
+\paper{}
+}
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly"
+\include "paper16.ly"
+
+ \paper {
+ \paper_sixteen;
+% linewidth = 7.\cm;
+ linewidth = 11.\cm;
+}
+
+\maininput
--- /dev/null
+%{
+ chord modifiers
+%}
+
+\chordmodifiers {
+ m = \musicalpitch { 0 2 -1 }
+ min = \musicalpitch { 0 2 -1 }
+ aug = \musicalpitch { 0 4 1 }
+ dim = \musicalpitch { 0 4 -1 }
+ % urg, not actually a chord-modifier, but it works
+ % c7 -> <c bes>, c 7+ -> c b
+ maj = \musicalpitch { 0 6 1 }
+ % sus4 should delete 2 too...
+ sus = \musicalpitch { 0 3 0 }
+}
--- /dev/null
+
+
+breve = \duration { -1 0 }
+longa = \duration { -2 0 }
+
+\include "dynamic.ly"
+\include "nederlands.ly" % dutch
+\include "chord-modifiers.ly"
+\include "script.ly"
+
+
+Gourlay = 1.0
+Wordwrap = 0.0
+
+papersize = "a4"
+
+\include "paper20.ly"
+
+\paper{
+ \paper_twenty
+}
+
+% ugh
+\include "midi.ly"
+
+% declarations for standard directions
+left = -1
+right = 1
+up = 1
+down = -1
+% zillie spellink?
+center=0
+
+break = { \penalty = 10000; }
+nobreak = { \penalty = -10000; }
+
+major = 0
+minor = 3
+
+\include "property.ly"
+
+\scmfile "lily.scm";
+
+% music = "\melodic\relative c"
+
--- /dev/null
+%
+% common german names for notes. "es" means flat, "is" means sharp
+%
+% by Roland Meier <meier@informatik.th-darmstadt.de>
+% based on swedish.ly by Mats Bengtsson.
+
+
+%
+% Please note that, while these names are used to enter *notes*, they
+% actually are *melodic*s, i.e. they represent a pitch solely. Notes
+% have a rhythmic part too. This is the reason that we don't write 'note { .. }'
+%
+\notenames {
+ ceses = \musicalpitch { -1 0 -2 }
+ ces = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ cis = \musicalpitch { -1 0 1 }
+ cisis = \musicalpitch { -1 0 2 }
+ deses = \musicalpitch { -1 1 -2 }
+ des = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ dis = \musicalpitch { -1 1 1 }
+ disis = \musicalpitch { -1 1 2 }
+ eses = \musicalpitch { -1 2 -2 }
+ es = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ eis = \musicalpitch { -1 2 1 }
+ eisis = \musicalpitch { -1 2 2 }
+ feses = \musicalpitch { -1 3 -2 }
+ fes = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fis = \musicalpitch { -1 3 1 }
+ fisis = \musicalpitch { -1 3 2 }
+ geses = \musicalpitch { -1 4 -2 }
+ ges = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ gis = \musicalpitch { -1 4 1 }
+ gisis = \musicalpitch { -1 4 2 }
+ ases = \musicalpitch { -1 5 -2 }
+ as = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ ais = \musicalpitch { -1 5 1 }
+ aisis = \musicalpitch { -1 5 2 }
+ heses = \musicalpitch { -1 6 -2 }
+ b = \musicalpitch { -1 6 -1 }
+ h = \musicalpitch { -1 6 0 }
+ his = \musicalpitch { -1 6 1 }
+ hisis = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower.
+ %
+
+
+ Ceses = \musicalpitch { -2 0 -2 }
+ Ces = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Cis = \musicalpitch { -2 0 1 }
+ Cisis = \musicalpitch { -2 0 2 }
+ Deses = \musicalpitch { -2 1 -2 }
+ Des = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Dis = \musicalpitch { -2 1 1 }
+ Disis = \musicalpitch { -2 1 2 }
+ Eses = \musicalpitch { -2 2 -2 }
+ Es = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Eis = \musicalpitch { -2 2 1 }
+ Eisis = \musicalpitch { -2 2 2 }
+ Feses = \musicalpitch { -2 3 -2 }
+ Fes = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fis = \musicalpitch { -2 3 1 }
+ Fisis = \musicalpitch { -2 3 2 }
+ Geses = \musicalpitch { -2 4 -2 }
+ Ges = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gis = \musicalpitch { -2 4 1 }
+ Gisis = \musicalpitch { -2 4 2 }
+ Ases = \musicalpitch { -2 5 -2 }
+ As = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ Ais = \musicalpitch { -2 5 1 }
+ Aisis = \musicalpitch { -2 5 2 }
+ Heses = \musicalpitch { -2 6 -2 }
+ B = \musicalpitch { -2 6 -1 }
+ H = \musicalpitch { -2 6 0 }
+ His = \musicalpitch { -2 6 1 }
+ Hisis = \musicalpitch { -2 6 2 }
+
+
+}
--- /dev/null
+%
+% 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
--- /dev/null
+%{
+ English note names spelled out in full, and abbreviated
+ with s for sharp and f for flat.
+%}
+
+\notenames {
+ cflatflat = \musicalpitch { -1 0 -2 }
+ cflat = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ csharp = \musicalpitch { -1 0 1 }
+ csharpsharp = \musicalpitch { -1 0 2 }
+ dflatflat = \musicalpitch { -1 1 -2 }
+ dflat = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ dsharp = \musicalpitch { -1 1 1 }
+ dsharpsharp = \musicalpitch { -1 1 2 }
+ eflatflat = \musicalpitch { -1 2 -2 }
+ eflat = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ esharp = \musicalpitch { -1 2 1 }
+ esharpsharp = \musicalpitch { -1 2 2 }
+ fflatflat = \musicalpitch { -1 3 -2 }
+ fflat = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fsharp = \musicalpitch { -1 3 1 }
+ fsharpsharp = \musicalpitch { -1 3 2 }
+ gflatflat = \musicalpitch { -1 4 -2 }
+ gflat = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ gsharp = \musicalpitch { -1 4 1 }
+ gsharpsharp = \musicalpitch { -1 4 2 }
+ aflatflat = \musicalpitch { -1 5 -2 }
+ aflat = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ asharp = \musicalpitch { -1 5 1 }
+ asharpsharp = \musicalpitch { -1 5 2 }
+ bflatflat = \musicalpitch { -1 6 -2 }
+ bflat = \musicalpitch { -1 6 -1 }
+ b = \musicalpitch { -1 6 0 }
+ bsharp = \musicalpitch { -1 6 1 }
+ bsharpsharp = \musicalpitch { -1 6 2 }
+
+ cff = \musicalpitch { -1 0 -2 }
+ cf = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ cs = \musicalpitch { -1 0 1 }
+ css = \musicalpitch { -1 0 2 }
+ dff = \musicalpitch { -1 1 -2 }
+ df = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ ds = \musicalpitch { -1 1 1 }
+ dss = \musicalpitch { -1 1 2 }
+ eff = \musicalpitch { -1 2 -2 }
+ ef = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ es = \musicalpitch { -1 2 1 } % es = E-flat in Dutch
+ ess = \musicalpitch { -1 2 2 }
+ fff = \musicalpitch { -1 3 -2 }
+ ff = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fs = \musicalpitch { -1 3 1 }
+ fss = \musicalpitch { -1 3 2 }
+ gff = \musicalpitch { -1 4 -2 }
+ gf = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ gs = \musicalpitch { -1 4 1 }
+ gss = \musicalpitch { -1 4 2 }
+ aff = \musicalpitch { -1 5 -2 }
+ af = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ as = \musicalpitch { -1 5 1 } % as = A-flat in Dutch
+ ass = \musicalpitch { -1 5 2 }
+ bff = \musicalpitch { -1 6 -2 }
+ bf = \musicalpitch { -1 6 -1 }
+ b = \musicalpitch { -1 6 0 }
+ bs = \musicalpitch { -1 6 1 }
+ bss = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower.
+ %
+
+
+ Cflatflat = \musicalpitch { -2 0 -2 }
+ Cflat = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Csharp = \musicalpitch { -2 0 1 }
+ Csharpsharp = \musicalpitch { -2 0 2 }
+ Dflatflat = \musicalpitch { -2 1 -2 }
+ Dflat = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Dsharp = \musicalpitch { -2 1 1 }
+ Dsharpsharp = \musicalpitch { -2 1 2 }
+ Eflatflat = \musicalpitch { -2 2 -2 }
+ Eflat = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Esharp = \musicalpitch { -2 2 1 }
+ Esharpsharp = \musicalpitch { -2 2 2 }
+ Fflatflat = \musicalpitch { -2 3 -2 }
+ Fflat = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fsharp = \musicalpitch { -2 3 1 }
+ Fsharpsharp = \musicalpitch { -2 3 2 }
+ Gflatflat = \musicalpitch { -2 4 -2 }
+ Gflat = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gsharp = \musicalpitch { -2 4 1 }
+ Gsharpsharp = \musicalpitch { -2 4 2 }
+ Aflatflat = \musicalpitch { -2 5 -2 }
+ Aflat = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ Asharp = \musicalpitch { -2 5 1 }
+ Asharpsharp = \musicalpitch { -2 5 2 }
+ Bflatflat = \musicalpitch { -2 6 -2 }
+ Bflat = \musicalpitch { -2 6 -1 }
+ B = \musicalpitch { -2 6 0 }
+ Bsharp = \musicalpitch { -2 6 1 }
+ Bsharpsharp = \musicalpitch { -2 6 2 }
+
+ Cff = \musicalpitch { -2 0 -2 }
+ Cf = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Cs = \musicalpitch { -2 0 1 }
+ Css = \musicalpitch { -2 0 2 }
+ Dff = \musicalpitch { -2 1 -2 }
+ Df = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Ds = \musicalpitch { -2 1 1 }
+ Dss = \musicalpitch { -2 1 2 }
+ Eff = \musicalpitch { -2 2 -2 }
+ Ef = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Es = \musicalpitch { -2 2 1 }
+ Ess = \musicalpitch { -2 2 2 }
+ Fff = \musicalpitch { -2 3 -2 }
+ Ff = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fs = \musicalpitch { -2 3 1 }
+ Fss = \musicalpitch { -2 3 2 }
+ Gff = \musicalpitch { -2 4 -2 }
+ Gf = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gs = \musicalpitch { -2 4 1 }
+ Gss = \musicalpitch { -2 4 2 }
+ Aff = \musicalpitch { -2 5 -2 }
+ Af = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ As = \musicalpitch { -2 5 1 }
+ Ass = \musicalpitch { -2 5 2 }
+ Bff = \musicalpitch { -2 6 -2 }
+ Bf = \musicalpitch { -2 6 -1 }
+ B = \musicalpitch { -2 6 0 }
+ Bs = \musicalpitch { -2 6 1 }
+ Bss = \musicalpitch { -2 6 2 }
+
+
+}
--- /dev/null
+%
+% setup for Request->Element conversion. Guru-only
+%
+
+StaffContext=\translator {
+ \type "Line_group_engraver_group";
+ \name Staff ;
+ barAuto = "1";
+ voltaVisibility = "1";
+
+%{
+ The Hara_kiri_line_group_engraver is a Line_group_engraver
+ that will not typeset an empty line of staff, i.e., a line
+ of staff with only rests in it. This is needed for orchestral
+ scores. Comment-out Line_group_engraver_group, and uncomment
+ Hara_kiri_line_group_engraver.
+%}
+% \type "Hara_kiri_line_group_engraver";
+
+ \consists "Multi_measure_rest_engraver";
+ \consists "Repeat_engraver";
+ \consists "Bar_engraver";
+ \consists "Clef_engraver";
+ \consists "Key_engraver";
+ \consists "Local_key_engraver";
+ \consists "Time_signature_engraver";
+ \consists "Staff_symbol_engraver";
+ \consists "Collision_engraver";
+ \consists "Rest_collision_engraver";
+
+%{
+ Uncomment to get bar numbers on single staff systems:
+
+ The Bar_number_engraver puts a number over a staff created
+ at the same level of hierarchy. This why you have to add it
+ here separately if you want to have numbers on single staff
+ systems: The Bar_number_engraver in Score_engraver will only
+ put numbers on bars that are Score ("system") wide. Such
+ bars are only created when the toplevel system has multiple
+ children-staffs.
+
+%}
+%{
+ \consists "Bar_number_engraver";
+%}
+%{
+ The Staff_margin_engraver puts the name of the instrument
+ (\property Staff.instrument; Staff.instr for subsequent lines)
+ to the left of a staff.
+%}
+ defaultClef = treble;
+
+ marginBreakPriority = "-5";
+
+%{
+ \consists "Staff_margin_engraver";
+%}
+ \consists "Separating_line_group_engraver";
+
+ \accepts "Voice";
+ dynamicStyle = "dynamic";
+};
+
+\translator{\StaffContext }
+\translator {
+ \type "Line_group_engraver_group";
+ \name ChoirStaff;
+ \consists "Vertical_align_engraver";
+ \consists "Staff_group_bar_engraver";
+ \accepts "Staff";
+ \accepts "RhythmicStaff";
+ \accepts "GrandStaff";
+ \accepts "PianoStaff";
+
+ \accepts "Lyrics";
+ \accepts "ChordNames";
+}
+
+
+RhythmicStaffContext=\translator{
+ \type "Line_group_engraver_group";
+ numberOfStaffLines = "1";
+ \consists "Pitch_squash_engraver";
+ \consists "Separating_line_group_engraver";
+ \name RhythmicStaff;
+
+ \consists "Repeat_engraver";
+ \consists "Bar_engraver";
+ \consists "Time_signature_engraver";
+ \consists "Staff_symbol_engraver";
+ \accepts "Voice";
+};
+\translator{\RhythmicStaffContext}
+VoiceContext = \translator {
+ \type "Engraver_group_engraver";
+ \consists "Dynamic_engraver";
+ \name Voice ;
+
+ \consists "Rest_engraver";
+ \consists "Dot_column_engraver";
+ \consists "Stem_engraver";
+ \consists "Beam_engraver";
+ \consists "Abbreviation_beam_engraver";
+% \consists "Multi_measure_rest_engraver";
+
+ % ugh. Order matters here.
+ \consists "Text_engraver";
+ \consists "Script_engraver";
+ \consists "Rhythmic_column_engraver";
+ \consists "Font_size_engraver";
+ \consists "Slur_engraver";
+ \consists "Tie_engraver";
+ \consists "Tuplet_engraver";
+ \consists "Note_heads_engraver" ;
+ \consists "Skip_req_swallow_translator";
+};
+
+\translator {\VoiceContext}
+
+GrandStaffContext=\translator{
+ \type "Line_group_engraver_group";
+ \name GrandStaff;
+ \consists "Span_bar_engraver";
+ \consists "Vertical_align_engraver";
+ \consists "Piano_bar_engraver";
+ minVerticalAlign = 1.5*\staffheight;
+
+ \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";
+ \consists "Span_bar_engraver";
+ \consists "Vertical_align_engraver";
+ \consists "Staff_group_bar_engraver";
+ \name StaffGroup;
+ \accepts "Staff";
+ \accepts "RhythmicStaff";
+ \accepts "GrandStaff";
+ \accepts "PianoStaff";
+
+ \accepts "Lyrics";
+ \accepts "ChordNames";
+}
+
+\translator{
+ \type "Line_group_engraver_group";
+
+ \name LyricVoice ;
+ \consists "Separating_line_group_engraver";
+ \consists "Lyric_engraver";
+ \consists "Extender_engraver";
+ \consists "Beam_req_swallow_translator";
+}
+
+\translator {
+ \type "Line_group_engraver_group";
+ \name Lyrics;
+ \consists "Vertical_align_engraver";
+ \accepts "LyricVoice";
+}
+
+\translator{
+ \type "Line_group_engraver_group";
+
+ \name ChordNameVoice ;
+ \consists "Separating_line_group_engraver";
+ \consists "Chord_name_engraver";
+}
+
+\translator {
+ \type "Line_group_engraver_group";
+ \name ChordNames;
+ \consists "Vertical_align_engraver";
+ \accepts "ChordNameVoice";
+}
+
+ScoreContext = \translator {
+ \type Score_engraver;
+ \name Score;
+
+ \consists "Timing_engraver";
+
+ \consists "Span_score_bar_engraver";
+ \consists "Score_priority_engraver";
+ \consists "Priority_horizontal_align_engraver";
+ \consists "Vertical_align_engraver";
+
+
+ \accepts "StaffGroup";
+ \accepts "Staff";
+ \accepts "RhythmicStaff";
+ \accepts "Lyrics";
+ \accepts "ChordNames";
+ \accepts "GrandStaff";
+ \accepts "ChoirStaff";
+ \accepts "PianoStaff";
+};
+\translator { \ScoreContext }
+
+ScoreWithNumbers = \translator {
+ \type "Score_engraver";
+
+ % uncomment to bar numbers on a whole system.
+ \consists "Bar_number_engraver";
+
+};
+
+StupidScore = \translator {
+ \type "Score_engraver";
+ \name Score;
+ \consists "Note_heads_engraver";
+};
+
+
+
+BarNumberingStaffContext = \translator {
+ \StaffContext
+ barColumnPriority = "0";
+ marginBreakPriority = "-4";
+ \consists "Mark_engraver";
+ \consists "Bar_number_engraver";
+
+};
+
+
+HaraKiriStaffContext = \translator {
+ \type "Hara_kiri_line_group_engraver";
+ \name Staff;
+ barColumnPriority = "0";
+ marginBreakPriority = "-4";
+
+ \consists "Repeat_engraver";
+ \consists "Bar_engraver";
+ \consists "Clef_engraver";
+ \consists "Key_engraver";
+ \consists "Time_signature_engraver";
+ \consists "Local_key_engraver";
+ \consists "Staff_symbol_engraver";
+ \consists "Collision_engraver";
+ \consists "Rest_collision_engraver";
+ \consists "Staff_margin_engraver";
+ \consists "Separating_line_group_engraver";
+
+ \accepts "Voice";
+};
+
+% huh, Score should do HaraKiri, not Part yes?
+OrchestralPartStaffContext = \translator {
+% \HaraKiriStaffContext
+ \StaffContext
+ barColumnPriority = "0";
+ marginBreakPriority = "-4";
+ \consists "Mark_engraver";
+ \consists "Bar_number_engraver";
+};
+
+% where to put HaraKiri here?
+OrchestralScoreContext= \translator {
+ \type Score_engraver;
+ \name Score;
+ barScriptPadding = "2.0"; % dimension \pt
+ markScriptPadding = "4.0";
+ barColumnPriority = "-4";
+ markBreakPriority = "-4";
+ defaultClef = treble;
+
+ \consists "Timing_engraver";
+
+ \consists "Bar_number_engraver";
+ \consists "Mark_engraver";
+ \consists "Span_score_bar_engraver";
+ \consists "Score_priority_engraver";
+ \consists "Priority_horizontal_align_engraver";
+ \consists "Vertical_align_engraver";
+
+ \accepts "ChoirStaff";
+ \accepts "StaffGroup";
+ \accepts "Staff";
+ \accepts "RhythmicStaff";
+ \accepts "Lyrics";
+ \accepts "ChordNames";
+ \accepts "GrandStaff";
+ \accepts "PianoStaff";
+
+};
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly"
+
+\include "paper16.ly";
+
+\paper {
+ \paper_sixteen
+ linewidth = -1.0\cm;
+ castingalgorithm = \Wordwrap;
+ "unusedentry" = "}\\def\\nolilyfooter{";
+}
+
+
+\score {
+% \notes\relative c {
+ \notes {
+ \maininput
+ }
+ \paper { }
+
+}
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly"
+
+\score {
+ \notes\relative c {
+ \maininput
+ }
+ \paper { }
+ \midi{ }
+}
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.0.14";
+
+
+\include "declarations.ly";
+
+\maininput
--- /dev/null
+%{
+ Common italian names for notes. "b" means flat (bemolle), "d" means sharp (diesis)
+ Adapted from dutch.ly.
+
+ English: a b c d e f g
+ Italian: la si do re mi fa sol
+
+ For french naming just change 'do' in 'ut'.
+%}
+
+% contributed by Paolo Zuliani <zuliap@easynet.it>
+
+\notenames {
+ dobb = \musicalpitch { -1 0 -2 }
+ dob = \musicalpitch { -1 0 -1 }
+ do = \musicalpitch { -1 0 0 }
+ dod = \musicalpitch { -1 0 1 }
+ dodd = \musicalpitch { -1 0 2 }
+ rebb = \musicalpitch { -1 1 -2 }
+ reb = \musicalpitch { -1 1 -1 }
+ re = \musicalpitch { -1 1 0 }
+ red = \musicalpitch { -1 1 1 }
+ redd = \musicalpitch { -1 1 2 }
+ mibb = \musicalpitch { -1 2 -2 }
+ mib = \musicalpitch { -1 2 -1 }
+ mi = \musicalpitch { -1 2 0 }
+ mid = \musicalpitch { -1 2 1 }
+ midd = \musicalpitch { -1 2 2 }
+ fabb = \musicalpitch { -1 3 -2 }
+ fab = \musicalpitch { -1 3 -1 }
+ fa = \musicalpitch { -1 3 0 }
+ fad = \musicalpitch { -1 3 1 }
+ fadd = \musicalpitch { -1 3 2 }
+ solbb = \musicalpitch { -1 4 -2 }
+ solb = \musicalpitch { -1 4 -1 }
+ sol = \musicalpitch { -1 4 0 }
+ sold = \musicalpitch { -1 4 1 }
+ soldd = \musicalpitch { -1 4 2 }
+ labb = \musicalpitch { -1 5 -2 }
+ lab = \musicalpitch { -1 5 -1 }
+ la = \musicalpitch { -1 5 0 }
+ lad = \musicalpitch { -1 5 1 }
+ ladd = \musicalpitch { -1 5 2 }
+ sibb = \musicalpitch { -1 6 -2 }
+ sib = \musicalpitch { -1 6 -1 }
+ si = \musicalpitch { -1 6 0 }
+ sid = \musicalpitch { -1 6 1 }
+ sidd = \musicalpitch { -1 6 2 }
+}
--- /dev/null
+
+\midi {
+ \tempo 4=60;
+ \include "performer.ly"
+}
--- /dev/null
+%{
+ common dutch names for notes. "es" means flat, "is" means sharp
+
+
+
+
+ Please note that, while these names are used to enter *notes*, they
+ actually are *melodic*s, i.e. they represent a pitch solely. Notes
+ have a rhythmic part too. This is the reason that we don't write 'note { .. }'
+
+%}
+
+\notenames {
+ ceses = \musicalpitch { -1 0 -2 }
+ ces = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ cis = \musicalpitch { -1 0 1 }
+ cisis = \musicalpitch { -1 0 2 }
+ deses = \musicalpitch { -1 1 -2 }
+ des = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ dis = \musicalpitch { -1 1 1 }
+ disis = \musicalpitch { -1 1 2 }
+ eeses = \musicalpitch { -1 2 -2 }
+ eses = \musicalpitch { -1 2 -2 }
+ ees = \musicalpitch { -1 2 -1 }
+ es = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ eis = \musicalpitch { -1 2 1 }
+ eisis = \musicalpitch { -1 2 2 }
+ feses = \musicalpitch { -1 3 -2 }
+ fes = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fis = \musicalpitch { -1 3 1 }
+ fisis = \musicalpitch { -1 3 2 }
+ geses = \musicalpitch { -1 4 -2 }
+ ges = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ gis = \musicalpitch { -1 4 1 }
+ gisis = \musicalpitch { -1 4 2 }
+ aeses = \musicalpitch { -1 5 -2 }
+ ases = \musicalpitch { -1 5 -2 }
+ aes = \musicalpitch { -1 5 -1 }
+ as = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ ais = \musicalpitch { -1 5 1 }
+ aisis = \musicalpitch { -1 5 2 }
+ beses = \musicalpitch { -1 6 -2 }
+ bes = \musicalpitch { -1 6 -1 }
+ b = \musicalpitch { -1 6 0 }
+ bis = \musicalpitch { -1 6 1 }
+ bisis = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower.
+ %
+
+
+ Ceses = \musicalpitch { -2 0 -2 }
+ Ces = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Cis = \musicalpitch { -2 0 1 }
+ Cisis = \musicalpitch { -2 0 2 }
+ Deses = \musicalpitch { -2 1 -2 }
+ Des = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Dis = \musicalpitch { -2 1 1 }
+ Disis = \musicalpitch { -2 1 2 }
+ Eses = \musicalpitch { -2 2 -2 }
+ Es = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Eis = \musicalpitch { -2 2 1 }
+ Eisis = \musicalpitch { -2 2 2 }
+ Feses = \musicalpitch { -2 3 -2 }
+ Fes = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fis = \musicalpitch { -2 3 1 }
+ Fisis = \musicalpitch { -2 3 2 }
+ Geses = \musicalpitch { -2 4 -2 }
+ Ges = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gis = \musicalpitch { -2 4 1 }
+ Gisis = \musicalpitch { -2 4 2 }
+ Aeses = \musicalpitch { -2 5 -2 }
+ Ases = \musicalpitch { -2 5 -2 }
+ Aes = \musicalpitch { -2 5 -1 }
+ As = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ Ais = \musicalpitch { -2 5 1 }
+ Aisis = \musicalpitch { -2 5 2 }
+ Beses = \musicalpitch { -2 6 -2 }
+ Bes = \musicalpitch { -2 6 -1 }
+ B = \musicalpitch { -2 6 0 }
+ Bis = \musicalpitch { -2 6 1 }
+ Bisis = \musicalpitch { -2 6 2 }
+
+
+}
+
--- /dev/null
+
+% $Id: norsk.ly,v 1.1 1998/03/25 11:38:28 arvidg Exp arvidg $
+
+%{
+
+ Common norwegian names for notes, including versions without the
+ double s-es to save typing, as well as the traditional names with
+ them not to confuse musicians. "es" or "ess" means flat, "is" or
+ "iss" means sharp.
+
+ Otherwise, the main difference from the dutch names is the that the
+ "b" is called "h" in norwegian, while the dutch "bes" is a norwegian
+ "b".
+
+ Staying within the (proud?) naming convention for norwegian language
+ setup used in LaTeX, this file is called "norsk.ly" instead of
+ "norwegian.ly", even if all other languages' files use the english
+ name.
+
+ This file is based on "dutch.ly". Basically, I copied "dutch.ly",
+ duplicated all lines containing at least one "is" or "es", changed
+ every other "is" into an "iss" and every other "es" into an "ess",
+ added "ass" et al, and made some b->h-related changes. There may be
+ bugs in here; please tell me (or send patches) if you find any.
+
+ Arvid Gr=F8tting <arvidg@ifi.uio.no>
+
+%}
+
+\notenames {
+ ceses = \musicalpitch { -1 0 -2 }
+ cessess = \musicalpitch { -1 0 -2 }
+ ces = \musicalpitch { -1 0 -1 }
+ cess = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ cis = \musicalpitch { -1 0 1 }
+ ciss = \musicalpitch { -1 0 1 }
+ cisis = \musicalpitch { -1 0 2 }
+ cississ = \musicalpitch { -1 0 2 }
+ deses = \musicalpitch { -1 1 -2 }
+ dessess = \musicalpitch { -1 1 -2 }
+ des = \musicalpitch { -1 1 -1 }
+ dess = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ dis = \musicalpitch { -1 1 1 }
+ diss = \musicalpitch { -1 1 1 }
+ disis = \musicalpitch { -1 1 2 }
+ dississ = \musicalpitch { -1 1 2 }
+ eeses = \musicalpitch { -1 2 -2 }
+ eessess = \musicalpitch { -1 2 -2 }
+ eses = \musicalpitch { -1 2 -2 }
+ essess = \musicalpitch { -1 2 -2 }
+ ees = \musicalpitch { -1 2 -1 }
+ eess = \musicalpitch { -1 2 -1 }
+ es = \musicalpitch { -1 2 -1 }
+ ess = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ eis = \musicalpitch { -1 2 1 }
+ eiss = \musicalpitch { -1 2 1 }
+ eisis = \musicalpitch { -1 2 2 }
+ eississ = \musicalpitch { -1 2 2 }
+ feses = \musicalpitch { -1 3 -2 }
+ fessess = \musicalpitch { -1 3 -2 }
+ fes = \musicalpitch { -1 3 -1 }
+ fess = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fis = \musicalpitch { -1 3 1 }
+ fiss = \musicalpitch { -1 3 1 }
+ fisis = \musicalpitch { -1 3 2 }
+ fississ = \musicalpitch { -1 3 2 }
+ geses = \musicalpitch { -1 4 -2 }
+ gessess = \musicalpitch { -1 4 -2 }
+ ges = \musicalpitch { -1 4 -1 }
+ gess = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ g = \musicalpitch { -1 4 0 }
+ gis = \musicalpitch { -1 4 1 }
+ giss = \musicalpitch { -1 4 1 }
+ gisis = \musicalpitch { -1 4 2 }
+ gississ = \musicalpitch { -1 4 2 }
+ aeses = \musicalpitch { -1 5 -2 }
+ aessess = \musicalpitch { -1 5 -2 }
+ ases = \musicalpitch { -1 5 -2 }
+ assess = \musicalpitch { -1 5 -2 }
+ aes = \musicalpitch { -1 5 -1 }
+ aess = \musicalpitch { -1 5 -1 }
+ as = \musicalpitch { -1 5 -1 }
+ ass = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ ais = \musicalpitch { -1 5 1 }
+ aiss = \musicalpitch { -1 5 1 }
+ aisis = \musicalpitch { -1 5 2 }
+ aississ = \musicalpitch { -1 5 2 }
+ bes = \musicalpitch { -1 6 -2 }
+ bess = \musicalpitch { -1 6 -2 }
+ b = \musicalpitch { -1 6 -1 }
+ b = \musicalpitch { -1 6 -1 }
+ h = \musicalpitch { -1 6 0 }
+ his = \musicalpitch { -1 6 1 }
+ hiss = \musicalpitch { -1 6 1 }
+ hisis = \musicalpitch { -1 6 2 }
+ hississ = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower, as usual.
+ %
+
+
+ Ceses = \musicalpitch { -2 0 -2 }
+ Cessess = \musicalpitch { -2 0 -2 }
+ Ces = \musicalpitch { -2 0 -1 }
+ Cess = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Cis = \musicalpitch { -2 0 1 }
+ Ciss = \musicalpitch { -2 0 1 }
+ Cisis = \musicalpitch { -2 0 2 }
+ Cississ = \musicalpitch { -2 0 2 }
+ Deses = \musicalpitch { -2 1 -2 }
+ Dessess = \musicalpitch { -2 1 -2 }
+ Des = \musicalpitch { -2 1 -1 }
+ Dess = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ D = \musicalpitch { -2 1 0 }
+ Dis = \musicalpitch { -2 1 1 }
+ Diss = \musicalpitch { -2 1 1 }
+ Disis = \musicalpitch { -2 1 2 }
+ Dississ = \musicalpitch { -2 1 2 }
+ Eses = \musicalpitch { -2 2 -2 }
+ Essess = \musicalpitch { -2 2 -2 }
+ Es = \musicalpitch { -2 2 -1 }
+ Ess = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ E = \musicalpitch { -2 2 0 }
+ Eis = \musicalpitch { -2 2 1 }
+ Eiss = \musicalpitch { -2 2 1 }
+ Eisis = \musicalpitch { -2 2 2 }
+ Eississ = \musicalpitch { -2 2 2 }
+ Feses = \musicalpitch { -2 3 -2 }
+ Fessess = \musicalpitch { -2 3 -2 }
+ Fes = \musicalpitch { -2 3 -1 }
+ Fess = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fis = \musicalpitch { -2 3 1 }
+ Fiss = \musicalpitch { -2 3 1 }
+ Fisis = \musicalpitch { -2 3 2 }
+ Fississ = \musicalpitch { -2 3 2 }
+ Geses = \musicalpitch { -2 4 -2 }
+ Gessess = \musicalpitch { -2 4 -2 }
+ Ges = \musicalpitch { -2 4 -1 }
+ Gess = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gis = \musicalpitch { -2 4 1 }
+ Giss = \musicalpitch { -2 4 1 }
+ Gisis = \musicalpitch { -2 4 2 }
+ Gississ = \musicalpitch { -2 4 2 }
+ Aeses = \musicalpitch { -2 5 -2 }
+ Aessess = \musicalpitch { -2 5 -2 }
+ Ases = \musicalpitch { -2 5 -2 }
+ Assess = \musicalpitch { -2 5 -2 }
+ Aes = \musicalpitch { -2 5 -1 }
+ Aess = \musicalpitch { -2 5 -1 }
+ As = \musicalpitch { -2 5 -1 }
+ Ass = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ A = \musicalpitch { -2 5 0 }
+ Ais = \musicalpitch { -2 5 1 }
+ Aiss = \musicalpitch { -2 5 1 }
+ Aisis = \musicalpitch { -2 5 2 }
+ Aississ = \musicalpitch { -2 5 2 }
+ Bes = \musicalpitch { -2 6 -2 }
+ Bess = \musicalpitch { -2 6 -2 }
+ B = \musicalpitch { -2 6 -1 }
+ H = \musicalpitch { -2 6 0 }
+ His = \musicalpitch { -2 6 1 }
+ Hiss = \musicalpitch { -2 6 1 }
+ Hisis = \musicalpitch { -2 6 2 }
+ Hississ = \musicalpitch { -2 6 2 }
+
+}
+
+
+
--- /dev/null
+% paper.ly
+
+linewidth20 = \hsize - 2.5 * \staffheight;
+textheight20 = \vsize - 5.0 * \staffheight;
+linewidth = \staffheight/20.0 * \linewidth20;
+textheight = \staffheight/20.0 * \textheight20;
+
+indent = \linewidth / 14.0;
+
--- /dev/null
+% paper11.ly
+
+
+paper_eleven = \paper {
+ staffheight = 11.0\pt;
+
+ % ugh see table11 for sizes
+ quartwidth = 3.63\pt;
+ wholewidth = 5.45\pt;
+
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 4.8\pt;
+
+ 0=\font "feta11"
+
+ \include "params.ly";
+}
+
--- /dev/null
+% paper13.ly
+
+paper_thirteen = \paper {
+ staffheight = 13.0\pt;
+
+ % ugh see table13 for sizes
+ quartwidth = 4.29\pt;
+ wholewidth = 6.44\pt;
+
+
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 4.8\pt;
+
+ 0=\font "feta13"
+ \include "params.ly";
+}
+
--- /dev/null
+% paper16.ly
+
+
+
+\version "1.0.14";
+
+paper_sixteen = \paper {
+ staffheight = 16.0\pt;
+
+ % 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;
+ texsetting = "\\input lilyponddefs \\musixsixteendefs ";
+ pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
+ scmsetting = "(display \"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\");\n";
+ scmsetting = "(display \"\\\\input lilyponddefs \\\\musixsixteendefs\");\n";
+
+ 0 = \font "feta16"
+ -1 = \font "feta13"
+ -2 = \font "feta11"
+
+ \include "params.ly";
+}
--- /dev/null
+% paper20.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;
+
+
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 6.\pt;
+ texsetting = "\\input lilyponddefs \\musixtwentydefs ";
+ pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
+ % urg, debugging only
+ scmsetting = "(display \"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\");\n";
+ scmsetting = "(display \"\\\\input lilyponddefs \\\\musixtwentydefs\");\n";
+
+ -2 = \font "feta13"
+ -1 = \font "feta16"
+ 0 = \font "feta20"
+
+ \include "params.ly";
+}
+
--- /dev/null
+% paper26.ly
+
+paper_twentysix = \paper {
+ staffheight = 26.0\pt;
+
+ % ugh see table26 for sizes
+ quartwidth = 8.59\pt;
+ wholewidth = 12.87\pt;
+
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 6.\pt;
+
+ 0=\font "feta26"
+ \include "params.ly";
+ linewidth = \linewidth20;
+ textheight = \textheight20;
+}
+
--- /dev/null
+% params.ly
+% generic paper parameters
+
+paperfile = \papersize + ".ly";
+% paperfile = "a4.ly";
+\include \paperfile;
+\include "paper.ly";
+
+interline = \staffheight / 4.0;
+
+
+% thickness of stafflines
+staffline = \interline / 10.0;
+
+beam_thickness = 0.52 * (\interline - \staffline);
+interbeam = (2.0 * \interline - \beam_thickness) / 2.0;
+interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
+
+% stems and beams
+%
+% poor man's array size
+stem_max = 3.0;
+%
+stem_length0 = 3.5*\interline;
+stem_length1 = 2.5 * \interline;
+stem_length2 = 2.0 * \interline;
+stem_length3 = 1.5 * \interline;
+
+% only used for beams
+minimum_stem_length0 = 0.0; % not used
+minimum_stem_length1 = 1.5 * \interline;
+minimum_stem_length2 = 1.25 * \interline;
+minimum_stem_length3 = 1.0 * \interline;
+
+% stems in unnatural (forced) direction should be shortened,
+% according to [Roush & Gourlay]. Their suggestion to knock off
+% a whole staffspace seems a bit drastical: we'll do half.
+%
+forced_stem_shorten0 = 0.5 * \interline;
+forced_stem_shorten1 = \forced_stem_shorten0;
+forced_stem_shorten2 = \forced_stem_shorten1;
+forced_stem_shorten3 = \forced_stem_shorten2;
+
+% there are several ways to calculate the direction of a beam
+%
+% * MAJORITY : number count of up or down notes
+% * MEAN : mean centre distance of all notes
+% * MEDIAN : mean centre distance weighted per note
+%
+% enum Dir_algorithm { DOWN=-1, UP=1, MAJORITY=2, MEAN, MEDIAN };
+%
+DOWN = -1.0;
+UP = 1.0;
+MAJORITY = 2.0;
+MEAN = 3.0;
+MEDIAN = 4.0;
+% [Ross]: majority
+beam_dir_algorithm = \MAJORITY;
+
+% catch suspect beam slopes, set slope to zero if
+% outer stem is lengthened more than
+beam_lengthened = 0.2 * \interline;
+% and slope is running away steeper than
+beam_steep_slope = 0.2 / 1.0;
+
+% OSU: suggested gap = ss / 5;
+slur_x_gap = \interline / 5.0;
+slur_x_minimum = 2.0 * \interline;
+slur_slope_damping = 0.5;
+tie_x_minimum = \slur_x_minimum;
+tie_x_gap = \slur_x_gap;
+tie_slope_damping = 0.3;
+
+% ugh: rename to bow (in bezier.cc and fonts.doc too...)
+% slur_thickness = 1.8 * \staffline;
+slur_thickness = 1.4 * \staffline;
+slur_height_limit = \staffheight;
+
+% mmm, try bit flatter slurs
+% slur_ratio = 1.0 / 3.0;
+slur_ratio = 0.3;
+slur_clip_ratio = 1.2;
+slur_clip_height = 3.0 * \staffheight;
+slur_clip_angle = 100.0;
+slur_rc_factor = 2.4;
+
+% ugh
+notewidth = (\quartwidth + \wholewidth) / 2.0;
+
+% ugh
+barsize = \staffheight;
+rulethickness = \staffline;
+stemthickness = \staffline;
+
+
+gourlay_energybound = 100000.;
+%{
+The following bounds the number of measures
+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";
+
+
--- /dev/null
+%part-paper.ly
+
+\paper {
+ \translator { \OrchestralPartStaffContext }
+ \translator { \ScoreContext skipBars = 1; }
+ % for simple testing only!
+% castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn
+}
+
--- /dev/null
+%
+% setup for Request->Element conversion. Guru-only
+%
+\translator {
+ \type "Staff_performer";
+ \accepts Voice;
+ \name Staff;
+ \consists "Key_performer";
+ \consists "Time_signature_performer";
+}
+
+\translator
+{
+ \type "Performer_group_performer";
+ \name Thread ;
+ \consists "Note_performer";
+}
+\translator
+{
+ \type "Performer_group_performer";
+ \accepts Thread;
+\name Voice;
+}
+\translator
+{
+ \type "Performer_group_performer";
+ \accepts Staff;
+
+\name GrandStaff;}
+
+\translator {
+ \type "Performer_group_performer";
+ \consists "Lyric_performer";
+\name LyricVoice;
+}
+
+\translator{
+ \type "Performer_group_performer";
+ \name ChoirStaff;
+ \accepts Staff;
+}
+\translator {
+ \type "Staff_performer";
+ \accepts LyricVoice;
+ \name Lyrics;
+ \consists "Time_signature_performer";
+}
+\translator
+{
+ \type Performer_group_performer;
+
+ \name StaffGroup;
+ \accepts Staff;
+}
+\translator {
+ \type "Score_performer";
+
+
+ \name Score;
+ instrument = piano;
+ \accepts Staff;
+ \accepts GrandStaff;
+ \accepts Lyrics;
+ \accepts StaffGroup;
+ \accepts ChoirStaff;
+ \consists "Swallow_performer";
+}
+
--- /dev/null
+% property.ly
+% list of properties that lily recognises
+% and some shorthands (ugh)
+
+%{
+
+PROPERTIES
+
+name value effect shorthand
+
+[Voice]
+ydirection -1 force stem down \stemdown
+ydirection 0 stem direction free \stemboth
+ydirection 1 force stem up \stemup
+
+pletvisibility 0 show nothing
+pletvisibility 1 show number
+pletvisibility 2 show (number and bracket)-if-no-beam
+pletvisibility 3 show number, and bracket-if-no-beam
+pletvisibility 4 show number, and bracket
+
+slurdash 0 normal slurs
+slurdash 1 dotted slurs
+slurdash >1 dashed slurs
+
+slurydirection -1 force stem down \slurdown
+slurydirection 0 stem direction free \slurboth
+slurydirection 1 force stem up \slurup
+
+slurydirection -1 force stem down \slurdown
+slurydirection 0 stem direction free \slurboth
+slurydirection 1 force stem up \slurup
+
+textalignment -1 left alignment of text
+textalignment 0 center alignment of text
+textalignment 1 right alignment of text
+
+[Score?]
+beamslopedamping 0 no damping \beamslopeproportional
+beamslopedamping 1 damping1) \beamslopedamped
+beamslopedamping 100000 zero slope \beamslopezero
+
+[Score?]
+beamquantisation 0 no quantisations \beamposfree
+beamquantisation 1 quantise pos and slope \beamposnormal
+beamquantisation 2 quantise avoide wedge2) \beampostraditional
+
+[Staff]
+keyoctaviation 0 Key signature only for specified octave \specialkey
+keyoctaviation 1 Key signature for all octaves \normalkey
+
+[Staff]
+barAlways 0 none
+barAlways 1 generate bar at every moment
+
+[Staff]
+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
+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
+
+[Score]
+chordInversion 0/1 Find and display chord with inversion?
+
+
+1) after beam slope damping table suggested in [Wanske]
+2) [Wanske] as well as [Ross] suggests that beams sloped upward must not
+ start sitting on a staffline, and beams sloped downward must not hang
+ from a staffline (similar for beam-ends). This would create a wedge
+ that is traditionally being avoided because it could easily be filled-up
+ with ink.
+ However, avoiding these wedges restricts the freedom of beams quite a lot
+ while they don't seem to be a problem in modern printing.
+ In no piece of sheetmusic engraved after 1953 (Baerenreiter) i've seen
+ these wedges being avoided.
+
+%}
+
+%hmm, (these) abbrevs suck, imo
+% i guess they're meant as some form of doco
+% that's what i use them for...
+stemup =
+ \property Voice.ydirection = \up
+stemboth= \property Voice.ydirection = \center
+stemdown = \property Voice.ydirection = \down
+
+slurup = \notes {
+ s1*0
+ \property Voice.slurydirection = \up
+ }
+slurboth= \notes {
+ s1*0
+ \property Voice.slurydirection = \center
+}
+slurdown = \notes {
+ s1*0
+ \property Voice.slurydirection = \down
+}
+
+shifton = \property Voice.hshift = 1
+shiftoff = \property Voice.hshift = 0
+
+onevoice = {
+ \stemboth \shiftoff
+}
+
+voiceone = {
+ \type Voice = one
+ \stemup
+}
+
+voicetwo = {
+ \type Voice = two
+ \stemdown
+}
+
+voicethree = {
+ \type Voice = three
+ \stemup
+
+}
+
+voicefour = {
+ \type Voice = four
+ \stemdown
+ \shifton
+}
+
+onestaff = {
+ \translator Staff=one
+}
+
+staffone = {
+ \translator Staff=one
+ \property Staff.ydirection = \center
+ \property Staff.hshift = 0
+}
+
+stafftwo = {
+ \translator Staff=two
+ \property Staff.ydirection = \center
+ \property Staff.hshift = 0
+}
+
+staffthree = {
+ \translator Staff=three
+ \property Staff.ydirection = \center
+ \property Staff.hshift = 0
+}
+
+stafffour = {
+ \translator Staff=four
+ \property Staff.ydirection = \center
+ \property Staff.hshift = 0
+}
+
+% ugh, cluttering global namespace...
+none=0
+free=0
+normal=1
+traditional=2
+infinity=10000
+
+beamslopeproportional = {
+ \property Score.beamslopedamping = \none
+}
+
+beamslopedamped = {
+ \property Score.beamslopedamping = \normal
+}
+
+beamslopezero = {
+ \property Score.beamslopedamping = \infinity
+}
+
+% this sucks, you'd want to pass an array, at least
+% (or embedded code: you still can't dictate the slope / stemlength)
+beamposfree = {
+ \property Score.beamquantisation = \none
+}
+
+beamposnormal = {
+ \property Score.beamquantisation = \normal
+}
+
+beampostraditional = {
+ \property Score.beamquantisation = \traditional
+}
+
+slurnormal = {
+ \property Voice.slurdash = 0
+}
+
+slurdotted = {
+ \property Voice.slurdash = 1
+}
+
+%{
+ for grace note hack, see input/test/grace.ly
+%}
+pletoff = {
+ \property Voice.pletvisibility = 0
+}
+pleton = {
+ \property Voice.pletvisibility = 3
+}
+tiny = {
+ \property Voice.fontsize= "-2"
+ \pletoff %urg
+}
+
+small = {
+ \property Voice.fontsize= "-1"
+}
+
+normalsize = {
+ \property Voice.fontsize= "0"
+ \pleton %urg
+}
+
+%{
+ [urg: try at] temporary grace note hack
+ the total visible duration of the grace notes must be half
+ the duration of the 'at' note: e.g.:
+
+ \grace b8 \graceat c4 \ecarg
+ \grace c16 b16 \graceat c4 \ecarg
+
+grace = {
+ \tiny
+% it would be so cool not to have to specify these factors each time...
+% :-(
+ \property Voice.pletvisibility = 0
+ \[1/16
+}
+
+graceat = \melodic {
+ \normalsize
+ \property Voice.pletvisibility = 0
+ \] \[31/32
+}
+
+ecarg = \melodic {
+ \property Voice.pletvisibility = 0
+ \]
+ \property Voice.pletvisibility = 3
+}
+%}
+
+normalkey = {
+ \property Staff.keyoctaviation = 1
+}
+
+specialkey = {
+ \property Staff.keyoctaviation = 0
+}
+
--- /dev/null
+
+% name = \script {
+% indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted priority }
+%
+
+thumb = \script { "thumb" 0 0 1 0 0 }
+accent = \script { "sforzato" 0 -1 0 0 0 }
+marcato = \script { "marcato" 0 -1 0 1 0 }
+staccatissimo = \script { "staccatissimo" 0 -1 0 1 0 }
+portato= \script { "portato" 0 -1 0 1 0 }
+fermata = \script { "fermata" 0 1 0 1 0 }
+stopped = \script { "stopped" 0 0 1 0 0 }
+staccato = \script { "staccato" 1 -1 0 0 0 }
+tenuto = \script {"tenuto" 1 -1 0 0 0 }
+upbow = \script { "upbow" 0 0 1 0 0 }
+downbow = \script { "downbow" 0 0 1 0 0 }
+lheel = \script { "upedalheel" 0 0 -1 0 0 }
+rheel = \script { "dpedalheel" 0 0 1 0 0 }
+ltoe = \script { "upedaltoe" 0 0 -1 0 0 }
+rtoe = \script { "dpedaltoe" 0 0 1 0 0 }
+turn = \script { "turn" 0 0 1 0 0 }
+open = \script { "open" 0 0 1 0 0 }
+flageolet = \script { "flageolet" 0 0 1 0 0 }
+reverseturn = \script { "reverseturn" 0 0 1 0 0 }
+
+
+% could we do without this bloat?
+%
+lbheel = \script { "bheel" 0 0 -1 0 0 }
+rbheel = \script { "bheel" 0 0 1 0 0 }
+lbtoe = \script { "btoe" 0 0 -1 0 0 }
+rbtoe = \script { "btoe" 0 0 1 0 0 }
+lfheel = \script { "fheel" 0 0 -1 0 0 }
+rfheel = \script { "fheel" 0 0 1 0 0 }
+lftoe = \script { "ftoe" 0 0 -1 0 0 }
+rftoe = \script { "ftoe" 0 0 1 0 0 }
+
+%
+% left toe: right heel:
+%
+% u -
+% - u
+% ---|-----|-- --|x----|x--
+% ---|-----|-- --|-----|---
+% --x|----x|-- --|-----|---
+% ^ -
+% - ^
+% back front back front
+%
+%
+% heu, me thought for a moment that order in table_xxx.ly was
+% being translated into priority...
+back = \script { "back" 0 -1 -1 0 0 }
+front = \script { "front" 0 -1 1 0 0 }
+
+trill =\script { "trill" 0 0 1 0
+ 2000 % be above text.
+}
+
+prall =\script { "prall" 0 0 1 0 0 }
+mordent =\script { "mordent" 0 0 1 0 0 }
+prallprall =\script { "prallprall" 0 0 1 0 0 }
+prallmordent =\script { "prallmordent" 0 0 1 0 0 }
+upprall =\script { "upprall" 0 0 1 0 0 }
+downprall =\script { "downprall" 0 0 1 0 0 }
--- /dev/null
+%
+% common Swedish names for notes. "ess" means flat, "iss" means sharp
+%
+% by Mats Bengtsson.
+
+\notenames {
+ cessess = \musicalpitch { -1 0 -2 }
+ cess = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ ciss = \musicalpitch { -1 0 1 }
+ cississ = \musicalpitch { -1 0 2 }
+ dessess = \musicalpitch { -1 1 -2 }
+ dess = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ diss = \musicalpitch { -1 1 1 }
+ dississ = \musicalpitch { -1 1 2 }
+ essess = \musicalpitch { -1 2 -2 }
+ ess = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ eiss = \musicalpitch { -1 2 1 }
+ eississ = \musicalpitch { -1 2 2 }
+ fessess = \musicalpitch { -1 3 -2 }
+ fess = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fiss = \musicalpitch { -1 3 1 }
+ fississ = \musicalpitch { -1 3 2 }
+ gessess = \musicalpitch { -1 4 -2 }
+ gess = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ giss = \musicalpitch { -1 4 1 }
+ gississ = \musicalpitch { -1 4 2 }
+ assess = \musicalpitch { -1 5 -2 }
+ ass = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ aiss = \musicalpitch { -1 5 1 }
+ aississ = \musicalpitch { -1 5 2 }
+ hessess = \musicalpitch { -1 6 -2 }
+ b = \musicalpitch { -1 6 -1 }
+ h = \musicalpitch { -1 6 0 }
+ hiss = \musicalpitch { -1 6 1 }
+ hississ = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower.
+ %
+
+
+ Cessess = \musicalpitch { -2 0 -2 }
+ Cess = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Ciss = \musicalpitch { -2 0 1 }
+ Cississ = \musicalpitch { -2 0 2 }
+ Dessess = \musicalpitch { -2 1 -2 }
+ Dess = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Diss = \musicalpitch { -2 1 1 }
+ Dississ = \musicalpitch { -2 1 2 }
+ Essess = \musicalpitch { -2 2 -2 }
+ Ess = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Eiss = \musicalpitch { -2 2 1 }
+ Eississ = \musicalpitch { -2 2 2 }
+ Fessess = \musicalpitch { -2 3 -2 }
+ Fess = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fiss = \musicalpitch { -2 3 1 }
+ Fississ = \musicalpitch { -2 3 2 }
+ Gessess = \musicalpitch { -2 4 -2 }
+ Gess = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Giss = \musicalpitch { -2 4 1 }
+ Gississ = \musicalpitch { -2 4 2 }
+ Assess = \musicalpitch { -2 5 -2 }
+ Ass = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ Aiss = \musicalpitch { -2 5 1 }
+ Aississ = \musicalpitch { -2 5 2 }
+ Hessess = \musicalpitch { -2 6 -2 }
+ B = \musicalpitch { -2 6 -1 }
+ H = \musicalpitch { -2 6 0 }
+ Hiss = \musicalpitch { -2 6 1 }
+ Hississ = \musicalpitch { -2 6 2 }
+
+
+}
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)
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
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
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
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>
# 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
#
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)
+++ /dev/null
-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
+++ /dev/null
-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
+++ /dev/null
-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
+++ /dev/null
-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
+++ /dev/null
-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
-%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;
% 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;
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;
fet_beginchar("Harmonic ledger", "harmonicl", "harmonicledger")
draw_ledger(harmonic_wid#);
fet_endchar;
-%fi
+fi
fet_endgroup("balls");
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;
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
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 |
depth = ../..
-examples=
+examples=sonata-k3-l378
LOCALSTEPMAKE_TEMPLATES=mutopia
include $(depth)/make/stepmake.make
--- /dev/null
+ %{
+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;}}
+}
+
+----------------------------------------------------
+
%}
\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
% 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
\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
% 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
% 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
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
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;}}
}
-
-
--- /dev/null
+
+
+\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;}}
+}
+
--- /dev/null
+ \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;
+ }
+}
--- /dev/null
+
+\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;}}
+}
--- /dev/null
+#
+
+depth = ../..
+
+examples=gnossienne-4 petite-ouverture-a-danser
+LOCALSTEPMAKE_TEMPLATES=mutopia
+
+include $(depth)/make/stepmake.make
+
+
--- /dev/null
+\header {
+ filename = "gnossienne-4.ly";
+ title = "Gnossienne";
+ subtitle = "4";
+ source = "";
+ composer = "Erik Satie (1866-1925)";
+ enteredby = "jcn";
+ copyright = "Public Domain";
+}
+
+%{
+ Tested Features: cross staff beams and slurs, grace notes, no bars
+%}
+
+\version "1.0.14";
+
+\include "nederlands.ly"
+
+global = \notes {
+ \key a \minor;
+ \time 6/4;
+% \cadenza 1;
+ \skip 1.*34;
+ \bar ".|";
+}
+
+upper = \type Staff=treble \notes\relative c''{
+ \clef violin;
+ \stemup
+ \type Voice=one
+ r2 r r
+ r2 r r
+ r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
+ % grace hack
+ < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
+ r2 r r
+ r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
+ < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
+ r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
+ )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
+ r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
+ )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
+ \tiny a8*1/2 ~ \normalsize f4*3/4 ~ f8 r r2 r
+ r2 r4 [a8( b][c d c b] \tiny b8*1/2 ~ \normalsize
+ < { [e8*1/2 )g,8] } \type Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
+ r2 r4 [a8( b][c d c b] [a b c d][c b a b][c d c b]
+ \tiny b8*1/2 ~ \normalsize
+ < { [e8*1/2 )g,8] } \type Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
+ a2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
+ r2 r r
+ fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
+ \tiny b'8*1/2 ~ \normalsize
+ < { [a8*1/2 a8] } \type Voice=x { \stemup s8*1/4 \tiny b8*1/2 ~ } > r4 r2 r
+ r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
+ < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
+ d,4( \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ )gis8 r r4 r2
+ f4 ~ f8 r r2 r
+ [f'8( g a b][a g f g][a b a g]
+ \tiny f8*1/2 ~ \normalsize
+ < { [g8*1/2 )e8] } \type Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
+ [f8( g a b][a g f g][a b a g]
+ \tiny f8*1/2 ~ \normalsize
+ < { [g8*1/2 )e8] } \type Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
+ a,2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
+ r2 r r
+ fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
+ <e1 g b e> ~ <e g b e>
+}
+
+basloopje = \notes\relative c{
+ d,8( a' d f a d f d a f d )a
+}
+
+bassbeam = \notes{
+ [s2] [s8 \translator Staff=treble s s s] [\translator Staff=bass s2]
+% [s2] [s2] [s2]
+}
+
+lower = \type Voice=two \notes \relative c{
+ \stemdown
+ \property Staff.slurydirection = 1
+
+ % snapnie, hoevaak relative c heeft ze nodig?
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose a \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose a \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ % huh? d'
+ < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose e' \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
+ < \transpose a \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \notes\relative c \basloopje \bassbeam >
+ < \transpose e' \notes\relative c{ \basloopje } \bassbeam >
+ < e1 b' e> ~ < e b' e>
+}
+
+\score {
+ \type GrandStaff <
+ \type Staff = treble <
+ \global
+ \upper
+ >
+ \type Staff = bass <
+ \global
+ \clef bass;
+ \lower
+ >
+ >
+
+ \paper {
+ gourlay_maxmeasures = 4.;
+ indent = 8.\mm;
+ textheight = 295.\mm;
+
+ % no slur damping
+ slur_slope_damping = 100.0;
+
+ \translator{ \OrchestralScoreContext }
+ \translator{
+ \GrandStaffContext
+ minVerticalAlign = 3.0*\staffheight;
+ maxVerticalAlign = 3.0*\staffheight;
+ }
+ \translator{
+ \StaffContext
+ % don't auto-generate bars: not a good idea: -> no breakpoints
+ % barAuto = "0";
+ % urg defaultBarType = "";
+ defaultBarType = "empty";
+ \remove "Time_signature_engraver";
+ }
+ }
+ \midi {
+ \tempo 4 = 54;
+ }
+}
+
--- /dev/null
+\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;
+ }
+}
+
%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>]
|
%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 "|.";
)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
)b4 [d,8.( d16] )c'4-. [d,8. d16] |
%29
d'4-. d,-. d'-. [d,8.( d16 ]
- \bar ":|";
+ }
%30
)g2 r2 \bar "|.";
\property Voice.dynamicdir = "1"
r1 | r1 |r1 | r1 |
- \bar "|:";
+ \repeat 2 {
%5
b2. g4 |
%6
\! g2 r2 |
%27
r1 | r1 | r1
- \bar ":|";
+ }
r1 \bar "|.";
}
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
\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 |
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; }
}
\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 "|.";
}
\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";
\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 ^(@ ^@ ^)@)
%# 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)
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-.] |
}
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";
\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 ~ |
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";
\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 |
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, |
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, |
\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";
\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 |
\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
\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";
-\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;
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{
>
\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"; }
}
-
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. |
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<
\$allemande_b
>
+
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{
\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"; }
}
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{
\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"; }
}
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
>
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{
\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"; }
}
\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{
\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"; }
}
% * 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 |
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 |
%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
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<
\header{
-filename = "gigue-cello.ly";
+filename = "gigue-viola.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
% piece = "Gigue";
\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"; }
}
\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
\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"; }
}
\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 <
\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"; }
}
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; |
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; |
% 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<
>
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<
{ \$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.
}
\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
\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"; }
}
\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 <
\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"; }
}
\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"; }
}
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 |
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
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 |
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 }
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 |
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. |
\$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
>
\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"; }
}
\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{
\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"; }
}
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
<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
}
\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{
\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"; }
}
-\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";
}
}
%{
- Tested Features: stem direction, multivoice, forced accidentals.
+ Tested Features:
+ * stem direction
+ * multivoice,
+ * forced accidentals
+ * cross-staff beaming
+ * auto beaming
%}
\version "1.0.14";
\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 |
}
%%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
+ %{
+Dit is de fout:
+
+GNU LilyPond 1.1.19.
+Parsing...[/home/lily/usr/share/lilypond/ly/init.ly[/home/lily/usr/share/lilypond/ly/declarations.ly[/home/lily/usr/share/lilypond/ly/dynamic.ly][/home/lily/usr/share/lilypond/ly/nederlands.ly][/home/lily/usr/share/lilypond/ly/chord-modifiers.ly][/home/lily/usr/share/lilypond/ly/script.ly][/home/lily/usr/share/lilypond/ly/paper20.ly[/home/lily/usr/share/lilypond/ly/table20.ly][/home/lily/usr/share/lilypond/ly/table13.ly][/home/lily/usr/share/lilypond/ly/table16.ly][/home/lily/usr/share/lilypond/ly/params.ly[/home/lily/usr/share/lilypond/ly/a4.ly][/home/lily/usr/share/lilypond/ly/paper.ly][/home/lily/usr/share/lilypond/ly/engraver.ly]]][/home/lily/usr/share/lilypond/ly/midi.ly[/home/lily/usr/share/lilypond/ly/performer.ly]][/home/lily/usr/share/lilypond/ly/property.ly][/home/lily/usr/share/lilypond/scm/lily.scm]][Sinfonia.ly]]
+Interpreting music...[8][16][24][32][40]
+Sinfonia.ly:239:24: warning: barcheck failed by: 1/4:
+ \times 2/3 {[e g fis] |
+ [e fis g]} | fis4 r |
+
+Sinfonia.ly:87:34: warning: barcheck failed by: 1/4:
+ \times 2/3 {[g'8 b a] [g fis e] |
+ [a d, cis] [d cis d] |
+
+Sinfonia.ly:240:25: warning: barcheck failed by: 1/4:
+ \times 2/3 {[e8 g fis] |
+ [e fis g]} | fis4 r |
+
+Sinfonia.ly:88:21: warning: barcheck failed by: 1/4:
+ [g, b a] [g fis e] |
+ [a d, cis] [d cis d]} |
+[48][56][64][72][80][88][96][104][112][120][123]
+time: 24.16 seconds
+Preprocessing elements... lilypond: score-element.cc:134: class
+Paper_def * Score_element::paper() const: Assertion `pscore_l_' failed.
+
+%}
+
\header{
filename="Sinfonia.ly";
title="Sinfonia";
arranger="(1719-1787)";
copyright="public domain";
enteredby="Maarten Storm";
-
}
s2*5 \break
s2*5 \break
s2*5 \break
+ s2*5 \break
s2*5 \break
s2*5 \break
s2*4 \break
s2*5 \bar ":|";
-
%fine
}
}
dynamics = \notes{
- \type Voice=i
- s16\f s8. s4 | s2*17
- s8\p s4. | s8\f s4. | s2*4
- s8\p s4. | s8\f s4. | s2*29
- s8\p s4. | s2 |
- s8\f s4. | s2 | s8\p s4. | s2 | s8\f s4. | s2*47
- s16 s16\p s4. | s2 |
- s16 s16\f s4. |
- s16 s16\p s4. |
- s16 s16\f s4. |
+% \type Voice=i
}
violinoi = \notes \relative c'{
\type Voice=i
\clef "violin";
- \stemup
- [<g8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
+ [<g8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
%5
- \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
%11
[a b c d] [e c b a] | [b c d c] [d b a g] |
%15
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [g'8\p d c] [b a g] |
%20
- \times 2/3 {[f' d c]} \times 2/3 {[b a g]} |
- \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
- [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
+ [f'\f d c] [b a g]} |
+ [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
%26
- \times 2/3 {[g' e d] [cis b a]} |
- \stemup [<d,8 a' fis'> fis' fis fis] \stemboth|
- <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
- \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} |
- \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
+ [g'\f e d] [cis b a]} | [<d,8 a' fis'> fis' fis fis] |
+ <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
+ [g fis g] [b, a g] | [a b cis] [d e fis] |
%32
- \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} |
- \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
- \times 2/3 {[e d e]} \times 2/3 {[g, fis e]} |
+ [fis e fis] [a, g fis] | [g a b] [cis d e] |
+ [e d e] [g, fis e]}
%35
[fis16 d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
[cis' a b a] [b a b a] | [d a b a] [b a b a] |
[e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
%43
- \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
- \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+ \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
+ [g, b a] [g fis e] | [a d, cis] [d cis d]} |
%47
[b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
%50
a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 gis,16 a4 |
r8 [fis g! a] | d,2
- [d'8 e f a,] | [gis a] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ [d'8\p e f a,] | [gis a] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
- [c'8 d e g,?] | [fis g] r4 |
- \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
+ [c'8\p d e g,?] | [fis g] r4 |
+ \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
%64 : reprise
- \stemup [<g,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
- \stemup [<g,,8 d' b' g'> g'' g g] | \stemboth [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+ [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
%70
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [f\f d c] [b a g]} | [e' c] r4 |
%78
- \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |
- \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} |
- \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
- \times 2/3 {[d e fis]} \times 2/3 {[g a b]} |
- \times 2/3 {[b a b]} \times 2/3 {[d, c b]} |
- \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
- \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] |
+ [g e d] [cis b a]} | [fis' d] r4 |
+ \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
+ [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
+ [a g a] [c, b a]} |
%88
[b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
[e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
%96
- \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
- \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
+ \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] |
+ [d c' c] [c b a] | [d g, fis] [g fis g]} |
%100
[e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
- [b16 b a g] a4^\trill | g g' |
+ [b16 b a g] a4 | g g' |
%106
r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 |
[fis16 g a g] [fis e d c] | [b g' g g] g4:16 |
- [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
- [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4
+ [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
+ [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4
%fine
}
violinoii = \notes \relative c'{
\type Voice=i
\clef "violin";
- \stemup [<g8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
+ [<g8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
%5
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
%11
[a b c d] [e c b a] | [b c d c] [d b a g] |
%15
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f' d c]} \times 2/3 {[b a g]} |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [g'8\p d c] [b a g] | [f'\f d c] [b a g]} |
%21
- \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
- [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
+ [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
%26
- \times 2/3 {[g' e d]} \times 2/3 {[cis b a]} |
- \stemup [<d, a' fis'> fis' fis fis] \stemboth |
- <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
- \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} |
- \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
+ [g'\f e d] [cis b a]} | [<d, a' fis'> fis' fis fis] |
+ <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
+ [g fis g] [b, a g] | [a b cis] [d e fis] |
%32
- \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} |
- \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
- \times 2/3 {[e d e]} \times 2/3 {[g, fis e]}
+ [fis e fis] [a, g fis] | [g a b] [cis d e] |
+ [e d e] [g, fis e]}
%35
[fis16 d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
[cis' a b a] [b a b a] | [d a b a] [b a b a] |
[e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
%43
- \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
- \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} |
- \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+ \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
+ [g, b a] [g fis e] | [a d, cis] [d cis d]} |
%47
[b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
%50
a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 g,16 a4 |
r8 [fis g! a] | d,2
- f4 r8 f | [e-. ~ e-.] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ f4\p r8 f | [e-. ~ e-.] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
- e'4 r8 e | [d-. ~ d-.] r4 |
- \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
+ e'4\p r8 e | [d-. ~ d-.] r4 |
+ \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
%64 : reprise
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
- \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+ [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
%70
[e' fis g fis] [g e d c] | [b c d c] [d b a g] |
[fis g a g] [fis e d c] | [b a g8] r4 |
- \stemup [<g8 d' b' g'> g'' g g] \stemboth |
- \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
- \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
+ [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
+ [f\f d c] [b a g]} | [e' c] r4 |
%78
- \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
- \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} |
- \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |
- \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} |
- \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
- \times 2/3 {[d e fis]} \times 2/3 {[g a b]} |
- \times 2/3 {[b a b]} \times 2/3 {[d, c b]} |
- \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
- \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
+ [<a8 e' cis' a'> a'' a a] |
+ \times 2/3 {[a8 e d] [cis b a] |
+ [g e d] [cis b a]} | [fis' d] r4 |
+ \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
+ [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
+ [a g a] [c, b a]} |
%88
[b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
[e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
[a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
%96
- \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
- \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth |
- \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
+ \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] |
+ [d c' c] [c b a] | [d g, fis] [g fis g]} |
%100
[e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
- [b16 b a g] a4^\trill | g g' |
+ [b16 b a g] a4 | g g' |
%106
r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 |
[fis16 g a g] [fis e d c] | [b g' g g] g4:16 |
- [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
- [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4
+ [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
+ [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4
%fine
}
[e16 f? g f] [e f g f] | [g8 e e d] |
[cis16 d e d] [cis d e d] | cis4 r |
%25
- e e | e e | [fis16 g a g] [fis g a g] |
- [fis8 fis a a] | d,4 b | b g' | cis,? a |
+ e\p e | e\f e | [fis16 g a g] [fis g a g] |
+ [fis8 fis a a] | d4 b | b g' | cis,? a |
a fis' b, g' | a a, |
%35
[a8 fis' fis fis] | r [g g g] | r [a a a] |
r [b, b b] | r [cis cis cis] | r [d d d] | r [e e e] |
r [fis fis fis] |
%43
- \times 2/3 {[e g fis]} \times 2/3 {[e fis g]} | fis4 r |
- \times 2/3 {[e8 g fis]} \times 2/3 {[e fis g]} | fis4 r |
+ \times 2/3 {[e g fis] | [e fis g]} | fis4 r |
+ \times 2/3 {[e8 g fis] | [e fis g]} | fis4 r |
%47
[d8 g d fis] | r [e a, d] | r b [b cis16 d] |
[e8 d e cis] | [d d d cis] | d4 d' | r8 r16 gis, a4 |
r8 [fis8 g! a] | d,2
- [d8 d d d] | [d c!] r4 |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ [d8\p d d d] | [d c!] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
[c8\p c c c] | [c b] r4 | [a8 fis e g] | [g fis] r4 |
%64 : reprise
[d8 b b b] | r [c c c] | r [d d d] | r [e e e] | r [fis fis fis] |
r [g g g] | r [a a a] | r [b b b] |
%96
- \times 2/3 {[a c b]} \times 2/3 {[a b c]} | b4 r |
- \times 2/3 {[a,8 a g]} \times 2/3 {[a b c]} |
+ \times 2/3 {[a c b] [a b c]} | b4 r | \times 2/3 {[a,8 a g] [a b c]} |
b4 r | [g8 c g b] | r [a' d, g] | r e [e fis16 g] | [a8 g a fis] |
%104
- g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c? d] | [g, b d e] |
+ g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c! d] | [g, b d e] |
[a, a a' a] | [d, b d e] | [a, a a' a] | [d, d e d] | [d d e d] |
[d g g fis] | [g d] g,4
%fine
[g16 a b a] [g a b a] | [g8 g, g g'] |
%5
[g16 a b a] [g a b a] | [g8 g,] r4 |
- [c'8 c,] [e fis] | [g g g b,] |
- [c c] [e fis] | [g g b c] |
+ [c'8 c,] [e_"6" fis_"6"_"5" | [g g g b,_"6"] |
+ [c c] [e_"6" fis_"6"_"5" | [g g b_"6" c] |
%11
- [d d d c] | [b b b b] | [fis fis fis fis] |
- [g g b c] | [d fis, fis fis] | [g16 g fis e] [d c b a] |
+ [d d d c_"2"] | [b_"6" b b b] | [fis_"6"_"5" fis fis fis] |
+ [g g b_"6" c] | [d fis,_"6"_"5" fis fis] | [g16 g fis e] [d c b a] |
%17
[g g' b a] [g a b a] | g4 r | b, b | b b |
%21
g8 r fis r | e r d r | r [e e d] | [cis b cis a] | [d fis g a] |
d,4 d' | r8 r16 gis, a4 | r8 [fis g! a] | d,2
r2 | r |
- \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
+ \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
%60
r2 | r |
[f'8 d g g,] | [d' d'] [d16 c b a] |
[g16 a b a] [g a b a] | [g8 g, g g'] |
%68
[g16 a b a] [g a b a] | g4 r |
- [c8 c,] [e fis] | [g g b, c] | [e fis fis fis] |
+ [c8 c,] [e fis] | [g g b c] | [e fis fis fis] |
%73
[g16 g, a b] [c d e fis] | [g a b a] [g a b a] | g4 r |
b, b | [c8 c'16 d] [e d cis b] | [a b cis b] [a b cis b] |
%79
a4 r | cis,4 cis | [d8 d'16 e] [d8 b] |
- c4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
+ c?4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
%90
[b8 b, b b] | c2:8 | d2:8 | e2:8 | fis2:8 | g2:8 |
fis4 fis | g r | fis fis | g r | c8 r b r | a r g r |
r [a a g] | [fis e fis d] | [g, b c d] | g,4 g' |
%106
- r8 r16 cis, d4 | r8 [b c? d] | [g, g' b c] | [d fis, fis fis] |
+ r8 r16 cis, d4 | r8 [b c! d] | [g, g' b c] | [d fis, fis fis] |
[g g, b c] | [d fis fis fis] | [g b, c d] | [g, b c d] |
[g, b c d] | [g d] g,4
%fine
\score{
\type StaffGroup <
- \type Staff = i < %\tempi
- \global \dynamics \violinoi >
+ \type Staff = i < \tempi \global \dynamics \violinoi >
\type Staff = ii < \global \dynamics \violinoii >
\type Staff = iii < \global \dynamics \viola >
\type Staff = iv < \global \dynamics \bassocontinuo >
>
- \header{
- piece="I. Allegro";
- }
- \paper{
- \translator { \OrchestralScoreContext }
- }
+ \paper{
+ % \translator { \OrchestralScoreContext }
+ }
\midi{ \tempo 4 = 100; }
}
+
+
+
\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 <
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 |
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] |
fis4 g2 fis!4 |
\cadenza 1;
g\breve
+ }
}>
vi2=\type Staff = vi2 <
a4 g2 fis4 |
g1 |
+ \repeat 2 {
r1. |
r4 [g'8 f] e4 [f8 g] c,4 [d8 e] |
a,1. |
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] |
[a d c b ][ a g fis e] d4 d' |
\cadenza 1;
b\breve
+ }
}>
c B c G | d1^"3 4 3" |
G1 |
+ \repeat 2 {
g1. | c |
f | d^"\\textsharp" |
g | c |
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 |
) d^"3 4 3" |
\cadenza 1;
G\breve
+ }
}>
\score{
+++ /dev/null
-\header {
- filename = "gnossienne-4.ly";
- title = "Gnossienne";
- subtitle = "4";
- source = "";
- composer = "Erik Satie (1866-1925)";
- enteredby = "jcn";
- copyright = "Public Domain";
-}
-
-%{
- Tested Features: cross staff beams and slurs, grace notes, no bars
-%}
-
-\version "1.0.14";
-
-\include "nederlands.ly"
-
-global = \notes {
- \key a \minor;
- \time 6/4;
-% \cadenza 1;
- \skip 1.*34;
- \bar ".|";
-}
-
-upper = \type Staff=treble \notes\relative c''{
- \clef violin;
- \stemup
- \type Voice=one
- r2 r r
- r2 r r
- r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
- % grace hack
- < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
- r2 r r
- r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
- < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
- r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
- )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
- r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
- )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
- \tiny a8*1/2 ~ \normalsize f4*3/4 ~ f8 r r2 r
- r2 r4 [a8( b][c d c b] \tiny b8*1/2 ~ \normalsize
- < { [e8*1/2 )g,8] } \type Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
- r2 r4 [a8( b][c d c b] [a b c d][c b a b][c d c b]
- \tiny b8*1/2 ~ \normalsize
- < { [e8*1/2 )g,8] } \type Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
- a2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
- r2 r r
- fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
- \tiny b'8*1/2 ~ \normalsize
- < { [a8*1/2 a8] } \type Voice=x { \stemup s8*1/4 \tiny b8*1/2 ~ } > r4 r2 r
- r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> gis f \!e]
- < { [es8 )c] } \type Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
- d,4( \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ )gis8 r r4 r2
- f4 ~ f8 r r2 r
- [f'8( g a b][a g f g][a b a g]
- \tiny f8*1/2 ~ \normalsize
- < { [g8*1/2 )e8] } \type Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
- [f8( g a b][a g f g][a b a g]
- \tiny f8*1/2 ~ \normalsize
- < { [g8*1/2 )e8] } \type Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
- a,2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
- r2 r r
- fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
- <e1 g b e> ~ <e g b e>
-}
-
-basloopje = \notes\relative c{
- d,8( a' d f a d f d a f d )a
-}
-
-bassbeam = \notes{
- [s2] [s8 \translator Staff=treble s s s] [\translator Staff=bass s2]
-% [s2] [s2] [s2]
-}
-
-lower = \type Voice=two \notes \relative c{
- \stemdown
- \property Staff.slurydirection = 1
-
- % snapnie, hoevaak relative c heeft ze nodig?
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \transpose a \notes\relative c{ \basloopje } \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \transpose a \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- % huh? d'
- < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose e' \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose bes \notes\relative c{ \basloopje } \bassbeam >
- < \transpose a \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose d' \notes\relative c{ \basloopje } \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \notes\relative c \basloopje \bassbeam >
- < \transpose e' \notes\relative c{ \basloopje } \bassbeam >
- < e1 b' e> ~ < e b' e>
-}
-
-\score {
- \type GrandStaff <
- \type Staff = treble <
- \global
- \upper
- >
- \type Staff = bass <
- \global
- \clef bass;
- \lower
- >
- >
-
- \paper {
- gourlay_maxmeasures = 4.;
- indent = 8.\mm;
- textheight = 295.\mm;
-
- % no slur damping
- slur_slope_damping = 100.0;
-
- \translator{ \OrchestralScoreContext }
- \translator{
- \GrandStaffContext
- minVerticalAlign = 3.0*\staffheight;
- maxVerticalAlign = 3.0*\staffheight;
- }
- \translator{
- \StaffContext
- % don't auto-generate bars: not a good idea: -> no breakpoints
- % barAuto = "0";
- % urg defaultBarType = "";
- defaultBarType = "empty";
- \remove "Time_signature_engraver";
- }
- }
- \midi {
- \tempo 4 = 54;
- }
-}
-
-% EOF
;;; 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))
(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)) "}"))
"\\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) " "))
(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)
(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
"""
name = 'ly2dvi'
-version = '0.0.10'
+version = '0.0.11'
errorlog = ''
import sys
else:
pageheight = Props.get('pageheight')
pagewidth = Props.get('pagewidth')
-
+
horizontalMarginArg = ( (pagewidth - linewidth)/2 )
verticalMarginArg = ( (pageheight - textheight)/2 )
'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']],
else:
sys.exit('ExitBadWidth', m.group(2))
else:
- sys.exit('ExitBadWidth', size)
+ sys.stderr.write ('ly2dvi: warning: ignoring linewidth: ' + size + '\n')
#
# setOrientation
\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
\input fetdefs
+\def\deprecated#1S{%%%%%%%%%
\def\emptybar{}
+
+
\def\defaultthinbar{\thinbar{\staffheight}}
\def\defaultthickbar{\thickbar{\staffheight}}
%? what-s wrong with rightalign?
\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.
\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}