\begin{mudela}[verbatim]
\score {
\notes
- \type GrandStaff <
+ \context GrandStaff <
\transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
{ \clef "bass"; c4 c'4
- \type Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+ \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
>
\paper {
linewidth = -1.0\cm ;
\begin{mudela}
\score {
\notes
- \type GrandStaff <
+ \context GrandStaff <
\transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
{ \clef "bass"; c4 c'4
- \type Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+ \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
>
\paper {
linewidth = -1.0\cm ;
\end{mudela}
\begin{mudela}
\score {
- \notes \transpose c''{ r\longa*1/4 r\breve*1/2 r1 r2 r4 r8 r16 r32 r64 }
+ \notes \transpose c''\context Staff { r\longa*1/4 r\breve*1/2 r1 r2 r4 r8 r16 r32 r64 }
\paper {
\translator {
\StaffContext
\begin{center}
\begin{mudela}
\relative c'' {\time 2/4; <c4 e> <d f>
- \type Staff < \type Voice = VA{
+ \context Staff < \context Voice = VA{
\stemdown
c4 d
b16 b b b b b b b }
- \type Voice = VB {
+ \context Voice = VB {
\stemup e4 f g8 g4 g8 } >
}
\end{mudela}
\section{Requirements}
+
\section{Approach}
\subsection{Input}
+The input format consists of combining a symbolic representation of
+music with style sheet that describes how the symbolic presentation
+can converted to notation. The symbolic representation is based on a
+context free language called \textsf{music}. Music is a recursively
+defined construction in the input language. It can be constructed by
+combining lists of \textsf{music} sequentially or parallel or from
+terminals like notes or lyrics.
+
+The grammar for \textsf{music} is listed below. It has been edited to
+leave out the syntactic and ergonomic details.
+
+\begin{center}
+ \begin{tabular}{ll}
+Music: & SimpleMusic\\
+ & $|$ REPEATED int Music ALTERNATIVE MusicList\\
+ & $|$ SIMULTANEOUS MusicList\\
+ & $|$ SEQUENTIAL MusicList\\
+ & $|$ CONTEXT STRING '=' STRING Music\\
+ & $|$ TIMES int int Music \\
+ & $|$ TRANSPOSE PITCH Music \\
+SimpleMusic: & $|$ Note\\
+ & $|$ Lyric\\
+ & $|$ Rest\\
+ & $|$ Chord\\
+ & $|$ Command\\
+Command: & METERCHANGE\\
+ & $|$ CLEFCHANGE\\
+ &$|$ PROPERTY STRING '=' STRING\\
+Chord: &PitchList DURATION\\
+Rest: &REST DURATION\\
+Lyric: &STRING DURATION\\
+Note: &PITCH DURATION\\
+\end{tabular}
+\end{center}
+
+The terminals are both purely musical concepts that have a duration,
+and take a non-zero amount of musical time, like notes and lyrics, and
+commands that behave as if they have no duration.\footnote{The
+ PROPERTY command is a generic mechanism for controlling the
+ interpretation, i.e. the musical style sheets. See [forward ref]}
+
+The nonterminal productions can
+\begin{itemize}
+\item Some productions combine multiple elements: one can specify that
+ element are to be played in sequence, simultaneously or repetitively.
+\item There are productions for transposing music, and for dilating
+ durations of music: the TIMES production can be used to encode a
+ triplet.\footnote{A triplet is a group of three notes marked by a
+ bracket, that are played 3/2 times faster.}
+\item
+ There are productions that give directions to the interpretation
+ engine (the CONTEXT production)
+\end{itemize}
+
+
+\section{Context in notation}
+
+\section{Interpretation context}
+
+
\section{Discussion}
% -*-LaTeX-*-
\documentclass{article}
-\begin{document}
\title{LilyPond feature test}
\author{Han-Wen Nienhuys}
+\begin{document}
\maketitle
This document tries give an brief overview of LilyPond features. When
\mudelafile{rest-collision.ly}
-Normal collisions. We have limited support for four voice polyphony,
-where the middle voices are horizontally shifted, sometimes.
+Normal collisions. We have support for four voice polyphony, where the
+middle voices are horizontally shifted in a limited number of cases.
\mudelafile{collisions.ly}
\mudelafile{bar-scripts.ly}
+Staff margins are also markings attached to barlines. They should be
+left otf the staff, and be centered vertically wrt the staff. They
+may be on normal staffs, but also on compound staffs, like the
+PianoStaff
+
+\mudelafile{staff-margin.ly}
+
\section{Clefs and Time Signatures}
-For octaviated clefs, the ``8'' should appear closely above or below
-the clef respectively. The transparent clef should not occupy any space
-and with style \texttt{fullSizeChanges}, the changing clef should be
-typeset in full size.
+The transparent clef should not occupy any space and with style
+\texttt{fullSizeChanges}, the changing clef should be typeset in full
+size. For octaviated clefs, the ``8'' should appear closely above or
+below the clef respectively. The ``8'' is processed in a rather
+convoluted way, so this is fragile as well.
\mudelafile{clefs.ly}
'mudelaRhythm': r"""
\begin{mudela}[eps \fontoptions]
\score{
- \type RhythmicStaff{
+ \context RhythmicStaff{
\notes{\stemup \maininput}
}
\paper{linewidth = -1.\cm;}
\verb|\mudelaRhythm[11pt]{c4 c8 [c16 c] c4 c}| produce this music:
\begin{mudela}[eps, 11pt]
\score{
- \type RhythmicStaff{
+ \context RhythmicStaff{
\notes{ \stemup c4 r8 [c16 c] c4 c }
}
\paper{linewidth = -1.\cm;}
COMMENT(
+questions:
+ long lyrics don't get any space at the end
+ lyrics and scripts collide
+ \key b; \time 4/4; looks bad---no space between key sig and clef
+ \portato still DOES NOT WORK!
+ \cadenza vs. barNonAuto ?
+ not enough space for \key b;
+ I noticed that ledger lines in the previewer looked like they had
+ a double line (of different lengths). On printed output, I think
+ I can see a slight thickening of the ledger lines in the middle.
+ Is this supposed to happen?
+ restStyle=mensural doesn't seem to work (lots of characters not found
+ for rests.fly)
+ what happened to the Staff.textalignment and Lyrics.textalignment
+ properties?
+
+
TODO:
- the use of semicolons needs to be documented once it settles down
+ autobeamer
paper size?
+ paper variables
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
+ Is there a simple way to explain this, or is the behavior
+ too complicated for a reasonable explanation?
accordion symbols
- extender* (see extender.ly)
- \repeat & \alternative -> probably should have an example
- properties:
- unfoldRepeats
- voltaVisibility
- property: stemLeftBeamCount stemRightBeamCount
interstaff beams (beam-interstaff.ly)
interstaff slurs (see preludes-1.ly)
- boolean property barAuto
- property: noteheadStyle
- harmonics: test/harmonics.fly
- autobeamer
- properties: beamAutoEndx ??? rational string "1/2"
- beamAutoBegin
- beamAutoEnd
- beamAuto
- ScriptPadding
- Direction
- chordNameStyle (banter)
- chordInversionPreserve
- createInitdefaultClef
- dynamicStyle
- singleStaffBracket
- numberOfStaffLines
-
-
- {Mark,BarNumber,Margin}{Direction,ScriptPadding}
-
-
+
+ Current list of undocumented properties:
+
+ "alignmentReference" to do with minVerticalAlign, etc?
+ "beamAuto"
+ "beamAutoBegin"
+ "beamAutoBegin" + type_str
+ "beamAutoEnd"
+ "beamAutoEnd" + type_str
+ "createInitdefaultClef"
+ "dynamicStyle"
+ "postBreakPadding"
+ "staffLineLeading"
+ "stemLeftBeamCount"
+ "stemRightBeamCount"
+ time_str + "beamAutoBegin"
+ time_str + "beamAutoBegin" + type_str
+ time_str + "beamAutoEnd"
+ time_str + "beamAutoEnd" + type_str
+ type_ + "Direction"
+ type_ + "HangOnClef"
+ type_ + "ScriptPadding"
)
whentexinfo(notableofcontents())
-article(Mudela 1.0.14 / LilyPond 1.1.27 Reference Manual)
+article(Mudela 1.0.14 / LilyPond 1.1.40 Reference Manual)
(Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
(nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
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.
+used by some keywords and are inconsistantly required in other
+circumstances. 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:
)
-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)
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.
+file. Note that semicolons are forbidden after assignments appearing
+at the top level but they are obligatory after assignments appearing
+elsewhere.
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
alternative grouping mm relative tempo
bar header musicalpitch remove time
cadenza in name repeat times
-chordmodifier include notenames scm translator
+chordmodifiers include notenames scm translator
chords key notes scmfile transpose
clef keysignature paper score type
cm lyrics partial script version
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)
been created yet. You must explicitly specify the Voice context in
this situation
mudela(fragment,verbatim,center)(
-\type Voice { \times 2/3 {c'4 d' e'}}
+\context Voice { \times 2/3 {c'4 d' e'}}
)
A shorthand for code(\times) is to write code(*)var(fraction) after a
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
+A tie connects two adjacent note heads of the same pitch.
+When used with chords, it
+connects all of the note heads whose pitches match.
+Ties are indicated using the tilde symbol
code(~) by analogy with TeX()'s tie which connects words.
+Note that if you try to tie together chords which have no common
+pitches, then a warning message will appear and no tie will be created.
+(Note that ties between different pitches can be enabled using the
+property Voice.oldTieBehavior.)
mudela(fragment,verbatim,center)(
e' ~ e' <c' e' g'> ~ <c' e' g'>
context:
mudela(fragment,verbatim,center)(
<
-\type Staff=one \notes\relative c'{
+\context Staff=one \notes\relative c'{
\stemup
[c8 c \translator Staff=two \stemup c c]
\translator Staff=one
d4( \translator Staff=two )a4
}
-\type Staff=two \notes{ \clef bass;}
+\context Staff=two \notes{ \clef bass;}
>
)
-COMMENT(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
-
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
+different characteristics of the performance. These symbols can be
+added to a note with `var(note)code(-\)var(name)'. Numerous symbols
+are defined in file(script.ly) and file(script.scm). 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.
+appearing underneath.
mudela()(
\score{
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 }
+ \context 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.
single characters:
mudela()(
\score{ \notes {
- \property Voice.textstyle = typewriter
+ \property Voice.textStyle = typewriter
c''4-._"c-." s4
c''4--_"c-{}-" s4
c''4-+_"c-+" s4
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)
+italiano.ly do re mi fa sol la sid si -d -b
+catalan.ly do re mi fa sol la sid si -d/-s -b)
subsect(Relative Pitch Specification)
label(relative)
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).
+inside the code(\transpose). If code(\relative) will be used several
+times, or if it will be used in the same music with code(\transpose),
+then you may get bizarre effects. This can be fixed by using an
+explicit code(Staff) context.
subsect(Tranposition of Pitches)
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).
+code(\transpose). As with code(\relative), using code(\transpose)
+repeatedly can cause bizarre effects. An explicit code(Staff) context
+will eliminate the problems.
sect(Chords)
or directly using angle brackets.
mudela(fragment,verbatim)(
<
- \type ChordNames { \chords{ a b c} \notes{ < d f g > < e g b > } }
- \type Staff \notes{ a b c' d' e' }
+ \context ChordNames { \chords{ a b c} \notes{ < d f g > < e g b > } }
+ \context Staff \notes{ a b c' d' e' }
>
)
Lilypond examines chords specified as lists of notes to determine a
chord inversions:
mudela(fragment,verbatim,center)(
<
- \type ChordNames {
+ \context ChordNames {
\notes{ < e' g' c'' > } }
- \type Staff \notes{ c' }
+ \context Staff \notes{ c' }
>)
If you want inversions to be recognized, you must set the property
code(Score.chordInversion):
mudela(fragment,verbatim,center)(
<
\property Score.chordInversion = 1
- \type ChordNames {
+ \context ChordNames {
\notes{ < e' g' c'' > } }
- \type Staff \notes{ c' }
+ \context Staff \notes{ c' }
>)
-COMMENT(
- Two other properties
- chordInversionPreserve
- and chordNameStyle = Banter
- exist. What do these do?
-)
sect(Lyrics)
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).
+staff, you must enter the lyrics context with code(\context 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("))
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 {
+ \context Lyrics \lyrics {
DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
Dor- mez vous?2 Dor-4 mez vous?2 }
>
When one word is attached to many notes, you may
want a continuous line after the lyric to show this. To achieve
-this effect, add a code(__) lyric after the lyric to be extended.
+this effect, add a code(__) lyric as a separate word
+after the lyric to be extended.
This will create
an extender, a line that extends over the entire duration of
-the lyric. There must be a lyric after the code(__), so if you want
-to extend the final lyric, you will have to end with a blank lyric.
-mudela(verbatim,center)(
-\score{
+the lyric. This line will run all the way to the start of the next
+lyric, so you may want to shorten it by using a blank lyric.
+mudela(verbatim)(\score{
< \notes \relative c''{
- a4()b()c()d c()d()b()a }
- \type Lyrics \lyrics {
- foo1 __ bar2. __ _ }
+ a4()b()c()d c()d()b()a c()d()b()a }
+ \context Lyrics \lyrics {
+ foo1 __ bar2. __ _4 baz1 __ }
> })
-COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
-
sect(Time)
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(code(|) code(\context) 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)))
d % from c to the d that's almost one octave down
{ e4 f4 } % the horizontal music
)
-it()verb(\type)
+it()verb(\context)
it()verb(\property)
it()verb(\translator)
it()verb(\relative)
{ c <c e> <c e g> <c e g \transpose d' dis > } % 4 increasing chords
)
-)
+END OF COMMENT )
sect(Repeats)
\repeat 2 {c'4 d' e' f'}
\alternative { {d'2 d'} {f' f} })
When the repeats involve partial measures, it will be necessary to use
-code(\partial) keywords to indicate which measures are short.
+code(\partial) keywords in a somewhat unexpected way
+to indicate some measure lengths.
mudela(fragment,verbatim)(
-\type Staff { \relative c'{
+\context Staff { \relative c'{
\repeat 2 { \partial 4; e | c2 d2 | e2 f2 | }
- \alternative { { g4 g g } {\partial 2.; a a a a | b1 } }
+ \alternative { { g4 g g } {\partial 1; a a a a | b1 } }
+}})
+Repeats can be unfolded by setting the property Staff.unfoldRepeats.
+Note also that if your music begins with code(\repeat), you must place
+it in an explicit code(Staff) context or you will get bizarre results.
+
+If you don't give enough alternatives for all of the repeats, then the
+first alternative is assumed to be repeated enough to equal to
+specified number of repeats.
+mudela(fragment,verbatim)(
+\context Staff { \relative c'{
+ \repeat 3 { \partial 4; e | c2 d2 | e2 f2 | }
+ \alternative { { g4 g g } {\partial 1; e4 e e }
+ {\partial 1; a a a a | b1 } }
}})
-Repeats can be unfolded by setting the unfoldRepeats
sect(Keywords)
mudela(center)(
\score{
\notes{ \cadenza 1;
- %\property Voice.textstyle = typewriter
+ %\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"
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(\chord) var(chordlist)) Parse var(chordlist) in chords mode.
+
+dit(code(\chordmodifiers) var(modifierlist)) Specify the text chord
+modifiers that may appear after chord names. These are specified in
+the file file(chord-modifiers.ly).
+
dit(code(\cm)) Specify a dimension in centimeters.
dit(code(\consists) var(string)code(;)) This keyword can appear only within a
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.
+metre, arranger, piece and tagline.
dit(code(\in)) Specify a dimension in inches.
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 var(\context) 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.
+e.g. code(\minor) is defined as 3. The standard mode names
+code(\ionian), code(\locrian), code(\aeolian), code(\mixolydian),
+code(\lydian), code(\phrygian), and code(\dorian) are also defined.
dit(code(\keysignature) var(pitchseq)code(;))
Specify an arbitrary key signature. The pitches from var(pitch) will
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.
+the music lasts only for the specified duration. Use also to specify
+the duration of the first measure of the argument to
+code(\alternative).
dit(code(\penalty) code(=) var(int)code(;)) Allowed only in music.
Discourage or encourage line breaks. See identifiers code(\break) and
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(\script) var(alias)) Prints a symbol above or below a note.
+The argument is a string which points into the script-alias table
+defined in file(script.scm). The scheme definitions specify whether
+the symbol follows notes into the staff, dependence of symbol
+placement on staff direction, and a priority for placing several
+symbols over one note. Usually the code(\script) keyword is not used
+directly. Various helpful identifier definitions appear in
+file(script.ly).
dit(code(\shape) code(=) var(indent1) var(width1) var(indent2)
var(width2) ... code(;)) Allowed only within code(\paper). Each pair
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
+single code(\context) 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
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
+dit(code(\context) var(contexttype) [code(=) var(contextname)]
+var(music) or code(\context) 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
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(=)
+the code(\context) keyword: `code(\context) var(contexttype) [code(=)
var(contextname)] var(music)'. The following context types are
allowed.
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
+the code(\score) keyword rather than the code(\context) 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
description(
-dit(code(textstyle)) Set the font for lyrics. The available font
+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
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)
+GONE 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.
description(
+dit(code(textEmptyDimension)) If set to 1 then text placed above or
+below the staff is assumed to have zero width.
+
+dit(code(noteheadStyle)) Selects type of note head. Choices are
+code(cross), code(diamond), code(harmonic), code(transparent), and
+code(""). They are shown in that order below.
+mudela(center)(
+\score{
+ \notes{
+ \property Staff.barNonAuto = 1
+ \property Voice.noteHeadStyle = cross
+ a'
+ \property Voice.noteHeadStyle = diamond
+ a'
+ \property Voice.noteHeadStyle = harmonic
+ a'
+ \property Voice.noteHeadStyle = transparent
+ a'
+ \property Voice.noteHeadStyle = ""
+ a'
+ }
+ \paper{ linewidth = -1.;}
+}
+)
+
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)
dit(code(transposing)) Tranpose the MIDI output. Set this property to
the number of half-steps to transpose by.
+dit(code(oldTieBehavior)) Set to 1 in order to get old tie behavior
+where ties would connect unequal pitches.
+
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.
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
+GONE 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
+dit(code(textStyle)) Set the text style for superscripts and
subscripts. See above for list of text styles.
dit(code(textScriptPadding)) Determines the extra space added between
super-/subscripted text and the closest staff line or note.
-dit(code(textScriptPadding)) Determines the extra space added between
-super-/subscripted text and the closest staff line or note.
-
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
+GONE 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
+GONE 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(barAtLineStart)) Set to 1 to produce a bar line after the
+clef at the start of each line (but not at the beginning of the
+music).
+
+dit(code(voltaVisibility)) Set to 0 to suppress the printing
+of brackets over alternate endings specified by code(\alternative).
+
+dit(code(voltaSpannerDuration)) Set to an integer to control the size
+of the brackets printed by code(\alternative). The integer specifies
+the number of whole notes duration to use for the brackets. It seems
+to be rounded to the nearest measure. This can be used to shrink the
+length of brackets in the situation where one alternative is very
+large. It may have odd effects if the specified duration is longer
+than the music given in an code(\alternative).
+
+dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
+automatically; they must be explicitly created with code(\bar) keywords.
+
+dit(code(unfoldRepeats)) If set to 1 then repeats will be unfolded.
+Otherwise, they will be printed using repeat symbols.
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(nuberOfStaffLines)) Sets the number of lines that the staff has.
dit(code(barAlways)) If set to 1 a bar line is drawn after each note.
mudela(center)(
\score{
\notes\relative c'' {
-\property Voice.textstyle = typewriter
+\property Voice.textStyle = typewriter
\property Staff.timeSignatureStyle = "C2/2"
\time 2/2; a2^"C2/2" a2
\property Staff.timeSignatureStyle = "C4/4"
)
-COMMENT(
-
-Mystery properties:
-
-bar-number-engraver.cc: "barScriptPadding" vertical space for numbers
-span-bar-engraver.cc: "singleStaffBracket" do single staffs get a bracket?
-)
sect(Pre-defined Identifiers)
label(ident)
provide shorthands for some settings.
description(
+dit(code(\aeolian)) Used as the second argument of the code(\key)
+keyword to get an aeolian mode.
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(\dorian)) Used as the second argument of the code(\key)
+keyword to get a dorian mode.
dit(code(\down)) Used for setting direction setting properties. Is
equal to -1.
dit(code(\f)) Print forte symbol on the preceeding note.
code(castingalgorithm). Is equal to 1.0.
dit(code(\infinity)) Used for setting the Score.beamslopedamping
property. Is actually equal to 10000.
+dit(code(\ionian)) Used as the second argument of the code(\key)
+keyword to get an ionian mode.
dit(code(\left)) Used for setting textalignment property. Is equal to -1.
+dit(code(\locrian)) Used as the second argument of the code(\key)
+keyword to get a locrian mode.
+dit(code(\lydian)) Used as the second argument of the code(\key)
+keyword to get a lydian mode.
dit(code(\major)) Used as the second argument of the code(\key)
-command to get a major key.
+keyword to get a major key.
dit(code(\minor)) Used as the second argument of the code(\key)
-command to get a minor key.
+keyword to get a minor key.
+dit(code(\mixolydian)) Used as the second argument of the code(\key)
+keyword to get a mixolydian mode.
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
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(\phrygian)) Used as the second argument of the code(\key)
+keyword to get a phrygian mode.
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.
)mudela(verbatim,center)(
\score{
- \type ChordNames {
+ \context ChordNames {
\chords
{ c1 d-min e-maj5+.9 }
\notes\relative c
)mudela()(
\score{ <
\property Score.textstyle = typewriter
- \type Staff \notes {
+ \context Staff \notes {
c''4-.
c''4--
c''4-+
c''4->
c''4-^
}
- \type Lyrics\lyrics {
+ \context Lyrics\lyrics {
"."4 "-" "+" "|" ">" "\^{ }" }
>
\paper { linewidth = -1.\cm; }
convert between notation and music. In LilyPond we turn around this
reasoning: LilyPond has a notion of notation context, and the staff is
just one example of a notation context. In fact, the arguments of the
-code(\type) command (Staff, GrandStaff) were all names of different
+code(\context) command (Staff, GrandStaff) were all names of different
contexts. A notation context is a conversion between music and
notation.
Consider the following---somewhat unrealistic---example:
mudela(fragment)(
- \type GrandStaff <e'4 {\clef bass; g4^""} >
+ \context GrandStaff <e'4 {\clef bass; g4^""} >
)
In this example the music consists of two notes. The above would
together.
If a piece of music is to be interpreted as a staff, then this can be
-expressed with the code(\type) construct. The following input says
+expressed with the code(\context) construct. The following input says
``the quarter note with pitch e should be put on a staff.''
verb(
- \type Staff e'4
+ \context Staff e'4
)COMMENT(
) The same can be done for the other note, i.e.,
verb(
- \type Staff g4
+ \context Staff g4
) COMMENT(
) If you want to stack these staffs, you must create a chord of both:
verb(
- < \type Staff e'4
- \type Staff g4
+ < \context Staff e'4
+ \context Staff g4
>
)
This looks reasonable, but the effect of this input is not what you
might expect:
mudela(fragment)(
- < \type Staff e'4
- \type Staff g4
+ < \context Staff e'4
+ \context Staff g4
>
)COMMENT(
create two staffs:
mudela(verbatim,fragment)(
- < \type Staff = trebleStaff e'4
- \type Staff = bassStaff g4
+ < \context Staff = trebleStaff e'4
+ \context Staff = bassStaff g4
>
)COMMENT(
different. This is almost right, except for the brace at the left and
the clef of the second staff. If you want a brace, then you have to
tell LilyPond that the chord you just formed is to be interpreted as a
-so-called grand staff. This is also done with the code(\type)
+so-called grand staff. This is also done with the code(\context)
command. The bass clef is made with a clef command: COMMENT(
) mudela(verbatim,fragment)(
- \type GrandStaff <
- \type Staff = treblestaff e'4
- \type Staff = bassstaff { \clef "bass"; g4 }
+ \context GrandStaff <
+ \context Staff = treblestaff e'4
+ \context Staff = bassstaff { \clef "bass"; g4 }
>)COMMENT(
)
this:COMMENT(
)verb(
- \type Staff <
- \type Voice = one ...
- \type Voice = two ...
+ \context Staff <
+ \context Voice = one ...
+ \context Voice = two ...
>
) COMMENT(
other words, notes enclosed in braces. Let us try the following counterpoint:COMMENT(
)mudela(fragment,verbatim)(
-\type "Staff" <
- \type "Voice" = "one" { r4 as'4 () as'4 g'4 }
- \type "Voice" = "two" { g'2 f'4 e'4 }
+\context "Staff" <
+ \context "Voice" = "one" { r4 as'4 () as'4 g'4 }
+ \context "Voice" = "two" { g'2 f'4 e'4 }
>)
As you can see the result is not quite perfect. The notes on the last
latexcommand(\begin{figure}[h])
mudela(fragment,verbatim,center)(
- \type "Staff" <
- \type "Voice" = "one" {
+ \context "Staff" <
+ \context "Voice" = "one" {
\property Voice.ydirection = "1"
r4 as'4 () as'4 g'4 }
- \type "Voice" = "two" {
+ \context "Voice" = "two" {
\property Voice.ydirection = "-1"
g'2 f'4 e'4 }
>
durations. For entering lyrics we have to instruct LilyPond that what
we enter are not note names but strings. This instruction is the
keyword code(\lyrics). After entering this keyword you can enter a
-musical construct---sequential music, simultaneous music, code(\type)
+musical construct---sequential music, simultaneous music, code(\context)
entries, etc.--- but with syllables instead of pitches. For example:
COMMENT(
out that lyrics need different treatment than notes. As a result, the
default conversion will try to put the text you entered as note heads
onto a staff, and this will fail. This default must be overridden
-with a code(\type) keyword. Printing syllables of text in a line is
+with a code(\context) keyword. Printing syllables of text in a line is
done by a context called code(Lyrics). You can select this context
-with the code(\type) keyword. Here is a simple example with output:
+with the code(\context) keyword. Here is a simple example with output:
COMMENT(
)mudela(fragment,verbatim)(
-\type Lyrics \lyrics { 'got8 me on my knees,4 Le-8 lie! })COMMENT(
+\context Lyrics \lyrics { 'got8 me on my knees,4 Le-8 lie! })COMMENT(
)The result is technically correct, but it needs a melody to make it
perfor0mable: COMMENT(
)mudela(fragment,verbatim)(
<
- \type Staff {
+ \context Staff {
\property Voice.beamAuto = "0" % no beams in melody
c''8. c''16 bes'8. a'16 g'4 f'8 g'4.
}
- \type Lyrics \lyrics { 'got8. me16 on8. my16 knees,4 Le-8 lie!4. }
+ \context Lyrics \lyrics { 'got8. me16 on8. my16 knees,4 Le-8 lie!4. }
>
) COMMENT(
COMMENT(
urg
-\type Lyrics \lyrics { 'got8 m\textbf{e}8 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
-\type Lyrics \lyrics { 'got8 m{\bf e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
+\context Lyrics \lyrics { 'got8 m\textbf{e}8 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
+\context Lyrics \lyrics { 'got8 m{\bf e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
)COMMENT(
)mudela(fragment,verbatim)(<
- \type Staff {
+ \context Staff {
\property Voice.beamAuto = "0" % no beams in melody
c''8. c''16 bes'8. a'16 g'4 f'8 g'4.
}
- \type Lyrics \lyrics { 'got8 me8 on8. m$\cal_Y$16 "3s,"4 Le-8 lie!4.}
+ \context Lyrics \lyrics { 'got8 me8 on8. m$\cal_Y$16 "3s,"4 Le-8 lie!4.}
>
)COMMENT(
mudela(verbatim)(
czerny = \notes { [c16 g e g] }
\score {
- \notes \type GrandStaff <
+ \notes \context GrandStaff <
{ c''2 g''2 }
{ \clef bass; \czerny \czerny \czerny \czerny}
>
stemdown = \property Voice.ydirection = "-1"
shift = \property Voice.hshift = "1"
\score {
- \type "Staff" \notes <
- \type "Voice" = "one" { \stemup r4 as'4 () as'4 g'4 }
- \type "Voice" = "two" { \stemup \shift g'2 f'4 e'4 }
- \type "Voice" = "three" { \stemdown [d'8 dis'] [d' cis'] [c' b] c'4 } >
+ \context "Staff" \notes <
+ \context "Voice" = "one" { \stemup r4 as'4 () as'4 g'4 }
+ \context "Voice" = "two" { \stemup \shift g'2 f'4 e'4 }
+ \context "Voice" = "three" { \stemdown [d'8 dis'] [d' cis'] [c' b] c'4 } >
\paper{ linewidth = -1.0\pt; }
})
)verb(
\translator
{
- \type "Line_group_engraver_group";
+ \context "Line_group_engraver_group";
\name Staff ;
\consists "Bar_engraver";
mudela(verbatim)(
\score {
\notes <
- \type Staff = one { \time 2/4; c'4 c'4 c'4 c'4 c'4 c'4 }
- \type Staff = two { \time 3/4; c'4 c'4 c'4 c'4 c'4 c'4 }
+ \context Staff = one { \time 2/4; c'4 c'4 c'4 c'4 c'4 c'4 }
+ \context Staff = two { \time 3/4; c'4 c'4 c'4 c'4 c'4 c'4 }
>
\paper {
linewidth = -1.;
) mudela(fragment,verbatim)(
<
- \type Staff = one { c''4 \type Staff = two { c4 c4 } c''4 }
- \type Staff = two { \clef bass; g,4 g,4 g,4 g,4 }
+ \context Staff = one { c''4 \context Staff = two { c4 c4 } c''4 }
+ \context Staff = two { \clef bass; g,4 g,4 g,4 g,4 }
>
)
{ <
- \type Voice = celloVoice { \bach \bach}
- \type Voice = celloVoice < { \slursOne \slursOne }
+ \context Voice = celloVoice { \bach \bach}
+ \context Voice = celloVoice < { \slursOne \slursOne }
{ \bachBeams \bachBeams } >
\staffStuff
>
<
- \type Voice = celloVoice { \bach \bach }
- \type Voice = celloVoice < { \slursTwo \slursTwo }
+ \context Voice = celloVoice { \bach \bach }
+ \context Voice = celloVoice < { \slursTwo \slursTwo }
{ \bachBeams \bachBeams } >
\staffStuff
>
If you want to transpose a piece of music, then you should prefix it
with the keyword code(\transpose) along with the pitch (relative to
the central C, i.e., code(c')) for the transposition.footnote(the
-code(\type Staff) is to make sure that no separate staffs are created
+code(\context Staff) is to make sure that no separate staffs are created
for the code(\scale) and code(\transpose cis' \scale) part.)
scale = \notes \relative c' { [c8 d e f] }
\score {
\notes {
- \type Staff { \scale \transpose cis' \scale }
+ \context Staff { \scale \transpose cis' \scale }
}
\paper { linewidth = -1.0; }
})
mudela(verbatim)(
% real music
-aVoice = \type Voice = voiceA \notes { c''4 c4 c4 c''4 }
-bVoice = \type Voice = voiceB \notes { g,4 g,4 g,4 g,4 }
+aVoice = \context Voice = voiceA \notes { c''4 c4 c4 c''4 }
+bVoice = \context Voice = voiceB \notes { g,4 g,4 g,4 g,4 }
% staff switching stuff
-switch = \type Voice = voiceA \notes { s4 \translator Staff = staffB s4
+switch = \context Voice = voiceA \notes { s4 \translator Staff = staffB s4
s4 \translator Staff = staffA s4 }
\score {
<
- \type Staff = staffA < \aVoice \switch >
- \type Staff = staffB < \bVoice \clef bass; >
+ \context Staff = staffA < \aVoice \switch >
+ \context Staff = staffB < \bVoice \clef bass; >
>
\paper { linewidth = -1.; }
}
you must tell how far the staffs will be apart:
mudela(verbatim,center)(
\score{
- \type GrandStaff <
- \type Staff=one \notes{ s2 }
- \type Staff=two \notes\relative c{
+ \context GrandStaff <
+ \context Staff=one \notes{ s2 }
+ \context Staff=two \notes\relative c{
\time 4/8;
\clef "bass";
\stemup [c8( e
COMMENT(
)mudela(verbatim,fragment,center)(
- \type Voice \times 2/3 { c''4 c''4 c''4 }
+ \context Voice \times 2/3 { c''4 c''4 c''4 }
)COMMENT(
)Since tuplet brackets are printed by the Voice context, a Voice
context must exist before code(\times) is interpreted. To ensure this,
-a context is instantiated explicitly with code(\type Voice). You
+a context is instantiated explicitly with code(\context Voice). You
don't need this, if a Voice context is already instantiated, like in
the following example:
COMMENT(
lilypond: score-element.cc:134: class Paper_def * Score_element::paper() const: Assertion `pscore_l_' failed.
mudela(fragment)(
- \type Voice \times 4/5 { [c''8 c''16 c''16] r8 [g'8 g'8] }
+ \context Voice \times 4/5 { [c''8 c''16 c''16] r8 [g'8 g'8] }
)
)
If you make a tuplet of beamed notes, where the beam is as wide as
must be present, but it may specify an empty music list:
COMMENT(
)mudela(verbatim,fragment,center)(
- \type Lyrics \lyrics {
+ \context Lyrics \lyrics {
\repeat 2 { }
\alternative <
{ Let's not sing
+pl 40.uu2
+ - rest ledger lines are dimensionless.
+ - Score_elements are added to the Paper_score directly when
+announce_element () is called. This makes it possible to init
+molecules from within engravers.
+ - changed \type to \context
+ - \context Contextname = ID Music is now a real separate production
+ * you can do
+ \context C1 \context C2
+
+ and C1 won't overwrite C2
+
+ * you need some extra explicit context specs, eg. if you start a
+voice with a chord.
+
+ \score { \notes { <c e g> } }
+
+ should be
+
+ \score { \notes \context Voice { <c e g > }
+
+ - set staff margins on grandstaffs too. Center staffmargins vertically.
+ - \property values are not inherited anymore, i.e. setting
+Score.minVerticalAlign does not set GrandStaff.minVerticalAlign, Staff.minVerticalAlign and Voice.minVerticalAlign as well.
+ - {Axis_spanner, Hara_kiri}_engraver which can be added at wish.
+Hara_kiri should be working again.
+ - boilerplate for accordion stuff.
+ - some more paper writing.
+ - bf: substitute vertical refpoint as well for broken items.
+(fixes clef^8)
+ - bf: translating molecule without elts but with dims. (bf: accidental
+spacing.)
+
+pl 40.mb1
+ - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond
+ - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title
+
+pl 40.uu1
+ - large documentation patch by Adrian Mariano
+
+********
+pl 40
pl 39.mb2
- added more mensural style time signatures, old3/4, old6/8, old9/8
- redesigned old6/4, old9/4
Grep for TODO and ugh/ugr/urg.
.* BUGS
-. * header for PS enteredby = "bla <bla@bar.com>"
-. * Hash_table::remove ().
-. * 1. With "lilypond -f ps": The black notes with ledger lines seem to
-> have extra "blobs" over and to the left of them and all the ledger
-> lines from the staff to the note will have a blob too. For example,
-> with the note "a4" there will be a black note at the ledger line where
-> "c" would be too. However, only the "a4" will have the extra blob.
-. * clefs.ly
-. * ps/lily.ps
+. * rewrite context defs using Scheme
+. * PostScript
+. * header for PS enteredby = "bla <bla@bar.com>"
+. * ps/lily.ps see comments.
. * devise standard for functioning of Vertical_align_element.
-. * fix interstaff slurs & beams.
. * staff size for post/prebreaks
. * .ly files
. * input/star-spangled-banner
-. * input/scripts.ly
-. * mutopia/J.S.Bach/wtk1-fugue2.ly
-. * input/test/grace
-. * fix: text on rests: ridiculous dims
-. * clefs.ly
. * m=\notes\relative c'''{
\time 2/4;
}
}
. * midi key.
-. * P.P.S. It can be cool in mudela-book to distinguish in pre,postMudelaExample,
-whether MudelaExample is epsed or not: ( if this fragment is floating eps, than 1,
-otherwise 2). say preMudelaExample[eps]{}, and change it in document body sometimes.
+. * P.P.S. It can be cool in mudela-book to distinguish in
+pre,postMudelaExample, whether MudelaExample is epsed or not: ( if
+this fragment is floating eps, than 1, otherwise 2). say
+preMudelaExample[eps]{}, and change it in document body sometimes.
. * fix singleStaffBracket
. * declare performers in \midi
. * fix MIDI
. * turn slope-damping on/off
. * tremolo stuff
. * fix height of / collisions with lyrics (chords),
- see input/test/vertical-text.ly; input/test/repeat.ly
+see input/test/vertical-text.ly; input/test/repeat.ly
. * We need feta-din*.mf files for more sizes than 10.
-. * latex bla.tex broken (titles / \lilyfooter stuff?
. * fix dynamics decently, ie. use kerning & ligatures.
. * dots & rest collisions?
. * mudela-book.py
-. * \mudelafile{} to have decent functionality
+. * fix \mudelafile{} to have decent functionality
. * use less RE's
. * support_l_arr_ empty in staff-margin's G_staff_side_item
. * slurs colllide with lyrics.
-. * minVerticalAlign for StaffGroups.
-. * fix OrchestralScore and Hara-kiri (i.e., fix Coriolan)
+. * Is there any reasonable way to do this: I would like to have one file
+that can generate the same tune in two different modes without having
+to go through and rewrite all the music in the other mode.
+
+Long lyrics don't get a space at the end. They just run right up
+against the next lyric. (I don't think this used to be the case.)
+
+Lyrics and scripts collide.
+
+\key b; \time 4/4; looks bad. The clef and time signature are too close.
+
+I noticed that ledger lines in the previewer looked like they had a
+double line (of different lengths). On printed output, I think I can
+see a slight thickening of the ledger lines in the middle. Is this
+supposed to happen?
+
+restStyle=mensural doesn't seem to work (lots of characters not found
+for rests.fly)
. * Phrasing: Indicating the textual underlay of a piece, or
otherwise dividing a piece into phrases.
present, they're not properly distinguished) but no distinct way to
specify the third. Should there be?
. * spacing of mmrests.
-. * mem leak: redo p-score object deletion.
. * rest collision minimum dist.
. * Matanya's tips:
. * spacing for prefatory matter
-. * Score does not use points to describe musical sizes. I think becaue the music
-> symbols are not part of any PostScript font. The line length is 7.5 inch (19.05
+. * The line length is 7.5 inch (19.05
> cm) and the height of normal size is equivalent to the traditional raster 1
> size. (The Schott company sells Letraset sheets of musical symbols which are
> measured in raster sizes). It is agreed among most engravers I know that the
> standard size for adult readers in solo music should 70% of raster 1. Jeff's
-> example was 75%, so I had to modify my file to match. Of course, the amount of
+> example was 75%, so I had to modify my file to match.
So that makes for a staff space of 4 2/3 point. I'll add the
dimensions to the TODO file.
-
. * accidentals closer to note head
-. * ledger line for rest dim less
. * heavier beams?
-
.* Cleanups needed
. * Beam
. * Stem + Notehead
. * Remove mutopia ramblings.
. * Remove non-free software links.
. * Remove meta article LilyPond.
+. * generic rest ledgers
. * TODO: merge atom & molecule; make tree from molecule.
. * break priority setting from SCM.
. * Gade score
. * zip target for binary windows dist (JBR)
. * junking \skip req in lyrics
. * mi2mu empty staffs.
+. * use Fourier transformation for rhythmic quantisation.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
. * Xdvi zooming ?! Try to understand GS garbage collection.
gs: Operand stack:
. * fix vertical alignment and stafflines
. * declaring Performers
-. * GrandStaff needs more work -- I want a single word
- `harpsichord' to the left of the grandstaff, not one on each
- stave. (Organ staff -- with separate pedal -- but common
- properties may be something to think about. Of course for
- organ you want to be able to give stop indications on the way
- through, so the \property Voice.Instrument would be a stop,
- and \property GrandStaff.instrument would be PipeOrgan...)
. * *.yo: fix pod manpage layout legacy
. * text-items clash with stems/beams
. * --include, -I option for ly2dvi (pass on to lily)
.* FONT
. * the bracket is ugly (wings are too parabolic, should be more circular)
. * versioning for Feta
+. * rewrite dynamic signs. They're kind of spaghetti now.
. * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
in the middle:
. * design macro for penstroke with rounded endings
. * coda signs: Segno, O+
. * glissando, arpeggio
. * lengthened trill
-. * 128th flags
. * include important spacing dims in fetalog
.* 3RD PARTY BUGS
. * GNU diff 2.7: diff -rN does not see a new directory with empty file
thing is fixed
.* PROJECTS
. * Scripts:
-. * fix position of bar number
. * stack scripts in chords:
% fingering: footing:
< a-4 c-2 g-1 > < c-\ltoe e-\lheel >
. * output header info to MIDI too.
. * a musical dictionary. See Documentation/vocabulary-*, other
- languages:
+languages:
. * explanations
. * italian
. * german
.* INPUTLANGUAGE
. * \rhythms 4 16 16 16 16; c c c c c -> c4 c16 etc.
. * Language:
-. * \type -> \context ?
. * \translator -> ?
. * fix \partial
. * \bla {} vs \bla ;
I hope the above helps,
--russ
-
-
---
-"Even if you are on the right track, you'll get run over
-if you just sit there."
- --Will Rogers (1879-1935)
* OUTLINE SETUP
.* .EMACS
while (j <= sz/2) {
if (dict_arr_[i].free_b_)
return i;
-
+
if (dict_arr_[i].key_ == s)
return i;
i = (i + j*j) % sz;
}
+
return -1;
}
/// remove #s# from the hash table.
V remove (K s, unsigned int initial_hash)
{
- int sz =dict_arr_.size ();
- int i = initial_hash % sz;
- int j = 0;
- V retval;
-
- /*
- duplicate with lookup, but we need value of j
- */
-
- 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;
+ // TODO
+ assert (false);
}
};
piece = "1. Overture";
}
-\version "1.0.14";
+\version "1.0.16";
global=\notes{
\time 2/2;
\score{
- \type StaffGroup <
- \type Staff =treble \notes {
+ \context StaffGroup <
+ \context Staff =treble \notes {
\property Staff.Instrument = "Treble"
\global \treble
}
- \type Staff =tenor \notes {
+ \context Staff =tenor \notes {
\property Staff.Instrument = "Tenor"
\global \tenor
}
- \type Staff =bass \notes {
+ \context Staff =bass \notes {
\property Staff.Instrument = "Bass"
\global \clef "bass"; \bass
}
-\version "1.0.14";
+\version "1.0.16";
scales = \notes\transpose c''{
f2 f f f f f f f f f\break
\score{
<
- \type ChordNames \scales
- \type Staff < \scales \keys >
+ \context ChordNames \scales
+ \context Staff < \scales \keys >
>
}
--- /dev/null
+
+\score{
+\notes \relative c{ r4-> r4-. r4^"foo" ( b'4 ) g''4
+}}
-\version "1.0.14";
+\version "1.0.16";
one = \notes\relative c{
c'' d e f
%}
\score{
- \type ChordNames \chords{
+ \context ChordNames \chords{
\property Score.chordInversion = 1
\property Score.barAtLineStart = 1
\repeat 2 {
}
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
blah = \notes {
}
\score{
- \type Staff \blah
+ \context Staff \blah
}
Tested Features: example file with comments
%}
-\version "1.0.14";
+\version "1.0.16";
% the % is a comment.
}
\score{
- \type GrandStaff <
+ \context GrandStaff <
\melodie
\begeleiding
>
copyright = "public domain";
}
-% \version "1.0.14";
+% \version "1.0.16";
tempi = \notes {
\property Voice.textstyle = "large"
}
\score{
- \type StaffGroup <
+ \context StaffGroup <
% 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 >
+% \context Staff = i < \tempi \global \violinei >
+ \context Staff = i < \global \violinei >
+ \context Staff = ii < \global \violineii >
+ \context Staff = iii < \global \viola >
+ \context Staff = iv < \global \cello >
>
\paper{
\translator { \OrchestralScoreContext }
-\version "1.0.14";
+\version "1.0.16";
part = \notes {
c-1 c c c
r1*3
% \lbheel \lbheel \lfheel \lftoe
% \rbheel \rbtoe \rfheel \rftoe
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes {
* organ staff...
%}
-\version "1.0.14";
+\version "1.0.16";
\clef violin;
% 13 -- how to type -- where to split -- this more neatly?
- \type Staff <
- \type Voice = I \relative c'' { \stemup r4 dis4 e4. e8 ~ |
+ \context Staff <
+ \context Voice = I \relative c'' { \stemup r4 dis4 e4. e8 ~ |
\shifton e4 [d8 fis8] \shiftoff gis4 ~ [gis8 fis16 e ] |
fis4 ~ [fis8 e16 dis] e4 r8 e8 }
- \type Voice = III \relative c'' { \stemup \shifton r4 bis cis \shiftoff cis |
+ \context Voice = III \relative c'' { \stemup \shifton r4 bis cis \shiftoff cis |
a' ~ [a16 gis a b] \shifton dis,4 cis ~ |
[cis8 dis16 ais] bis4 cis r8 b }
- \type Voice = IV \relative c'' {
+ \context Voice = IV \relative c'' {
%\stemup
%{
\stemdown
\shifton s4 gis }
- \type Voice = II \relative c' { \stemdown
+ \context Voice = II \relative c' { \stemdown
% \shifton % idem
r4 fis \shiftoff gis gis |
\clef bass;
% 13
- \type Staff <
- \type VoiceTwo { r4 }
- \type VoiceOne { \stemup s4 dis' cis cis ~ |
+ \context Staff <
+ \context VoiceTwo { r4 }
+ \context VoiceOne { \stemup s4 dis' cis cis ~ |
[cis8 a d cis] [bis gis] cis4 |
dis2 cis4 r8 cis }
- \type VoiceOne { \stemup bis2 }
- \type VoiceThree { \stemup \shifton r4 gis ~ [gis8 gis] ~ \stemdown \shiftoff gis4 |
+ \context VoiceOne { \stemup bis2 }
+ \context VoiceThree { \stemup \shifton r4 gis ~ [gis8 gis] ~ \stemdown \shiftoff gis4 |
a4. fis8 gis4. a8 ~ |
a4 gis4 gis r8 gis }
% { \stemup \shifton s4 fis4 e}
% a quick hack to avoid some collisons
- \type VoiceFour { \stemdown \shifton s4 fis4 e}
- \type VoiceTwo { \stemdown s4 dis4 cis4 }
+ \context VoiceFour { \stemdown \shifton s4 fis4 e}
+ \context VoiceTwo { \stemdown s4 dis4 cis4 }
> |
%16
}
\clef violin;
%15
- \type Staff <
- \type Voice = VA { \stemup [b8 fis8] b4 }
- \type Voice = VB { \stemdown fis2 }
+ \context Staff <
+ \context Voice = VA { \stemup [b8 fis8] b4 }
+ \context Voice = VB { \stemdown fis2 }
>
%{ this chord is usually set like this:
|
|x
|
%}
- \type Staff <
+ \context Staff <
{ \stemup \shiftoff e4 }
{ \stemup \shifton cis }
{ \stemup \shifton ais }
{ \stemdown fis }
> |
%16
- \type Staff <
- \type VoiceOne { dis2 dis4 |
+ \context Staff <
+ \context VoiceOne { dis2 dis4 |
cis2 cis4 |
b4. [cis8 dis e] }
- \type VoiceThree { \stemup \shifton [b8 fis] b2 ~ |
+ \context VoiceThree { \stemup \shifton [b8 fis] b2 ~ |
[b8 a!16 gis] a2 ~ |
a4 gis2 }
- \type VoiceTwo { \stemdown fis2. ~ |
+ \context VoiceTwo { \stemdown fis2. ~ |
fis ~ |
fis4 e2 }
> |
\clef bass;
%15
- \type Staff <
- \type VoiceTwo { \stemdown b2 \stemup ais4 |
+ \context Staff <
+ \context VoiceTwo { \stemdown b2 \stemup ais4 |
b2 b4 }
- \type VoiceTwo { \stemdown s2 e4 |
+ \context VoiceTwo { \stemdown s2 e4 |
fis2 fis4 }
>
\stemdown cis2 e4 |
% these should be two separate scores...
\score{
- \type Score <
- \type PianoStaff <
- \type Staff = treble {
+ \context Score <
+ \context PianoStaff <
+ \context Staff = treble {
\praeludium_right \breakmusic \fugaII_right }
- \type Staff = bass {
+ \context Staff = bass {
\praeludium_left \breakmusic \fugaII_left }
>
- \type Staff = pedal {
+ \context Staff = pedal {
\praeludium_pedal \breakmusic \fugaII_pedal }
>
\accepts VoiceTwo;
\accepts VoiceOne;
}
-% \translator { \OrchestralScoreContext }
+ \translator { \OrchestralScoreContext }
}
\midi {
-\version "1.0.14";
+\version "1.0.16";
ritme = \notes\transpose c'' {
\time 4/4;
\score{
- \type StaffGroup <
+ \context StaffGroup <
\ritme
\another
- \type RhythmicStaff {
+ \context RhythmicStaff {
\yanother
}
>
% scales with accents.
%
-\version "1.0.14";
+\version "1.0.16";
blah = \notes {
\time 6/8;
\transpose c {
-\version "1.0.14";
+\version "1.0.16";
blah = \notes{ \transpose c'' {
[c-^ \< d-^ e-^ \! f-^][d'-^ \> e'-^ f'-^ \! g'-^]
[c-. \< d-. e-. \! f-.][d'-. \> e'-. f'-. \! g'-.]
[c-- \< d-- e-- \! f--][d'-- \> e'-- f'-- \! g'--]
- [c-\portato \< d-\portato e-\portato \! f-\portato]
- [d'-\portato \> e'-\portato f'-\portato \! g'-\portato]
+ [c-\tenuto \< d-\tenuto e-\tenuto \! f-\tenuto]
+ [d'-\tenuto \> e'-\tenuto f'-\tenuto \! g'-\tenuto]
[c-\upbow \< d-\upbow e-\upbow \! f-\upbow]
[d'-\upbow \> e'-\upbow f'-\upbow \! g'-\upbow]
[c-| \< d-| e-| \! f-|][d'-| \> e'-| f'-| \! g'-|]
}
text = \lyrics
-\type LyricVoice { Oh4 __ \repeat 2 { }
+\context LyricVoice { Oh4 __ \repeat 2 { }
\alternative <
{ 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 }
- \type LyricVoice = LVB
+ \context LyricVoice = LVB
{ 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 }
>
\include "paper16.ly";
\score{
- \type GrandStaff <
- \type Staff=staffA <
+ \context GrandStaff <
+ \context Staff=staffA <
\global
\notes \transpose c'' {\voiceone \$staff1_voice_1 }
\notes \transpose c'' {\voicetwo \$staff1_voice_2 }
>
- \type Lyrics = one \text
- \type Staff=staffB <
+ \context Lyrics = one \text
+ \context Staff=staffB <
\global
\clef bass;
\property Staff.voltaVisibility = "0"
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes \transpose c'''{
\stemup
\score{
<
- \type Staff \notes{
+ \context Staff \notes{
\skip 4*27;
\skip 4*27;
\skip 4*27;
\skip 4*27;
}
- \type Lyrics \lyrics{
+ \context Lyrics \lyrics{
aaaaaaaaaaaaaaaaaaa
xxx\break
bbbbbbbbbbbbbbbbbbb
linewidth = 40.\mm;
}
}
+
+\version "1.0.16";
\score {
\notes {
- \type AutoSwitchGrandStaff \relative c' {
+ \context AutoSwitchGrandStaff \relative c' {
c8^8 d^8 b^8 a^8 [a,^8 f'^8 g,^8 ~ g]
}
\accepts AutoSwitchGrandStaff;
}
\translator{
- \type "Line_group_engraver_group";
+ \context "Line_group_engraver_group";
\name AutoSwitchGrandStaff;
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
\accepts "Staff";
}
\translator {
- \type "Engraver_group_engraver";
+ \context "Engraver_group_engraver";
\name "AutoSwitchContext";
\consists "Staff_switching_translator";
}
}}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
-onestaff = \type Staff = foo\notes {
+onestaff = \context Staff = foo\notes {
\property Staff.instr = instr
\property Staff.instrument = instrument \mark "B";
c1 \mark "A"; \break c2 c2 \break
}
-grstaff = \notes \type GrandStaff <
- \type Staff = bar {
+grstaff = \notes \context GrandStaff <
+ \context Staff = bar {
\property Staff.instr = instr
\mark "B"; \break c1 \mark "A"; c2 }
- \type Staff = bufl { c1 c2 }
+ \context Staff = bufl { c1 c2 }
>
scpaper = \paper {\translator {\OrchestralScoreContext}}
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes\transpose c'{
\score{
- \type GrandStaff <
- \type Staff=one \notes\relative c'{
+ \context GrandStaff <
+ \context Staff=one \notes\relative c'{
\stemup [c8 c \translator Staff=two \stemup c c]
[c c c c]
\translator Staff=one
\stemup [c8 c \translator Staff=one \stemdown c c]
r2
}
- \type Staff=two \notes\relative c'{
+ \context Staff=two \notes\relative c'{
\clef bass;
s1
s1
% linewidth=-1.;
}
}
+
+\version "1.0.16";
\score{
- \type GrandStaff <
- \type Staff=one \notes\relative c'{
+ \context GrandStaff <
+ \context Staff=one \notes\relative c'{
s1
}
- \type Staff=two \notes\relative c'{
+ \context Staff=two \notes\relative c'{
\clef bass;
% no knee
\stemup [c8 \translator Staff=one \stemdown g'16 f]
linewidth=-1.;
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes\transpose c''{
TestedFeatures = "beams and beamflags";
}
-\version "1.0.14";
+\version "1.0.16";
\score{
<
% \property Score.beamquantisation = \none
- \type GrandStaff <
+ \context GrandStaff <
\notes\transpose c' {
\time 8/4;
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.14";
+\version "1.0.16";
shortlong = \notes{
c4()c( c c |
\score{
<
- \type ChordNames \inversions
- \type Staff \inversions
+ \context ChordNames \inversions
+ \context Staff \inversions
>
}
+
+\version "1.0.16";
}
\score{
- \type StaffGroup <
- \type Staff=c \notes\transpose c\tab
- \type ChordNames=c \notes\transpose c\tab
- \type Staff=cis \notes\transpose cis\tab
- \type ChordNames=cis \notes\transpose cis\tab
- \type Staff=des \notes\transpose des\tab
- \type ChordNames=des \notes\transpose des\tab
- \type Staff=d \notes\transpose d\tab
- \type ChordNames=d \notes\transpose d\tab
- \type Staff=es \notes\transpose es\tab
- \type ChordNames=es \notes\transpose es\tab
- \type Staff=e \notes\transpose e\tab
- \type ChordNames=e \notes\transpose e\tab
- \type Staff=fis \notes\transpose fis\tab
- \type ChordNames=fis \notes\transpose fis\tab
- \type Staff=g \notes\transpose g\tab
- \type ChordNames=g \notes\transpose g\tab
- \type Staff=as \notes\transpose as\tab
- \type ChordNames=as \notes\transpose as\tab
- \type Staff=a \notes\transpose a\tab
- \type ChordNames=a \notes\transpose a\tab
- \type Staff=bes \notes\transpose bes,\tab
- \type ChordNames=bes \notes\transpose bes,\tab
- \type Staff=b \notes\transpose b,\tab
- \type ChordNames=b \notes\transpose b,\tab
+ \context StaffGroup <
+ \context Staff=c \notes\transpose c\tab
+ \context ChordNames=c \notes\transpose c\tab
+ \context Staff=cis \notes\transpose cis\tab
+ \context ChordNames=cis \notes\transpose cis\tab
+ \context Staff=des \notes\transpose des\tab
+ \context ChordNames=des \notes\transpose des\tab
+ \context Staff=d \notes\transpose d\tab
+ \context ChordNames=d \notes\transpose d\tab
+ \context Staff=es \notes\transpose es\tab
+ \context ChordNames=es \notes\transpose es\tab
+ \context Staff=e \notes\transpose e\tab
+ \context ChordNames=e \notes\transpose e\tab
+ \context Staff=fis \notes\transpose fis\tab
+ \context ChordNames=fis \notes\transpose fis\tab
+ \context Staff=g \notes\transpose g\tab
+ \context ChordNames=g \notes\transpose g\tab
+ \context Staff=as \notes\transpose as\tab
+ \context ChordNames=as \notes\transpose as\tab
+ \context Staff=a \notes\transpose a\tab
+ \context ChordNames=a \notes\transpose a\tab
+ \context Staff=bes \notes\transpose bes,\tab
+ \context ChordNames=bes \notes\transpose bes,\tab
+ \context Staff=b \notes\transpose b,\tab
+ \context ChordNames=b \notes\transpose b,\tab
>
\paper{
textheight = \vsize - 4.0 * \staffheight;
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
%{
Would this be acceptable/good enough/convenient for entry?
\score{
<
- \type ChordNames \scales
- \type Staff < \scales \keys >
+ \context ChordNames \scales
+ \context Staff < \scales \keys >
>
}
-\version "1.0.14";
+\version "1.0.16";
\score {
\notes{
\score{
<
- \type Staff \notes\relative c''{
+ \context Staff \notes\relative c''{
c c c c
% coda-klugde: let volta span only one bar
\property Staff.voltaSpannerDuration = "1"
\alternative { { e e e e f f f f }
{ g g g g } }
}
- \type Lyrics \lyrics{
+ \context Lyrics \lyrics{
intro1
\repeat 5 {}
\alternative <
>
}
+
+\version "1.0.16";
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "1.0.14";
+\version "1.0.16";
-twovoice = \type Staff \notes <
- \type Voice=i { \stemdown c4 d e f g2~ g4 a [c8 d e f] c2| }
- \type Voice=ii { \stemup g4 f e g ~ g2 g2 c4 g4 g2 }
+twovoice = \context Staff \notes <
+ \context Voice=i { \stemdown c4 d e f g2~ g4 a [c8 d e f] c2| }
+ \context Voice=ii { \stemup g4 f e g ~ g2 g2 c4 g4 g2 }
>
-twovoicesteminvert = \type Staff \notes <
+twovoicesteminvert = \context Staff \notes <
% the f and g on 4th beat are exceptionally ugh.
- \type Voice=i { \stemup c4 d e f g2 g4 a | }
- \type Voice=ii { \stemdown g4 f e g g2 g2 }
+ \context Voice=i { \stemup c4 d e f g2 g4 a | }
+ \context Voice=ii { \stemdown g4 f e g g2 g2 }
>
-threevoice = \type Staff \notes <
- \type Voice=i { \stemup g4 f e f g a g2 }
- \type Voice=ii { \stemup \property Voice.hshift = 1 e2 e2 e2 e2 }
- \type Voice=iii { \stemdown c4 d e d c d es }
+threevoice = \context Staff \notes <
+ \context Voice=i { \stemup g4 f e f g a g2 }
+ \context Voice=ii { \stemup \property Voice.hshift = 1 e2 e2 e2 e2 }
+ \context Voice=iii { \stemdown c4 d e d c d es }
>
\score{
-\version "1.0.14";
+\version "1.0.16";
\score {
\include "paper20.ly"
-\version "1.0.14";
+\version "1.0.16";
oden = \lyrics{
O8 |
\oboom
}
-$melody_staff = \type Staff = melody <
+$melody_staff = \context Staff = melody <
\global
\melody
>
\oden
}
-$verse_one_staff = \type Lyrics = one <
+$verse_one_staff = \context Lyrics = one <
\global
\$verse_one
>
\oden
}
-$verse_two_staff = \type Lyrics = two <
+$verse_two_staff = \context Lyrics = two <
\global
\$verse_two
>
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes{
\score{
<
- \type Staff \notes { c () c () c c }
- \type Lyrics \lyrics { bla __ alb xxx __ yyy }
+ \context Staff \notes { c () c () c c }
+ \context Lyrics \lyrics { bla __ alb xxx __ yyy }
>
}
+
+\version "1.0.16";
\score {
<
- \type Staff=i \notes\relative c''{ c1 c c c c }
- \type StaffGroup=ii \notes\relative c''{
- \type Staff=ii
+ \context Staff=i \notes\relative c''{ c1 c c c c }
+ \context StaffGroup=ii \notes\relative c''{
+ \context Staff=ii
c1 c
- < \type Staff=ii { c1 } \type Staff=iii { c1 } >
+ < \context Staff=ii { c1 } \context Staff=iii { c1 } >
c
}
>
linewidth = -1.;
\translator{
\ScoreContext
- minVerticalAlign = 2.0*\staffheight;
- maxVerticalAlign = 2.0*\staffheight;
+
}
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes \relative c {
-\version "1.0.14";
+\version "1.0.16";
FontBody= \notes\transpose c''{
\bar "|:";
\time 4/4;
- \type Staff < \type Voice = VB { \stemup e'\longa a\breve | }
- \type Voice = VA { \stemdown
+ \context Staff < \context Voice = VB { \stemup e'\longa a\breve | }
+ \context Voice = VA { \stemdown
c1 \clef "bass"; b,, \clef "violin"; c' a'
c2 \clef "alto"; g c' \clef "violin"; a'
} >
\clef "bass";
r\longa * 1/4 r\breve *1/2
r1 r2 r4 r8 r16 r32 r64 r128 r128 |
- \type Staff < \type Voice = VA { \stemup r2 c'2 c,,,1 }
- \type Voice = VB {\stemdown r2 c2 r1 }>
+ \context Staff < \context Voice = VA { \stemup r2 c'2 c,,,1 }
+ \context Voice = VB {\stemdown r2 c2 r1 }>
\stemboth
\clef "violin";
e8_. g'8-> e16^^ g'16_^
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.14";
+\version "1.0.16";
\include "font-body.ly"
\score{
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.14";
+\version "1.0.16";
\include "paper16.ly"
\include "font-body.ly"
\include "font-body.ly"
\score{
- \type Staff { \FontBody}
+ \context Staff { \FontBody}
\paper{
linewidth = 17.5 \cm;
gourlay_maxmeasures =5.;
}
}
+\version "1.0.16";
+
TestedFeatures = "This file tests some nasty Gourlay spacings";
}
-\version "1.0.14";
+\version "1.0.16";
%{
%}
\score{
- \notes \type Staff \transpose c''<
+ \notes \context Staff \transpose c''<
{ \stemup d2 d | d d | d4 d2. | \break c1 }
\transpose c, { \stemdown g4 g g g | \times 2/3 { g2 g2 g2 } | g4. g8 g2 | c1 }
>
-\version "1.0.14";
+\version "1.0.16";
\score{
<
- \type Staff = a \notes\relative c <
+ \context Staff = a \notes\relative c <
% {\grace b''8 \graceat a4 \ecarg g fis2 | a2 a }
{\tiny b''8*1/16 \normalsize a4*31/32 g fis2 | a2 a }
>
- \type Staff = b \notes\relative c <
+ \context Staff = b \notes\relative c <
% {\grace g''16 b16 \graceat a4 \ecarg g fis2 | }
{\tiny g''16*1/16 b16*1/16 \normalsize a4*31/32 g fis2 | a1 }
>
- \type Staff = c \notes\relative c <
+ \context Staff = c \notes\relative c <
% {\grace \times 2/48 { [ g''16 b g] } \graceat a4 \ecarg g fis2 | a1 }
{\tiny \times 2/48 { [ g''16 b g] } \normalsize a4*31/32 g fis2 | a1 }
>
-\version "1.0.14";
+\version "1.0.16";
+
+toeter_i = \notes\relative c <{
+ \property Staff.instrument = "Toeters"
+ \property Staff.instr = "Ttr." }
+ \context Voice = lower { \stemdown s1*6 }
+ \context Voice = upper { \stemup s1*6 }
+ \context Voice = together {
-toeter_i = \notes\relative c {
- \property Staff.instrument = "Toeters"
- \property Staff.instr = "Ttr."
c'''4 c c c \break
d d d d \break
- R1 \break
- \voiceone
- e4 e e e \break
- \onevoice
+ R1 \break
+ \context Voice = upper {
+ e4 e e e \break }
f f f f \break
- g g g g
-}
+ g g g g
+}>
-toeter_ii = \notes \relative c {
+toeter_ii = \notes \relative c \context Voice = together {
c''4 c c c \break
d d d d \break
R1 \break
- \voicetwo
- e4 e e e \break
- \onevoice
+ \context Voice = lower {
+ \stemdown
+ e4 e e e \break
+ }
f f f f \break
g g g g
}
-toeters = \type Staff = toeters <
+toeters = \context Staff = toeters <
\toeter_i
\toeter_ii
>
-zager = \type Staff = zager \notes \relative c'' {
- \clef bass;
+zager = \context Staff = zager \notes \relative c'' {
+ \clef treble;
\property Staff.instrument = "Zager"
\property Staff.instr = "Zag."
c4 d e f \break
f e d c \break
c d e f \break
\property Staff.instr = "Zag."
- \voiceone
+ \stemup
f e d c \break
- \onevoice
c d e f \break
f e d c
}
-zoger = \type Staff = zoger \notes \relative c'' {
- \clef bass;
+zoger = \context Staff = zoger \notes \relative c'' {
+ \clef treble;
\property Staff.instrument = "Zoger"
\property Staff.instr = "Zog."
c4 d e f \break
\skip 1*2;
-% \staffone
+
\translator Staff=zager
- \voicetwo
- c2 g2\break
- \onevoice
+ \stemdown
+ c2 g2
+
a4 b c d \break
\skip 1*1;
}
-zagers = \type GrandStaff <
+zagers = \context GrandStaff <
\zager
\zoger
>
\score{
<
- \type StaffGroup = toeters <
+ \context StaffGroup = toeters <
\toeters
>
- \type StaffGroup = zagers <
+ \context StaffGroup = zagers <
\zagers
>
>
\paper{
linewidth = 40.0\mm;
-% \translator { \HaraKiriStaffContext }
+ \translator { \HaraKiriStaffContext }
%uh?
-% \translator { \OrchestralScoreContext }
+ \translator { \OrchestralScoreContext }
% \translator { \OrchestralPartStaffContext }
}
}
/Mats B
%}
-\version "1.0.14";
+\version "1.0.16";
incipit = \notes\relative c'{
<b1 fis' b d>
\time 2/2;
a4. b8 c4 fis |
- gis~ gis8 fis16^\trill ()e b8 c \type Staff<{\voiceone a d}{\voicetwo es,4}>|
+ gis~ gis8 fis16^\trill ()e b8 c \context Staff<{\voiceone a d}{\voicetwo es,4}>|
}
BC = \notes\relative c{
\score{
\notes{
- \type Staff=violin
+ \context Staff=violin
\property Staff.clefStyle = "transparent"
\incipit
- < \type Staff=violin {
+ < \context Staff=violin {
\bar ".|"; \endincipit
\violin}
- \type Staff=cb { \property Staff.clefStyle = "transparent"
+ \context Staff=cb { \property Staff.clefStyle = "transparent"
\bar ".|"; \endincipit
\BC}>
}
-\version "1.0.14";
+\version "1.0.16";
%{
test key itemv breaking
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes\relative c'{
[c16 \stemdown c'' \stemboth c,, d]
-\version "1.0.14";
+\version "1.0.16";
global = \notes {
s1 | \mark "A";
bla = \notes {
c1(((( c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break c1 \break ))))c1}
-\score { \type Score <
+\score { \context Score <
\bla \bla \bla \bla \bla \bla \bla
>
\paper { Gourlay_maxmeaures = 2.; }
}
+\version "1.0.16";
+
-\version "1.0.14";
+\version "1.0.16";
voice_one = \notes\transpose c''{ \stemup
R1 * 2 | f'4-. r r2 | R1 * 3 |
}}
\score { \notes
- \type Staff <
+ \context Staff <
\$voice_two
\$voice_one
>
\property Voice.noteHeadStyle = "harmonic"
c4 c2 c8 c16 c16 c1
- \type ThreadedVoice <
- \type Thread = TA
+ \context ThreadedVoice <
+ \context Thread = TA
{ \property Thread.noteHeadStyle = "cross"
\property ThreadedVoice.ydirection = \up c16}
- \type Thread = TB
+ \context Thread = TB
{ \property Thread.noteHeadStyle = "" a16 }
- \type Thread = TC
+ \context Thread = TC
{ \property Thread.noteHeadStyle = "harmonic" d16 }
>
}
}
}
+\version "1.0.16";
-\version "1.0.15";
+\version "1.0.16";
\score{
\notes \transpose c''{
-\version "1.0.14";
+\version "1.0.16";
m = \notes \relative c''{
c1 | c2 c | c c | c c | c c | c c | c c | c c |
}
\score{ <
- \type StaffGroup = wood <
- \type Staff = flauto <
+ \context StaffGroup = wood <
+ \context Staff = flauto <
\property Staff.instrument = "Flauto"
\property Staff.instr = "Fl."
\m
>
- \type Staff = oboe <
+ \context Staff = oboe <
\property Staff.instrument = "Oboe"
\property Staff.instr = "Ob."
\m
>
- \type Staff = clarI <
+ \context Staff = clarI <
\property Staff.instrument = "Clarinetto I"
\property Staff.instr = "Cl. I"
\m
>
- \type Staff = clarII <
+ \context Staff = clarII <
\property Staff.instrument = "Clarinetto II"
\property Staff.instr = "Cl. II"
\m
>
- \type Staff = fagotto <
+ \context Staff = fagotto <
\property Staff.instrument = "Fagotto"
\property Staff.instr = "Fg."
\m
>
>
- \type StaffGroup = brass <
- \type Staff = cor <
+ \context StaffGroup = brass <
+ \context Staff = cor <
\property Staff.instrument = "2 Corni in F"
\property Staff.instr = "Cor."
- \type Voice = corI { \stemup \m }
- \type Voice = corII { \stemdown \m }
+ \context Voice = corI { \stemup \m }
+ \context Voice = corII { \stemdown \m }
>
- \type Staff = trp <
+ \context Staff = trp <
\property Staff.instrument = "2 Trp. in B\\textflat "
\property Staff.instr = "Trp."
- \type Voice = trpI { \stemup \m }
- \type Voice = trpII { \stemdown \m }
+ \context Voice = trpI { \stemup \m }
+ \context Voice = trpII { \stemdown \m }
>
>
- \type StaffGroup = percussion <\type Staff = timpani <
+ \context StaffGroup = percussion <\context Staff = timpani <
\property Staff.instrument = "Timpani"
\property Staff.instr = "Timp."
\m
>
>
- \type StaffGroup = strings <
-% \type GrandStaff = violins <
- \type Staff = viI <
+ \context StaffGroup = strings <
+% \context GrandStaff = violins <
+ \context Staff = viI <
\property Staff.instrument = "Violin I"
\property Staff.instr = "Vi. I"
\m
>
- \type Staff = viII <
+ \context Staff = viII <
\property Staff.instrument = "Violin II"
\property Staff.instr = "Vi. II"
\m
>
% >
- \type Staff = vla <
+ \context Staff = vla <
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\m
>
- \type Staff = vlc <
+ \context Staff = vlc <
\property Staff.instrument = "Violoncello"
\property Staff.instr = "Vlc"
\m
>
- \type Staff = cb <
+ \context Staff = cb <
\property Staff.instrument = "Contrabasso"
\property Staff.instr = "C.B."
\m
-\version "1.0.14";
+\version "1.0.16";
\score {
-\notes { c1 c1 < {\clef "treble"; c1 c1 } \type Staff=stb{ c1 c1}>}
+\notes { c1 c1 < {\clef "treble"; c1 c1 } \context Staff=stb{ c1 c1}>}
}
\score{
<
- \type Staff \notes\relative c'{
+ \context Staff \notes\relative c'{
c4 d e f
\repeat 3 { g a b c }
% \alternative { { c b a g } { f e d c } } c c c c
}
>
}
+
+\version "1.0.16";
\score{
<
- \type Staff \notes\relative c'{
+ \context Staff \notes\relative c'{
c d e f
\repeat 2 { g a b c }
\alternative { { c b a g } { f e d c } }
}
- \type Lyrics \lyrics {
+ \context Lyrics \lyrics {
De eer- ste < { maat } { moet } >
\repeat 2 { }
\alternative <
}
>
}
+
+\version "1.0.16";
r r r r r r r r r r r r r r r r
}
-scales = \type Staff \notes <
- \type Voice=i { \stemup r1 r2 r2 \scale c''1 c'2 a'2 \rests }
- \type Voice = ii { \stemdown a'1 a'2 d'2 \rests r1 r2 r2 \scale }
+scales = \context Staff \notes <
+ \context Voice=i { \stemup r1 r2 r2 \scale c''1 c'2 a'2 \rests }
+ \context Voice = ii { \stemdown a'1 a'2 d'2 \rests r1 r2 r2 \scale }
>
-restsII = \type Staff \notes {
+restsII = \context Staff \notes {
r4 r8
- \type Staff < { \stemup r8 } { \stemdown r8} >
- \type Staff < {\stemup r8} r8 { \stemdown r8} >
- \type Staff < {\stemup r8} r8 r8 { \stemdown r8} >
- \type Staff < {\stemup r} { \stemdown r} >
- \type Staff < {\stemup r} r { \stemdown r} >
+ \context Staff < { \stemup r8 } { \stemdown r8} >
+ \context Staff < {\stemup r8} r8 { \stemdown r8} >
+ \context Staff < {\stemup r8} r8 r8 { \stemdown r8} >
+ \context Staff < {\stemup r} { \stemdown r} >
+ \context Staff < {\stemup r} r { \stemdown r} >
\stemup
\transpose c'' { [c''8 r8 c''8 c''8]
[c8 r8 c8 c8]
\restsII
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
-onestaff = \type Staff = foo\notes {
+onestaff = \context Staff = foo\notes {
\property Staff.instr = instr
\property Staff.instrument = instrument \mark "B"; c1 \mark "A"; \break c2 c2 \break }
-grstaff = \notes \type GrandStaff <
- \type Staff = bar {
+grstaff = \notes \context GrandStaff <
+ \context Staff = bar {
\property Staff.instr = instr
\mark "B"; \break c1 \mark "A"; c2 }
- \type Staff = bufl { c1 c2 } >
+ \context Staff = bufl { c1 c2 } >
scpaper = \paper {Score = \translator {
- \type Score_engraver;
+ \context Score_engraver;
barScriptPadding = "2.0"; % dimension \pt
markScriptPadding = "4.0";
barColumnPriority = "-4";
stpaper =\paper{
Staff = \translator {
- \type "Line_group_engraver_group";
+ \context "Line_group_engraver_group";
defaultclef = violin;
barColumnPriority = "0";
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.14";
+\version "1.0.16";
shortlong = \notes{
c4()c( c c |
-\version "1.0.14";
+\version "1.0.16";
% bug
% excentric slur can't handle this ...
% test damping
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes\relative c'{
\score{
- \type GrandStaff <
- \type Staff=one \notes\relative c'{
+ \context GrandStaff <
+ \context Staff=one \notes\relative c'{
\stemup c4( c \translator Staff=two c )c |
\translator Staff=one
\stemup c4( c \translator Staff=two c )c |
\stemup c4( \translator Staff=one c c \translator Staff=two )c
r1
}
- \type Staff=two \notes\relative c'{
+ \context Staff=two \notes\relative c'{
\clef bass;
s1 s1 s1 s1 s1 s1 s1 s1 s1 s1
}
%linewidth=100.\mm;
}
}
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
% urg, the direction of the slur gets swapped!
\score{
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes\transpose c'{
< { c ~ d }
{ e ~ f }
>
-% \type Staff <
+% \context Staff <
% { \stemup c'8 ~g ~e( ~c~ [c'~ g' e' )c'] c'' ~ c'' c~c }
% { \stemdown c (e g )c'~( [b a g )d] r2 }
% >
\score {
\notes \relative c''
- \type GrandStaff <
- \type Staff = SA <
- \type Voice = VA { \property Voice.ydirection= 1
+ \context GrandStaff <
+ \context Staff = SA <
+ \context Voice = VA { \property Voice.ydirection= 1
e4 dis4 e2 }
- \type Voice = VB { \property Voice.ydirection= -1
+ \context Voice = VB { \property Voice.ydirection= -1
[cis8 a] [fis b] gis2 }
{\key e; }
>
- \type Staff = SB { \clef "bass"; \key e;
+ \context Staff = SB { \clef "bass"; \key e;
[a,,16 e dis e] [b'8 b,] [e16 e, gis b] e4
}
>
linewidth = 8.0 \cm;
}
}
+
+\version "1.0.16";
TestedFeatures = "This file tests various spacings";
}
-\version "1.0.14";
+\version "1.0.16";
multipart = \notes \relative c'{
- \type StaffGroup <
- \type Staff = one {
+ \context StaffGroup <
+ \context Staff = one {
c4
c
c c
}
- \type Staff = two {
+ \context Staff = two {
[c8 c]
[c c]
[c c] [c c]
}
- \type Staff = three {
+ \context Staff = three {
\times 2/3 { [c8 c c] }
\times 2/3 { [c c c] }
\times 2/3 { [c c c] } \times 2/3 { [c c c] }
}
- \type Staff = four {
+ \context Staff = four {
\times 2/4 { [c8 c c c] }
\times 2/4 { [c c c c] }
\times 2/4 { [c c c c] } \times 2/4 { [c c c c] }
}
- \type Staff = five {
+ \context Staff = five {
\times 2/5 { [c8 c c c c] }
\times 2/5 { [c c c c c] }
\times 2/5 { [c c c c c] } \times 2/5 { [c c c c c] }
}
- \type Staff = six {
+ \context Staff = six {
\times 2/6 { [c8 c c c c c] }
\times 2/6 { [c c c c c c] }
\times 2/6 { [c c c c c c] } \times 2/6 { [c c c c c c] }
}
- \type Staff = seven {
+ \context Staff = seven {
\times 2/7 { [c8 c c c c c c] }
\times 2/7 { [c c c c c c c] }
\times 2/7 { [c c c c c c c] }
\times 2/7 { [c c c c c c c] }
}
- \type Staff = eight {
+ \context Staff = eight {
\times 2/8 { [c8 c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
}
- \type Staff = nine {
+ \context Staff = nine {
\times 2/9 { [c8 c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
}
- \type Staff = ten {
+ \context Staff = ten {
\times 2/10 { [c8 c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
}
- \type Staff = eleven {
+ \context Staff = eleven {
\times 2/11 { [c8 c c c c c c c c c c] }
\times 2/11 { [c c c c c c c c c c c] }
\times 2/11 { [c c c c c c c c c c c] }
-\version "1.0.14";
+\version "1.0.16";
nt = \notes { c1 \break c1 c1 }
stuff = \notes \relative c'' <
- \type Staff = stone { \nt }
- \type Staff = sttwo { \nt }
+ \context Staff = stone { \nt }
+ \context Staff = sttwo { \nt }
>
\score{
- \type StaffGroup \stuff
+ \context StaffGroup \stuff
}
\score{
- \type StaffGroup < \type GrandStaff \stuff
- \type Staff = stthree \nt
+ \context StaffGroup < \context GrandStaff \stuff
+ \context Staff = stthree \nt
>
}
\score{
- \type ChoirStaff \stuff
+ \context ChoirStaff \stuff
}
--- /dev/null
+
+
+\version "1.0.16";
+
+\score {
+
+ \notes \context PianoStaff <
+
+ \context Staff = treble {
+ \property PianoStaff.instrument = "Piano "
+ \property Staff.instrument = "Right " { c''4 }}
+ \context Staff = bass { \property Staff.instrument = "Left " \clef bass; c4 }>
+
+\paper {
+\translator { \StaffContext \consists "Staff_margin_engraver"; }
+\translator { \PianoStaffContext \consists "Staff_margin_engraver"; }
+}}
+
\score{
- \type Staff \notes\relative c''{
+ \context Staff \notes\relative c''{
\property Staff.instrument = "Toeters"
c c c c(\break
)c c c c ~\break
}
}
+
+\version "1.0.16";
-< \type Staff = VA {
+< \context Staff = VA {
\property Staff.staffLineLeading = "4" \property Staff.fontsize = "-2"
\property Voice . dynamicDir = \up \stemdown
\key gis;
c8 d [e f g a] b c \ff
}
-\type Staff = VB { \property Voice . dynamicDir = \down c,,4 \ff}
+\context Staff = VB { \property Voice . dynamicDir = \down c,,4 \ff}
>
+
+\version "1.0.16";
}
-\version "1.0.14";
+\version "1.0.16";
beamintervals = \notes{
\time 7/4;
instrument= "Violoncello";
}
-\version "1.0.14";
+\version "1.0.16";
% this is an example of extreme dynamics
-\version "1.0.14";
+\version "1.0.16";
$somewhat_long = \lyrics{
\property Lyrics . textstyle = "roman"
Syyyyyyyyyyyyylllllllaaaaaabbble2
}
-$somewhat_long_lyrics_staff = \type Lyrics = somewhat <
+$somewhat_long_lyrics_staff = \context Lyrics = somewhat <
\$somewhat_long
>
-$rather_long_lyrics_staff = \type Lyrics = rather <
+$rather_long_lyrics_staff = \context Lyrics = rather <
\$rather_long
>
-$quite_long_lyrics_staff = \type Lyrics = quite <
+$quite_long_lyrics_staff = \context Lyrics = quite <
\$quite_long
>
c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
}
-$melodic_staff = \type Staff = mel <
+$melodic_staff = \context Staff = mel <
\melody
>
% the thumb-script is used in cello music to indicate a note that should
% be played with your thumb.
-\version "1.0.14";
+\version "1.0.16";
\score { \notes \relative c'' {
[<a8_\thumb a'8-3(> <)b_\thumb b'-3>
-\version "1.0.14";
+\version "1.0.16";
% middle tie is wrong
-\version "1.0.14";
+\version "1.0.16";
tie = \notes\transpose c''{
instrument= "Instrument";
}
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes
}
-\version "1.0.14";
+\version "1.0.16";
vOne = \notes \relative c''{
\clef"violin";
vFour = \notes \transpose d' \vThree
\score {
- \type StaffGroup <
+ \context StaffGroup <
\vOne
\vTwo
\vThree
\score{
- \notes \type Voice {
+ \notes \context Voice {
\times 2/3 { \times 2/3 { a8 b c} c }
\times 3/4 { c4 c4 c4 c4 }
\time 6/8;
}
}
+
+\version "1.0.16";
\score{
- \type Staff \notes\relative c'' {
+ \context Staff \notes\relative c'' {
% doesn't quite work yet
% \property Staff.unfoldRepeats = 1
\repeat 3 { a b c d }
\alternative { { d c b a } { a b c d } } d d d d
}
}
+
+\version "1.0.16";
% {\voicetwo c}>
% now we need:
-\type Staff
+\context Staff
<{\voiceone e}
{\voicetwo c}>
+
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
\score {
\notes <
- \type GrandStaff < {
+ \context GrandStaff < {
\property GrandStaff . maxVerticalAlign = "60."
\property GrandStaff . minVerticalAlign = "35."
\score{
<
- \type Staff = o \notes\relative c,,, {
+ \context Staff = o \notes\relative c,,, {
\stemdown [c8 c c c] c4 c4 \break [c8 c c c] c4 c4
}
- \type Lyrics \lyrics{
+ \context Lyrics \lyrics{
BLA gag _2 < { BLA gag } { BLA gag la } > _2
}
- \type Staff = t \notes\relative c''''' {
+ \context Staff = t \notes\relative c''''' {
\stemup [c8 c c c] c4 c [c8 c c c] c4 c
}
>
castingalgorithm = \Wordwrap;
}
}
+
+\version "1.0.16";
+
+%{
+What's supposed to be demonstrated here?
+%}
\score{
- \type Staff \notes\relative c'''{
- < \type Voice = one {
+ \context Staff \notes\relative c'''{
+ < \context Voice = one {
\stemup
\voiceone
[g8 a g f]
}
- \type Voice=two
+ \context Voice=two
{
\stemdown
\voicetwo
linewidth=-1.;
}
}
+
+\version "1.0.16";
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.14";
+\version "1.0.16";
\score{
\notes{
Tested Features lyrics and chords
%}
-\version "1.0.14";
+\version "1.0.16";
melodie = \notes\relative c'' {
\clef "violin";
\score {
<
- \type ChordNames \acc
- \type Staff=melody \melodie
- \type Lyrics \text
+ \context ChordNames \acc
+ \context Staff=melody \melodie
+ \context Lyrics \text
>
\header{
title = "Ah, vous dirais-je, maman ";
\score {
<
- \chords \type ChordNames \transpose bes\acc
- \notes \type Staff=melody \transpose bes\melodie
- \lyrics \type Lyrics \text
+ \chords \context ChordNames \transpose d'\acc
+ \notes \context Staff=melody \transpose d'\melodie
+ \lyrics \context Lyrics \text
>
\header{
piece = "clarinet in B\\textflat";
Tested Features: lyrics, interleaving lyrics and staffs, repeats
%}
-\version "1.0.14";
+\version "1.0.16";
melody = \notes \relative c'' {
\clef violin;
\score{
<
- \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 >
+ \context Staff=i \repeat 2 < \global\melody >
+ \context Lyrics=top \repeat 2 {} \alternative < \tekst \texte >
+ \context GrandStaff <
+ \context Staff=ii \repeat 2 < \global\melody >
+ \context Staff=iii \repeat 2 < \global\accompany >
>
- \type Lyrics=bottom \repeat 3 {}
+ \context Lyrics=bottom \repeat 3 {}
\alternative < \texti \textii \textiii >
>
\paper{
#include "string.hh"
-void warning (String message_str );
+void programming_error (String s);
+void warning (String message_str);
void error (String message_str);
void non_fatal_error (String);
#endif // WARN_HH
{
cerr << m<<endl;
}
+void
+programming_error (String s)
+{
+ cerr << _("Programming error: ") << s << _(" (continuing; cross thumbs)") << '\n';
+
+}
--- /dev/null
+/*
+ axis-group-engraver.cc -- implement Axis_group_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ */
+
+#include "axis-group-engraver.hh"
+#include "axis-group-spanner.hh"
+#include "p-col.hh"
+
+Axis_group_engraver::Axis_group_engraver ()
+{
+ staffline_p_ = 0;
+}
+
+void
+Axis_group_engraver::do_creation_processing ()
+{
+ staffline_p_ = get_spanner_p ();
+ staffline_p_->set_axes (Y_AXIS, Y_AXIS);
+ staffline_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
+ announce_element (Score_element_info (staffline_p_, 0));
+}
+
+Axis_group_spanner*
+Axis_group_engraver::get_spanner_p () const
+{
+ return new Axis_group_spanner;
+}
+void
+Axis_group_engraver::do_removal_processing ()
+{
+ staffline_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
+ typeset_element (staffline_p_);
+ staffline_p_ = 0;
+}
+
+void
+Axis_group_engraver::acknowledge_element (Score_element_info i)
+{
+ if (!i.elem_l_->parent_l (Y_AXIS))
+ {
+ elts_.push (i.elem_l_);
+ }
+}
+
+void
+Axis_group_engraver::process_acknowledged ()
+{
+ for (int i=0; i < elts_.size (); i++)
+ {
+ if (!elts_[i]->parent_l (Y_AXIS))
+ staffline_p_->add_element (elts_[i]);
+ }
+ elts_.clear ();
+}
+
+ADD_THIS_TRANSLATOR(Axis_group_engraver);
#include "g-text-item.hh"
#include "lily-guile.hh"
#include "p-col.hh"
+#include "paper-def.hh"
Bar_script_engraver::Bar_script_engraver ()
{
/*
How do we make sure that staff_side_p_ has a dependency from
- someone else? We can't use i for that,
+ someone else? We can't use i for that, so we use some other element.
*/
get_staff_info ().command_pcol_l ()->add_dependency (staff_side_p_);
}
}
-
+/*
+ URG.
+ */
Item*
Bar_script_engraver::cast_to_interesting_item (Score_element *e)
{
{
staff_side_p_->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
}
-
+ else
+ {
+ staff_side_p_
+ ->set_elt_property (padding_scm_sym,
+ gh_double2scm(paper_l ()->get_realvar (interline_scm_sym)));
+ }
staff_side_p_->set_elt_property (visibility_lambda_scm_sym,
visibility_lambda_);
beamdir = (count[UP] > count[DOWN]) ? UP : DOWN;
break;
case MEAN:
- // mean centre distance
+ // mean center distance
beamdir = (total[UP] > total[DOWN]) ? UP : DOWN;
break;
default:
case MEDIAN:
- // median centre distance
+ // median center distance
if (!count[UP])
beamdir = DOWN;
else if (!count[DOWN])
--- /dev/null
+/*
+ context-specced-music.cc -- implement Context_specced_music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+#include "context-specced-music.hh"
+
+Context_specced_music::Context_specced_music(Music *m)
+ : Music_wrapper (m)
+{
+}
G_stem_staff_side_item * ss =new G_stem_staff_side_item;
list = SCM_CDR (list);
- p->indices_drul_[LEFT] = ly_scm2string(SCM_CAAR (list));
- p->indices_drul_[RIGHT] = ly_scm2string(SCM_CDAR (list));
+ p->set_elt_property (molecule_scm_sym,
+ SCM_CAR(list));
+
list = SCM_CDR(list);
bool follow_staff = gh_scm2bool (SCM_CAR(list));
list = SCM_CDR(list);
Molecule
G_script::get_molecule(Direction d) const
{
- return lookup_l ()->afm_find ("scripts-" + indices_drul_[d]);
+ SCM s = get_elt_property (molecule_scm_sym);
+ assert (s != SCM_BOOL_F);
+
+ s = SCM_CDR(s);
+ SCM key = SCM_CAR (s);
+ if (key == ly_symbol ("feta"))
+ {
+ return lookup_l ()->afm_find ("scripts-" +
+ ly_scm2string (index_cell (SCM_CDR (s), d)));
+ }
+ else if (key == ly_symbol ("accordion"))
+ {
+ return lookup_l ()->accordion (SCM_CDR(s));
+ }
+
+ else assert (false);
+
+ return Molecule ();
}
void
G_script::do_print () const
{
- DOUT << "Indices: " << indices_drul_[LEFT] << ", " << indices_drul_[RIGHT];
+
}
#include "g-staff-side.hh"
#include "staff-symbol.hh"
#include "debug.hh"
+#include "warn.hh"
+#include "dimensions.hh"
G_staff_side_item::G_staff_side_item ()
{
void
G_staff_side_item::position_self ()
{
+ if (to_position_l_ &&
+ to_position_l_->get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
+ return;
Interval dim;
Dimension_cache *common = 0;
}
}
else
+ common = dim_cache_[axis_].parent_l_;
+
+ if (dim.empty_b ())
{
dim = Interval(0,0);
- common = dim_cache_[axis_].parent_l_;
}
{
off += gh_scm2double (SCM_CDR(pad)) * dir_;
}
- dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] + off);
+ Real total_off = dim[dir_] - sym_dim[-dir_] + off;
+ dim_cache_[axis_].set_offset (total_off);
+ if (fabs (total_off) > 100 CM)
+ programming_error ("Huh ? Improbable staff side dim.");
}
void
--- /dev/null
+/*
+ hara-kiri-engraver.cc -- implement Hara_kiri_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+#include "hara-kiri-vertical-group-spanner.hh"
+#include "hara-kiri-engraver.hh"
+#include "rhythmic-head.hh"
+
+Axis_group_spanner*
+Hara_kiri_engraver::get_spanner_p () const
+{
+ return new Hara_kiri_group_spanner;
+}
+
+void
+Hara_kiri_engraver::acknowledge_element (Score_element_info i)
+{
+ Axis_group_engraver::acknowledge_element (i);
+ if (Rhythmic_head *h = dynamic_cast<Rhythmic_head *> (i.elem_l_))
+ {
+ dynamic_cast<Hara_kiri_group_spanner*> (staffline_p_)
+ ->add_interesting_item (h);
+ }
+
+}
+ADD_THIS_TRANSLATOR(Hara_kiri_engraver);
This is a wrapper around Axis_group_administration
*/
class Axis_group_element : public virtual Score_element,
- public virtual Graphical_axis_group {
+ public virtual Graphical_axis_group
+{
protected:
virtual void do_print() const;
virtual Link_array<Score_element> get_extra_dependencies() const;
--- /dev/null
+/*
+ axis-group-engraver.hh -- declare Axis_group_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef AXIS_GROUP_ENGRAVER_HH
+#define AXIS_GROUP_ENGRAVER_HH
+
+
+#include "engraver.hh"
+
+/**
+ Put stuff in a Axis_group_spanner. Use as last element of a context.
+ */
+class Axis_group_engraver : public Engraver
+{
+protected:
+ Axis_group_spanner *staffline_p_;
+ Link_array<Score_element> elts_;
+
+ virtual void do_creation_processing();
+ virtual void do_removal_processing();
+ virtual void acknowledge_element (Score_element_info);
+ virtual void process_acknowledged ();
+ virtual Axis_group_spanner* get_spanner_p () const;
+public:
+ VIRTUAL_COPY_CONS(Translator);
+
+ Axis_group_engraver ();
+};
+
+#endif /* AXIS_GROUP_ENGRAVER_HH */
+
--- /dev/null
+/*
+ context-specced-music.hh -- declare Context_specced_music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef CONTEXT_SPECCED_MUSIC_HH
+#define CONTEXT_SPECCED_MUSIC_HH
+
+#include "music-wrapper.hh"
+
+class Context_specced_music : public Music_wrapper
+{
+public:
+ /** The kind of translation needed for this music. This doesn't
+ make sense for simple (ie non-list) music, but it does no harm
+ here. Yes, it did harm Music_sequence: you can forget to copy it.
+
+ */
+ String translator_type_str_;
+
+ /// what identification for the translation unit
+ String translator_id_str_;
+ Context_specced_music (Music*);
+ VIRTUAL_COPY_CONS(Music);
+
+};
+#endif /* CONTEXT_SPECCED_MUSIC_HH */
+
#include "drul-array.hh"
/**
- articulation marks (and the like) that are attached to notes/stems.
- Needs support from G_staff_side for proper operation.
- */
+ Articulation marks (and the like) that are attached to notes/stems.
+ Needs support from G_staff_side for proper operation. G_staff_side
+ handles the positioning.
+
+*/
class G_script : public Item
{
G_staff_side_item * staff_side_l_;
Molecule get_molecule (Direction d) const;
public:
- Drul_array<String> indices_drul_;
G_script ();
void set_staff_side (G_staff_side_item*);
protected:
-virtual void do_print () const;
+ virtual void do_print () const;
virtual void do_substitute_element_pointer (Score_element*o,
Score_element*n);
virtual void do_pre_processing ();
--- /dev/null
+/*
+ hara-kiri-engraver.hh -- declare Hara_kiri_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef HARA_KIRI_ENGRAVER_HH
+#define HARA_KIRI_ENGRAVER_HH
+
+#include "axis-group-engraver.hh"
+
+class Hara_kiri_engraver : public Axis_group_engraver
+{
+protected:
+ virtual Axis_group_spanner*get_spanner_p ()const;
+ virtual void acknowledge_element (Score_element_info);
+public:
+ VIRTUAL_COPY_CONS(Translator);
+};
+
+#endif /* HARA_KIRI_ENGRAVER_HH */
#ifndef LILY_GUILE_HH
#define LILY_GUILE_HH
-
+// order of includes important?
#include "config.hh"
#include "string.hh"
#include <guile/gh.h>
#include <libguile.h>
+#include "direction.hh"
SCM ly_symbol (String name);
String symbol_to_string (SCM);
SCM ly_quote_scm (SCM s);
void ly_display_scm (SCM s);
String ly_scm2string (SCM s);
+SCM array_to_list (SCM *a , int l);
+
#include "array.hh"
#include "scalar.hh"
SCM ly_unprotect_scm (SCM s);
void init_ly_protection ();
+SCM index_cell (SCM cellp, Direction d);
#endif // LILY_GUILE_HH
struct Audio_tempo;
struct Auto_beam_engraver;
struct Axis_group_element;
+struct Axis_group_spanner;
+struct Axis_group_item;
struct Axis_group;
struct Bar;
struct Bar_column_engraver;
virtual void do_creation_processing();
virtual void do_removal_processing();
virtual void typeset_element (Score_element*);
-virtual void do_announces ();
-
public:
VIRTUAL_COPY_CONS(Translator);
#ifndef LOOKUP_HH
#define LOOKUP_HH
+#include "lily-guile.hh"
#include "molecule.hh"
#include "fproto.hh"
#include "direction.hh"
Molecule accidental (int, bool cautionary) const;
Molecule afm_find (String, bool warn=true) const;
Molecule notehead (int, String) const;
-
Molecule bar (String, Real height) const;
Molecule beam (Real, Real, Real) const;
Molecule clef (String) const;
Molecule hairpin (Real width, bool decresc, bool continued) const;
Molecule plet (Real dy, Real dx, Direction dir) const;
Molecule rest (int, bool outside, String) const;
- Molecule rule_symbol (Real height, Real width) const;
-
+ Molecule accordion (SCM arg) const;
Molecule stem (Real y1_pos, Real y2_pos) const;
Molecule slur (Array<Offset> controls) const;
- Molecule streepje (int type) const;
Molecule text (String style, String text) const;
Molecule staff_brace (Real dy) const;
Molecule staff_bracket (Real dy) const;
DECLARE_LY_SYMBOL(interbeam4);
DECLARE_LY_SYMBOL(interline);
DECLARE_LY_SYMBOL(linewidth);
+DECLARE_LY_SYMBOL(molecule);
DECLARE_LY_SYMBOL(notewidth);
DECLARE_LY_SYMBOL(non_default);
DECLARE_LY_SYMBOL(octave_dir);
class Music:public Input {
public:
- /** The kind of translation needed for this music. This doesn't
- make sense for simple (ie non-list) music, but it does no harm
- here. Yes, it did harm Music_sequence: you can forget to copy it.
-
- */
- String translator_type_str_;
-
- /// what identification for the translation unit
- String translator_id_str_;
virtual Musical_pitch to_relative_octave (Musical_pitch);
int repeats_i_;
bool unfold_b_;
Music* repeat_p_;
+ /*
+ UGH FIXME: this should be:
+
+ Music_list * alternative_p_;
+ */
Music_sequence* alternative_p_;
Repeated_music (Music*, int n, Music_sequence*);
*/
class Translator_group : public virtual Translator {
Array<String> consists_str_arr_;
+ Array<String> consists_end_str_arr_;
Array<String> accepts_str_arr_;
Dictionary<Scalar> properties_dict_;
void set_acceptor (String accepts, bool add);
- void set_element (String accepts, bool add);
-
+ void set_element (String elt, bool add);
+ void add_last_element (String elt);
Translator_group(Translator_group const &);
Translator_group();
class Axis_align_spanner;
class Vertical_align_engraver : public Engraver {
Axis_align_spanner * valign_p_;
-
+ bool qualifies_b (Score_element_info) const;
public:
VIRTUAL_COPY_CONS(Translator);
Vertical_align_engraver();
protected:
+
virtual void acknowledge_element (Score_element_info);
virtual void do_creation_processing();
virtual void do_removal_processing();
void
Item::handle_prebroken_dependents ()
{
- Item * parent = dynamic_cast<Item*> (parent_l( X_AXIS));
+ Item * parent = dynamic_cast<Item*> (parent_l (X_AXIS));
if (breakable_b () && parent)
{
if(!(broken_to_drul_[LEFT] || broken_to_drul_[RIGHT]))
broken_self->dim_cache_[X_AXIS].parent_l_ =
&broken_parent->dim_cache_[X_AXIS];
+
+ /*
+ ugh. Should do this is after breaking?
+ */
+ if (!broken_self->parent_l (Y_AXIS))
+ {
+ Score_element * yparent =dynamic_cast<Score_element*>(parent_l (Y_AXIS));
+ Item *yparenti = dynamic_cast<Item*> (yparent);
+ Item *broken_yparent = yparenti ?
+ yparenti->find_prebroken_piece (d) : 0;
+
+ if (!yparent)
+ programming_error ("Vertical refpoint lost!");
+ else if (yparenti)
+ {
+ broken_self->dim_cache_[Y_AXIS].parent_l_ =
+ &broken_yparent->dim_cache_[Y_AXIS];
+ }
+ }
}
while ((flip (&d))!=LEFT);
}
#include "debug.hh"
+
+
/*
scm_m_quote doesn't use any env, but needs one for a good signature in GUILE.
return r;
}
-/*
- Layout of nodes:
-
- (key . (left_child . right_child))
-
- SCM_EOL is the nil-pointer (should use SCM_NIMP() ?)
- */
-
-#define left_child(s) SCM_CADR((s))
-#define right_child(s) SCM_CDDR((s))
-#define key(s) SCM_CAR((s))
-
-/*
- Garble pointers, to prevent unbalanced tree due to ordered inserts.
- */
-
-unsigned int
-munge (SCM s)
-{
- const int SHIFT = 18;
- return (unsigned int)(s << (32-SHIFT) | s >> SHIFT );
-}
-
SCM
-ly_new_bintree_node (SCM val)
+index_cell (SCM s, Direction d)
{
- return gh_cons (val, gh_cons (SCM_EOL, SCM_EOL));
+ assert (d);
+ return (d == LEFT) ? SCM_CAR (s) : SCM_CDR (s);
}
-
-/*
- add VAL to TREE. TREE must be non-nil
- */
-void
-ly_addto_bintree (SCM *tree, SCM val)
-{
- while(*tree != SCM_EOL)
- {
- if (munge (val) <= munge (key (*tree)))
- tree = &left_child (*tree);
- else
- tree = &right_child (*tree);
- }
-
- *tree = ly_new_bintree_node (val);
-}
-
-
-/*
- find the address of a node in the tree represented by *NODE with key VAL
- */
-SCM *
-ly_find_in_bintree (SCM *node, SCM val)
-{
- while (*node != SCM_EOL)
- {
- if (munge (val) < munge (key(*node) ))
- node = &left_child(*node);
- else if (munge (val) > munge (key (*node)))
- node = &right_child (*node);
- else
- return node;
- }
- return node;
-}
-
-void
-ly_remove_from_bintree (SCM *node)
-{
- SCM r = right_child (*node);
- SCM l = left_child (*node);
- if (r == SCM_EOL)
- {
- *node = l;
- }
- else if (l == SCM_EOL)
- {
- *node = r;
- }
- else
- {
- /*deleting from binary trees. See Knuth's TAOCP.
- */
- SCM *t = node;
- SCM *left_t = &left_child (*t);
-
- /*
- INV: LEFT_T is the left child of T
- */
- while (*left_t != SCM_EOL)
- {
- t = left_t;
- left_t = &left_child (*t);
- }
-
- /*
- POST: T is the leftmost right child of NODE which has no left child,
-
- leftchild (LASTT) == T
- */
- key(*node) = key(*t);
- *left_t = right_child (*t);
- }
-}
-
-
-static SCM protect_tree_root;
-
-SCM
-ly_protect_scm (SCM s)
-{
- ly_addto_bintree (&protect_tree_root, s);
- return s;
-}
-
SCM
-ly_unprotect_scm (SCM s)
-{
- SCM *to_remove = ly_find_in_bintree (&protect_tree_root, s);
-
- /*
- this shouldn't happen, according to me. But it does.
- */
- if (*to_remove != SCM_EOL)
- ly_remove_from_bintree (to_remove);
- return s;
-}
-
-void
-ly_init_protection ()
+array_to_list (SCM *a , int l)
{
- protect_tree_root = scm_protect_object (ly_new_bintree_node(SCM_EOL));
- key (protect_tree_root) = protect_tree_root;
-}
-
-
-int
-ly_count_elements (SCM tree)
-{
- if (tree == SCM_EOL)
- return 0;
- else
- return 1 + ly_count_elements (left_child (tree)) + ly_count_elements (right_child( tree));
-}
-
-int
-ly_tree_depth (SCM tree)
-{
- if (tree == SCM_EOL)
- return 0;
- else
- return 1 + (ly_tree_depth (left_child (tree)) >? ly_tree_depth (right_child(tree)));
-}
-
-void
-ly_print_bintree (SCM node)
-{
-#ifndef NPRINT
- if (node == SCM_EOL)
- return;
- DOUT << "{val = " << key(node) << " \nleft = ";
- ly_print_bintree (left_child (node));
- DOUT << "\n right =";
- ly_print_bintree (right_child (node));
- DOUT << "}";
-#endif
-}
-
-
-struct Imbalance { int imbalance; int total; };
-
-Imbalance
-ly_calc_imbalance (SCM node)
-{
- Imbalance t;
- if (node == SCM_EOL)
+ SCM list = SCM_EOL;
+ for (int i= l; i--; )
{
- t.imbalance = 0;
- t.total = 0;
- return t;
+ list = gh_cons (a[i], list);
}
-
- Imbalance l = ly_calc_imbalance (left_child (node));
- Imbalance r = ly_calc_imbalance (right_child (node));
-
- t.total = l.total + r.total + 1;
- int dif = l.total - r.total;
- if (dif < 0)
- dif = -dif;
- t.imbalance = l.imbalance + r.imbalance + dif;
- return t;
+ return list;
}
+
staffline_p_->set_axes (Y_AXIS,Y_AXIS);
}
-void
-Line_group_engraver_group::do_announces ()
-{
- Engraver_group_engraver::do_announces ();
-}
if (accidental_arr_.size())
{
- Box b(Interval (0, note_distance), Interval (0,0));
+ Box b(Interval (0, 0.6 * note_distance), Interval (0,0));
Molecule m (lookup_l ()->fill (b));
output->add_at_edge (X_AXIS, RIGHT, m, 0);
}
x_int.unite (x + support_items_[i]->extent (X_AXIS));
}
+
if (x_int.empty_b ())
x_int = Interval(0,0);
TODO
Glissando
-
- merge rulesym and filledbox.
*/
#include <ctype.h>
#include "atom.hh"
#include "lily-guile.hh"
-SCM
-array_to_list (SCM *a , int l)
-{
- SCM list = SCM_EOL;
- for (int i= l; i--; )
- {
- list = gh_cons (a[i], list);
- }
- return list;
-}
-
Lookup::Lookup ()
{
}
+/*
+ build a ledger line for small pieces.
+ */
Molecule
Lookup::ledger_line (Interval xwid) const
{
- Molecule end (afm_find ("noteheads-ledgerending"));
- Interval ed = end.dim_[X_AXIS];
- xwid = Interval (xwid[LEFT] - ed[LEFT],
- xwid[RIGHT] - ed[RIGHT]);
- Molecule mid = filledbox (Box (xwid, end.dim_[Y_AXIS]));
- Molecule l (mid);
-
- Molecule e2 = end;
- Molecule e1 = end;
- e1.translate_axis (xwid[RIGHT], X_AXIS);
- e2.translate_axis (xwid[LEFT], X_AXIS);
-
- l.add_molecule (e1);
- l.add_molecule (e2);
- return l;
+ Drul_array<Molecule> endings;
+ endings[LEFT] = afm_find ("noteheads-ledgerending");
+ Molecule * e = &endings[LEFT];
+ endings[RIGHT] = *e;
+
+ Real thick = e->dim_[Y_AXIS].length();
+ Real len = e->dim_[X_AXIS].length () - thick;
+
+ Molecule total;
+ Direction d = LEFT;
+ do {
+ endings[d].translate_axis (xwid[d] - endings[d].dim_[X_AXIS][d], X_AXIS);
+ total.add_molecule (endings[d]);
+ } while ((flip(&d)) != LEFT);
+
+ Real xpos = xwid [LEFT] + len;
+
+ while (xpos + len + thick /2 <= xwid[RIGHT])
+ {
+ e->translate_axis (len, X_AXIS);
+ total.add_molecule (*e);
+ xpos += len;
+ }
+
+ return total;
}
return afm_find (String ("rests-") + to_str (j) + (o ? "o" : "") + style);
}
-Molecule
-Lookup::rule_symbol (Real height, Real width) const
-{
- Atom at (gh_list (rulesym_scm_sym,
- gh_double2scm (height),
- gh_double2scm (width),
- SCM_UNDEFINED));
-
- Molecule m;
- m.dim_.x () = Interval (0, width);
- m.dim_.y () = Interval (0, height);
-
- m.add_atom (&at);
-
- return m;
-}
Molecule
Lookup::special_time_signature (String s, int n, int d) const
return m;
}
+Molecule
+Lookup::accordion (SCM s) const
+{
+ Molecule m;
+ /*
+ Tom: go ahead.
+ */
+ return m;
+
+}
for (CELLTYPE ptr = atom_list_; ptr != MOL_EOL; ptr = NEXT_CELL(ptr))
UNBOX_ATOM (UNBOX_PTR(ptr))->off_[a] += x;
- if (!empty_b ())
+ if (!dim_[a].empty_b ())
dim_[a] += x;
}
Real my_extent= empty_b () ? 0.0 : dim_[a][d];
Interval i (m.extent ()[a]);
if (i.empty_b ())
- warning ("Molecule::add_at_edge: adding empty molecule. [PROGRAMMING ERROR]");
+ programming_error ("Molecule::add_at_edge: adding empty molecule.");
Real his_extent = i[-d];
Real offset = my_extent - his_extent;
#include "time-scaled-music.hh"
#include "repeated-music.hh"
#include "repeated-music-iterator.hh"
+#include "context-specced-music.hh"
void
Music_iterator::do_print() const
assert (0);
p->music_l_ = m;
- if (m->translator_type_str_.length_i ())
+
+ if (Context_specced_music const * csm =dynamic_cast<Context_specced_music const*>(m))
{
Translator_group* a =report_l->
- find_create_translator_l (m->translator_type_str_, m->translator_id_str_);
+ find_create_translator_l (csm->translator_type_str_, csm->translator_id_str_);
p->set_translator (a);
}
if (! check_debug)
return ;
DOUT << classname(this) << "{";
+ /*
if (translator_type_str_.length_i ())
DOUT << translator_type_str_ << " = " << translator_id_str_;
+ */
do_print();
DOUT << "}\n";
#endif
{"clef", CLEF},
{"cm", CM_T},
{"consists", CONSISTS},
+ {"consistsend", CONSISTSEND},
+ {"context", CONTEXT},
{"duration", DURATION},
{"font", FONT},
{"grouping", GROUPING},
{"spandynamic", SPANDYNAMIC},
{"tempo", TEMPO},
{"translator", TRANSLATOR},
- {"type", TYPE},
{"transpose", TRANSPOSE},
+ {"type", TYPE},
{"version", VERSION},
{0,0}
};
if (!dir)
{
- warning ("Must set minimum distance between differing columns. [PROGRAMMING ERROR]");
+ warning ("Must set minimum distance between differing columns.");
return;
}
{
elem_p_arr_.push (elem_p);
elem_p->pscore_l_ = this;
- elem_p->add_processing ();
+
SCM p = elem_p->remove_elt_property (break_helper_only_scm_sym);
if (p != SCM_BOOL_F)
{
span_p_arr_.push (span_p);
span_p->pscore_l_=this;
- span_p->add_processing ();
SCM p = span_p->remove_elt_property (break_helper_only_scm_sym);
if (p != SCM_BOOL_F)
if (a_off.length () > 100 CM)
{
- warning (_f("Improbable dimension for object type `%s\'", nm));
+ warning (_f("Improbable offset for object type `%s\'", nm));
Axis a =X_AXIS;
while (a < NO_AXES)
{
#include "command-request.hh"
#include "musical-request.hh"
#include "my-lily-parser.hh"
-
+#include "context-specced-music.hh"
#include "translator-group.hh"
#include "score.hh"
#include "music-list.hh"
#include "repeated-music.hh"
// mmm
-Mudela_version oldest_version ("1.0.14");
-Mudela_version version ("1.0.15");
+Mudela_version oldest_version ("1.0.16");
+Mudela_version version ("1.0.16");
// needed for bison.simple's malloc() and free()
%token CLEF
%token CM_T
%token CONSISTS
+%token CONSISTSEND
%token DURATION
%token EXTENDER
%token FONT
%token TRANSLATOR
%token TRANSPOSE
%token TYPE
+%token CONTEXT
%token VERSION
/* escaped */
dynamic_cast<Translator_group*> ($$)-> set_element (*$3, true);
delete $3;
}
+ | translator_spec_body CONSISTSEND STRING semicolon {
+ dynamic_cast<Translator_group*> ($$)-> set_element (*$3, true);
+ delete $3;
+ }
| translator_spec_body ACCEPTS STRING semicolon {
dynamic_cast<Translator_group*> ($$)-> set_acceptor (*$3, true);
delete $3;
Composite_music:
- TYPE STRING Music {
- $$ = $3;
- $$->translator_type_str_ = *$2;
+ CONTEXT STRING Music {
+ Context_specced_music *csm = new Context_specced_music ($3);
+
+ csm->translator_type_str_ = *$2;
+ csm->translator_id_str_ = "";
delete $2;
+
+ $$ = csm;
}
- | TYPE STRING '=' STRING Music {
- $$ = $5;
- $$->translator_type_str_ = *$2;
- $$->translator_id_str_ = *$4;
+ | CONTEXT STRING '=' STRING Music {
+ Context_specced_music *csm = new Context_specced_music ($5);
+
+ csm->translator_type_str_ = *$2;
+ csm->translator_id_str_ = *$4;
delete $2;
delete $4;
+
+ $$ = csm;
}
| TIMES {
THIS->remember_spot ();
property_def:
PROPERTY STRING '.' STRING '=' scalar {
Translation_property *t = new Translation_property;
- t-> translator_type_str_ = *$2;
+
t-> var_str_ = *$4;
t-> value_ = *$6;
- $$ = t;
+
+ Context_specced_music *csm = new Context_specced_music (t);
+ $$ = csm;
$$->set_spot (THIS->here_input ());
+
+ csm-> translator_type_str_ = *$2;
+
delete $2;
delete $4;
delete $6;
--- /dev/null
+/*
+ scm-bintree.cc -- implement binary trees, an experiment in GC.
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include <stdio.h>
+#include "libc-extension.hh"
+#include "lily-guile.hh"
+#include "main.hh"
+#include "debug.hh"
+
+
+
+
+/*
+ Layout of nodes:
+
+ (key . (left_child . right_child))
+
+ SCM_EOL is the nil-pointer (should use SCM_NIMP() ?)
+ */
+
+#define left_child(s) SCM_CADR((s))
+#define right_child(s) SCM_CDDR((s))
+#define key(s) SCM_CAR((s))
+
+/*
+ Garble pointers, to prevent unbalanced tree due to ordered inserts.
+ */
+
+unsigned int
+munge (SCM s)
+{
+ const int SHIFT = 18;
+ return (unsigned int)(s << (32-SHIFT) | s >> SHIFT );
+}
+
+SCM
+ly_new_bintree_node (SCM val)
+{
+ return gh_cons (val, gh_cons (SCM_EOL, SCM_EOL));
+}
+
+
+/*
+ add VAL to TREE. TREE must be non-nil
+ */
+void
+ly_addto_bintree (SCM *tree, SCM val)
+{
+ while(*tree != SCM_EOL)
+ {
+ if (munge (val) <= munge (key (*tree)))
+ tree = &left_child (*tree);
+ else
+ tree = &right_child (*tree);
+ }
+
+ *tree = ly_new_bintree_node (val);
+}
+
+
+/*
+ find the address of a node in the tree represented by *NODE with key VAL
+ */
+SCM *
+ly_find_in_bintree (SCM *node, SCM val)
+{
+ while (*node != SCM_EOL)
+ {
+ if (munge (val) < munge (key(*node) ))
+ node = &left_child(*node);
+ else if (munge (val) > munge (key (*node)))
+ node = &right_child (*node);
+ else
+ return node;
+ }
+ return node;
+}
+
+void
+ly_remove_from_bintree (SCM *node)
+{
+ SCM r = right_child (*node);
+ SCM l = left_child (*node);
+
+ if (r == SCM_EOL)
+ {
+ *node = l;
+ }
+ else if (l == SCM_EOL)
+ {
+ *node = r;
+ }
+ else
+ {
+ /*deleting from binary trees. See Knuth's TAOCP.
+ */
+ SCM *t = node;
+ SCM *left_t = &left_child (*t);
+
+ /*
+ INV: LEFT_T is the left child of T
+ */
+ while (*left_t != SCM_EOL)
+ {
+ t = left_t;
+ left_t = &left_child (*t);
+ }
+
+ /*
+ POST: T is the leftmost right child of NODE which has no left child,
+
+ leftchild (LASTT) == T
+ */
+ key(*node) = key(*t);
+ *left_t = right_child (*t);
+ }
+}
+
+
+static SCM protect_tree_root;
+
+SCM
+ly_protect_scm (SCM s)
+{
+ ly_addto_bintree (&protect_tree_root, s);
+ return s;
+}
+
+SCM
+ly_unprotect_scm (SCM s)
+{
+ SCM *to_remove = ly_find_in_bintree (&protect_tree_root, s);
+
+ /*
+ this shouldn't happen, according to me. But it does.
+ */
+ if (*to_remove != SCM_EOL)
+ ly_remove_from_bintree (to_remove);
+ return s;
+}
+
+void
+ly_init_protection ()
+{
+ protect_tree_root = scm_protect_object (ly_new_bintree_node(SCM_EOL));
+ key (protect_tree_root) = protect_tree_root;
+}
+
+
+int
+ly_count_elements (SCM tree)
+{
+ if (tree == SCM_EOL)
+ return 0;
+ else
+ return 1 + ly_count_elements (left_child (tree)) + ly_count_elements (right_child( tree));
+}
+
+int
+ly_tree_depth (SCM tree)
+{
+ if (tree == SCM_EOL)
+ return 0;
+ else
+ return 1 + (ly_tree_depth (left_child (tree)) >? ly_tree_depth (right_child(tree)));
+}
+
+void
+ly_print_bintree (SCM node)
+{
+#ifndef NPRINT
+ if (node == SCM_EOL)
+ return;
+ DOUT << "{val = " << key(node) << " \nleft = ";
+ ly_print_bintree (left_child (node));
+ DOUT << "\n right =";
+ ly_print_bintree (right_child (node));
+ DOUT << "}";
+#endif
+}
+
+
+struct Imbalance { int imbalance; int total; };
+
+Imbalance
+ly_calc_imbalance (SCM node)
+{
+ Imbalance t;
+ if (node == SCM_EOL)
+ {
+ t.imbalance = 0;
+ t.total = 0;
+ return t;
+ }
+
+ Imbalance l = ly_calc_imbalance (left_child (node));
+ Imbalance r = ly_calc_imbalance (right_child (node));
+
+ t.total = l.total + r.total + 1;
+ int dif = l.total - r.total;
+ if (dif < 0)
+ dif = -dif;
+ t.imbalance = l.imbalance + r.imbalance + dif;
+ return t;
+}
+
{
announce_info_arr_.push (info);
info.origin_grav_l_arr_.push (this);
+
+ if (Spanner *s = dynamic_cast <Spanner *> (info.elem_l_))
+ pscore_p_->typeset_unbroken_spanner (s);
+ else if (Item *i = dynamic_cast<Item*> (info.elem_l_))
+ pscore_p_->typeset_element (i);
}
/* All elements are propagated to the top upon announcement. If
for (int i =0; i < elem_p_arr_.size(); i++)
{
Score_element * elem_p = elem_p_arr_[i];
+ elem_p->add_processing ();
if (Spanner *s = dynamic_cast <Spanner *> (elem_p))
{
- pscore_p_->typeset_unbroken_spanner (s);
-
/*
do something sensible if spanner not
spanned on 2 items.
else
{
Item *item_p = dynamic_cast <Item *> (elem_p);
- pscore_p_->typeset_element (item_p);
+
if (!item_p->parent_l (X_AXIS))
{
bool br = (item_p->remove_elt_property (breakable_scm_sym) != SCM_BOOL_F);
Music_iterator * mi = get_iterator_p (i->car_);
if (mi->ok())
{
+#if 0
if (sim->translator_type_str_.empty_b ())
set_translator (mi->report_to_l()->ancestor_l (0)); // huh?
+#endif
+
children_p_list_.append (new Killing_cons<Music_iterator> (mi,0));
}
else
[OSU]: slur and tie placement
slurs:
- * x = centre of head (upside-down: inner raakpunt stem) - d * gap
+ * x = center of head (upside-down: inner raakpunt stem) - d * gap
* y = length < 5ss : horizontal raakpunt + d * 0.25 ss
y = length >= 5ss : y next interline - d * 0.25 ss
/*
TODO
- should be able to set whole paragraph (multiple lines, centre) to
+ should be able to set whole paragraph (multiple lines, center) to
left (right?) of staff, e.g.:
______
|_______
text_p_->text_str_ = long_str;
staff_side_p_->dir_ = LEFT;
Bar_script_engraver::do_acknowledge_element (i);
+
+ /*
+ UGH. ignores font size settings.
+ */
+ Interval iv(text_p_->extent (Y_AXIS));
+ text_p_->translate_axis (- iv.center (), Y_AXIS);
}
{
Real w = extent (X_AXIS).length ();
Paper_def * p = paper_l ();
- Molecule rule = lookup_l ()->rule_symbol (p->get_var ("rulethickness"),
- w);
+ Real t = p->get_var ("rulethickness");
+ Molecule rule = lookup_l ()->filledbox (Box (Interval (0,w),
+ Interval (-t/2, t/2)));
+
Real height = (no_lines_i_-1) * staff_line_leading_f_ /2;
Molecule * m = new Molecule;
for (int i=0; i < no_lines_i_; i++)
: Translator(s)
{
consists_str_arr_ = s.consists_str_arr_;
+ consists_end_str_arr_ = s.consists_end_str_arr_;
accepts_str_arr_ = s.accepts_str_arr_;
iterator_count_ =0;
properties_dict_ = s.properties_dict_;
accepts_str_arr_.del (i);
}
+void
+Translator_group::add_last_element (String s)
+{
+ if (!get_translator_l (s))
+ error ("Program has no such type");
+
+ for (int i=consists_end_str_arr_.size (); i--; )
+ if (consists_end_str_arr_[i] == s)
+ warning (_f("Already contains a `%s\'", s));
+
+ consists_end_str_arr_.push (s);
+}
+
void
Translator_group::set_element (String s, bool add)
{
consists_str_arr_.push (s);
}
else
- for (int i=consists_str_arr_.size (); i--; )
- if (consists_str_arr_[i] == s)
- consists_str_arr_.del (i);
+ {
+ for (int i=consists_str_arr_.size (); i--; )
+ if (consists_str_arr_[i] == s)
+ consists_str_arr_.del (i);
+ for (int i=consists_end_str_arr_.size (); i--; )
+ if (consists_end_str_arr_[i] == s)
+ consists_end_str_arr_.del (i);
+ }
}
-
bool
Translator_group::removable_b() const
{
{
for (int i=0; i < consists_str_arr_.size(); i++)
{
- Translator * t = output_def_l ()->find_translator_l (consists_str_arr_[i]);
+ String s = consists_str_arr_[i];
+ Translator * t = output_def_l ()->find_translator_l (s);
if (!t)
- warning (_f ("can't find `%s\'", consists_str_arr_[i]));
+ warning (_f ("can't find `%s\'", s));
else
add_translator (t->clone ());
}
+ for (int i=0; i-- < consists_end_str_arr_.size (); i++)
+ {
+ String s = consists_end_str_arr_[i];
+ Translator * t = output_def_l ()->find_translator_l (s);
+ if (!t)
+ warning (_f ("can't find `%s\'", s));
+ else
+ add_translator (t->clone ());
+ }
}
Scalar
*where_l = (Translator_group*) this; // ugh
return properties_dict_[id];
}
-
+
+#if 0
if (daddy_trans_l_)
return daddy_trans_l_->get_property (id, where_l);
-
+#endif
+
if (where_l)
*where_l = 0;
return "";
(c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-
+#include "translator-group.hh"
+#include "axis-group-engraver.hh"
#include "p-col.hh"
#include "vertical-align-engraver.hh"
#include "axis-align-spanner.hh"
valign_p_ =0;
}
+
+bool
+Vertical_align_engraver::qualifies_b (Score_element_info i) const
+{
+ Translator * t = i.origin_grav_l_arr_[0];
+ int sz = i.origin_grav_l_arr_.size() ;
+
+ return (sz == 1 && dynamic_cast<Translator_group*> (t))
+ || (sz == 2 && dynamic_cast<Axis_group_engraver*> (t));
+}
+
void
Vertical_align_engraver::acknowledge_element (Score_element_info i)
{
- if (i.origin_grav_l_arr_.size() == 1 &&
- dynamic_cast<Axis_group_spanner *> (i.elem_l_)
- && !i.elem_l_->parent_l (Y_AXIS))
+ if (qualifies_b (i))
{
valign_p_->add_element (i.elem_l_);
}
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly"
%
StaffContext=\translator {
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\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 "Staff_symbol_engraver";
\consists "Collision_engraver";
\consists "Rest_collision_engraver";
+ \consistsend "Axis_group_engraver";
%{
Uncomment to get bar numbers on single staff systems:
%{
\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.
+%}
+%{
+ \consists "Staff_margin_engraver";
%}
defaultClef = treble;
marginBreakPriority = "-5";
-%{
- \consists "Staff_margin_engraver";
-%}
+
\consists "Separating_line_group_engraver";
\accepts "Voice";
\translator{\StaffContext }
\translator {
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\name ChoirStaff;
\consists "Vertical_align_engraver";
alignmentReference = \center;
\consists "Staff_group_bar_engraver";
+ \consistsend "Axis_group_engraver";
\accepts "Staff";
\accepts "RhythmicStaff";
\accepts "GrandStaff";
RhythmicStaffContext=\translator{
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
numberOfStaffLines = "1";
\consists "Pitch_squash_engraver";
\consists "Separating_line_group_engraver";
\consists "Bar_engraver";
\consists "Time_signature_engraver";
\consists "Staff_symbol_engraver";
+ \consistsend "Axis_group_engraver";
\accepts "Voice";
};
\translator{\RhythmicStaffContext}
\translator {\VoiceContext}
GrandStaffContext=\translator{
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\name GrandStaff;
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
alignmentReference = \center;
minVerticalAlign = 1.5*\staffheight;
+ \consistsend "Axis_group_engraver";
\accepts "Staff";
+
};
\translator{\GrandStaffContext}
-\translator{\GrandStaffContext
+
+PianoStaffContext = \translator{\GrandStaffContext
minVerticalAlign = 3.0*\staffheight;
maxVerticalAlign = 3.0*\staffheight;
\name "PianoStaff";
-}
-
+};
+\translator{\PianoStaffContext}
StaffGroupContext= \translator {
-% \type "Hara_kiri_line_group_engraver";
-% \type "Line_group_engraver_group";
\type "Engraver_group_engraver";
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
\accepts "Lyrics";
\accepts "ChordNames";
+ \consistsend "Axis_group_engraver";
+
};
\translator { \StaffGroupContext }
\translator{
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
+ \consistsend "Axis_group_engraver";
\name LyricVoice ;
\consists "Separating_line_group_engraver";
}
\translator {
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\name Lyrics;
\consists "Vertical_align_engraver";
+ \consistsend "Axis_group_engraver";
+
\accepts "LyricVoice";
}
\translator{
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
+ \consistsend "Axis_group_engraver";
\name ChordNameVoice ;
\consists "Separating_line_group_engraver";
\consists "Chord_name_engraver";
ChordNameContext = \translator {
- \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\name ChordNames;
\consists "Vertical_align_engraver";
\accepts "ChordNameVoice";
-};
+ \consistsend "Axis_group_engraver";
+ };
\translator { \ChordNameContext }
% uncomment to bar numbers on a whole system.
\consists "Bar_number_engraver";
-
};
StupidScore = \translator {
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";
-
+ \StaffContext
+ \remove "Axis_group_engraver";
+ \consistsend "Hara_kiri_engraver";
\accepts "Voice";
};
\consists "Bar_number_engraver";
};
-
ScoreContext = \translator {
\type Score_engraver;
\name Score;
\consists "Timing_engraver";
-
\consists "Span_score_bar_engraver";
\consists "Score_priority_engraver";
\consists "Spacing_engraver";
barScriptPadding = "2.0"; % dimension \pt
markScriptPadding = "4.0";
-
-
\consists "Bar_number_engraver";
\consists "Mark_engraver";
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.15";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.16";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.14";
+\version "1.0.15";
\include "declarations.ly"
-\version "1.0.14";
+\version "1.0.16";
paper_sixteen = \paper {
staffheight = 16.0\pt;
% paper20.ly
-\version "1.0.14";
+\version "1.0.16";
paper_twenty = \paper {
staffheight = 20.0\pt;
%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
+stemup = \property Voice.ydirection = \up
stemboth= \property Voice.ydirection = \center
stemdown = \property Voice.ydirection = \down
\stemboth \shiftoff
}
-voiceone = {
- \type Voice = one
+voiceone =
+ \context Voice = one {
\stemup
}
-voicetwo = {
- \type Voice = two
+voicetwo =
+ \context Voice = two {
\stemdown
}
-voicethree = {
- \type Voice = three
+voicethree =
+ \context Voice = three {
\stemup
}
-voicefour = {
- \type Voice = four
+voicefour =
+ \context Voice = four {
\stemdown
\shifton
}
}
% ugh, cluttering global namespace...
+
+% ugh2.
none=0
free=0
normal=1
accent = \script "accent"
marcato = \script "marcato"
staccatissimo = \script "staccatissimo"
-portato = \script "portato"
+
+% portato is indicated by slurred & dotted notes. Not really supported.
+% portato = \script "portato"
+
fermata = \script "fermata"
stopped = \script "stopped"
staccato = \script "staccato"
% should use ledgerline thickness?
%
fet_beginchar( "whole rest (outside staff)", "0o", "outsidewholerest");
- set_char_box(block_rest_y#, block_rest_x# + block_rest_y#,
+ set_char_box(0, block_rest_x#,
block_rest_y#, ledgerlinethickness#/2);
block_rest;
currentpicture := currentpicture shifted (0, - block_rest_y);
pickup pencircle scaled ledgerlinethickness;
y5 = y6 = 0;
- lft x5 = - b;
- rt x6 = w;
+ lft x5 = - b - block_rest_y;
+ rt x6 = w + block_rest_y;
draw z5 .. z6;
fet_endchar;
fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
- set_char_box(block_rest_y#, block_rest_x#+ block_rest_y#,
+ set_char_box(0, block_rest_x#,
ledgerlinethickness#/2, block_rest_y#);
block_rest;
pickup pencircle scaled ledgerlinethickness;
y5 = y6 = 0;
- lft x5 = - b;
- rt x6 = w;
+ lft x5 = - b - block_rest_y ;
+ rt x6 = w + block_rest_y;
draw z5 .. z6;
fet_endchar;
else:
% input feta-bolletjes;
% input feta-banier;
-% input feta-eindelijk;
+ input feta-eindelijk;
% input feta-klef;
% input feta-toevallig;
% input feta-schrift;
% input feta-schrift;
% input feta-haak;
- input feta-timesig;
+% input feta-timesig;
fi
% cmchar "Italic letter f";
% beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
-\"Dynamic letter f";
+"Dynamic letter f";
beginchar(fcode ,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
italcorr asc_height#*slant+.75u#;
% cmchar "Italic letter m";
% beginchar("m",15u#,x_height#,0);
-\"Dynamic letter m";
+\"Dynamic letter m\";
% beginchar(incr num,15u#,x_height#,0);
-beginchar( 109 ,12u#,x_height#,0);
+beginchar( 109 ,12u#, asc_height#,0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
% cmchar "Italic letter p";
% beginchar("p",9u#,x_height#,desc_depth#);
-\"Dynamic letter p";
+"Dynamic letter p";
beginchar(112, 9u#,x_height#,desc_depth#);
italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
% cmchar "Italic letter r";
% beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
-\"Dynamic letter r";
+"Dynamic letter r";
beginchar( 114 ,5.5u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant;
% cmchar "Italic letter s";
% beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
-\"Dynamic letter s";
+"Dynamic letter s";
beginchar(115 ,5.25u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
(defconst mudela-font-lock-keywords
(let* ((keywords '("alternative" "repeat"
"accepts" "accidentals" "break" "bar" "cadenza"
- "clef" "cm" "consists" "contains" "duration"
+ "clef" "cm" "consists" "consistsend" "contains" "duration"
"absdynamic" "scmfile" "lyrics"
- "in" "translator" "type" "key" "maininput" "notes"
+ "in" "translator" "context" "key" "maininput" "notes"
"musical_pitch" "time" "midi" "mm" "header"
"notenames" "octave" "output" "partial" "paper" "plet" "name"
"property" "pt" "shape" "relative" "include" "score"
"scm" "scmfile"
- "script" "skip" "table" "times" "spandynamic" "symboltables"
- "tempo" "texid" "textstyle" "transpose" "version" "grouping"
+ "script" "skip" "table" "times" "spandynamic" "symboltables" "type"
+ "tempo" "transpose" "version" "grouping"
))
(kwregex (mapconcat (lambda (x) (concat "\\\\" x)) keywords "\\|")))
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "violoncello.ly"
\include "contrabasso.ly"
-$bassi = \type GrandStaff = bassi_group <
+$bassi = \context GrandStaff = bassi_group <
\$violoncello_staff
\$contrabasso_staff
>
-$bassi = \type GrandStaff = bassi_group <
+$bassi = \context GrandStaff = bassi_group <
\$violoncello_staff
\$contrabasso_staff
>
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "clarinetti.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "clarinetto-1.ly"
\include "clarinetto-2.ly"
-$clarinetti_staff = \type Staff = clarinetti <
+$clarinetti_staff = \context Staff = clarinetti <
\property Staff.midi_instrument = "clarinet"
\property Staff.instrument = "2 Clarinetti (B\\textflat)"
\property Staff.instr = "Cl. (B\\textflat)"
% urg: can't; only My_midi_lexer:<non-static> () parses pitch?
%\property Staff.transposing = "bes"
\property Staff.transposing = -3
- \notes \type Voice=one <
+ \notes \context Voice=one <
\time 4/4;
\key F;
\$clarinetto1
}
-\version "1.0.14";
+\version "1.0.16";
clarinetto1 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
clarinetto2 = \notes \relative c {
R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "contrabasso.ly"
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
contrabasso = \notes \relative c {
% \translator Staff=violoncello
c4 r r2 |
}
-$contrabasso_staff = \type Staff = contrabasso <
+$contrabasso_staff = \context Staff = contrabasso <
\property Staff.midi_instrument = "contrabass"
\property Staff.instrument = "Contrabasso"
\property Staff.instr = "Cb."
\clef "bass";
- \notes \type Voice=one<
+ \notes \context Voice=one<
\global
\$contrabasso
>
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "violino-2.ly"
\include "violoncello.ly"
-legno = \type StaffGroup = legno_group <
+legno = \context StaffGroup = legno_group <
\$flauti_staff
\$oboi_staff
\$clarinetti_staff
\$fagotti_staff
>
-koper = \type StaffGroup = koper_group <
+koper = \context StaffGroup = koper_group <
\$corni_staff
\$trombe_staff
>
-$timpani_g = \type StaffGroup = timpani_group <
+$timpani_g = \context StaffGroup = timpani_group <
\$timpani_staff
- \type Staff = urgtimpany \notes{ \skip 1*34; }
+ \context Staff = urgtimpany \notes{ \skip 1*34; }
>
-$violini = \type GrandStaff = violini_group <
+$violini = \context GrandStaff = violini_group <
\$violino1_staff
\$violino2_staff
>
-$violi = \type GrandStaff = violi_group <
+$violi = \context GrandStaff = violi_group <
\$viola1_staff
\$viola2_staff
>
-$bassi = \type GrandStaff = bassi_group <
+$bassi = \context GrandStaff = bassi_group <
\$violoncello_staff
\$contrabasso_staff
>
-strijkers = \type StaffGroup = strijkers_group <
+strijkers = \context StaffGroup = strijkers_group <
\$violini
\$violi
\$bassi
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "corni.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "corno-1.ly"
\include "corno-2.ly"
-$corni_staff = \type Staff = corni <
+$corni_staff = \context Staff = corni <
\property Staff.midi_instrument = "french horn"
\property Staff.instrument = "2 Corni (E\\textflat)"
\property Staff.instr = "Cor. (E\\textflat)"
% urg: can't; only My_midi_lexer:<non-static> () parses pitch?
%\property Staff.transposing = "es"
\property Staff.transposing = 3
- \notes \type Voice=corni <
+ \notes \context Voice=corni <
\time 4/4;
\$corno1
\$corno2
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
corno1 = \notes \relative c {
R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
corno2 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "fagotti.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "fagotto-1.ly"
\include "fagotto-2.ly"
-$fagotti_staff = \type Staff = fagotti <
+$fagotti_staff = \context Staff = fagotti <
\property Staff.midi_instrument = "bassoon"
\property Staff.instrument = "2 Fagotti"
\property Staff.instr = "Fg."
\clef "bass";
- \notes \type Voice=fagotti <
+ \notes \context Voice=fagotti <
\global
\$fagotto1
\$fagotto2
}
-\version "1.0.14";
+\version "1.0.16";
fagotto1 = \notes \relative c {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
fagotto2 = \notes \relative c {
R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "flauti.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "flauto-1.ly"
\include "flauto-2.ly"
-$flauti_staff = \type Staff = flauti <
+$flauti_staff = \context Staff = flauti <
\property Staff.midi_instrument = "flute"
\property Staff.instrument = "2 Flauti"
\property Staff.instr = "Fl."
- \notes \type Voice=flauti <
+ \notes \context Voice=flauti <
\global
\$flauto1
\$flauto2
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
flauto1 = \notes \relative c {
R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
flauto2 = \notes \relative c {
R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
global = \notes {
\time 4/4;
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
oboe1 = \notes \relative c'' {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
oboe2 = \notes \relative c{
R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "oboi.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "oboe-1.ly"
\include "oboe-2.ly"
-$oboi_staff = \type Staff = oboi <
+$oboi_staff = \context Staff = oboi <
\property Staff.midi_instrument = "oboe"
\property Staff.instrument = "2 Oboi"
\property Staff.instr = "Ob."
- \notes \type Voice=oboi <
+ \notes \context Voice=oboi <
\global
\$oboe1
\$oboe2
}
-\version "1.0.14";
+\version "1.0.16";
timpani = \notes \relative c {
R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
%35
}
-$timpani_staff = \type Staff = timpani <
+$timpani_staff = \context Staff = timpani <
\property Staff.midi_instrument = "timpani"
\property Staff.instrument = "2 Timpani (C-G)"
\property Staff.instr = "Timp."
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "trombe.ly"
}
-\version "1.0.14";
+\version "1.0.16";
\include "trombo-1.ly"
\include "trombo-2.ly"
-$trombe_staff = \type Staff = trombe <
+$trombe_staff = \context Staff = trombe <
\property Staff.midi_instrument = "trumpet"
\property Staff.instrument = "2 Trombe (C)"
\property Staff.instr = "Tbe."
- \notes \type Voice=trombe <
+ \notes \context Voice=trombe <
% \global
\time 4/4;
\$trombo1
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
trombo1 = \notes \relative c {
R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
trombo2 = \notes \relative c {
R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
viola1 = \notes \relative c {
- \type Voice=one
+ \context Voice=one
c'1\ff ~ | c | f,4-. r r2 | r1 |
% copied 3 bars from three back...
%5
\include "viola-2.ly";
-% $viola1_staff = \type Staff = viola1 <
-$viola1_staff = \type Staff = violai <
+% $viola1_staff = \context Staff = viola1 <
+$viola1_staff = \context Staff = violai <
\property Staff.midi_instrument = "viola"
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\clef "alto";
- \notes \type Voice=one <
+ \notes \context Voice=one <
\global
\$viola1
>
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
viola2 = \notes \relative c {
% starts on (actualy, most part is on) same staff as viola1
%urg, parse error
%urg \translator Staff=viola1
\translator Staff=violai
- \type Voice=one
+ \context Voice=one
c1 ~ | c | s1*2 |
% copied 3 bars from three back...
c ~ | c | s1*2 % |
[as'16\ff as a as][as as as as]as2:16 |
}
-% $viola2_staff = \type Staff = viola_2 <
-$viola2_staff = \type Staff = violaii <
+% $viola2_staff = \context Staff = viola_2 <
+$viola2_staff = \context Staff = violaii <
\property Staff.midi_instrument = "viola"
\property Staff.instrument = "Viola II"
\property Staff.instr = "Vla. II"
\clef "alto";
- \notes \type Voice=one<
+ \notes \context Voice=one<
\global
\$viola2
>
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "viola-1.ly"
\include "viola-2.ly"
-$viola_staff = \type Staff = violai <
+$viola_staff = \context Staff = violai <
\property Staff.midi_instrument = "viola"
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\clef "alto";
- \notes \type Voice=one <
+ \notes \context Voice=one <
\global
\$viola1
\$viola2
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "violino-1.ly"
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
violino1 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
c4 r r2 |
}
-$violino1_staff = \type Staff = violino1 <
+$violino1_staff = \context Staff = violino1 <
\property Staff.midi_instrument = "violin"
\property Staff.instrument = "Violino I"
\property Staff.instr = "Vl. I"
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "violino-2.ly"
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
violino2 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
c4 r r2 |
}
-$violino2_staff = \type Staff = violino2 <
+$violino2_staff = \context Staff = violino2 <
% MIDI hoort geeneens verschil tussen een
% eerste en tweede viool ;-)
\property Staff.midi_instrument = "violin"
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "violoncello.ly"
}
-\version "1.0.14";
+\version "1.0.16";
violoncello = \notes \relative c {
c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
c4 r r2 |
}
-$violoncello_staff = \type Staff = violoncello <
+$violoncello_staff = \context Staff = violoncello <
\property Staff.midi_instrument = "cello"
\property Staff.instrument = "Violoncello"
\property Staff.instr = "Vc."
\clef "bass";
- \notes \type Voice=one<
+ \notes \context Voice=one<
\global
\$violoncello
>
% vOne is right hand outside part, vTwo r.h. inside part,
% vThree left hand outside, vFour l.h. inside.
\notes {
- \type Staff=staffOne <
+ \context Staff=staffOne <
\property Staff.nolines=11
\property Voice.pletvisibility=0
\time 2/2;
\clef alto;
- \type Voice=vOne <{
+ \context Voice=vOne <{
% 1
\stemup s1
% 2
% 94
e'2 e'2
}>
- \type Voice=vTwo <
+ \context Voice=vTwo <
{
%- right hand unchorded notes -
}>
- \type Voice=vThree <{
+ \context Voice=vThree <{
% 1
\stemdown s2. [e''16 d'' c'' b'] |
% 2
% 90
b2 a4
} >
- \type Voice=vFour <
+ \context Voice=vFour <
{
%- left hand unchorded notes -
}
% vOne is right hand outside part, vTwo r.h. inside part,
% vThree left hand outside, vFour l.h. inside.
\notes {
- \type Staff=staffOne <
+ \context Staff=staffOne <
\property Staff.nolines=11
\keysignature bes;
\time 4/4;
\clef alto;
- \type Voice=vOne <
+ \context Voice=vOne <
{
% 1
\stemup \skip 4..*15/7; g'16 |
s4. c'8 s4 ees'16
}
>
- \type Voice=vTwo <
+ \context Voice=vTwo <
{
s1 s s s s s s s s s
% 11
% 40
[fis'16 a' bes' g']~[g' c'' a'd'] <g'4 bes'>
} >
- \type Voice=vThree <
+ \context Voice=vThree <
{
% 1
\stemdown \skip 4..*23/7;
% 29
b'16}
>
- \type Voice=vFour <
+ \context Voice=vFour <
{
\stemdown \skip 4..*74/7;
% 5
----------------------------------------------------
+\version "1.0.16";
% vOne is right hand outside part, vTwo r.h. inside part,
% vThree left hand outside, vFour l.h. inside.
\notes {
-\type Staff = staffOne <
+\context Staff = staffOne <
\property Staff.nolines=11
\keysignature bes;
\time 4/4;
\clef alto;
-\type Voice = vOne <
+\context Voice = vOne <
{
% 1
\stemup [d''16 e'' f'' g''] [a'' a' cis'' a'] d''4. e''8 |
% 29
s8 f'' s cis''
} >
-\type Voice = vTwo <
+\context Voice = vTwo <
{s1 s s s s
%6
\stemdown s2 d'16 s s4. |
%29
s2 d''8}
>
-\type Voice = vThree <
+\context Voice = vThree <
{
% 1
\stemdown s2 [d'16 e' f' g'] [a' a cis' a] |
% 28
s2 s8 f'' s cis'' |
} >
-\type Voice = vFour <
+\context Voice = vFour <
{s1 s s s s s s s s
%10
\stemdown d''16 s s4. a'16 s s4. |
\paper{barsize=50.0; \translator {\StaffContext \consists
Bar_number_engraver;}}
}
+\version "1.0.16";
% vOne is right hand outside part, vTwo r.h. inside part,
% vThree left hand outside, vFour l.h. inside.
\notes {
- \type Staff=staffOne <
+ \context Staff=staffOne <
\property Staff.nolines=11
\property Voice.pletvisibility=0
\keysignature fis;
\time 3/8;
\clef alto;
- \type Voice=vOne <{
+ \context Voice=vOne <{
%1
\stemup [g''8 g' g'] |
% 2
%6
d4
}>
- \type Voice=vThree <{
+ \context Voice=vThree <{
% 1
\stemdown s4. |
% 2
Bar_number_engraver;}}
}
+\version "1.0.16";
\score {
\notes
- \type PianoStaff <
- \type Staff = upper <\type Voice = mainV <{
+ \context PianoStaff <
+ \context Staff = upper <\context Voice = mainV <{
% 1
\stemup s1
s4 [e'16 d' c' b] a4 s |
s4 c'' g'
<
{ f''4 e'' c'' d'' b' c''2. }
- \type Voice = anotherV { a'4 g'2 f'2 e'2. }
+ \context 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 }
+ \context Voice = anotherV { \stemdown g'2 fis'2 }
>
|
bes'4 s2 [d'16 c' bes a] |
s4 d'' a' f'' |
<
{ f''4 e'' e'' d'' }
- \type Voice = anotherV { \stemdown bes'2 bes'2 }
+ \context Voice = anotherV { \stemdown bes'2 bes'2 }
> |
< a'4 cis''> s2. |
\RHtoL s4 a' gis' g' |
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'> }
+ < \context Voice = mainV { c''4 d'' s2 }
+ \context 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'> } |
+ < \context Voice = mainV { c''4 d'' s2 }
+ \context 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.
}>>
- \type Staff = lower <{
+ \context Staff = lower <{
\stemdown s2. [e''16 d'' c'' b'] |
}
+\version "1.0.16";
% vOne is right hand outside part, vTwo r.h. inside part,
% vThree left hand outside, vFour l.h. inside.
\notes {
- \type Staff=staffOne <
+ \context Staff=staffOne <
\property Staff.nolines=11
\keysignature bes;
\time 4/4;
\clef alto;
- \type Voice=vOne <
+ \context Voice=vOne <
{
% 1
\stemup \skip 4..*15/7; g'16 |
s4. c'8 s4 ees'16
}
>
- \type Voice=vTwo <
+ \context Voice=vTwo <
{
s1 s s s s s s s s s
% 11
% 40
[fis'16 a' bes' g']~[g' c'' a'd'] <g'4 bes'>
} >
- \type Voice=vThree <
+ \context Voice=vThree <
{
% 1
\stemdown \skip 4..*23/7;
% 29
b'16}
>
- \type Voice=vFour <
+ \context Voice=vFour <
{
\stemdown \skip 4..*74/7;
% 5
\paper{barsize=50.0; \translator {\StaffContext \consists
Bar_number_engraver;}}
}
+\version "1.0.16";
under the Gnu Public Licence.
%}
-\version "1.0.14";
+\version "1.0.16";
$voice_one = \notes \relative c' {
a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
recorder= {
% For three recorders.
%
- \type StaffGroup
+ \context StaffGroup
<
- \type Staff = descant {
+ \context Staff = descant {
\property Staff.Instrument = "Descant"
\clef "G^8";
\notes \transpose bes' {\global \$voice_one }
}
- \type Staff = treble {
+ \context Staff = treble {
\property Staff.Instrument = "Treble"
\clef "G";
\notes \transpose bes' {\global \$voice_two }
}
- \type Staff = lower {
+ \context Staff = lower {
\property Staff.Instrument = "Tenor or Treble II"
\clef "G";
\notes \transpose bes'' {\global \$voice_three }
% Try to make parts cross staves as apropriate.
%
organ={
- \type GrandStaff
+ \context GrandStaff
<
- \type Staff = treble {
+ \context Staff = treble {
\clef "G";
\global
- \type Staff <
+ \context Staff <
{ \voiceone \$voice_one }
{ \voicetwo \$voice_two }
>
}
- \type Staff = bass {
+ \context Staff = bass {
\clef "F"; \global \$voice_three
}
>
Tested Features: cross staff beams and slurs, grace notes, no bars
%}
-\version "1.0.14";
+\version "1.0.16";
\include "nederlands.ly"
\bar ".|";
}
-upper = \type Staff=treble \notes\relative c''{
+upper = \context Staff=treble \notes\relative c''{
\clef violin;
\stemup
- \type Voice=one
+ \context 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
+ < { [es8 )c] } \context 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
+ < { [es8 )c] } \context 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
+ < { [e8*1/2 )g,8] } \context 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
+ < { [e8*1/2 )g,8] } \context 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
+ < { [a8*1/2 a8] } \context 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
+ < { [es8 )c] } \context 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
+ < { [g8*1/2 )e8] } \context 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
+ < { [g8*1/2 )e8] } \context 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
% [s2] [s2] [s2]
}
-lower = \type Voice=two \notes \relative c{
+lower = \context Voice=two \notes \relative c{
\stemdown
\property Staff.slurydirection = 1
}
\score {
- \type GrandStaff <
- \type Staff = treble <
+ \context GrandStaff <
+ \context Staff = treble <
\global
\upper
>
- \type Staff = bass <
+ \context Staff = bass <
\global
\clef bass;
\lower
Tested Features:
%}
-\version "1.0.14";
+\version "1.0.16";
\include "nederlands.ly"
\bar ".|";
}
-i = \type Staff \notes\relative c''{
- \type Voice=i
+i = \context Staff \notes\relative c''{
+ \context Voice=i
\stemup
c8.( es16 bes4 ~ | )bes8 r c8.( bes16 | des4 c8. bes16 | c4 ~ ) c8 r |
}
-ii = \type Staff \notes\relative c'{
- \type Voice=ii
+ii = \context Staff \notes\relative c'{
+ \context Voice=ii
\stemdown
r8 <es as> r <des f> | r <es g> r <es as> | r <f as> r <f as> |
}
-lower = \type Staff \notes \relative c{
- \type Voice=iii
+lower = \context Staff \notes \relative c{
+ \context 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'> |
}
\score {
- \type GrandStaff <
- \type Staff = treble <
+ \context GrandStaff <
+ \context Staff = treble <
\global
\clef violin;
\i
\ii
>
- \type Staff = bass <
+ \context Staff = bass <
\global
\clef bass;
\lower
}
-\version "1.0.14";
+\version "1.0.16";
\include "paper16.ly";
\include "paper13.ly";
%5
b2. g4 |
%6
- g( )fis \type Staff < {\voiceone r2}{\voicetwo r4 a4}> |
+ g( )fis \context Staff < {\voiceone r2}{\voicetwo r4 a4}> |
%7
g2. e4 |
%8
%18
r1 |
%19
- d2. \type Staff < {\voiceone b8 ~ g8} {\voicetwo [b8 g8]} > |
+ d2. \context Staff < {\voiceone b8 ~ g8} {\voicetwo [b8 g8]} > |
%20
\property Voice.slurdash = 2
fis4( )e \property Voice.slurdash = ""
- \type Staff < {\voiceone r2}{\voicetwo r4 e4} > |
+ \context Staff < {\voiceone r2}{\voicetwo r4 e4} > |
%21
c'2. [b16( a g )fis] |
%22
- e4( )d \type Staff <{\voiceone r2} {\voicetwo r4 d4}> |
+ e4( )d \context Staff <{\voiceone r2} {\voicetwo r4 d4}> |
%23
d2 d'2 |
%24
\property Staff.timeSignatureStyle = "C"
}
-Piano=\type GrandStaff = piano {
+Piano=\context GrandStaff = piano {
\property GrandStaff.instrument="Piano"
<
- \type Staff=RH {\global \pianoRH }
- \type Staff=LH {\global \pianoLH }
+ \context Staff=RH {\global \pianoRH }
+ \context Staff=LH {\global \pianoLH }
>
}
>
Vocals= <
- \type Staff = vocal <
+ \context Staff = vocal <
\notes \transpose c {\clef "F"; \global\tune}
-% {\type Lyrics = vocal \EnglishWords}
- {\type Lyrics = vocal \GermanWords}
+% {\context Lyrics = vocal \EnglishWords}
+ {\context Lyrics = vocal \GermanWords}
>
>
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
\include "standchen.ly"
description = "A schubert song in 20 pt";
}
-\version "1.0.14";
+\version "1.0.16";
% fool make-website
% \include "standchen.ly";
Note: Original key F.
%}
-\version "1.0.14";
+\version "1.0.16";
$vocal_verse1 = \notes\relative c''{
% ugh: treble/bass
% ugh ugh: connecting chords
%65
< { d,2.\f a'2} { e2. ~ e2 } { b'2. c,2 }> r4 |
- \type Staff <
+ \context Staff <
{
\voiceone
[a8. b16] c4-> ~ a8 r |
\$lyric_through
}
-$lyric_staff = \type Lyrics = lyric<
+$lyric_staff = \context Lyrics = lyric<
\allLyrics
>
\$vocal_through
}
-$vocal_staff = \type Staff = vocal<
+$vocal_staff = \context Staff = vocal<
\property Staff.instrument = "alto sax"
\global
\$vocals
\$treble_through
}
-$treble_staff = \type Staff = treble<
+$treble_staff = \context Staff = treble<
\global
\treble
>
\$bass_through
}
-$bass_staff = \type Staff = bass<
+$bass_staff = \context Staff = bass<
\global
\bass
>
-$grand_staff = \type GrandStaff<
+$grand_staff = \context GrandStaff<
\$treble_staff
\$bass_staff
>
title = "Diademata";
metre = "6 6. 8 6. D";
}
-\version "1.0.14";
+\version "1.0.16";
sop=\notes \transpose c''{
ees2 | ees4 ees4 g2 g2 | c'1. \bar "||";
\key ees;
}
-$upper_staff = \type Staff = upper {
+$upper_staff = \context Staff = upper {
\global
\clef "treble";
- \type Staff <
+ \context Staff <
{ \voiceone \sop }
{ \voicetwo \alt }
>
}
-$lower_staff = \type Staff = lower {
+$lower_staff = \context Staff = lower {
\global
\clef "bass";
- \type Staff <
+ \context Staff <
{ \voiceone \ten }
{ \voicetwo \bass }
>
}
\score{
- \type ChoirStaff\notes <
+ \context ChoirStaff\notes <
\$upper_staff
\$lower_staff
>
metre = "10 10 . 11 11";
}
-\version "1.0.14";
+\version "1.0.16";
sop = \notes \transpose c''{
f4 | d' bes c' | f2 \bar "||";
\score {
<
- \type Staff=top {
+ \context Staff=top {
\global \clef "G";
- \type Staff <
+ \context Staff <
\notes{\voiceone \sop }
\notes{\voicetwo \alto }
>
}
- \type Staff=bottom {
+ \context Staff=bottom {
\global \clef "F";
- \type Staff <
+ \context Staff <
\notes{\voiceone \tenor}
\notes{\voicetwo \bass }
>
metre = "10 11. 11 11. and refrain";
}
-\version "1.0.14";
+\version "1.0.16";
sop=\notes \relative c'' {
b2 gis4. a8 |b2 e,2 |
\key E;
}
-$upper_staff = \type Staff = upper {
+$upper_staff = \context Staff = upper {
\global
\clef "treble";
- \type Staff <
+ \context Staff <
{\voiceone \sop }
{\voicetwo \alt }
>
}
-$lower_staff = \type Staff = lower {
+$lower_staff = \context Staff = lower {
\global
\clef "bass";
- \type Staff <
+ \context Staff <
{\voiceone \ten }
{\voicetwo \bass }
>
metre = "8 7 8 7 D";
}
-\version "1.0.14";
+\version "1.0.16";
sop=\notes \relative c'' {
b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
\key G;
}
-$upper_staff = \type Staff = upper \notes {
+$upper_staff = \context Staff = upper \notes {
\global
\clef "G";
- \type Staff <
+ \context Staff <
{\voiceone \sop}
{\voicetwo \alto}
>
\bar "|.";
}
-$lower_staff = \type Staff = lower \notes {
+$lower_staff = \context Staff = lower \notes {
\global
\clef "F";
- \type Staff <
+ \context Staff <
{\voiceone \tenor}
{\voicetwo \bass }
>
enteredby = "Peter Chubb";
}
-\version "1.0.14";
+\version "1.0.16";
sop=\notes \transpose c'' {
\repeat 2 {
\score{
<
- \type Staff = "top" {
+ \context Staff = "top" {
\clef "treble";
\global
- \type Staff <{\voiceone \sop}{\voicetwo \alt} >
+ \context Staff <{\voiceone \sop}{\voicetwo \alt} >
}
- \type Staff = "bottom" {
+ \context Staff = "bottom" {
\clef "bass";
\global
- \type Staff < {\voiceone \ten}{\voicetwo \bass} >
+ \context Staff < {\voiceone \ten}{\voicetwo \bass} >
}
>
}
-\version "1.0.14";
+\version "1.0.16";
global=\notes {
\time 6/4;
upper= \notes {
- \type Staff = upper {
+ \context Staff = upper {
\clef "treble"; \global
- \type Staff <
+ \context Staff <
{ \voiceone \sop }
{ \voicetwo \alt }
>
}
lower = \notes {
- \type Staff = lower {
+ \context Staff = lower {
\clef "bass"; \global
- \type Staff <
+ \context Staff <
{ \voicethree \ten }
{ \voicefour \bass }
>
}
\score {
- \type ChoirStaff
+ \context ChoirStaff
<
- { \type Lyrics = top \chords }
+ { \context Lyrics = top \chords }
\upper
- { \type Lyrics = upper \v1 }
- { \type Lyrics = upper \v2 }
- { \type Lyrics = upper \v3 }
+ { \context Lyrics = upper \v1 }
+ { \context Lyrics = upper \v2 }
+ { \context Lyrics = upper \v3 }
\lower
>
}
piece = "Allemande";
}
-\version "1.0.14";
+\version "1.0.16";
global = \notes{
\time 4/4;
[c16 d es8][f,16 es' d c][d es f8][g,16 f' es d] |
[es16 f g8][as,16 g' f es][f g as8][b,16 as' g f] |
%5
- \type Staff < {
+ \context Staff < {
\stemup es4~ [es8. c16] d4~ [d8. b16] |
c4.~ [c16 b] c4~ [c16 c bes as] |
\stemboth [g c32 d es16 c][g8 as] \stemup bes4~ [bes8 g'~] |
[bes d g bes~][bes fis g bes,][c es g bes~][bes fis g c,] |
[d fis g bes~][bes fis g d][es fis g bes~][bes fis g bes] |
[e a, bes fis][g bes a g][fis d es bes][c es d c] |
- \type Staff <
+ \context Staff <
{ \stemup [bes8 d'][bes a16 g] g4~ g16 }
{ \stemup s2 s16 d8.~ d16 }
{ \stemdown r8 <g d> <[g d><fis c>] r16 [d16 b8~] b16 }
[c8 es'( as, )g][d f'( as, )g] |
[es g'( as, )g][f as'16( g][as g fis )g] |
fis4.~ [fis16 e32 fis][g16 d f es][d c b a] |
- \type Staff <
+ \context Staff <
{ \stemup [g8 g'][es d16 c] c4. }
{ \stemdown r8 <g c es> <[g c> <f b>] <es4. g> }
> s8
%5
[c8 es][f, as][b, d][es, g] |
[as f][g g'][c, g']
- \type Staff <
+ \context Staff <
{ \stemup [c8 d] | es4 }
{ \stemdown c4 ~ | [c8. g32 f] }
>
<cis4 cis,> r8 cis8 [d a][fis d] |
%16
[g16 a bes c][d8 d,]
- \type Staff <
+ \context Staff <
{ \stemup r8 r16 d' g }
{ \stemdown g,4~ g16 }
>
}
\score{
- \type GrandStaff <
- \type Staff = treble <
+ \context GrandStaff <
+ \context Staff = treble <
\global
\hoyreEn
>
- \type Staff = bass <
+ \context Staff = bass <
\global
\venstreEn
>
%%
%% Noe liknende skjer også i mellom andre og tredje stemme i takt 28
-\version "1.0.14";
+\version "1.0.16";
global = \notes{
\time 2/4;
\bar "|.";
}
-vOne = \type Voice = voiceOne \notes\relative c''{
+vOne = \context Voice = voiceOne \notes\relative c''{
r8 g c4~ |
[c8 d16 c][b a g f] |
[es8 g' d, f'] |
<c2 g es>
}
-vTwo = \type Voice = voiceTwo \notes\relative c{
+vTwo = \context Voice = voiceTwo \notes\relative c{
es4 r8 es |
f4 r8 bes |
c4. b8 |
\property Voice.hshift = 0
c4 b8 |
}
-vThree = \type Voice = voiceThree \notes\relative c{
+vThree = \context Voice = voiceThree \notes\relative c{
\stemdown
c4 r8 c |
d4 r |
<c2 c,>
}
-vOneSwitch = \type Voice = voiceOne \notes{
+vOneSwitch = \context Voice = voiceOne \notes{
s2*4
%5
\stemup s2*17
\stemboth
}
-vTwoSwitch = \type Voice = voiceTwo \notes{
+vTwoSwitch = \context Voice = voiceTwo \notes{
\stemup s2*4
%5
\stemdown \translator Staff = treble s2*17
\translator Staff = treble \stemdown s2*35
}
-vThreeSwitch = \type Voice = voiceThree \notes{
+vThreeSwitch = \context Voice = voiceThree \notes{
\stemdown s2*6
%7
\stemboth s2*21
}
\score{
- \type GrandStaff<
- \type Staff = treble <
+ \context GrandStaff<
+ \context Staff = treble <
\global
\vOneSwitch
\vOne
>
- \type Staff = bass <
+ \context Staff = bass <
\clef bass;
\global
\vTwoSwitch
copyright = "Public Domain";
}
-\version "1.0.14";
+\version "1.0.16";
global = \notes {
\time 4/4;
[as8. as16] [as16 g32 f g16. d32] es4 r16 [g g. as32] |
%3
bes4 r16 [bes,16 bes. c32] [des8. des16]
- \type Staff <
+ \context Staff <
{ \stemup e4 }
{ \stemup \property Voice.hshift = 1 [des16 c32 bes c16. g32] }
>
c4 ~ [c32 es des c des16. f32] [b,16. c32 b16. c32] d4 ~ |
d2 ~ [d16. g,32 a16. b32] [c16. <b32 g> <c16. a> <d32 b>] |
<[es8. c> <es16 c>]
- \type Staff <
+ \context Staff <
{ \stemup fis4 }
{ \stemup \property Voice.hshift = 1 [es16 d32 c d16. a32] }
> g2
<c as f> r r16 <[as d,><as. d,><g32 d>] <g4 d> |
%5
r16 <[g c,><g. c,><f32 c>]
- \type Staff <
+ \context Staff <
{\stemup f4~ f}
{\stemup c4 d}
> r16 [f f. g32] |
\stemdown
c4 r c r | r c c r | c r r c | c r r16 [c c. bes32] bes4 |
r16 [bes bes. as32] as4_"tr" g r16 [d' d. es32] |
- \type Staff <
+ \context Staff <
{ \stemdown \property Voice.hshift = 1 [f8. f16] [b,8. b16] g4 r | }
{ \stemdown s4 g}
>
[bes'8-\fermata~ bes32 a g fis] [g bes a g fis e d c] [bes d c es d g fis e]
[d c bes a bes d bes g] |
r16 [e'32 fis fis16.-\prall \times 2/3 { e64 fis g] }
- \type Staff <
+ \context Staff <
{ \stemup
[bes,32 a g fis g32 bes16.~] [bes16 c32 bes a bes c a] [fis8. g16] }
{ \stemdown s8 g8 ~ g4 d}
%26
[c16 d32 es f g as bes] [c16 c, c'8~] [c32 c, d es f g as bes][c16 c, c'8~]|
[c c,] [bes bes'] [fis d] [g es] |
- \type Staff <
+ \context Staff <
{ \stemup <g4 e> r <d'2 bes g> |
cis4~ [cis8. cis16] [d8 c16 bes]
- \type Staff <
+ \context Staff <
{ \stemup [a bes c8] }
{ \stemdown a4 } >
| }
[c g' c, bes] [c d e f] [es g c, bes] |
[c g' f e] [f c f g] [as bes c d] | [es d c d] [es8 f16 g] [as8 des,] |
[f b,] [d g,] [g'16 f es d] |
- \type Staff <
+ \context Staff <
{ \stemup [es8. c16] c4 ~ [b8.-\prall c16] | c2-\fermata }
{ \stemdown r8 r16 <a16 es> <g2 d> | <g es> }
>
allegroTo = \notes\relative c'{
\clef bass;
%30
- \type Staff <
+ \context Staff <
{ \stemup <b8 g> r r4 r }
{ \stemdown g,8 r8 r4 r }
>
}
\score {
- \type GrandStaff <
- \type Staff = treble <
+ \context GrandStaff <
+ \context Staff = treble <
\global
{ \hoyreOpp \andanteEn \allegroEn }
\hoyreNed
>
- \type Staff = bass <
+ \context Staff = bass <
\global
{ \venstreOpp \andanteTo \allegroTo }
\venstreNed
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
-% upper = \type Staff \notes\relative c {
-upper = \type Staff=upper \notes\relative c {
- \type Voice=i
+% upper = \context Staff \notes\relative c {
+upper = \context Staff=upper \notes\relative c {
+ \context Voice=i
\property Voice . textstyle = "italic"
% rediculous dim...
% r16\p_"legato"\< g''-1( c-3 )e-5 r g,-1( c )e
% ugh arpeggio
<
{ \stemup f4 r }
- \type Voice=ii { \stemdown <g,4 d'> r }
+ \context Voice=ii { \stemdown <g,4 d'> r }
>
\stemboth
\translator Staff=lower\stemup
es-2 fis-3 a-4 c-5
<
{ \stemup r c8 b16 }
- \type Voice=ii { \stemdown d,8 f-2 }
+ \context Voice=ii { \stemdown d,8 f-2 }
>
\stemboth |
<c1\mf g e>
\bar "|.";
}
-% lower = \type Staff \notes\relative c{
-lower = \type Staff=lower \notes\relative c{
- \type Voice=i
+% lower = \context Staff \notes\relative c{
+lower = \context Staff=lower \notes\relative c{
+ \context 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 |
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 }
+ \context Voice=ii { \stemdown g,1 ~ g ~ g ~ g ~ g ~ g ~ g }
>
<c,1 c,>
\bar "|.";
\score{
% Moderato
- \type GrandStaff <
- \type Staff = upper <
+ \context GrandStaff <
+ \context Staff = upper <
\global
\upper
>
- \type Staff = lower <
+ \context Staff = lower <
\global
\clef "bass";
\lower
copyright = "public domain";
}
-\version "1.0.14";
-upper = \type Staff \notes\relative c{
- \type Voice=i
+\version "1.0.16";
+upper = \context Staff \notes\relative c{
+ \context 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 |
<
{\stemup )e2-4\f r4 e-5 }
- \type Voice = ii {\stemdown <c2 g > r4 <c g > }
+ \context Voice = ii {\stemdown <c2 g > r4 <c g > }
>
\stemboth |
<
{ \stemup d2-4 r4 d-4 }
- \type Voice = ii { \stemdown <c2 a > r4 <c a > }
+ \context Voice = ii { \stemdown <c2 a > r4 <c a > }
>
\stemboth |
<
{ \stemup d8 }
- \type Voice = ii { \stemdown <b 8 g > }
+ \context Voice = ii { \stemdown <b 8 g > }
>
\stemboth
g, 8-1\mf( b-2 d-4
<
{ \stemup )b 4 e-5 }
- \type Voice = ii { \stemdown g, 4 b }
+ \context Voice = ii { \stemdown g, 4 b }
>
\stemboth |
<
{ \stemup c2 r4 < {c-5 ~ c8} {a 4 ~ a 8} > }
- \type Voice=ii { \stemdown c2 r4 e, 4 ~ e 8 }
+ \context Voice=ii { \stemdown c2 r4 e, 4 ~ e 8 }
>
\stemboth
d,-1\p( fis-2 a-4 fis-2 d-1 c'-5 a-3 |
)fis-4 a,-1( c-2 fis-4 c a a'-5 \!fis-3 |
<
{ \stemup )g2-5\f }
- \type Voice = ii { \stemdown <d2 b > }
+ \context Voice = ii { \stemdown <d2 b > }
>
\stemboth
r4 b4-2( |
g4-5\ff
<
{ \stemup c,2-5 b 4-4 }
- \type Voice=ii { \stemdown g 2-2 d 4-1 }
+ \context Voice=ii { \stemdown g 2-2 d 4-1 }
>
\stemboth
<
{ \stemup c1^5 }
- \type Voice=ii { \stemdown e, 1_1}
+ \context Voice=ii { \stemdown e, 1_1}
>
\stemboth
\bar "|.";
}
-lower = \type Staff \notes\relative c{
- \type Voice=i
+lower = \context Staff \notes\relative c{
+ \context Voice=i
<
{ \stemup c1 ~ | c ~ | c }
- \type Voice=ii { \stemdown c,1 ~ | c ~ | c }
+ \context Voice=ii { \stemdown c,1 ~ | c ~ | c }
>
\stemboth |
r8 c-5( e-3 g-1 e-3 c-5 c' e,-4 |
}
\score{
- \type GrandStaff <
- \type Staff = upper <
+ \context GrandStaff <
+ \context Staff = upper <
\global
\upper
>
- \type Staff = lower <
+ \context Staff = lower <
\global
\clef "bass";
\lower
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
-one = \type Staff \notes\relative c {
- \type Voice=i
+one = \context Staff \notes\relative c {
+ \context Voice=i
\property Voice . textstyle = "italic"
% r16\p_"legato"
r16\p
\bar "|.";
}
-two = \type Staff \notes\relative c{
- \type Voice=ii
+two = \context Staff \notes\relative c{
+ \context Voice=ii
\stemup
\property Voice . textstyle = "finger"
fis4-1( e8-2 a4 a4 gis8-2 |
\translator Staff=lower \stemup
<
{ \stemup d8-2 a~ a4 }
- \type Voice=ii { \stemdown a8-1 g fis16-2 e-1 fis-2 d-1 }
+ \context Voice=ii { \stemdown a8-1 g fis16-2 e-1 fis-2 d-1 }
>
\stemup
g-1 fis-2 g-1 a-2 g-1 b-3 a-2 g-1 ~ |
}
three = \notes\relative c{
- \type Voice=iii
+ \context 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
d a-2~ a16 a-2 b cis-2 d2 |
}
-four = \type Staff \notes\relative c{
+four = \context Staff \notes\relative c{
\skip 1*9;
- \type Voice=iv
+ \context Voice=iv
\stemup
\property Voice.hshift = 1
%10
\score{
% Allegretto
- \type GrandStaff <
- \type Staff = upper <
+ \context GrandStaff <
+ \context Staff = upper <
\global
\one
\four
>
- \type Staff = lower <
+ \context Staff = lower <
\global
\clef "bass";
\two
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
-upper = \type Staff \notes\relative c{
+upper = \context Staff \notes\relative c{
\property Voice . textstyle = "italic"
- \type Voice=i
+ \context 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 |
c4-\mordent^"(\\textsharp)" r r
\property Voice . textstyle = "italic"
}
- \type Voice=ii { \stemdown a4 r r | a4 r r }
+ \context Voice=ii { \stemdown a4 r r | a4 r r }
> |
\stemboth
a'8\mf( es-3\> d c bes!-3 a |
% cis8-\prall e8-5-"poco cresc." cis-3 a e' cis
cis8-\prall e8-5 cis-3 a e' cis
}
- \type Voice=ii { \stemdown a4 }
+ \context Voice=ii { \stemdown a4 }
>
\stemboth
a8 e'-5 cis a bes!-3 a |
\stemup
f4-4\> ~ | [\!f8 e] [e32-4 f e8.] ~ [e8 d-3]
}
- \type Voice=ii { \stemdown <d4 a> r4 cis-2 }
+ \context Voice=ii { \stemdown <d4 a> r4 cis-2 }
> |
\stemboth
d8-4 c!-3 a-1 d-4 bes-2 g-1 |
a-5 fis d g-5 e cis-2 |
<
{ \stemup <fis2-.-5\p a,> }
- \type Voice=ii { \stemdown [d32( cis d8.] ~ ) d2 }
+ \context Voice=ii { \stemdown [d32( cis d8.] ~ ) d2 }
> |
\bar "|.";
}
-lower = \type Staff \notes\relative c{
- \type Voice=i
+lower = \context Staff \notes\relative c{
+ \context Voice=i
% d32( cis )d8. r4 r |
d4-\mordent r r |
d,4 r r |
\score{
% Moderato
- \type GrandStaff <
- \type Staff = upper <
+ \context GrandStaff <
+ \context Staff = upper <
\global
\upper
>
- \type Staff = lower <
+ \context Staff = lower <
\global
\clef "bass";
\lower
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.14";
+\version "1.0.16";
-one = \type Staff \notes\relative c{
- \type Voice=i
+one = \context Staff \notes\relative c{
+ \context Voice=i
\skip 1; |
\stemup
r4 d''2-5( cis4-4 |
\bar "|.";
}
-two = \type Staff \notes\relative c{
- \type Voice=ii
+two = \context Staff \notes\relative c{
+ \context 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
fis1-2
}
-three = \type Staff \notes\relative c{
- \type Voice=iii
+three = \context Staff \notes\relative c{
+ \context Voice=iii
\stemup
f2-1( e-2 |
\stemboth
\bar "|.";
}
-four = \type Staff \notes\relative c{
- \type Voice=iv
+four = \context Staff \notes\relative c{
+ \context Voice=iv
\stemdown
d2-3 cis-4 |
\skip 1*3; |
\score{
% Allegretto
- \type GrandStaff <
- \type Staff = upper <
+ \context GrandStaff <
+ \context Staff = upper <
\global
\one
\two
>
- \type Staff = lower <
+ \context Staff = lower <
\global
\clef "bass";
\three
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "allemande-urtext.ly";
allemande_cello_scripts = \notes{
}
-allemande_cello_staff = \type Staff <
+allemande_cello_staff = \context Staff <
\$allemande
\$allemande_cello_global
\$allemande_cello_scripts
d = { \slurdotted }
comma = "\\sethuge\\ \\ ,"
-allemande_a = \type Staff \notes \relative c {
- \type Voice=i
+allemande_a = \context Staff \notes \relative c {
+ \context Voice=i
\stemup
a'16 |
a8 bes16()a \stemboth
}
allemande_b = \notes \relative c {
- \type Voice=ii
+ \context Voice=ii
\stemdown
s16 |
% <d'8 g' f'> s8 s2. |
% }
}
-allemande = \type Staff \notes<
+allemande = \context Staff \notes<
\$allemande_a
\$allemande_b
>
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "allemande-urtext.ly";
allemande_viola_scripts = \notes{
}
-allemande_viola_staff = \type Staff <
+allemande_viola_staff = \context Staff <
\notes \transpose c'' \$allemande
\$allemande_viola_global
\$allemande_viola_scripts
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "courante-urtext.ly";
courante_cello_scripts = \notes{
}
-courante_cello_staff = \type Staff <
+courante_cello_staff = \context Staff <
\$courante
\$courante_cello_global
\$courante_cello_scripts
n = { \slurnormal }
d = { \slurdotted }
-courante_a = \type Staff \notes \relative c {
- \type Voice=i
+courante_a = \context Staff \notes \relative c {
+ \context Voice=i
d'16 |
d a f a d, f g a \d bes()a bes()g |
\stemup <g4 a> s4 \stemboth \d g16()f g()e |
}
courante_b = \notes \relative c {
- \type Voice=ii
+ \context Voice=ii
\stemdown
s16 |
s2. |
s2 s8.
}
-courante = \type Staff \notes<
+courante = \context Staff \notes<
\$courante_a
\$courante_b
>
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "courante-urtext.ly";
courante_viola_scripts = \notes{
}
-courante_viola_staff = \type Staff <
+courante_viola_staff = \context Staff <
\notes \transpose c' \$courante
\$courante_viola_global
\$courante_viola_scripts
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "gigue-urtext.ly";
gigue_cello_scripts = \notes{
}
-gigue_cello_staff = \type Staff <
+gigue_cello_staff = \context Staff <
\$gigue
\$gigue_cello_global
\$gigue_cello_scripts
% * slurs/ties in two different threads (like beams): urtext, and additionals
%
-gigue_notes = \type Staff \notes \relative c {
- \type Voice=i
+gigue_notes = \context Staff \notes \relative c {
+ \context 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 |
d4
}
-gigue_b = \type Staff \notes \relative c {
- \type Voice=ii
+gigue_b = \context Staff \notes \relative c {
+ \context Voice=ii
\stemdown
s8
s4.*14
<g4 e'>
}
-gigue_a = \type Voice \notes<
+gigue_a = \context Voice \notes<
\$gigue_notes
>
\$gigue_b
>
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "gigue-urtext.ly";
gigue_viola_scripts = \notes{
}
-gigue_viola_staff = \type Staff <
+gigue_viola_staff = \context Staff <
\notes \transpose c' \$gigue
\$gigue_viola_global
\$gigue_viola_scripts
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "menuetto-urtext.ly";
}
menuetto_i_cello_scripts = \notes{
- \type Voice=i
+ \context Voice=i
s2.
s8^"~"^1_2_4 s8 s4 s^4
s4^0_1 s_4 s
s8^2_3 s s s^1 s4^1
}
-menuetto_i_cello_staff = \type Staff <
+menuetto_i_cello_staff = \context Staff <
\$menuetto_i
\$menuetto_i_cello_global
% \$menuetto_i_cello_scripts
}
-menuetto_ii_cello_staff = \type Staff <
+menuetto_ii_cello_staff = \context Staff <
\$menuetto_ii
\$menuetto_ii_cello_global
% \$menuetto_ii_cello_scripts
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-menuetto_i_a = \type Staff \notes \relative c {
- \type Voice=i
+menuetto_i_a = \context Staff \notes \relative c {
+ \context Voice=i
<d2\f f a> bes'4 |
bes8 a bes g a4 |
<d,4 bes> g f8 e |
<d2. a d,> |
}
-menuetto_i_b = \type Staff \notes \relative c {
- \type Voice = ii
+menuetto_i_b = \context Staff \notes \relative c {
+ \context Voice = ii
\stemdown
\slurdotted
\skip 2.*1; |
% UGH, fix this like in sarabande
menuetto_i_a_voice_urg = \notes{
- \type Voice = i
+ \context Voice = i
\skip 2.*1; \stemup
\skip 2.*1; \stemboth
\skip 2.*1; \stemup
>
menuetto_i_b_voice_urg = \notes{
- \type Voice=ii
+ \context Voice=ii
\stemdown
% urg urg, huh?
\skip 2.*8; \stemdown
\$menuetto_i_b
>
-menuetto_i = \type Staff \notes<
+menuetto_i = \context Staff \notes<
{ \$menuetto_i_a_voice_urg_urg }
{ \$menuetto_i_b_voice_urg_urg }
>
-menuetto_ii = \type Staff\notes \relative c {
- \type Voice=i
+menuetto_ii = \context Staff\notes \relative c {
+ \context Voice=i
\slurdotted
fis4^\trill d8( e fis )g |
a4 fis, a' |
d2.
}
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "menuetto-urtext.ly";
}
menuetto_i_viola_scripts = \notes{
- \type Voice=i
+ \context Voice=i
s2.
s8^"~"^1_2_4 s8*5
s2.*5
s4-\downbow s4-\upbow
}
-menuetto_i_viola_staff = \type Staff <
+menuetto_i_viola_staff = \context Staff <
\notes \transpose c' \$menuetto_i
\$menuetto_i_viola_global
% \$menuetto_i_viola_scripts
}
}
-menuetto_ii_viola_staff = \type Staff <
+menuetto_ii_viola_staff = \context Staff <
\notes \transpose c' \$menuetto_ii
\$menuetto_ii_viola_global
% \$menuetto_ii_viola_scripts
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "prelude-urtext.ly";
prelude_cello_scripts = \notes{
}
-prelude_cello_staff = \type Staff <
+prelude_cello_staff = \context Staff <
\$prelude
\$prelude_cello_global
\$prelude_cello_scripts
%}
prelude_notes = \notes \relative c {
- \type Voice=i
+ \context 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 |
}
prelude_b = \notes \relative c {
- \type Voice=ii
+ \context Voice=ii
\stemdown
s2.*47
%48
% of course, i just type fig1, and add the \ and the silly $ later
prelude_slurs = \notes{
- \type Voice=i
+ \context Voice=i
s4 s4 \$fig3 |
\$fig1 s4 \$fig3 |
\$fig1 s4 \$fig3 |
fig6 = \notes{ \slurdotted s16()s \slurdotted s()s }
prelude_suggested_slurs = \notes{
- \type Voice=i
+ \context Voice=i
\slurdotted
s2. |
s2. |
\$prelude_suggested_slurs
>
-prelude = \type Staff \notes<
+prelude = \context Staff \notes<
\$prelude_a
\$prelude_b
>
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "prelude-urtext.ly";
prelude_viola_scripts = \notes{
}
-prelude_viola_staff = \type Staff <
+prelude_viola_staff = \context Staff <
\notes \transpose c' \$prelude
\$prelude_viola_global
\$prelude_viola_scripts
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "sarabande-urtext.ly";
sarabande_cello_scripts = \notes{
}
-sarabande_cello_staff = \type Staff <
+sarabande_cello_staff = \context Staff <
\$sarabande
\$sarabande_cello_global
\$sarabande_cello_scripts
n = { \slurnormal }
d = { \slurdotted }
-sarabande_a = \type Staff \notes \relative c {
- \type Voice=i
+sarabande_a = \context Staff \notes \relative c {
+ \context 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, |
d4 d,,2 |
}
-sarabande_b = \type Staff \notes \relative c {
- \type Voice=ii
+sarabande_b = \context Staff \notes \relative c {
+ \context Voice=ii
\stemdown
% dispute
% d4 a2 |
}
-sarabande = \type Staff \notes<
+sarabande = \context Staff \notes<
\$sarabande_a
\$sarabande_b
>
+\version "1.0.16";
dotted slurs
%}
-\version "1.0.14";
+\version "1.0.16";
\include "sarabande-urtext.ly";
sarabande_viola_scripts = \notes{
}
-sarabande_viola_staff = \type Staff <
+sarabande_viola_staff = \context Staff <
\notes \transpose c' \$sarabande
\$sarabande_viola_global
\$sarabande_viola_scripts
\include "global-i.ly"
\include "violoncello-i.ly";
-$viola_i_staff = \type Staff = viola <
+$viola_i_staff = \context Staff = viola <
\notes\transpose c'' \$violoncello_i
\clef alto;
\$global_i
>
+\version "1.0.16";
\include "global-i.ly"
-$violino_i_staff = \type Staff = violino <
+$violino_i_staff = \context Staff = violino <
<
%urg
% \notes\property Voice.textstyle = "large" s4^"Moderato"
>
\$global_i
>
+\version "1.0.16";
\include "viola-i.ly";
\score{
- \type GrandStaff <
+ \context GrandStaff <
\$violino_i_staff
\$viola_i_staff
>
}
}
+\version "1.0.16";
\include "violoncello-i.ly";
\score{
- \type GrandStaff <
+ \context GrandStaff <
\$violino_i_staff
\$violoncello_i_staff
>
}
}
+\version "1.0.16";
\include "global-i.ly"
-$violoncello_i_staff = \type Staff = violoncello <
+$violoncello_i_staff = \context Staff = violoncello <
\$violoncello_i
\clef bass;
\$global_i
>
+\version "1.0.16";
%{
%}
-\version "1.0.14";
+\version "1.0.16";
global =
\score {
- \notes \type GrandStaff <
- \type Staff = one <
+ \notes \context GrandStaff <
+ \context Staff = one <
\global
\soprane
\tenor
>
- \type Staff = two <
+ \context Staff = two <
\global
\alt
\bass
* auto beaming
%}
-\version "1.0.14";
+\version "1.0.16";
\include "nederlands.ly" % for correct parsing of note names
\bar "|."; |
}
-dux = \type Voice=two \notes \relative c''{
+dux = \context Voice=two \notes \relative c''{
\voicetwo
\clef violin;
}
-comes = \type Voice=one \notes \relative c'' {
+comes = \context Voice=one \notes \relative c'' {
\voiceone
R1 |
R1 |
f,16 g as4 g16 f e2 |
}
-bassdux = \type Voice=three \notes \relative c' {
+bassdux = \context Voice=three \notes \relative c' {
\clef bass;
R1 |
R |
f,16 g as4 g16 f es4 r8 es' |
d c g' g,
%%30
- \type Staff=bass <
+ \context Staff=bass <
{\stemup c2 ~ | c1 ~ | c1 }
- \type Voice=four {\stemdown c,2 ~ | c1 ~ | c1 }
+ \context Voice=four {\stemdown c,2 ~ | c1 ~ | c1 }
>
}
\score {
- \type PianoStaff <
- \type Staff = treble <
+ \context PianoStaff <
+ \context Staff = treble <
\global
\dux
\comes
>
- \type Staff = bass <
+ \context Staff = bass <
\global
\bassdux
>
copyright = "Public Domain";
}
-\version "1.0.14";
+\version "1.0.16";
global =
\notes {
\notes \transpose c'' {
\clef "violin";
- \type Staff <
+ \context Staff <
% Real soprane
{\stemup
r8 [g16 c'] [e' g c' e'] r8 [g16 c'] [e' g c' e'] |
b b |
a a |
%% 10
- \type Staff <
+ \context Staff <
% Alt
{\stemup
r16 a8. ~ a4 r16 a8. ~ a4 |
\score {
- \notes \type GrandStaff <
+ \notes \context GrandStaff <
<
\global
\soprane
}
dynamics = \notes{
- \type Voice=i
+ \context Voice=i
s16\f s8. s4 | s2*17
s8\p s4. | s8\f s4. | s2*4
s8\p s4. | s8\f s4. | s2*29
violinoi = \notes \relative c'{
- \type Voice=i
+ \context Voice=i
\clef "violin";
\stemup
[<g8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
}
violinoii = \notes \relative c'{
- \type Voice=i
+ \context 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] |
}
viola = \notes \relative c'{
- \type Voice=i
+ \context Voice=i
\clef "alto";
[b16 c d c] [b c d c] | [b8 b b b] |
[b16 c d c] [b c d c] | [b8 b b b] |
}
bassocontinuo = \notes \relative c'{
- \type Voice=i
+ \context Voice=i
\clef "bass";
[g16 a b a] [g a b a] | [g8 g, g g'] |
[g16 a b a] [g a b a] | [g8 g, g g'] |
\score{
- \type StaffGroup <
- \type Staff = i < %\tempi
+ \context StaffGroup <
+ \context Staff = i < %\tempi
\global \dynamics \violinoi >
- \type Staff = ii < \global \dynamics \violinoii >
- \type Staff = iii < \global \dynamics \viola >
- \type Staff = iv < \global \dynamics \bassocontinuo >
+ \context Staff = ii < \global \dynamics \violinoii >
+ \context Staff = iii < \global \dynamics \viola >
+ \context Staff = iv < \global \dynamics \bassocontinuo >
>
\header{
piece="I. Allegro";
\midi{ \tempo 4 = 100; }
}
+\version "1.0.16";
-\version "1.0.14";
+\version "1.0.16";
corI=\notes\relative c'' {
\key c;
"Statens Musikbibliotek, Stockholm, Sweden";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "wood.ly"
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\oboe
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\flauto
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\clarI
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\clarII
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\fagotto
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\corI
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\corII
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\trpI
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\trpII
}
\score{
- \type Staff <
+ \context Staff <
\globalNoKey
\marks
\timpani
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\viI
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\viII
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\notes{s2.*32 s2*142 \break}
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\vlc
}
\score{
- \type Staff <
+ \context Staff <
\global
\marks
\cb
"Statens Musikbibliotek, Stockholm, Sweden";
}
-\version "1.0.14";
+\version "1.0.16";
\include "global.ly"
\include "wood.ly"
\score{ <
- \type StaffGroup = wood <
- \type Staff = flauto <
+ \context StaffGroup = wood <
+ \context Staff = flauto <
\property Staff.instrument = "Flauto"
\property Staff.instr = "Fl."
\global
\flauto
>
- \type Staff = oboe <
+ \context Staff = oboe <
\property Staff.instrument = "Oboe"
\property Staff.instr = "Ob."
\global
\marks
\oboe
>
- \type Staff = clarI <
+ \context Staff = clarI <
\property Staff.instrument = "Clarinetto I"
\property Staff.instr = "Cl. I"
\globalNoKey
\clarI
>
- \type Staff = clarII <
+ \context Staff = clarII <
\property Staff.instrument = "Clarinetto II"
\property Staff.instr = "Cl. II"
\globalNoKey
\clarII
>
- \type Staff = fagotto <
+ \context Staff = fagotto <
\property Staff.instrument = "Fagotto"
\property Staff.instr = "Fg."
\global
\fagotto
>
>
- \type StaffGroup = brass <
- \type Staff = cor <
+ \context StaffGroup = brass <
+ \context Staff = cor <
\globalNoKey
\property Staff.instrument = "2 Corni in F"
\property Staff.instr = "Cor."
- \type Voice = corI { \stemup \corI }
- \type Voice = corII { \stemdown \corII }
+ \context Voice = corI { \stemup \corI }
+ \context Voice = corII { \stemdown \corII }
>
- \type Staff = trp <
+ \context Staff = trp <
\globalNoKey
\property Staff.instrument = "2 Trp. in B\\textflat "
\property Staff.instr = "Trp."
- \type Voice = trpI { \stemup \trpI }
- \type Voice = trpII { \stemdown \trpII }
+ \context Voice = trpI { \stemup \trpI }
+ \context Voice = trpII { \stemdown \trpII }
>
>
- \type StaffGroup = percussion <\type Staff = timpani <
+ \context StaffGroup = percussion <\context Staff = timpani <
\property Staff.instrument = "Timpani"
\property Staff.instr = "Timp."
\global
\timpani
>
>
- \type StaffGroup = strings <
-% \type GrandStaff = violins <
- \type Staff = viI <
+ \context StaffGroup = strings <
+% \context GrandStaff = violins <
+ \context Staff = viI <
\property Staff.instrument = "Violin I"
\property Staff.instr = "Vi. I"
\global
\viI
>
- \type Staff = viII <
+ \context Staff = viII <
\property Staff.instrument = "Violin II"
\property Staff.instr = "Vi. II"
\global
\viII
>
% >
- \type Staff = vla <
+ \context Staff = vla <
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\global
\vla
>
- \type Staff = vlc <
+ \context Staff = vlc <
\property Staff.instrument = "Violoncello"
\property Staff.instr = "Vlc"
\global
\vlc
>
- \type Staff = cb <
+ \context Staff = cb <
\property Staff.instrument = "Contrabasso"
\property Staff.instr = "C.B."
\global
}
\score{
- \type StaffGroup <
- \type Staff = oboe \oboe
- \type Staff = flauto \flauto
- \type Staff = clarinetsInBes {\notes \transpose bes <\clarI \clarII >}
- \type Staff = fagotto \fagotto
- \type Staff = corniInF {\notes \transpose f <\corI \corII >}
- \type Staff = trumpetsInBes {\notes \transpose bes <\trpI \trpII >}
- \type Staff = timpani \timpani
- \type Staff = violinoi \viI
- \type Staff = violinoii \viII
- \type Staff = viola \vla
- \type Staff = violoncello \vlc
- \type Staff = contrabass \cb
+ \context StaffGroup <
+ \context Staff = oboe \oboe
+ \context Staff = flauto \flauto
+ \context Staff = clarinetsInBes {\notes \transpose bes <\clarI \clarII >}
+ \context Staff = fagotto \fagotto
+ \context Staff = corniInF {\notes \transpose f <\corI \corII >}
+ \context Staff = trumpetsInBes {\notes \transpose bes <\trpI \trpII >}
+ \context Staff = timpani \timpani
+ \context Staff = violinoi \viI
+ \context Staff = violinoii \viII
+ \context Staff = viola \vla
+ \context Staff = violoncello \vlc
+ \context Staff = contrabass \cb
>
\midi {
\tempo 4=120;
-\version "1.0.14";
+\version "1.0.16";
viI=\notes\relative c'' {
\! a2 ( |
[a8_"dim." g f d] |
<{[b g ][a ) g ] |}
- \type Voice=x {s8.. \tiny b8}>
+ \context Voice=x {s8.. \tiny b8}>
R2 |
r4 r8 a'-. \mf |
[a-. \< a-. a-. \! a-. ] |
\property Staff."midi_instrument" = "viola"
[c8. \f ( d16 ] ) c2_"dim." |
-\type Staff <{\voiceone s4 c2 |
+\context Staff <{\voiceone s4 c2 |
c2. ~ |
c2. ~ |
c2. ~ |
-\version "1.0.14";
+\version "1.0.16";
oboe=\notes\relative c'' {
\clef "treble";
b2 ~ |
[b8_"dim." a g ) e ] |
<{[cis ( a ) b a-. ] | }
- \type Voice = x {s8.. \tiny cis8 } >
+ \context Voice = x {s8.. \tiny cis8 } >
[fis''-. f-. f-. e-. ] |
[e-. \< dis-. dis-. \! d-. ] |
d r b4 \f ~ |
Ugh.. Wish we had grace notes.... It adds another dimension to this
piece of music. %}
-\version "1.0.14";
+\version "1.0.16";
cad = \notes \relative c' {
\property Score.instrument = "french horn"
- \type Staff {
+ \context Staff {
\cadenza 1;
\grouping 1*4;
}
-\version "1.0.14";
+\version "1.0.16";
allegro =
\notes
definition below. --MB
%}
-\version "1.0.14";
+\version "1.0.16";
global = \notes {
\property StaffGroup.timeSignatureStyle = "old"
\tempo 4=80;
}
-vi1=\type Staff = vi1 <
+vi1=\context Staff = vi1 <
\global
\notes \relative c'' {
}
}>
-vi2=\type Staff = vi2 <
+vi2=\context Staff = vi2 <
\global
\notes \relative c'' {
}>
-bc=\type Staff = bc <
+bc=\context Staff = bc <
\global
\notes\transpose c'{
\clef "bass";
}>
\score{
- \type StaffGroup <
+ \context StaffGroup <
\vi1
\vi2
\bc
copyright = "public domain";
latexheaders= "headers";
}
-\version "1.0.14";
+\version "1.0.16";
%{
Silly latex file dropped; use ly2dvi
}
-$staff_hoboone = \type Staff = hoboonestaff <
+$staff_hoboone = \context Staff = hoboonestaff <
\global
\property Staff.instrument = "oboe"
% don't expand multi-bar rest
(set! script-alist
(append
- '(("accDiscant" . (("accDiscant" . "accDiscant") #f 0 1 0))
- ("accDiscantF" . (("accDiscantF" . "accDiscantF") #f 0 1 0))
- ("accDiscantE" . (("accDiscantE" . "accDiscantE") #f 0 1 0))
- ("accDiscantEh" . (("accDiscantEh" . "accDiscantEh") #f 0 1 0))
- ("accDiscantFE" . (("accDiscantFE" . "accDiscantFE") #f 0 1 0))
- ("accDiscantFEh" . (("accDiscantFEh" . "accDiscantFEh") #f 0 1 0))
- ("accDiscantEE" . (("accDiscantEE" . "accDiscantEE") #f 0 1 0))
- ("accDiscantFEE" . (("accDiscantFEE" . "accDiscantFEE") #f 0 1 0))
- ("accDiscantEEE" . (("accDiscantEEE" . "accDiscantEEE") #f 0 1 0))
- ("accDiscantFEEE" . (("accDiscantFEEE" . "accDiscantFEEE") #f 0 1 0))
- ("accDiscantS" . (("accDiscantS" . "accDiscantS") #f 0 1 0))
- ("accDiscantFS" . (("accDiscantFS" . "accDiscantFS") #f 0 1 0))
- ("accDiscantES" . (("accDiscantES" . "accDiscantES") #f 0 1 0))
- ("accDiscantEhS" . (("accDiscantEhS" . "accDiscantEhS") #f 0 1 0))
- ("accDiscantFES" . (("accDiscantFES" . "accDiscantFES") #f 0 1 0))
- ("accDiscantFEhS" . (("accDiscantFEhS" . "accDiscantFEhS") #f 0 1 0))
- ("accDiscantEES" . (("accDiscantEES" . "accDiscantEES") #f 0 1 0))
- ("accDiscantFEES" . (("accDiscantFEES" . "accDiscantFEES") #f 0 1 0))
- ("accDiscantEEES" . (("accDiscantEEES" . "accDiscantEEES") #f 0 1 0))
- ("accDiscantFEEES" . (("accDiscantFEEES" . "accDiscantFEEES") #f 0 1 0))
- ("accDiscantSS" . (("accDiscantSS" . "accDiscantSS") #f 0 1 0))
- ("accDiscantESS" . (("accDiscantESS" . "accDiscantESS") #f 0 1 0))
- ("accDiscantEESS" . (("accDiscantEESS" . "accDiscantEESS") #f 0 1 0))
- ("accDiscantEEESS" . (("accDiscantEEESS" . "accDiscantEEESS") #f 0 1 0))
- ("accFreebase" . (("accFreebase" . "accFreebase") #f 0 1 0))
- ("accFreebaseF" . (("accFreebaseF" . "accFreebaseF") #f 0 1 0))
- ("accFreebaseE" . (("accFreebaseE" . "accFreebaseE") #f 0 1 0))
- ("accFreebaseFE" . (("accFreebaseFE" . "accFreebaseFE") #f 0 1 0))
- ("accBayanbase" . (("accBayanbase" . "accBayanbase") #f 0 1 0))
- ("accBayanbaseT" . (("accBayanbaseT" . "accBayanbaseT") #f 0 1 0))
- ("accBayanbaseE" . (("accBayanbaseE" . "accBayanbaseE") #f 0 1 0))
- ("accBayanbaseTE" . (("accBayanbaseTE" . "accBayanbaseTE") #f 0 1 0))
- ("accBayanbaseEE" . (("accBayanbaseEE" . "accBayanbaseEE") #f 0 1 0))
- ("accBayanbaseTEE" . (("accBayanbaseTEE" . "accBayanbaseTEE") #f 0 1 0))
- ("accStdbase" . (("accStdbase" . "accStdbase") #f 0 1 0))
- ("accStdbaseTp" . (("accStdbaseTp" . "accStdbaseTp") #f 0 1 0))
- ("accStdbaseT" . (("accStdbaseT" . "accStdbaseT") #f 0 1 0))
- ("accStdbaseBp" . (("accStdbaseBp" . "accStdbaseBp") #f 0 1 0))
- ("accStdbaseM" . (("accStdbaseM" . "accStdbaseM") #f 0 1 0))
- ("accSB" . (("accSB" . "accSB") #f 0 1 0))
- ("accBB" . (("accBB" . "accBB") #f 0 1 0))
- ("accOldEE" . (("accOldEE" . "accOldEE") #f 0 1 0))
- ("accOldEES" . (("accOldEES" . "accOldEES") #f 0 1 0)))
+ '(("accDiscant" . ((accordion ("accDiscant" . "accDiscant")) #f 0 1 0))
+ ("accDiscantF" . ((accordion ("accDiscantF" . "accDiscantF")) #f 0 1 0))
+ ("accDiscantE" . ((accordion ("accDiscantE" . "accDiscantE")) #f 0 1 0))
+ ("accDiscantEh" . ((accordion ("accDiscantEh" . "accDiscantEh")) #f 0 1 0))
+ ("accDiscantFE" . ((accordion ("accDiscantFE" . "accDiscantFE")) #f 0 1 0))
+ ("accDiscantFEh" . ((accordion ("accDiscantFEh" . "accDiscantFEh")) #f 0 1 0))
+ ("accDiscantEE" . ((accordion ("accDiscantEE" . "accDiscantEE")) #f 0 1 0))
+ ("accDiscantFEE" . ((accordion ("accDiscantFEE" . "accDiscantFEE")) #f 0 1 0))
+ ("accDiscantEEE" . ((accordion ("accDiscantEEE" . "accDiscantEEE")) #f 0 1 0))
+ ("accDiscantFEEE" . ((accordion ("accDiscantFEEE" . "accDiscantFEEE")) #f 0 1 0))
+ ("accDiscantS" . ((accordion ("accDiscantS" . "accDiscantS")) #f 0 1 0))
+ ("accDiscantFS" . ((accordion ("accDiscantFS" . "accDiscantFS")) #f 0 1 0))
+ ("accDiscantES" . ((accordion ("accDiscantES" . "accDiscantES")) #f 0 1 0))
+ ("accDiscantEhS" . ((accordion ("accDiscantEhS" . "accDiscantEhS")) #f 0 1 0))
+ ("accDiscantFES" . ((accordion ("accDiscantFES" . "accDiscantFES")) #f 0 1 0))
+ ("accDiscantFEhS" . ((accordion ("accDiscantFEhS" . "accDiscantFEhS")) #f 0 1 0))
+ ("accDiscantEES" . ((accordion ("accDiscantEES" . "accDiscantEES")) #f 0 1 0))
+ ("accDiscantFEES" . ((accordion ("accDiscantFEES" . "accDiscantFEES")) #f 0 1 0))
+ ("accDiscantEEES" . ((accordion ("accDiscantEEES" . "accDiscantEEES")) #f 0 1 0))
+ ("accDiscantFEEES" . ((accordion ("accDiscantFEEES" . "accDiscantFEEES")) #f 0 1 0))
+ ("accDiscantSS" . ((accordion ("accDiscantSS" . "accDiscantSS")) #f 0 1 0))
+ ("accDiscantESS" . ((accordion ("accDiscantESS" . "accDiscantESS")) #f 0 1 0))
+ ("accDiscantEESS" . ((accordion ("accDiscantEESS" . "accDiscantEESS")) #f 0 1 0))
+ ("accDiscantEEESS" . ((accordion ("accDiscantEEESS" . "accDiscantEEESS")) #f 0 1 0))
+ ("accFreebase" . ((accordion ("accFreebase" . "accFreebase")) #f 0 1 0))
+ ("accFreebaseF" . ((accordion ("accFreebaseF" . "accFreebaseF")) #f 0 1 0))
+ ("accFreebaseE" . ((accordion ("accFreebaseE" . "accFreebaseE")) #f 0 1 0))
+ ("accFreebaseFE" . ((accordion ("accFreebaseFE" . "accFreebaseFE")) #f 0 1 0))
+ ("accBayanbase" . ((accordion ("accBayanbase" . "accBayanbase")) #f 0 1 0))
+ ("accBayanbaseT" . ((accordion ("accBayanbaseT" . "accBayanbaseT")) #f 0 1 0))
+ ("accBayanbaseE" . ((accordion ("accBayanbaseE" . "accBayanbaseE")) #f 0 1 0))
+ ("accBayanbaseTE" . ((accordion ("accBayanbaseTE" . "accBayanbaseTE")) #f 0 1 0))
+ ("accBayanbaseEE" . ((accordion ("accBayanbaseEE" . "accBayanbaseEE")) #f 0 1 0))
+ ("accBayanbaseTEE" . ((accordion ("accBayanbaseTEE" . "accBayanbaseTEE")) #f 0 1 0))
+ ("accStdbase" . ((accordion ("accStdbase" . "accStdbase")) #f 0 1 0))
+ ("accStdbaseTp" . ((accordion ("accStdbaseTp" . "accStdbaseTp")) #f 0 1 0))
+ ("accStdbaseT" . ((accordion ("accStdbaseT" . "accStdbaseT")) #f 0 1 0))
+ ("accStdbaseBp" . ((accordion ("accStdbaseBp" . "accStdbaseBp")) #f 0 1 0))
+ ("accStdbaseM" . ((accordion ("accStdbaseM" . "accStdbaseM")) #f 0 1 0))
+ ("accSB" . ((accordion ("accSB" . "accSB")) #f 0 1 0))
+ ("accBB" . ((accordion ("accBB" . "accBB")) #f 0 1 0))
+ ("accOldEE" . ((accordion ("accOldEE" . "accOldEE")) #f 0 1 0))
+ ("accOldEES" . ((accordion ("accOldEES" . "accOldEES")) #f 0 1 0)))
script-alist)
)
+
(set! script-alist
(append
- '(("thumb" . (("thumb" . "thumb") #f 0 1 0))
- ("accent" . (("sforzato" . "sforzato") #f -1 0 0))
- ("marcato" . (("dmarcato" . "umarcato") #f -1 0 0))
- ("staccatissimo" . (("dstaccatissimo" . "ustaccatissimo") #f -1 0 0 0))
- ("portato" . (("dportato" . "uportato") #f -1 0 0))
- ("fermata" . (("dfermata" . "ufermata") #f 1 0 0))
- ("stopped" . (("stopped" . "stopped") #f 0 1 0))
- ("staccato" . (("staccato" . "staccato") #t -1 0 -100))
- ("tenuto" . (("tenuto" . "tenuto") 1 -1 0 0))
- ("upbow" . (("upbow" . "upbow") #f 0 1 0))
- ("downbow" . (("downbow" . "downbow") #f 0 1 0))
- ("lheel" . (("upedalheel" . "upedalheel") #f 0 -1 0))
- ("rheel" . (("dpedalheel" . "dpedalheel") #f 0 1 0))
- ("ltoe" . (("upedaltoe" . "upedaltoe") #f 0 -1 0))
- ("rtoe" . (("dpedaltoe" . "dpedaltoe") #f 0 1 0))
- ("turn" . (("turn" . "turn") #f 0 1 0))
- ("open" . (("open" . "open") #f 0 1 0))
- ("flageolet" . (("flageolet" . "flageolet") 0 0 1 0))
- ("reverseturn" . (("reverseturn" . "reverseturn") 0 0 1 0))
- ("trill" . (("trill" . "trill") #f 0 1 2000))
- ("prall" . (("prall" . "prall") #f 0 1 0))
- ("mordent" . (("mordent" . "mordent") #f 0 1 0))
- ("prallprall" . (("prallprall" . "prallprall") #f 0 1 0))
- ("prallmordent" . (("prallmordent" . "prallmordent") #f 0 1 0))
- ("upprall" . (("upprall" . "upprall") #f 0 1 0))
- ("downprall" . (("downprall" . "downprall") #f 0 1 0)))
+ '(("thumb" . ((feta . ("thumb" . "thumb")) #f 0 1 0))
+ ("accent" . ((feta . ("sforzato" . "sforzato")) #f -1 0 0))
+ ("marcato" . ((feta . ("dmarcato" . "umarcato")) #f -1 0 0))
+ ("staccatissimo" . ((feta . ("dstaccatissimo" . "ustaccatissimo")) #f -1 0 0))
+ ("portato" . ((feta . ("dportato" . "uportato")) #f -1 0 0))
+ ("fermata" . ((feta . ("dfermata" . "ufermata")) #f 1 0 0))
+ ("stopped" . ((feta . ("stopped" . "stopped")) #f 0 1 0))
+ ("staccato" . ((feta . ("staccato" . "staccato")) #t -1 0 -100))
+ ("tenuto" . ((feta . ("tenuto" . "tenuto")) #t -1 0 0))
+ ("upbow" . ((feta . ("upbow" . "upbow")) #f 0 1 0))
+ ("downbow" . ((feta . ("downbow" . "downbow")) #f 0 1 0))
+ ("lheel" . ((feta . ("upedalheel" . "upedalheel")) #f 0 -1 0))
+ ("rheel" . ((feta . ("dpedalheel" . "dpedalheel")) #f 0 1 0))
+ ("ltoe" . ((feta . ("upedaltoe" . "upedaltoe")) #f 0 -1 0))
+ ("rtoe" . ((feta . ("dpedaltoe" . "dpedaltoe")) #f 0 1 0))
+ ("turn" . ((feta . ("turn" . "turn")) #f 0 1 0))
+ ("open" . ((feta . ("open" . "open")) #f 0 1 0))
+ ("flageolet" . ((feta . ("flageolet" . "flageolet")) #f 0 1 0))
+ ("reverseturn" . ((feta . ("reverseturn" . "reverseturn")) #f 0 1 0))
+ ("trill" . ((feta . ("trill" . "trill")) #f 0 1 2000))
+ ("prall" . ((feta . ("prall" . "prall")) #f 0 1 0))
+ ("mordent" . ((feta . ("mordent" . "mordent")) #f 0 1 0))
+ ("prallprall" . ((feta . ("prallprall" . "prallprall")) #f 0 1 0))
+ ("prallmordent" . ((feta . ("prallmordent" . "prallmordent")) #f 0 1 0))
+ ("upprall" . ((feta . ("upprall" . "upprall")) #f 0 1 0))
+ ("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0)))
script-alist)
)
+
conversions.append ((1,0,14), conv, '<[a b> <a b]>c -> [<a b> <a b>]')
+if 1:
+ def conv(lines):
+ newlines =[]
+ for x in lines:
+ x = re.sub ('\\\\type','\\\\context', x)
+ newlines.append (x)
+ return newlines
+
+ conversions.append ((1,0,16), conv, '\\type -> \\context')
+
+
############################
# r""" ... """ means: leave escape seqs alone.
defined_mudela_cmd = {'mudela': r"""
\begin{mudela}[eps \fontoptions]
- \type Staff <
- \type Voice{
+ \context Staff <
+ \context Voice{
\maininput
}
>