---- ../lilypond-1.3.117.jcn1/CHANGES Sat Dec 16 16:27:51 2000
-++ b/CHANGES Sun Dec 17 15:49:08 2000
-@@ -1,3 +1,12 @@
-1.3.117.jcn2
-============
-
-* Resurrected direct scheme output, ie. lilypond -fscm
-
-* Warning message fixes and po update.
-
-* Bugfix: debian package.
-
- 1.3.117.jcn1
- ============
- --- ../lilypond-1.3.117/CHANGES Thu Dec 14 18:44:08 2000
-++ b/CHANGES Sat Dec 16 21:58:37 2000
-@@ -1,3 +1,16 @@
1.3.117.mb1
===========
* Bugfix: script-engraver.cc: forced script directions work again.
- 1.3.116.jcn4
- ============
- 1.3.117.jcn1
+1.3.117.jcn2
============
+* Resurrected direct scheme output, ie. lilypond -fscm
+
+* Warning message fixes and po update.
+
+* Bugfix: debian package.
+
* Resurrected direct postscript output, ie. lilypond --output-format=ps.
+1.3.117.hwn1
+============
+
+* Broken left-edge of volta, Again. Now the Final Fix.
+
+* Smobified Score, smobified Music_output_def, removed Identifier.
+Reorganised Scope and Scheme_hash_table to this end.
+
+* Small cleanups in relations between
+Paper_def/Paper_outputter/Paper_stream.
+
+* lilypond syntax update: deprecate $ syntax for identifiers; Provide
+convert-ly method.
+
+* Rename: don't use grobs in performer methods.
+
1.3.116.jcn4
============
@unnumberedsubsec Languages
-C++ and Python are preferred. Perl is forbidden. Python code should
-use an indent of 8, using TAB characters.
+C++ and Python are preferred. Python code should use an indent of 8,
+using TAB characters.
@unnumberedsubsec Filenames
@item Music: see @ref{Music expressions}
@item Identifier
@item Translator_def:
-See section @ref{contextdefs} for more information
+See section @ref{contextdefs} for more information
@item Duration
@item Pitch
- @item Score (TODO, smobme)
-@item Music_output_def (TODO, smobme)
-
+ @item Score
+ @item Music_output_def (TODO: this is not really a Scheme object
+yet. Nevertheless, you can use identifiers to make references to them )
@item Moment (rational number)
@end itemize
types are built during a LilyPond run, and do not `exist' per se within
your input file. These objects are created as a result of your input
file, so you can include commands in the input to manipulate them,
-during a lilypond run .
+during a lilypond run.
@itemize @bullet
@item Grob: short for Graphical object. See @ref{Grobs}.
- @item Molecule: device-independent paper output object,
- including dimensions. Produced by some Grob functions
- @item Translator: object that produces audio objects or Grobs
-
- @item Font_metric: object representing a font. (Not yet user accessible.)
- @item Audio_element: (TODO, smobme)
+ @item Molecule: device-independent page output object,
+ including dimensions. Produced by some Grob functions
+ See @ref{Molecules}
+ @item Translator: object that produces audio objects or Grobs.
+ @item Font_metric: object representing a font. (Not yet user
+accessible.)
+
+@c @item Audio_element: (todo, smobme)
@end itemize
Identifiers allow objects to be assigned to names during the parse
@var{value} is any valid Scheme value or any of the input-types listed
above.
-An identifier can be created with any string for its name, but you
-will only be able to refer to identifiers whose names begin with a
-letter, being entirely alphanumeric. It is impossible to refer to an
-identifier whose name is the same as the name of a keyword.
+An identifier can be created with any string for its name, but you will
+only be able to refer to identifiers whose names begin with a letter,
+being entirely alphanumeric. It is impossible to refer to an identifier
+whose name is the same as the name of a keyword.
The right hand side of an identifier assignment is parsed completely
before the assignment is done, so it is allowed to redefine an
@end example
This shifts all elements that have a @code{text} property one staff
-space to the left.
+space to the left. This mechanism is rather clumsy to use, but it allows
+you tweak any setting of any grob.
@node Items and Spanners, , , Grobs
+@unnumberedsubsec Items and Spanners
Grobs can also be distinguished in their role in the horizontal spacing.
A lot of grobs define constraints on the spacing by their sizes. For
this grob should be transparent and invisible.
@node Pointer substitution, , , Grobs
+@unnumberedsubsec Pointer substitution
+
+Symbols that cross line-breaks (such as slurs) cause some more
+complications. When a spanner crosses a line-break, then the spanner is
+"broken into pieces", for every line that the spanner is in, a copy of
+the grob is made. A substitution process redirects all grob-reference
+so that spanner grob will only reference other grobs in the same line.
@node Molecule, , , Reference Manual
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=117
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=118
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
-lilypond1.3 (1.3.117) unstable; urgency=low
-
- * Don't install native debian package LilyPond1.3's upstream changelog
- CHANGES using dh_installchangelogs -k (oh, and I'm still not Anthony :-).
-
- -- Jan Nieuwenhuizen <foka@debian.org> Sat, 16 Dec 2000 22:25:28 +0100
-
lilypond1.3 (1.3.107) unstable; urgency=low
* Fixed watch location.
char const* pos_ch_C () { return pos_ch_C_; }
String get_str (int n);
void set_pos (char const * pos_ch_C);
-
- // tbd
- // String get_line ();
- // String get_word ();
- // only used in binary-source-file, currently
-
-
public:
Slice line_slice (char const* pos_ch_C) const;
String line_str (char const* pos_ch_C) const;
int column_i (char const* pos_ch_C) const;
int char_i (char const* pos_ch_C) const;
+ /*
+ DOCUMENT-ME
+ */
char const* pos_ch_C_;
private:
+++ /dev/null
-%{
-Hi,
- I want to write some music that has the structure:
-
- Intro
- \repeat 4 { Chorus [first-ending] verse }
- fifth-ending final
-
- The obvious:
-
- \repeat 4 { Chorus \alternative{{first-ending}{}} verse}
- \alternative{{}{fifth-ending}}
- final
-
- doesn't work.
-
- And the (logically correct but ugly)
-
- \repeat 4 {Chorus}
- \alternative {{first-ending verse}{fifth ending}}
- final
-
- is very ugly, because the volta bracket keeps going for so
- long.
-
- Peter C
-%}
-
-\score{
- <
- \context Staff \notes\relative c''{
- c c c c
- % coda-klugde: let volta span only one bar
- \property Staff.voltaSpannerDuration = #(make-moment 1 1)
- \repeat "volta" 5 { d d d d }
- \alternative { { e e e e f f f f }
- { g g g g } }
- }
- \context Lyrics \lyrics{
- intro1
- \repeat fold 5 {}
- \alternative {
- { chorus1 one verse1 }
- { chorus1 two verse1 }
- { chorus1 three verse }
- { chorus1 four verse }
- }
- five1
- }
- >
-}
-
-
-%\version "1.0.16";
\header{
-texidoc="Real header: the slurBeginAttachment setting still lives in the
+texidoc=3D"Real header: the slurBeginAttachment setting still lives in the
second example, breaking the cross staff broken slur.
";
}
-
+=09
\header{
-texidoc="
+texidoc=3D"
Slurs can be forced to always attach to note heads.
";
}
\score{
\notes \relative c''{
- \property Voice.VerticalDirection = #1
- \property Voice.slurBeginAttachment = #'head
- \property Voice.slurEndAttachment = #'head
+ \property Voice.VerticalDirection =3D #1
+ \property Voice.slurBeginAttachment =3D #'head
+ \property Voice.slurEndAttachment =3D #'head
g16()g()g()g()d'()d()d()d
}
\paper{
- indent = 0.0;
- linewidth = 60.0\mm;
+ indent =3D 0.0;
+ linewidth =3D 60.0\mm;
}
}
-
+=09
\header{
-texidoc="
+texidoc=3D"
The same goes for slurs. They behave decently when broken across
linebreak.
";
\score{
\context PianoStaff <
- \context Staff=one \notes\relative c'{
+ \context Staff=3Done \notes\relative c'{
%{
\stemUp \slurUp
- c4( c \translator Staff=two c )c |
- \translator Staff=one
+ c4( c \translator Staff=3Dtwo c )c |
+ \translator Staff=3Done
\stemUp \slurUp
- c4( c \translator Staff=two c )c |
+ c4( c \translator Staff=3Dtwo c )c |
\stemUp \slurUp
- c4( c \translator Staff=one c )c |
- \translator Staff=two
+ c4( c \translator Staff=3Done c )c |
+ \translator Staff=3Dtwo
\stemUp \slurUp
- c4( c \translator Staff=one c )c |
- \translator Staff=two
+ c4( c \translator Staff=3Done c )c |
+ \translator Staff=3Dtwo
\stemUp \slurUp
- c4( \translator Staff=one c c )c |
+ c4( \translator Staff=3Done c c )c |
%}
r2
- \translator Staff=two
+ \translator Staff=3Dtwo
\stemUp \slurUp
- c4( \translator Staff=one c
+ c4( \translator Staff=3Done c
\break
c )c
r2
%{
\stemDown \slurDown
- d4( \translator Staff=two c c \translator Staff=one )d
- \translator Staff=two
+ d4( \translator Staff=3Dtwo c c \translator Staff=3Done )d
+ \translator Staff=3Dtwo
\stemUp \slurUp
- c4( \translator Staff=one c c \translator Staff=two )c
+ c4( \translator Staff=3Done c c \translator Staff=3Dtwo )c
r1
%}
}
- \context Staff=two \notes\relative c'{
+ \context Staff=3Dtwo \notes\relative c'{
\clef bass;
s1 s1 %s1 s1 s1 s1 s1 s1 s1 s1
}
>
- \paper { indent = 0.; linewidth = 40.*\staffspace; }
+ \paper { indent =3D 0.; linewidth =3D 40.*\staffspace; }
}
-\version "1.3.110";
+\version "1.3.110";=20
\header{
-filename = "denneboom.ly";
-enteredby = "jcn";
-copyright = "public domain";
+filename = "denneboom.ly";
+enteredby = "jcn";
+copyright = "public domain";
}
%{ file tests silly line shapes %}
\include "paper20.ly"
-\version "1.3.110";
+\version "1.3.117";
-oden = \lyrics{
+oden = \lyrics{
O |
den- ne- boom, o |
den- ne- boom Wat |
won- der- schoon
}
-ikheb = \lyrics{
+ikheb = \lyrics{
Ik |
heb u laatst in_'t |
bos zien staan toen |
kaars- jes aan
}
-ugloeit = \lyrics{
+ugloeit = \lyrics{
U |
gloeit in bar- re |
win- ter- tijd, als |
licht ge- spreid
}
-oboom = \notes\transpose c''{
+oboom = \notes\transpose c''{
g,8 |
c8. c16 c4. d8 |
e8. e16 e4. e8 |
d8. c16 c4 r8
}
-bos = \notes\transpose c''{
+bos = \notes\transpose c''{
g8 |
g e a4. g8 |
g8. f16 f4 r8 f8 |
}
-melody = \notes{
+melody = \notes{
\oboom
\oboom
\bos
}
-verse_one = \notes{
+verseOne = \notes{
\oden
\oden
\ikheb
\oden
}
-verse_one_staff = \context Lyrics = one
+verseOneStaff = \context Lyrics = one
\verse_one
-verse_two = \notes{
+verseTwo = \notes{
\oden
\oden
\ugloeit
\oden
}
-verse_two_staff = \context Lyrics = two
+verseTwoStaff = \context Lyrics = two
\verse_two
-denneboom_shape = \paper{
+denneboomShape = \paper{
\paper_twenty
indent = 20. \mm;
-\version "1.3.110";
+\version "1.3.117";
-one = \notes\relative c{
+one = \notes\relative c{
c'' d e f
}
-two = \notes\relative c{
+two = \notes\relative c{
\clef "bass";
c'2 g2
}
}
}
-\version "1.3.110";
+\version "1.3.117";
cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
%}
-\version "1.3.110";
+\version "1.3.117";
\header{
composer = "ARTHUR GRAY";
))
-global = \notes{
+global = \notes{
\partial 2;
\key a \major;
\skip 2;
\bar "||";
}
-treble = \context Voice=treble \notes\relative c''{
+treble = \context Voice=treble \notes\relative c''{
% Broken?
\property Voice.NoteColumn \override #'horizontal-shift = #0
\outputproperty #(make-type-checker 'text-item-interface)
r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
}
-trebleTwo = \context Voice=trebleTwo \notes\relative c''{
+trebleTwo = \context Voice=trebleTwo \notes\relative c''{
\property Voice.NoteColumn \override #'horizontal-shift = #1
s2
s1*2
<)a cis,>]
}
-bass = \context Voice=bass \notes\relative c{
+bass = \context Voice=bass \notes\relative c{
% Allow ugly slurs
\property Voice.Slur \override #'beautiful = #5.0
\property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -6))
)a]
}
-bassTwo = \context Voice=bassTwo \notes\relative c{
+bassTwo = \context Voice=bassTwo \notes\relative c{
\skip 2;
\skip 1*2;
\skip 2;
cis'4()bis
}
-middleDynamics = \context Dynamics=middle \notes{
+middleDynamics = \context Dynamics=middle \notes{
s8 s16 s\f s4
s1*2
%4
s8\mf s4 s4 s8\> s32 s s \!s
}
-lowerDynamics = \context Dynamics=lower \notes{
+lowerDynamics = \context Dynamics=lower \notes{
s2
%2
s2\sustaindown s8. s16\sustainup s4
* organ staff...
%}
-\version "1.3.110";
+\version "1.3.117";
-praeludium_commands = \notes {
+praeludiumCommands = \notes {
\time 4/4;
\key e \major;
}
-praeludium_right = \notes {
- \$praeludium_commands
+praeludiumRight = \notes {
+ \praeludiumCommands
\clef violin;
% 13 -- how to type -- where to split -- this more neatly?
% 16
}
-praeludium_left = \notes \relative c {
- \$praeludium_commands
+praeludiumLeft = \notes \relative c {
+ \praeludiumCommands
\clef bass;
% 13
%16
}
-praeludium_pedal = \notes \relative c{
- \$praeludium_commands
+praeludiumPedal = \notes \relative c{
+ \praeludiumCommands
\clef bass;
%13
}
-fugaII_commands = \notes{
+fugaIICommands = \notes{
\time3/4;
\key e \major; % E-major
}
-fugaII_right = \notes \relative c'' {
- \$fugaII_commands
+fugaIIRight = \notes \relative c'' {
+ \fugaIICommands
\clef violin;
%15
%19
}
-fugaII_left = \notes {
- \$fugaII_commands
+fugaIILeft = \notes {
+ \fugaIICommands
\clef bass;
%15
%19
}
-fugaII_pedal = \notes \relative c {
- \$fugaII_commands
+fugaIIPedal = \notes \relative c {
+ \fugaIICommands
\clef bass;
%15
%19
}
-breakmusic = \notes {
+breakmusic = \notes {
%\time4/4;
r1
}
\header{
-filename = "rhythm.ly";
-enteredby = "HWN";
-copyright = "public domain";
-TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers";
+filename = "rhythm.ly";
+enteredby = "HWN";
+copyright = "public domain";
+TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers";
}
-\version "1.3.110";
+\version "1.3.117";
-ritme = \notes\transpose c'' {
+ritme = \notes\transpose c'' {
\time 4/4;
\partial 8;
c8 |
}
-another =
+another =
\notes \relative c'' { \time 6/4;
c1. c1. \time 4/4;c4 c4 c4 c4 c1 c1 c1
}
-yanother =
+yanother =
\notes{ \time 4/4;
c1 c1 c1 c4 c4 c4 c4 c1 c1 c1
}
-\version "1.3.110";
+\version "1.3.117";
\paper{
%my standard paper block
-\version "1.3.110";
+\version "1.3.117";
rh=\property Thread.NoteHead \override #'style = #'default
lh=\property Thread.NoteHead \override #'style = #'diamond
-n = \property Thread.NoteHead \revert #'font-relative-size % = #'diamond %\property Thread.fontSize=#0
+n = \property Thread.NoteHead \revert #'font-relative-size % = #'diamond %\property Thread.fontSize=#0
sm=\property Thread.NoteHead \override #'font-relative-size = #-1
% su=\property Voice.verticalDirection=#1
rs=\property Voice.forceHorizontalShift=#0.6
srs=\property Voice.forceHorizontalShift=#0.22
%}
-zs = \property Voice.NoteColumn \revert #'force-hshift % #0.0
-ls = \property Voice.NoteColumn \override #'force-hshift = #-0.6
+zs = \property Voice.NoteColumn \revert #'force-hshift % #0.0
+ls = \property Voice.NoteColumn \override #'force-hshift = #-0.6
sls= \property Voice.NoteColumn \override #'force-hshift = #-0.22
-rs = \property Voice.NoteColumn \override #'force-hshift = #0.6
+rs = \property Voice.NoteColumn \override #'force-hshift = #0.6
srs= \property Voice.NoteColumn \override #'force-hshift = #0.22
%K000.ly LilyPond 1.2.16
-\version "1.3.110"
+\version "1.3.117"
\include "scarlatti-properties.ly"
\include "scarlatti-paper.ly"
http://www.Arkkra.com/doc/star.ps
%}
-\version "1.3.110";
+\version "1.3.117";
% TODO:
%
copyright="public domain";
}
-global = \notes {
+global = \notes {
\time 3/4;
\key d \major;
\partial 4;
}
-$staff1_voice_1 = \notes {
+staffBVoiceB = \notes {
a8.()fis16
\repeat volta 2 {
d4 fis4 a4 d'2 fis'8. e'16 d'4 fis4 gis4 a2 a8 a8
e'4 d'2 s4
}
-$staff1_voice_2 = \notes {
+staffBVoiceC = \notes {
a8.()fis16
\repeat volta 2 {
a,4 d4 e4 d4 () fis4 fis8. fis16 fis4 d4 d4 cis2
e8. e16 d4.()a8 a8 a8 a2 g8 g8 a4. a8 g4 fis2 s4
}
-$staff2_voice_1 = \notes {
+staffCVoiceB = \notes {
r4
\repeat volta 2 {
fis4 a4 a4 b2 cis'8. cis'16 b4 b4 b4 a2 cis'8 cis'8
a2 s4
}
-$staff2_voice_2 = \notes {
+staffCVoiceC = \notes {
r4
\repeat volta 2 {
d4 d4 cis4 b,2 ais,8. ais,16 b,4 b,4 e4 a,2 a8 a8
g8. g16 fis4.()a,8 d8 e8 fis2 b8 b8 a4. a8 a,4 d2 s4
}
-text = \lyrics {
+text = \lyrics {
Oh __ \repeat "fold" 2 { }
\alternative {
{
\property Staff.automaticMelismata = ##t
\context Voice = one \transpose c'' {
\stemUp
- \$staff1_voice_1
+ \staffBVoiceB
\bar "|.";
}
\context Voice = two \transpose c'' {
\stemDown
- \$staff1_voice_2
+ \staffBVoiceC
}
>
\context LyricsVoice = "one-1" \text
\property Staff.noVoltaBraces = ##t
\context Voice = three {
\stemUp
- \$staff2_voice_1
+ \staffCVoiceB
}
\context Voice = four {
\stemDown
- \$staff2_voice_2
+ \staffCVoiceC
}
>
>
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
\key a \minor;
\time 6/4;
% \skip 1.*34;
% \bar ".|";
}
-melody = \notes\relative c''{
+melody = \notes\relative c''{
r2 r r
r2 r r
r4 a'8-- \< a-- a-- a-- c-- \!b-- a--\> gis f \!e
es8 \grace b c r4 r2 r
}
-basloopje = \notes\relative c{
+basloopje = \notes\relative c{
d,8( a' d f a d f d a f d )a
}
-accompany = \notes \relative c{
+accompany = \notes \relative c{
\notes\relative c \basloopje
\notes\relative c \basloopje
\notes\relative c \basloopje
natural sign.
";
}
-\version "1.3.110";
+\version "1.3.117";
-thenotes = \notes \relative cis' { \time 4/4;
+thenotes = \notes \relative cis' { \time 4/4;
gisis'4 gis gisis ges |
geses ges geses gis |
gisis g geses g |
-\version "1.3.110"
+\version "1.3.117"
%{
See scm/chord-names.scm: chord::names-alist-american
James Hammons <jlhamm@pacificnet.net>
)
chord::names-alist-american))
-chord = \notes\transpose c''\chords{
- \property ChordNames.ChordName \override #'style = #'american
+chord = \notes\transpose c''\chords{
+ \property Chordnames.Chordname \override #'style = #'american
c % Major triad
cs:m % Minor triad
df:m5- % Diminished triad
date = "2000";
}
-\version "1.3.110";
+\version "1.3.117";
\include "paper26.ly"
-global = \notes {
+global = \notes {
\property Score.timing = 1
\property Staff.TimeSignature \override #'style = #"old"
\time 2/2;
}
-upperVoice = \context Staff = upperVoice <
+upperVoice = \context Staff = upperVoice <
\global
\property Staff.numberOfStaffLines = 4
\notes \transpose c' {
}
>
-lowerVoice = \context Staff = lowerNotes <
+lowerVoice = \context Staff = lowerNotes <
\global
\property Staff.numberOfStaffLines = 5
\notes \transpose c'' {
";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
\context PianoStaff <
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c''{
-\version "1.3.110";
+\version "1.3.117";
%{
Currently (1.1.27.jcn3), the auto-beam engraver will only engrave
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes \context PianoStaff <
\context Staff = "up" {
-\version "1.3.110";
+\version "1.3.117";
% bagpipe music.
\header
-taor = \notes{ \grace { [g32 d g e]}}
-grip = \notes{ \grace { [g32 b g ]}}
-thrd = \notes{ \grace { [g32 d c] }}
-birl = \notes{ \grace { [g32 a g] }}
-gstd = \notes{ \grace { [g'32 d g] }}
+taor = \notes{ \grace { [g32 d g e]}}
+grip = \notes{ \grace { [g32 b g ]}}
+thrd = \notes{ \grace { [g32 d c] }}
+birl = \notes{ \grace { [g32 a g] }}
+gstd = \notes{ \grace { [g'32 d g] }}
lgg = \notes{ \grace { g32 }}
lag = \notes{ \grace { a32 }}
fgg = \notes{ \grace { [f32 g'32] }}
-dblb = \notes{ \grace { [g'32 b d] }}
-dblc = \notes{ \grace { [g'32 c d] }}
-dble = \notes{ \grace { [g'32 e f] }}
-dblf = \notes{ \grace { [g'32 f g'] }}
-dblg = \notes{ \grace { [g'32 f] }}
-dbla = \notes{ \grace { [a'32 g'] }}
+dblb = \notes{ \grace { [g'32 b d] }}
+dblc = \notes{ \grace { [g'32 c d] }}
+dble = \notes{ \grace { [g'32 e f] }}
+dblf = \notes{ \grace { [g'32 f g'] }}
+dblg = \notes{ \grace { [g'32 f] }}
+dbla = \notes{ \grace { [a'32 g'] }}
cg = \notes{ \grace { c32 }}
eg = \notes{ \grace { e32 }}
gg = \notes{ \grace { g'32 }}
dg = \notes{ \grace { d32 }}
hag = \notes{ \grace { a'32 }}
-gefg = \notes{ \grace { [g'32 e f] }}
+gefg = \notes{ \grace { [g'32 e f] }}
efg = \notes{ \grace { [e32 f] }}
-gdcg = \notes{ \grace { [g'32 d c]}}
-gcdg = \notes{ \grace { [g'32 c d]}}
+gdcg = \notes{ \grace { [g'32 d c]}}
+gcdg = \notes{ \grace { [g'32 c d]}}
-\version "1.3.110";
+\version "1.3.117";
\header{
-enteredby = "jcn";
-copyright = "public domain";
-TestedFeatures = "Banter named chords";
+enteredby = "jcn";
+copyright = "public domain";
+TestedFeatures = "Banter named chords";
}
% test German (Banter) naming
% }
-chord = \notes\transpose c''\chords{
+chord = \notes\transpose c''\chords{
% dim modifier means: lower all implicit additions
c:dim9
c:dim
";
}
-\version "1.3.110";
+\version "1.3.117";
-onestaff = \context 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 \context GrandStaff <
+grstaff = \notes \context GrandStaff <
\context Staff = bar {
\property Staff.instr = instr
\context Staff = bufl { c1 c2 }
>
-scpaper = \paper {\translator {\OrchestralScoreContext}}
-stpaper = \paper{ \translator {\BarNumberingStaffContext }}
+scpaper = \paper {\translator {\OrchestralScoreContext}}
+stpaper = \paper{ \translator {\BarNumberingStaffContext }}
-scscore = \score { \grstaff \paper {
+scscore = \score { \grstaff \paper {
\scpaper
}}
-stscore = \score { \onestaff \paper {
+stscore = \score { \onestaff \paper {
\stpaper
}}
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c {
c'1:16
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\transpose c'{
>
}
-\version "1.3.110";
+\version "1.3.117";
linewidth=-1.;
}
}
-\version "1.3.110";
+\version "1.3.117";
Stems may be short, but noteheads should never touch the beam.
";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c''{
[g8 c c,]
}
}
-\version "1.3.110";
+\version "1.3.117";
Override with @code{noStemExtend}.
";
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c {
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c'{
\stemUp
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c'{
\stemUp
\header{
-filename = "beams.ly";
-composer = "heu";
-enteredby = "jcn";
-copyright = "PD";
+filename = "beams.ly";
+composer = "heu";
+enteredby = "jcn";
+copyright = "PD";
-TestedFeatures = "beams and beamflags";
+TestedFeatures = "beams and beamflags";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
<
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes \relative c' {
\header{
-enteredby = "jcn";
-copyright = "PD";
-TestedFeatures = "This file tests Feta embedded slurs" +
+enteredby = "jcn";
+copyright = "PD";
+TestedFeatures = "This file tests Feta embedded slurs" +
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.110";
+\version "1.3.117";
-shortlong = \notes{
+shortlong = \notes{
c4()c( c c |
c c c c |
c c c c |
c c c )c |
}
-broken = \notes\transpose c''{
+broken = \notes\transpose c''{
c c c c()
c c c c(
\header{
-enteredby = "jcn";
-copyright = "public domain";
-TestedFeatures = "chord inversions";
+enteredby = "jcn";
+copyright = "public domain";
+TestedFeatures = "chord inversions";
}
-inversions = \notes\transpose c''\chords{
+inversions = \notes\transpose c''\chords{
% inversions
c1 c:sus c:6 c/e c/g
c/d % this triggers a warning: no 'd' in chord of c
>
}
-\version "1.3.110";
+\version "1.3.117";
by default.
";
}
-\version "1.3.110"
-chord = \notes\transpose c''\chords{
+\version "1.3.117"
+chord = \notes\transpose c''\chords{
c1
c:m
c:m5-
\header{
-filename = "chord-table.ly";
-copyright = "public domain";
-enteredby = "jcn";
+filename = "chord-table.ly";
+copyright = "public domain";
+enteredby = "jcn";
}
-tab = \notes\transpose c'''\chords{
+tab = \notes\transpose c'''\chords{
c1 c:m c:4 c:m4 c:5+ c:5- c:dim c:5-.5+ c:6\break %c:m6\break
}
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
%{
Would this be acceptable/good enough/convenient for entry?
%}
-scales = \notes \transpose c'' \chords{
+scales = \notes \transpose c'' \chords{
%<c1 e g>
c1:m c:min c4:dim c:aug c:sus c:maj
c1:6 c4:7 c:9 c:11 c:13
c\breve c\longa
}
-keys = \notes{
+keys = \notes{
s1
s1 s1 s1
s1 s1
";
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes{
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c {
Normal collisions. We have support for polyphony, where the
middle voices are horizontally shifted.
";
-filename = "collisions.ly";
-description = "random counterpoint to test collisions";
-enteredby = "HWN,JCN";
-copyright = "public domain";
-Tested = "test the Collision resolution ";
+filename = "collisions.ly";
+description = "random counterpoint to test collisions";
+enteredby = "HWN,JCN";
+copyright = "public domain";
+Tested = "test the Collision resolution ";
}
-\version "1.3.110";
+\version "1.3.117";
-twovoice = \context Staff \notes <
+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 = \context Staff \notes <
+twovoicesteminvert = \context Staff \notes <
% the f and g on 4th beat are exceptionally ugh.
\context Voice=i { \stemUp c4 d e f g2 g4 a | }
\context Voice=ii { \stemDown g4 f e g g2 g2 }
>
-threevoice = \context Staff \notes <
+threevoice = \context Staff \notes <
\context Voice=i { \stemUp g4 f e f g a g2 }
\context Voice=ii { \stemUp \property Voice.NoteColumn \override #'horizontal-shift = #1
e2 e2 e2 e2 }
\context Voice=iii { \stemDown c4 d e d c d es }
>
-chordstest = \context Staff \notes <
+chordstest = \context Staff \notes <
\context Voice = i \relative c {
\stemUp e4 dis c f g f a b b
}
}
>
-hairyChord = \context Staff \notes\relative c' <
+hairyChord = \context Staff \notes\relative c' <
\context Voice=one {
\property Voice.NoteColumn \override #'horizontal-shift = #0
\stemUp
-\version "1.3.110";
+\version "1.3.117";
% add cue notes context
-\version "1.3.110";
+\version "1.3.117";
\score {
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c'' {
\time 6/8;
-\version "1.3.110";
+\version "1.3.117";
%{
Would this be acceptable/good enough/convenient for entry?
%}
-scales = \notes \transpose c'' \chords{
+scales = \notes \transpose c'' \chords{
\property ChordNames.drarnChords=##t
%c1:m \break c1:m
c1:m c1:m
}
-\version "1.3.110";
+\version "1.3.117";
% (An alternative is to use a lyrics line if you want the figures
% aligned vertically.)
-\version "1.3.112";
+\version "1.3.117";
% Scheme macros for accidentals. Note how they can be combined
% with other strings, for example in: d^#`(rows ,sharp "4")
-\version "1.3.110";
+\version "1.3.117";
FontBody= \notes\transpose c''{
\bar "|:";
\header{
title= "The Feta Font";
-subtitle = "proofsheet";
-enteredby = "jcn & hwn";
-copyright = "public domain";
-description = "This file tests the Feta music font";
+subtitle = "proofsheet";
+enteredby = "jcn & hwn";
+copyright = "public domain";
+description = "This file tests the Feta music font";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.110";
+\version "1.3.117";
\include "font-body.ly"
\score{
\header{
title= "The Feta Font";
-subtitle = "proofsheet";
-enteredby = "jcn & hwn";
-copyright = "public domain";
-description = "This file tests the Feta music font";
+subtitle = "proofsheet";
+enteredby = "jcn & hwn";
+copyright = "public domain";
+description = "This file tests the Feta music font";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.110";
+\version "1.3.117";
\include "paper16.ly"
\include "font-body.ly"
\header{
title= "The Feta font";
-subtitle = "proofsheet";
-enteredby = "jcn";
-copyright = "public domain";
-description = "This file tests the Feta music-font in the 20pt version";
-TestedFeatures =
+subtitle = "proofsheet";
+enteredby = "jcn";
+copyright = "public domain";
+description = "This file tests the Feta music-font in the 20pt version";
+TestedFeatures =
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
gourlay_maxmeasures =5.;
}
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c {
second slur has slurDirection set to down, overriding the stemup setting.
";
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes \relative c'' \context Voice {
% perhaps the current modifier approach is too simplistic
-\version "1.3.110";
+\version "1.3.117";
gmsus=\notes\relative c \chords{
g1
-\version "1.3.110";
+\version "1.3.117";
%{
";
}
-\version "1.3.110";
-zager = \context Staff = zager \notes \relative c'' {
+\version "1.3.117";
+zager = \context Staff = zager \notes \relative c'' {
\clef treble;
c1
}
-zoger = \context Staff = zoger \notes \relative c'' {
+zoger = \context Staff = zoger \notes \relative c'' {
\clef treble;
\skip 1* 1;
}
-zagers = \context GrandStaff <
+zagers = \context GrandStaff <
\zager
\zoger
>
-\version "1.3.110";
+\version "1.3.117";
-voiceOne = \notes \relative c'' {
+voiceOne = \notes \relative c'' {
a1 a a
a2 a2
a2 a8 a a a
}
-staffOne = \context Staff = one <
+staffOne = \context Staff = one <
\notes \context Voice=one <
\voiceOne
>
>
-voiceTwo = \notes \relative c' {
+voiceTwo = \notes \relative c' {
% we must have a Thread context before we can switch staffs
% in this case, the notes before the switching will do that
% implicitely
c8 c c c
}
-staffTwo = \context Staff = two <
+staffTwo = \context Staff = two <
% notes must go to Staff context: we want to switch Staff translators
%\notes \context Voice=one <
\voiceTwo
%>
>
-grandstaff = \context GrandStaff = one <
+grandstaff = \context GrandStaff = one <
\staffOne
\staffTwo
>
-\version "1.3.110";
+\version "1.3.117";
-toeter_i = \notes\relative c <{
+toeterI = \notes\relative c <{
\property Staff.instrument = #"Toeters"
\property Staff.instr = #"Ttr." }
\context Voice = lower { \stemDown s1*6 }
g g g g
}>
-toeter_ii = \notes \relative c \context Voice = together {
+toeterIi = \notes \relative c \context Voice = together {
c''4^"toet II" c c c
d d d d
R1
g g g g
}
-toeters = \context Staff = toeters <
+toeters = \context Staff = toeters <
\toeter_i
\toeter_ii
>
-zager = \context Staff = zager \notes \relative c'' {
+zager = \context Staff = zager \notes \relative c'' {
\clef treble;
\property Staff.instrument = #"Zager"
\property Staff.instr = #"Zag."
f e d c
}
-zoger = \context Staff = zoger \notes \relative c'' {
+zoger = \context Staff = zoger \notes \relative c'' {
\clef treble;
\property Staff.instrument = #"Zoger"
\property Staff.instr = #"Zog."
\skip 1*1;
}
-zagers = \context GrandStaff <
+zagers = \context GrandStaff <
\zager
\zoger
>
-\version "1.3.110";
+\version "1.3.117";
shiftI \property Voice.NoteColumn \override #'horizontal-shift = #0
/Mats B
%}
-\version "1.3.110";
+\version "1.3.117";
-incipit = \notes\relative c'{
+incipit = \notes\relative c'{
<b1 fis' b d>
}
-emptyincipit = \notes{
+emptyincipit = \notes{
s1
}
-violin = \notes\relative c''{
+violin = \notes\relative c''{
\specialkey \keysignature f' fis'' g' gis'';
\time 2/2;
\clef "treble";
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes
%}
-\version "1.3.110";
+\version "1.3.117";
\score{
\context Staff <
\property Staff.instrument = "instrument"
-\version "1.3.110";
+\version "1.3.117";
\score {
-\version "1.3.110";
+\version "1.3.117";
%% This should only be necessary if your kpathsea setup is broken
%
%
% For normal (20pt) paper, do
%
-% cp locate `msam9.tfm` $LILYPONDPREFIX/tfm
+% cp locate `msam9.tfm` LILYPONDPREFIXxtfm
%
-chord = \notes\transpose c''\chords{
-\property ChordNames.ChordName \override #'style = #'jazz
+chord = \notes\transpose c''\chords{
+\property Chordnames.Chordname \override #'style = #'jazz
% major chords
c
c:6 % 6 = major triad with added sixth
";
}
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes \relative c''
-\version "1.3.110";
+\version "1.3.117";
-blah = \notes {
+blah = \notes {
\transpose c'' {
\time 4/4;
}
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c'{
[c16 \stemDown c'' \stemBoth c,, d]
";
-filename = "twinkle-pop.ly";
-%title = "Ah, vous dirais-je, maman ";
-description = "twinkle twinkle in pop-song-settings";
-composer = "traditional";
-enteredby = "HWN, chords by Johan Vromans";
-copyright = "public domain";
+filename = "twinkle-pop.ly";
+xtitle = "Ah, vous dirais-je, maman ";
+description = "twinkle twinkle in pop-song-settings";
+composer = "traditional";
+enteredby = "HWN, chords by Johan Vromans";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-m =\notes \relative c'' {
+m = \notes \relative c'' {
\property Staff.automaticMelismata = ##t
\autoBeamOff
g4 r8 \times 2/3 { g'8( f )e } r8 \grace { [d16 c b] } e4
\melismaEnd
b }
-noisebeat =\notes \relative c'' {g16 g g g }
-noise = { \noisebeat \noisebeat \noisebeat \noisebeat \noisebeat \noisebeat }
-textI = \lyrics { la2 __ la -- la __ la la la la la }
-textII = \lyrics { da -- da __ da -- da da da da da }
+noisebeat = \notes \relative c'' {g16 g g g }
+noise = { \noisebeat \noisebeat \noisebeat \noisebeat \noisebeat \noisebeat }
+textI = \lyrics { la2 __ la -- la __ la la la la la }
+textII = \lyrics { da -- da __ da -- da da da da da }
\score {
\notes < \context Staff = SA \m
>
}
-\version "1.3.110";
+\version "1.3.117";
\score{
<
\context Staff \notes { c' () c' () c' c' }
- \context Lyrics \context LyricVoice \lyrics { bla -- alb xxx -- yyy }
+ \context Lyrics \context LyricsVoice \lyrics { bla -- alb xxx -- yyy }
>
}
-\version "1.3.110";
+\version "1.3.117";
\header{
-filename = "twinkle-pop.ly";
-%title = "Ah, vous dirais-je, maman ";
-description = "twinkle twinkle in pop-song-settings";
-composer = "traditional";
-enteredby = "HWN, chords by Johan Vromans";
-copyright = "public domain";
+filename = "twinkle-pop.ly";
+xtitle = "Ah, vous dirais-je, maman ";
+description = "twinkle twinkle in pop-song-settings";
+composer = "traditional";
+enteredby = "HWN, chords by Johan Vromans";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-m =\notes \relative c'' {
+m = \notes \relative c'' {
\property Staff.automaticMelismata = ##t
\autoBeamOff
g4 r8 \times 2/3 { g'8( f )e } r8 \grace { [d16 c b] } e4
\melismaEnd
b c d e }
-textI = \lyrics { la4 __ la -- la I, la dargh la dargh. }
-textII = \lyrics { dar -- dargh __ dargh dargh; dargh la dargh loo. }
-textIII = \lyrics { la -- da __ doo dah; dargh la dargh loo. }
+textI = \lyrics { la4 __ la -- la I, la dargh la dargh. }
+textII = \lyrics { dar -- dargh __ dargh dargh; dargh la dargh loo. }
+textIII = \lyrics { la -- da __ doo dah; dargh la dargh loo. }
\score {
-\version "1.3.110";
+\version "1.3.117";
\include "english.ly"
\header{
poet = "Thomas Kelly (1769-1855)";
}
-allup = \notes{
+allup = \notes{
\stemUp
\slurUp
\tieUp
\autoBeamOff
}
-alldown = \notes{
+alldown = \notes{
\stemDown
\slurDown
\tieDown
\autoBeamOff
}
-Global = \notes{
+Global = \notes{
\key g \major;
\time 4/4;
\partial 4;
}
-Soprano = \notes \relative c' {
+Soprano = \notes \relative c' {
\allup
d4 | g g b b a g a b a g b a g( a )g % modified to test melisma align right
g d'2 c b4.( c8 )a4 a g2.
}
-Alto = \notes \relative c'{
+Alto = \notes \relative c'{
\alldown
d4 | d d g g fs g fs g fs e g fs d2.
d4 | g d b g' [b8 a] [g fs] g4 fs g2 a g fs4( e8 )g fs2.
d4 | g g d g [fs8 e] [fs g] fs4 g f2 e d4.( d8 )d4 fs4 d2.
}
-Tenor = \notes \relative c{
+Tenor = \notes \relative c{
\allup
d4 | b' b d d c b c d c b d c b2.
a4 | b a g b [d8 c] [b a] b4 a b2 c b a a2.
g4 | b d b d [c8 b] [c d] c4 b g2 g g4.( a8 [fs )a] c4 b2.
}
-Bass = \notes \relative c{
+Bass = \notes \relative c{
\alldown
d4 | g g g g d d d g d e d d g,2.
d'4 | g d b g' [b8 a] [g fs] g4 d g2 fs e a d,2.
g4 | g g g g d d d e b2 c d2. d4 g,2.
}
-TheLyrics = \lyrics <
+TheLyrics = \lyrics <
{
\context LyricsVoice = "Soprano-1"
\property LyricsVoice .stanza = "1:"
-\version "1.3.110";
+\version "1.3.117";
-$somewhat_long = \lyrics{
+somewhatLong = \lyrics{
\property Lyrics . textStyle = "roman"
AaaaaaA2
BbbbbbB2
FfffffF2
}
-$rather_long = \lyrics{
+ratherLong = \lyrics{
\property Lyrics . textStyle = "roman"
LLLLoooonggggg2
Syyllllaaabbble2
Syyyylllaaabbble2
}
-$quite_long = \lyrics{
+quiteLong = \lyrics{
\property Lyrics . textStyle = "roman"
LLLLLLLLLooooongggggggg2
Syyyyyyyyyyyyylllllllaaaaaabbble2
Syyyyyyyyyyyyylllllllaaaaaabbble2
}
-$somewhat_long_lyrics_staff = \context Lyrics = somewhat <
- \$somewhat_long
+somewhatLongLyricsStaff = \context Lyrics = somewhat <
+ \somewhatLong
>
-$rather_long_lyrics_staff = \context Lyrics = rather <
- \$rather_long
+ratherLongLyricsStaff = \context Lyrics = rather <
+ \ratherLong
>
-$quite_long_lyrics_staff = \context Lyrics = quite <
- \$quite_long
+quiteLongLyricsStaff = \context Lyrics = quite <
+ \quiteLong
>
-melody = \notes
+melody = \notes
\transpose c'{
c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
}
-$melodic_staff = \context Staff = mel <
+melodicStaff = \context Staff = mel <
\melody
>
\score
{
<
- \$melodic_staff
- \$somewhat_long_lyrics_staff
-% \$rather_long_lyrics_staff
- \$quite_long_lyrics_staff
+ \melodicStaff
+ \somewhatLongLyricsStaff
+% \ratherLongLyricsStaff
+ \quiteLongLyricsStaff
>
\paper{
-\version "1.3.110";
+\version "1.3.117";
%{
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
s1 | \mark "A";
s1 | \mark ;
s1 | \mark "12";
s1
}
-one = \notes \relative c {
+one = \notes \relative c {
c''1 c c c c
}
-\version "1.3.110";
+\version "1.3.117";
%
% Test new font selection and scm text markup
%}
-bla = \notes {
+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 { \context Score <
>
\paper { Gourlay_maxmeaures = 2.; }
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
% Test scm markup text and kerning
colliding from barlines.
";
}
-\version "1.3.110";
+\version "1.3.117";
\score { \notes { \time 3/4; \key cis \major;
R2.*15 R2. R2.*7 }
-\version "1.3.110";
+\version "1.3.117";
-voice_one = \notes\transpose c''{ \stemUp
+voiceOne = \notes\transpose c''{ \stemUp
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
es'4-. r r2 | r1 |
r2 r4 g4-. |
}
-voice_two = \notes
+voiceTwo = \notes
{ \transpose c' { \stemDown
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
\score { \notes
\context Staff <
- \$voice_two
- \$voice_one
+ \voiceTwo
+ \voiceOne
>
}
";
}
-\version "1.3.110";
+\version "1.3.117";
\score { \notes \relative c{
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes \transpose c''{
-\version "1.3.110";
+\version "1.3.117";
-m = \notes \relative c''{
+m = \notes \relative c''{
c1 | c2 c | c c | c c | \break c c | c c | c c | c c |
}
-M = \notes \relative c''{
+M = \notes \relative c''{
c1 | c2 c | c c | R1*5
}
-\version "1.3.110";
+\version "1.3.117";
\score {
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c'''{
-\version "1.3.110";
+\version "1.3.117";
%{
";
}
-scale = \notes \relative c' {
+scale = \notes \relative c' {
c8 d e f g a b c c d e f g a b c
}
-rests = \notes {
+rests = \notes {
r r r r r r r r r r r r r r r r
}
-different =< \context Voice = one {
+different = < \context Voice = one {
\stemUp
\notes \relative c'' {
r8 a e4 a e
r1
}} >
-scales = \context Staff \notes <
+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 = \context Staff \notes {
+restsII = \context Staff \notes {
r4 r8
\context Staff < { \stemUp r8 } { \stemDown r8} >
\context Staff < {\stemUp r8} r8 { \stemDown r8} >
}
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
-blah = \notes{ \transpose c'' {
+blah = \notes{ \transpose c'' {
c,4 ->-.-\fermata-"text"
c ->-.-\fermata-"text"
\header{
-enteredby = "jcn";
-copyright = "public domain";
-TestedFeatures = "This file tests Feta embedded slurs" +
+enteredby = "jcn";
+copyright = "public domain";
+TestedFeatures = "This file tests Feta embedded slurs" +
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.110";
+\version "1.3.117";
-shortlong = \notes{
+shortlong = \notes{
c4()c( c c |
c c c c |
c c c c |
c c c )c |
}
-dirs = \notes\transpose c' {
+dirs = \notes\transpose c' {
c'1() g' () c () g () c |
}
-complex = \notes{
+complex = \notes{
\transpose c'{
c,16( e,( g,( b,( d( f( a( c'())))))))c4 c4 |}
\transpose c'''{
c,16( a( f( d( b,( g,( e,( c,())))))))c4 c4 |}
}
-over = \notes\transpose c'{
+over = \notes\transpose c'{
e( g' g' )e
e( c'' f )e
}
-under = \notes\transpose c'{
+under = \notes\transpose c'{
\stemDown
f'( \stemBoth d d \stemDown )f'
f'( \stemBoth c c \stemDown )f'
f'( e, f )f'
}
-eccentric = \notes\transpose c'{
+eccentric = \notes\transpose c'{
\stemUp
\times 4/7 { f( a' f f f f )f } |
\times 4/7 { f( f f f f a' )f } |
\times 4/7 { e'( e' e' e' e' c )e' } |
}
-tiltup = \notes\transpose c'{
+tiltup = \notes\transpose c'{
e( c'' c'' )e'
\stemUp
e( c'' c'' )e'
f'( a, a, )f''
}
-tiltdown = \notes\transpose c'{
+tiltdown = \notes\transpose c'{
e'( c'' c'' )e
\stemUp
e'( c'' c'' )e
f''( a, a, )f'
}
-broken = \notes\transpose c''{
+broken = \notes\transpose c''{
c c c c()
c c c c(
c )c c c(
f,( c c )f,
}
-blend = \notes\transpose c'{
+blend = \notes\transpose c'{
e( c'' c'' )e
\stemUp
f'( c'' c'' )f'
}
-bug = \notes\transpose c'{
+bug = \notes\transpose c'{
a()g( f )e
b'()a'( g' )f'
c' () b () c' c'
}
-clipping = \notes\transpose c'{
+clipping = \notes\transpose c'{
\stemBoth
c( c''' c''')c
c( c''' c )c''
>
}
-\version "1.3.110";
+\version "1.3.117";
% test damping
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c'{
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes{
-\version "1.3.110";
+\version "1.3.117";
\score {
\context Voice \notes\relative c {
% CASE 3
run through noteheads or stems.
";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c''{
\time 3/4;
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\transpose c'{
\header {
-opus = "BWV 937 (prelude)";
-composer = "J. S. Bach";
-source = "Petits Preludes et Fugues. Urtext. Editions Henry Lemoine, Paris.";
+opus = "BWV 937 (prelude)";
+composer = "J. S. Bach";
+source = "Petits Preludes et Fugues. Urtext. Editions Henry Lemoine, Paris.";
}
%{
}
}
-\version "1.3.110";
+\version "1.3.117";
\header{
title= "Spacing";
-subtitle = "proofsheet";
-enteredby = "jcn";
-copyright = "public domain";
-TestedFeatures = "This file tests various spacings";
+subtitle = "proofsheet";
+enteredby = "jcn";
+copyright = "public domain";
+TestedFeatures = "This file tests various spacings";
}
-\version "1.3.110";
+\version "1.3.117";
-multipart = \notes \relative c'{
+multipart = \notes \relative c'{
\context StaffGroup <
\context Staff = one \context Voice {
c4
>
}
-singlepart = \notes{
+singlepart = \notes{
c4 d e f
c4 d e [f8 f]
c4 d e f8 [f16 f]
-\version "1.3.110";
-nt = \notes { c1 \break c1 c1 }
-stuff = \notes \relative c'' <
+\version "1.3.117";
+nt = \notes { c1 \break c1 c1 }
+stuff = \notes \relative c'' <
\context Staff = stone { \nt }
\context Staff = sttwo { \nt }
>
% test staff margin with partial measure.
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes { \property Staff.instrument = "foo" \partial 4; c4 c1 }
}
-\version "1.3.110";
+\version "1.3.117";
\score {
}
-\version "1.3.110";
+\version "1.3.117";
>
\paper { linewidth = -1.; }
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "paper-as5.ly"
";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
\context Voice\notes \relative c''{
%%?
\header{
title= "Stems and Beams";
-subtitle = "proofsheet";
-enteredby = "jcn";
-copyright = "public domain";
-TestedFeatures = "This file tests the length of stems and placement
+subtitle = "proofsheet";
+enteredby = "jcn";
+copyright = "public domain";
+TestedFeatures = "This file tests the length of stems and placement
of beams";
}
-\version "1.3.110";
+\version "1.3.117";
-beamintervals = \notes{
+beamintervals = \notes{
\time 7/4;
\stemUp
\transpose c'{
-\version "1.3.110";
+\version "1.3.117";
%{
%}
-bla = \notes \relative c' { <c4 e g> <c4. e g> <c8 f a> <c4 f a> <c1 e g> }
+bla = \notes \relative c' { <c4 e g> <c4. e g> <c8 f a> <c4 f a> <c1 e g> }
\score { \notes
<
\header{
-filename = "tchaikovsky.ly";
-title = "Extracts from 6th symphony";
-subtitle = "Ist movement";
+filename = "tchaikovsky.ly";
+title = "Extracts from 6th symphony";
+subtitle = "Ist movement";
composer= "Pjotr Iljitsj Tchaikovsky";
-enteredby = "Maarten Storm";
+enteredby = "Maarten Storm";
instrument= "Violoncello";
}
-\version "1.3.110";
+\version "1.3.117";
% this is an example of extreme dynamics
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes\relative c''{
% the thumb-script is used in cello music to indicate a note that should
% be played with your thumb.
-\version "1.3.110";
+\version "1.3.117";
\score { \notes \relative c'' {
[<a8_\thumb a'8-3(> <)b_\thumb b'-3>
@code{tieVerticalDirection}.
";
}
-\version "1.3.110";
+\version "1.3.117";
-t = \notes \relative c' { <c e g> ~ <c e g> }
+t = \notes \relative c' { <c e g> ~ <c e g> }
\score {
\notes \context Voice {
\header{
-filename = "title.ly";
-title = "Title";
-subtitle = "Subtitle";
+filename = "title.ly";
+title = "Title";
+subtitle = "Subtitle";
composer= "Composer (xxxx-yyyy)";
-arranger = "Arranger";
-copyright = "public domain";
-enteredby = "jcn";
-source = "urtext";
+arranger = "Arranger";
+copyright = "public domain";
+enteredby = "jcn";
+source = "urtext";
instrument= "Instrument";
}
-\version "1.3.110";
+\version "1.3.117";
\score{
\notes
%}
\header{
-title = "Test it";
-description = "Transposition Test file";
-enteredby = "Eric Bullinger";
-copyright = "public domain";
+title = "Test it";
+description = "Transposition Test file";
+enteredby = "Eric Bullinger";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-vOne = \notes \relative c''{
+vOne = \notes \relative c''{
\clef"violin";
\key d \major;
\time 2/4 ;
c4 c |
}
-vTwo = \notes \transpose d' { \vOne }
+vTwo = \notes \transpose d' { \vOne }
-vThree = \notes \relative c''{
+vThree = \notes \relative c''{
\clef"violin";
\keysignature fis cis;
\time 2/4 ;
cis4 ais4 |
}
-vFour = \notes \transpose d' \vThree
+vFour = \notes \transpose d' \vThree
\score {
\context StaffGroup <
}
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110"
+\version "1.3.117"
\score {
\context Voice \notes\relative c'' {
\header{
-filename = "twinkle.ly";
-title = "Twinkle Twinkle Little Star";
-composer = "Traditional";
-enteredby = "hwn and jcn";
-copyright = "public domain";
+filename = "twinkle.ly";
+title = "Twinkle Twinkle Little Star";
+composer = "Traditional";
+enteredby = "hwn and jcn";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "paper-as5.ly"
-melody = \notes \relative c'' {
+melody = \notes \relative c'' {
\time 2/4;
c4 c | g' g | a a | g g |
%{
%}
}
-accompany = \notes \relative c {
+accompany = \notes \relative c {
\clef "bass";
\time 2/4;
c4 c' | e c | f c | e c |
}
-text = \lyrics{
+text = \lyrics{
Twin -- kle, twin -- kle, lit -- tle star, " "
%{
How I won -- der what you " " are.
-\version "1.3.110";
+\version "1.3.117";
%
% We'd want to combine the stems, but have two slurs too...
% Looks like the a-due engraver
{\voiceTwo c}>
- \version "1.3.110";
+ \version "1.3.117";
}
\paper { }
-\version "1.3.110";
+\version "1.3.117";
\score {
\notes <
}
}
-\version "1.3.110";
+\version "1.3.117";
--- /dev/null
+
+\header{
+
+texidoc = " Volta braces are hung on barlines. At the start of the
+line, they should always start after the prefatory matter. ";
+
+}
+
+\version "1.3.117";
+
+voiceB = \notes {
+ \clef bass;
+ \property Staff.instrument = "Bass"
+ \property Staff.instr = "B"
+ \key f \minor;
+ \time 4/4;
+ f,2 ( ) f,8 r8 f8 e8
+ \repeat volta 2
+ {
+ d8. d16 e8. f16 f8 c8 c16 c8. \break
+ }
+ \alternative
+ {
+ {
+ f,2 ( ) f,8 r8 f8 e8
+ f,2 ( ) f,8 r8 f8 e8
+ g1 \break
+ f,2 ( ) f,8 r8 f8 e8
+ f,2 ( ) f,8 r8 f8 e8
+ g1 \break
+ }
+ {
+ f,2. r8 c16 c16 |
+ }
+ }
+}
+voiceC = \notes {
+ \repeat volta 2
+ {
+ bes8 bes8 c'8 c'8 a4 r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 f16 g8. |
+ \break
+ }
+ \alternative
+ {
+ { a2 ( ) a8 r8 a8 bes8 }
+ { a2. r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 c'16 c'8. |
+ }
+ }
+}
+voiceD = \notes {
+ \repeat volta 2
+ {
+ bes8 bes8 c'8 c'8 a4 r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 f16 g8. |
+ \break
+ }
+ \alternative
+ {
+ { a2 \> a8 r8 a8 \! bes8
+ }
+ { a2. r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 c'16 c'8. | \break
+ d'8. c'16 c'8. d'16 c'8 c'8 c'16 c'8. |
+ }
+ }
+}
+voiceE = \notes {
+ \repeat volta 2
+ {
+ bes8 bes8 c'8 c'8 a4 r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 f16 g8. | \break
+ }
+ \alternative
+ {
+ {
+ a2 a8 r8 a8 bes8
+
+ }
+ {
+ a2. r8 g16 f16 |
+ d'8. c'16 c'8. d'16 c'8 c'8 c'16 c'8. |
+ }
+ }
+}
+\score{
+ \notes <
+
+
+ \context Staff="4"
+ {
+ \voiceB
+ \voiceC
+ \break
+ \voiceD
+ \voiceE
+ }
+
+ >
+ \paper {
+ font_normal = 12.;
+ \translator {
+ \StaffContext
+ \consists Instrument_name_engraver;
+ }
+ }
+}
-\version "1.3.110";
+\version "1.3.117";
-voice4 = \notes {
+voiceE = \notes {
\clef bass;
\property Staff.instrument = "Bass"
\property Staff.instr = "B"
}
}
}
-voicedefault = \notes {
+voicedefault = \notes {
\time 4/4; \key f \major ;
\tempo 4 = 200;
\context Staff="4"
{
- \$voicedefault
- \$voice4
+ \voicedefault
+ \voiceE
}
>
+++ /dev/null
-\header {
-texidoc="Various warnings
-";
-}
-
-linebreak = \penalty -1000;
-
-\score {
- \notes {
- \property Voice.Stem \set #'length = #"foo"
- \property Voice.Stem \set #'longth = #2
- \property Staff.clefStyle = #"foo"
- \property Staff.clefStyle = #2
- }
-}
%}
-\version "1.3.110";
-praeludiumRight = \notes {
+\version "1.3.117";
+praeludiumRight = \notes {
\key e \major;
\clef violin;
% 16
}
-praeludiumLeft = \notes \relative c {
+praeludiumLeft = \notes \relative c {
\key e \major;
\clef bass;
-fugaIIRight = \notes \relative c'' {
+fugaIIRight = \notes \relative c'' {
\key e \major; % E-major
\clef violin;
\time3/4;
%19
}
-gracetest = \notes \grace { [c16 ( cis dis] }
+gracetest = \notes \grace { [c16 ( cis dis] }
-fugaIILeft = \notes {
+fugaIILeft = \notes {
\key e \major;
\clef bass;
%19
}
-fugaIIPedal = \notes \relative c {
+fugaIIPedal = \notes \relative c {
\key e \major;
\clef bass;
\header{
-filename = "twinkle-pop.ly";
-%title = "Ah, vous dirais-je, maman ";
-description = "twinkle twinkle in pop-song-settings";
-composer = "traditional";
-enteredby = "HWN, chords by Johan Vromans";
-copyright = "public domain";
+filename = "twinkle-pop.ly";
+xtitle = "Ah, vous dirais-je, maman ";
+description = "twinkle twinkle in pop-song-settings";
+composer = "traditional";
+enteredby = "HWN, chords by Johan Vromans";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-melodie = \notes\relative c'' {
+melodie = \notes\relative c'' {
\clef "violin";
\time 2/4 ;
f4 f | e e | d d | c2 \bar "|.";
}
-acc = \chords {
+acc = \chords {
% why don't \skip, s4 work?
c2 c f c
f c g:7 c
f c g:7 c
}
-text = \lyrics{
+text = \lyrics{
\property Lyrics . textStyle = "italic"
Ah!4 vous dir -- ai -- je ma man2
\header{
-filename = "twinkle.ly";
-title = "Twinkle Twinkle Little Star";
-composer = "Traditional";
-enteredby = "hwn and jcn";
-copyright = "public domain";
+filename = "twinkle.ly";
+title = "Twinkle Twinkle Little Star";
+composer = "Traditional";
+enteredby = "hwn and jcn";
+copyright = "public domain";
}
%{
auto beaming, adding lyrics to notes, hyphens
%}
-\version "1.3.110";
+\version "1.3.117";
-melody = \notes \relative c'' {
+melody = \notes \relative c'' {
\clef violin;
\property Staff.instrument = "alto sax"
f f | e e | d d8.( e16 | )c2 |
}
-accompany = \notes \relative c {
+accompany = \notes \relative c {
\clef "bass";
c4 c' | e c | f c | e c |
d b | c a | f g | c,2 |
}
-tekst = \lyrics{
+tekst = \lyrics{
Al -- tijd is Kort -- jak -- je ziek, " "
midden "in de" week maar "'s zon" -- dags " " niet.
"'s Zon" -- dags gaat ze naar de kerk, " "
tekst. Mogen wij ook af en toe ergens op afgeven?
%}
-hegedraagjetekst = \lyrics{
+hegedraagjetekst = \lyrics{
Al -- tijd zuigt Bill Gates mijn piek, " "
"\TeX" is slecht -- ser dan mu -- " " ziek.
"'s Zon" -- dags gaat het door een raam, " "
"\TeX" is slecht -- ser dan mu -- " " ziek.
}
-texte = \lyrics{
+texte = \lyrics{
\property Lyrics . textStyle" = "italic"
% \property Lyrics . textStyle" = "roman"
Ah! vous dir -- ai -- je ma -- man " "
Va -- lent mieux que la rai -- " " son
}
-texti = \lyrics{
+texti = \lyrics{
\property "Lyrics"."textStyle" = "roman"
Twin -- kle, twin -- kle, lit -- tle star, " "
How I won -- der what you " " are.
How I won -- der what you " " are!
}
-textii = \lyrics{
+textii = \lyrics{
When the bla -- zing sun is gone, " "
When he no -- thing shines up -- " " on,
Then you show your lit -- tle light, " "
How I won -- der what you " " are!
}
-textiii = \lyrics{
+textiii = \lyrics{
Then the tra -- veler in the dark " "
Thanks you for your ti -- ny " " spark;
He could not see which way to go,
public:
A2_engraver ();
VIRTUAL_COPY_CONS (Translator);
-
protected:
virtual void acknowledge_grob (Grob_info);
-
virtual void create_grobs ();
virtual void stop_translation_timestep ();
-
private:
Item* text_p_;
enum State { SOLO, SPLIT_INTERVAL, UNIRHYTHM, UNISILENCE, UNISON } state_;
state_ = UNISILENCE;
}
-
void
A2_engraver::create_grobs ()
{
Array<Interval> dims;
Link_array<Grob> elems;
- Link_array<Grob> all_elts
+ Link_array<Grob> all_grobs
= Pointer_group_interface__extract_elements ( me, (Grob*) 0, "elements");
- for (int i=0; i < all_elts.size(); i++)
+ for (int i=0; i < all_grobs.size(); i++)
{
- Interval y = all_elts[i]->extent(me, a);
+ Interval y = all_grobs[i]->extent(me, a);
if (!y.empty_b())
{
- Grob *e =dynamic_cast<Grob*>(all_elts[i]);
+ Grob *e =dynamic_cast<Grob*>(all_grobs[i]);
// todo: fucks up if item both in Halign & Valign.
SCM min_dims = e->remove_grob_property ("minimum-space");
Real where_f=0;
+ Array<Real> translates ;
for (int j=0 ; j < elems.size(); j++)
{
Real dy = 0.0;
}
where_f += stacking_dir * dy;
- elems[j]->translate_axis (where_f, a);
+ translates.push (where_f);
}
-}
+ /*
+ also move the grobs that were empty, to maintain spatial order.
+ */
+ if (translates.size ())
+ {
+ int i =0;
+ int j =0;
+ Real w = translates[0];
+ while (j < all_grobs.size ())
+ {
+ if (i < elems.size () && all_grobs[j] == elems[i])
+ {
+ w = translates[i++];
+ }
+ all_grobs[j]->translate_axis (w, a);
+
+ j++;
+ }
+ }
+}
Axis
Align_interface::axis (Grob*me)
{
Align_interface::set_interface (me);
Align_interface::set_axis (me,X_AXIS);
-
-
}
* direction of text-dynamic-request if not equal to direction of
line-spanner
+
+ - TODO: this engraver is too complicated. We should split it into
+ the handling of the basic grobs and the linespanner
+
+ - TODO: the line-spanner is not killed after the (de)crescs are
+ finished.
+
*/
/**
virtual void acknowledge_grob (Grob_info);
virtual bool try_music (Music *req_l);
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+
+ virtual void create_grobs ();
virtual void start_translation_timestep ();
};
Dynamic_engraver::create_grobs ()
{
if (accepted_spanreqs_drul_[START] || accepted_spanreqs_drul_[STOP] || script_req_l_)
-
{
if (!line_spanner_)
{
}
}
-
- /*
- finish side position alignment if the (de)cresc ends here, and
- there are no new dynamics.
-
- */
- else if (accepted_spanreqs_drul_[STOP]
- && !accepted_spanreqs_drul_[START] && !script_req_l_)
- {
- finished_line_spanner_ = line_spanner_;
- line_spanner_ = 0;
- }
-
- /*
- todo: resurrect dynamic{direction, padding,minimumspace}
- */
+
/*
During a (de)crescendo, pending request will not be cleared,
and a line-spanner will always be created, as \< \! are already
if (accepted_spanreqs_drul_[STOP])
{
- if (!cresc_p_)
+ /*
+ finish side position alignment if the (de)cresc ends here, and
+ there are no new dynamics.
+
+ */
+
+ if ( !cresc_p_)
{
accepted_spanreqs_drul_[STOP]->origin ()->warning
(_ ("can't find start of (de)crescendo"));
+ accepted_spanreqs_drul_[STOP] = 0;
}
else
{
- assert (!finished_cresc_p_);
+ assert (!finished_cresc_p_ && cresc_p_);
cresc_p_->set_bound (RIGHT, script_p_
- ? script_p_
- : unsmob_grob (get_property ("currentMusicalColumn")));
+ ? script_p_
+ : unsmob_grob (get_property ("currentMusicalColumn")));
finished_cresc_p_ = cresc_p_;
cresc_p_ = 0;
current_cresc_req_ = 0;
}
}
-
if (accepted_spanreqs_drul_[START])
{
if (current_cresc_req_)
protected:
virtual bool try_music (Music* req_l);
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
private:
Music* script_req_l_;
}
void
-Dynamic_performer::create_grobs ()
+Dynamic_performer::create_audio_elements ()
{
if (script_req_l_)
{
Link_array<Audio_note> notes_;
VIRTUAL_COPY_CONS (Translator);
- virtual void acknowledge_grob (Audio_element_info);
- virtual void create_grobs ();
+ virtual void acknowledge_audio_element (Audio_element_info);
+ virtual void create_audio_elements ();
virtual void start_translation_timestep ();
Global_translator* global_translator_l ();
};
}
void
-Grace_position_performer::acknowledge_grob (Audio_element_info i)
+Grace_position_performer::acknowledge_audio_element (Audio_element_info i)
{
if (Audio_note * n = dynamic_cast <Audio_note*> (i.elem_l_))
{
}
void
-Grace_position_performer::create_grobs ()
+Grace_position_performer::create_audio_elements ()
{
if (graces_.size ())
{
+++ /dev/null
-/*
- identifier.cc -- implement identifier and derived classes
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-/*
- JUNKTHIS!
- */
-#include <assert.h>
-
-#include "music-output-def.hh"
-#include "score.hh"
-#include "identifier.hh"
-#include "my-lily-lexer.hh"
-#include "debug.hh"
-#include "ly-smobs.icc"
-
-
-IMPLEMENT_UNSMOB(Identifier, identifier);
-IMPLEMENT_SMOBS(Identifier);
-IMPLEMENT_DEFAULT_EQUAL_P(Identifier);
-
-Identifier::Identifier (int code)
-{
- token_code_i_ = code;
- accessed_b_ = 0;
- smobify_self ();
-}
-
-Identifier::Identifier (Identifier const&s)
- : Input (s)
-{
- smobify_self ();
- token_code_i_ = s.token_code_i_;
- accessed_b_ = s.accessed_b_;
-}
-
-Identifier::~Identifier()
-{
-}
-
-void
-Identifier::error (String expect) const
-{
- ::error (_f ("wrong identifier type, expected: `%s'", expect));
-}
-
-String
-Identifier::str () const
-{
- return do_str ();
-}
-
-String
-Identifier::do_str () const
-{
- return "";
-}
-
-
-/* ugh. */
-#define DUMMY_STR(Class) \
-String \
-Class ## _identifier::do_str () const { \
- return String (#Class); \
-}
-
-DUMMY_STR(Score);
-DUMMY_STR(Music_output_def);
-
-
-#define DEFAULT_STR(Class) \
-String \
-Class ## _identifier::do_str () const\
-{\
- return to_str (*data_p_);\
-}
-
-
-
-/*
- fucking C++ blows me.
- */
-
-#define DEFAULT_ACCESSOR(Class)\
-Class*\
-Class ## _identifier::access_content_ ## Class (bool copy_b) const {\
- ((Class ## _identifier*)this)->accessed_b_ = true;\
- return copy_b ? new Class (*data_p_) : data_p_;\
-}
-
-#define VIRTUAL_ACCESSOR(Class)\
-Class*\
-Class ## _identifier::access_content_ ## Class (bool copy_b) const{\
- ((Class ## _identifier*)this)->accessed_b_ = true;\
- return copy_b ? dynamic_cast<Class*> (data_p_->clone()) : data_p_;\
-}
-
-#define IMPLEMENT_ID_CLASS(Class) \
- Class ## _identifier::~Class ## _identifier() { delete data_p_; }\
- Class ## _identifier::Class ## _identifier (Class*st, int code) \
- :Identifier (code)\
- {\
- data_p_ = st;\
- }\
-Class ## _identifier::Class ## _identifier (Class ## _identifier const &s) \
- : Identifier (s)\
-{\
- data_p_ = s.access_content_ ## Class (true);\
-}
-
-
-IMPLEMENT_ID_CLASS(Score);
-IMPLEMENT_ID_CLASS(Music_output_def);
-VIRTUAL_ACCESSOR(Music_output_def);
-DEFAULT_ACCESSOR(Score);
-
-
-int
-Identifier::print_smob (SCM s, SCM p, scm_print_state*)
-{
- return 1;
-}
-
-SCM
-Identifier::mark_smob (SCM s)
-{
- return SCM_EOL;
-}
-
-
-
#include "flower-proto.hh"
void do_one_file (String init_str, String file_str);
-extern Scope *header_global_p;
+extern Scheme_hash_table *global_header_p;
extern Array<String> target_str_global_array;
extern Array<String> inclusion_global_array;
extern Link_array<Score> score_global_array;
+++ /dev/null
-/*
- identifier.hh -- part of GNU LilyPond
-
- (c) 1996--2000 Han-Wen Nienhuys
-*/
-
-#ifndef IDENTIFIER_HH
-#define IDENTIFIER_HH
-
-#include "lily-proto.hh"
-#include "lily-guile.hh"
-#include "string.hh"
-#include "input.hh"
-#include "virtual-methods.hh"
-#include "smobs.hh"
-
-
-class Output_def_identifier;
-class Score_identifier;
-
-
-#define IDACCESSOR(Class)\
-virtual Class * access_content_ ## Class (bool) const { error (#Class + String ("_identifier")); return 0; }\
-
-
-/**
- A declarable data structure in lilypond.
-
- TODO: use SMOBS for the union type, and junk all derived classes.
- */
-struct Identifier : public Input {
-
- bool init_b_;
- bool accessed_b_;
- int token_code_i_;
- Identifier (Identifier const&);
- Identifier (int code) ;
-
- void print() const;
-
- void error (String) const;
- String str () const;
- IDACCESSOR(Music_output_def)
- IDACCESSOR(Score)
- VIRTUAL_COPY_CONS(Identifier);
-
- DECLARE_SMOBS(Identifier, foo);
-protected:
-
- virtual String do_str () const;
-};
-
-#define DECLARE_ID_CLASS(Class) \
-struct Class ## _identifier : Identifier {\
- Class *data_p_; \
- \
- Class ## _identifier (Class ## _identifier const&);\
- Class ## _identifier (Class*st, int code);\
- VIRTUAL_COPY_CONS(Identifier);\
- virtual Class* access_content_ ## Class (bool copy_b) const;\
- ~Class ## _identifier();\
- \
- virtual String do_str () const; \
-}\
-
-
-DECLARE_ID_CLASS(Score);
-DECLARE_ID_CLASS(Music_output_def);
-
-Identifier * unsmob_identifier (SCM);
-SCM smobify (Identifier*);
-
-#endif // IDENTIFIER_HH
-
class Hara_kiri_engraver;
class Hara_kiri_line_group_engraver;
class Hyphen_req;
-class Identifier;
+
class Includable_lexer;
class Input;
class Item;
extern void set_inclusion_names (Array<String>);
extern File_path global_path;
-extern Array<String> global_score_header_fields;
+
+/*
+ names of header fields to be dumped to a separate file.
+*/
+extern Array<String> global_dumped_header_fieldnames;
extern String default_outname_base_global;
extern String default_outname_suffix_global;
#include "lily-proto.hh"
#include "lily-guile.hh"
#include "virtual-methods.hh"
+#include "smobs.hh"
/**
Definition of how to output lilypond.
class Music_output_def
{
public:
+ Scheme_hash_table * translator_tab_;
+ Scheme_hash_table * variable_tab_;
Scope *translator_p_dict_p_;
Scope *scope_p_;
+ SCM scaled_fonts_;
+ SCM style_sheet_;
+
VIRTUAL_COPY_CONS(Music_output_def);
Music_output_def (Music_output_def const&);
Music_output_def ();
- virtual ~Music_output_def ();
virtual int get_next_default_count () const;
-
Global_translator *get_global_translator_p ();
Translator_group *get_group_translator_p (String type) const;
String get_default_output () const;
void assign_translator (SCM transdef);
SCM find_translator_l (SCM name) const;
+ String base_output_str () ;
+
+ DECLARE_SMOBS(Music_output_def,);
};
+Music_output_def* unsmob_music_output_def (SCM);
#endif // Music_output_DEF_HH
public:
String main_input_str_;
void * lexval_l;
- Scope * toplevel_scope_p_;
+ Scheme_hash_table * toplevel_variable_tab_;
+ Scope * scope_p_;
+
bool main_input_b_;
/*
protected:
VIRTUAL_COPY_CONS(Music_output_def);
- Protected_scm scaled_fonts_;
+
public:
- Protected_scm style_sheet_;
SCM font_descriptions ()const;
virtual ~Paper_def ();
static int default_count_i_;
- String current_output_base_;
/*
JUNKME
virtual int get_next_default_count () const;
static void reset_default_count();
void output_settings (Paper_outputter*) const;
- Paper_stream* paper_stream_p () const;
- String base_output_str () const;
+ Paper_outputter* paper_outputter_p () ;
Font_metric * find_font (SCM name, Real mag);
#include "protected-scm.hh"
/**
- Abstract interface for a Grob to output itself.
- */
+ Interface for a Grob to output itself; The Paper_score contains a
+ pointer to a Paper_outputter, and this enables every grob to output
+ itself.
+
+ The Paper_outputter contains a reference to an output stream
+ (Paper_stream). */
+
class Paper_outputter
{
bool verbatim_scheme_b_;
Paper_stream * stream_p_;
public:
- /**
- Assumes responsibility for deletion of P
- */
- Paper_outputter (Paper_stream*p);
+ String basename_;
+ Paper_outputter (String nm);
~Paper_outputter ();
void dump_scheme (SCM);
void output_comment (String s);
void output_string (SCM s);
void output_scheme (SCM scm);
- static void output_score_header_field (String filename, String key, String value);
- static void output_score_header_fields (Paper_def *paper);
+
+ static void write_header_field_to_file (String filename, String key, String value);
+ void write_header_fields_to_file (Scope *);
};
#endif // PAPER_OUTPUTTER_HH
class Paper_stream
{
public:
- bool outputting_comment_b_;
- ostream *os_;
- int nest_level;
- /// to check linelen in output. TeX has limits.
- int line_len_i_;
+ String basename_;
+ bool outputting_comment_b_;
+ ostream *os_;
+ int nest_level;
+ /// to check linelen in output. TeX has limits.
+ int line_len_i_;
- /// open a file for writing
- Paper_stream (String filename);
+ /// open a file for writing
+ Paper_stream (String filename);
- /// delegate conversion to scalar class
- Paper_stream &operator <<(String);
+ /// delegate conversion to scalar class
+ Paper_stream &operator <<(String);
- /// close the file
- ~Paper_stream();
+ /// close the file
+ ~Paper_stream();
private:
- Paper_stream (Paper_stream const&);
- void break_line();
+ Paper_stream (Paper_stream const&);
+ void break_line();
};
class ostream;
Array<Audio_element_info> announce_info_arr_;
private:
- void create_grobs ();
- void acknowledge_grobs ();
+ void create_audio_elements ();
+ void acknowledge_audio_elements ();
};
#endif // PERFORMER_GROUP_PERFORMER_HH
protected:
virtual void announce_element (Audio_element_info);
- virtual void acknowledge_grob (Audio_element_info);
- virtual void create_grobs ();
+ virtual void acknowledge_audio_element (Audio_element_info);
+ virtual void create_audio_elements ();
virtual int get_tempo_i() const;
virtual void play_element (Audio_element * elem_p );
};
TODO:
- This should come from GUILE. We're typically doing double work,
+ - This should come from GUILE. We're typically doing double work,
because KEY already is a symbol, and is looked up in a symbol
hashtable.
-
+
+ - use GUILE hashtables iso STL.
*/
class Scheme_hash_table : private Scm_stl_map
{
class Scheme_hash_table;
class Scope {
Scheme_hash_table *id_dict_;
+ Scope (Scope const &);
public:
SCM to_alist () const;
bool elem_b (String ) const;
bool try_retrieve (SCM key, SCM *val) const;
- Identifier *elem (String) const;
- Identifier *elem (SCM) const;
-
SCM scm_elem (String) const;
SCM scm_elem (SCM) const;
- void set (String, Identifier *);
+
void set (String, SCM);
- Scope ();
+ Scope (Scheme_hash_table*);
- Scope (Scope const &);
- ~Scope ();
friend class Scope_iter;
};
#endif /* SCOPE_HH */
#include "lily-proto.hh"
#include "protected-scm.hh"
#include "parray.hh"
+#include "smobs.hh"
/// the total music def of one movement
class Score: public Input {
public:
/// paper_, staffs_ and commands_ form the problem definition.
Link_array<Music_output_def> def_p_arr_;
- Protected_scm music_;
- Scope * header_p_;
+ SCM music_;
+ Scheme_hash_table * header_p_;
int errorlevel_i_;
/// construction
Score();
Score (Score const&);
- ~Score();
+
void process();
void add_output (Music_output_def *def_p);
+ DECLARE_SMOBS(Score,foo);
private:
void run_translator (Music_output_def*);
};
-
+Score * unsmob_score (SCM);
#endif
protected:
virtual bool try_music (Music* req_l);
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
virtual void stop_translation_timestep ();
private:
}
void
-Key_performer::create_grobs ()
+Key_performer::create_audio_elements ()
{
if (key_req_l_ &&
gh_list_p (key_req_l_->get_mus_property ("pitch-alist")))
#include <stdio.h>
#include <ctype.h>
+#include "score.hh"
#include "lily-guile.hh"
#include "string.hh"
#include "string-convert.hh"
#include "debug.hh"
#include "main.hh"
#include "musical-request.hh"
-#include "identifier.hh"
#include "version.hh"
#include "lilypond-input-version.hh"
#include "translator-def.hh"
+#include "music-output-def.hh"
/*
RH 7 fix (?)
} else if (unsmob_translator_def (sid)) {
yylval.scm = sid;
return TRANSLATOR_IDENTIFIER;
+ } else if (unsmob_score (sid)) {
+ yylval.scm =sid;
+ return SCORE_IDENTIFIER;
} else if (Music * mus =unsmob_music (sid)) {
yylval.scm = sid;
} else if (unsmob_duration (sid)) {
yylval.scm = sid;
return DURATION_IDENTIFIER;
+ } else if (unsmob_music_output_def (sid)) {
+ yylval.scm = sid;
+ return MUSIC_OUTPUT_DEF_IDENTIFIER;
}
-
-
-
- Identifier * id = unsmob_identifier (sid);
- if (id) {
- yylval.id = id;
- return id->token_code_i_;
- } else if (sid != SCM_UNDEFINED) {
+ if (sid != SCM_UNDEFINED) {
yylval.scm = sid;
return SCM_IDENTIFIER;
}
virtual bool try_music (Music* req_l);
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
private:
Link_array<Lyric_req> lreq_arr_;
void
-Lyric_performer::create_grobs ()
+Lyric_performer::create_audio_elements ()
{
// FIXME: won't work with fancy lyrics
if (lreq_arr_.size ()
int default_count_global;
File_path global_path;
-Array<String> global_score_header_fields;
+Array<String> global_dumped_header_fieldnames;
bool safe_global_b = false;
bool experimental_features_global_b = false;
find_old_relative_b= true;
break;
case 'H':
- global_score_header_fields.push (oparser_global_p->optional_argument_ch_C_);
+ global_dumped_header_fieldnames.push (oparser_global_p->optional_argument_ch_C_);
break;
case 'I':
global_path.push (oparser_global_p->optional_argument_ch_C_);
(c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
+#include "scm-hash.hh"
+
#include "dictionary.hh"
#include "scope.hh"
#include "debug.hh"
#include "music-output-def.hh"
#include "global-translator.hh"
#include "translator-def.hh"
-#include "identifier.hh"
#include "main.hh"
#include "lily-guile.hh"
+#include "ly-smobs.icc"
+
int
Music_output_def::get_next_default_count () const
{
return 0;
}
-
-
Music_output_def::Music_output_def ()
{
- scope_p_ = new Scope;
- translator_p_dict_p_ = new Scope;
+ style_sheet_ = SCM_EOL;
+ scaled_fonts_ = SCM_EOL;
+
+ variable_tab_ = new Scheme_hash_table;
+ translator_tab_ = new Scheme_hash_table;
+ scope_p_ = new Scope (variable_tab_);
+ translator_p_dict_p_ = new Scope (translator_tab_);
+
+ smobify_self ();
+ scm_unprotect_object (variable_tab_->self_scm ());
+ scm_unprotect_object (translator_tab_->self_scm ());
}
Music_output_def::~Music_output_def ()
{
- delete scope_p_;
- delete translator_p_dict_p_;
}
Music_output_def::Music_output_def (Music_output_def const &s)
{
- scope_p_ = new Scope (*s.scope_p_);
- translator_p_dict_p_ = new Scope (*s.translator_p_dict_p_);
+ variable_tab_ = new Scheme_hash_table (*s.variable_tab_);
+ translator_tab_ = new Scheme_hash_table (*s.translator_tab_);
+
+ style_sheet_ = SCM_EOL;
+ scaled_fonts_ = SCM_EOL;
+ smobify_self ();
+ scm_unprotect_object (variable_tab_->self_scm ());
+ scm_unprotect_object (translator_tab_->self_scm ());
+
+
+ scope_p_ = new Scope (variable_tab_);
+ translator_p_dict_p_ = new Scope (translator_tab_);
+
+ style_sheet_ = scm_list_copy (s.style_sheet_);
+ scaled_fonts_ = scm_list_copy (s.scaled_fonts_);
+}
+
+
+IMPLEMENT_SMOBS(Music_output_def);
+IMPLEMENT_UNSMOB(Music_output_def,music_output_def);
+IMPLEMENT_DEFAULT_EQUAL_P(Music_output_def);
+
+SCM
+Music_output_def::mark_smob (SCM m)
+{
+ Music_output_def * mo = (Music_output_def*) SCM_CELL_WORD_1 (m);
+ scm_gc_mark (mo->style_sheet_);
+ scm_gc_mark (mo->translator_tab_->self_scm());
+ scm_gc_mark (mo->variable_tab_->self_scm());
+
+ return mo->scaled_fonts_;
}
void
translator_p_dict_p_->set (s, transdef);
}
+/*
+ find the translator for NAME. NAME may be a string or a symbol.
+ */
SCM
Music_output_def::find_translator_l (SCM name) const
-{
- String s = ly_scm2string (name);
+{
+ if (gh_string_p (name))
+ name = scm_string_to_symbol (name);
SCM val =SCM_EOL;
- if (translator_p_dict_p_->elem_b (s))
- return translator_p_dict_p_->scm_elem (s);
+ translator_tab_->try_retrieve (name, &val);
return val;
}
Global_translator *
Music_output_def::get_global_translator_p ()
{
- Translator_def * t = unsmob_translator_def (find_translator_l (ly_str02scm ("Score")));
+ SCM key = ly_symbol2scm ("Score");
+ Translator_def * t = unsmob_translator_def (find_translator_l (key));
+
if (!t)
error (_f ("can't find `%s' context", "Score"));
+int
+Music_output_def::print_smob (SCM s, SCM p, scm_print_state *)
+{
+ scm_puts ("#<Music_output_def>", p);
+ return 1;
+}
+
+/*
+ ugh: should move into Music_output_def (complication: .midi and .tex
+ need separate counts.) */
+String
+Music_output_def::base_output_str ()
+{
+ String str = get_default_output ();
+
+ if (str.empty_b ())
+ {
+ str = default_outname_base_global;
+ int def = get_next_default_count ();
+ if (def)
+ str += "-" + to_str (def);
+ }
+
+ return str;
+}
{
}
-
+IMPLEMENT_TYPE_P(Music, "music?");
IMPLEMENT_UNSMOB(Music,music);
IMPLEMENT_SMOBS(Music);
IMPLEMENT_DEFAULT_EQUAL_P(Music);
#include <strstream.h>
#include <ctype.h>
+#include "lily-proto.hh"
+#include "scm-hash.hh"
#include "interval.hh"
-#include "identifier.hh"
+
#include "lily-guile.hh"
#include "parser.hh"
#include "keyword.hh"
My_lily_lexer::My_lily_lexer()
{
keytable_p_ = new Keyword_table (the_key_tab);
- toplevel_scope_p_ = new Scope;
- scope_l_arr_.push (toplevel_scope_p_);
+ toplevel_variable_tab_ = new Scheme_hash_table ;
+ scope_p_ = new Scope (toplevel_variable_tab_);
+
+ scope_l_arr_.push (scope_p_);
+
errorlevel_i_ = 0;
main_input_b_ = false;
}
My_lily_lexer::~My_lily_lexer()
{
delete keytable_p_;
- delete toplevel_scope_p_ ;
+ scm_unprotect_object (toplevel_variable_tab_->self_scm ());
+ delete scope_p_ ;
}
// move me?
#include "paper-def.hh"
-#include "identifier.hh"
#include "translator-def.hh"
My_lily_parser * current_parser;
{
My_lily_parser * me = current_parser;
- Identifier *id = unsmob_identifier (me->lexer_p_->lookup_identifier ("$defaultpaper"));
- Paper_def *p = dynamic_cast<Paper_def*> (id->access_content_Music_output_def (false));
+ Music_output_def *id = unsmob_music_output_def (me->lexer_p_->lookup_identifier ("$defaultpaper"));
+ Paper_def *p = dynamic_cast<Paper_def*> (id->clone ());
SCM al = p->translator_p_dict_p_->to_alist ();
SCM l = SCM_EOL;
virtual bool try_music (Music *req_l) ;
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
Global_translator* global_translator_l ();
private:
ADD_THIS_TRANSLATOR (Note_performer);
void
-Note_performer::create_grobs ()
+Note_performer::create_audio_elements ()
{
if (note_req_l_arr_.size ())
{
#include "main.hh"
#include "scope.hh"
#include "file-results.hh" // urg? header_global_p
-#include "paper-stream.hh"
+#include "paper-outputter.hh"
Paper_def::Paper_def ()
{
- style_sheet_ = SCM_EOL;
- scaled_fonts_ = SCM_EOL;
}
Paper_def::~Paper_def ()
Paper_def::Paper_def (Paper_def const&src)
: Music_output_def (src)
{
- scaled_fonts_ = SCM_EOL;
- style_sheet_ = src.style_sheet_;
}
}
-Paper_stream*
-Paper_def::paper_stream_p () const
+Paper_outputter*
+Paper_def::paper_outputter_p ()
{
- String outname = base_output_str ();
-
+ String basename = base_output_str ();
+ String outname = basename;
if (outname != "-")
outname += String (".") + output_global_ch;
progress_indication (_f ("paper output to %s...",
outname == "-" ? String ("<stdout>") : outname));
target_str_global_array.push (outname);
- return new Paper_stream (outname);
+ Paper_outputter * po = new Paper_outputter (outname);
+ po->basename_ = basename;
+ return po;
}
-/* URGURGUGUUGH
-
- not const.
-
- Wat een puinhoop is dit. */
-String
-Paper_def::base_output_str () const
-{
- String str = get_default_output ();
-
- if (str.empty_b ())
- {
- str = default_outname_base_global;
- int def = get_next_default_count ();
- if (def)
- str += "-" + to_str (def);
- }
-
- /* Must store value, as this function can be called only once */
- Paper_def *urg = (Paper_def*)this;
- urg->current_output_base_ = str;
-
- return str;
-}
-
/*
todo: use symbols and hashtable idx?
*/
#include "font-metric.hh"
#include "main.hh"
#include "scope.hh"
-#include "identifier.hh"
+
#include "lily-version.hh"
#include "paper-def.hh"
#include "file-results.hh"
Ugh, this is messy.
*/
-Paper_outputter::Paper_outputter (Paper_stream * ps )
+Paper_outputter::Paper_outputter (String name)
{
+ stream_p_ = new Paper_stream (name);
+
/*
lilypond -f scm x.ly
guile -s x.scm
if (verbatim_scheme_b_)
{
- *ps << ""
+ *stream_p_ << ""
";;; Usage: guile -s x.scm > x.tex\n"
"(primitive-load-path 'standalone.scm)\n"
";(scm-tex-output)\n"
;
}
- stream_p_ = ps;
}
Paper_outputter::~Paper_outputter ()
}
void
-Paper_outputter::output_score_header_field (String filename, String key, String value)
+Paper_outputter::write_header_field_to_file (String filename, String key, String value)
{
if (filename != "-")
filename += String (".") + key;
}
void
-Paper_outputter::output_score_header_fields (Paper_def *paper)
+Paper_outputter::write_header_fields_to_file (Scope * header)
{
- if (global_score_header_fields.size ())
+ if (global_dumped_header_fieldnames.size ())
{
- SCM fields;
-#if 0 // ugh, how to reach current Score or Paper_score?
- if (paper->header_l_)
- fields = paper->header_l_->to_alist ();
- else
-#endif
- fields = header_global_p->to_alist ();
- String base = paper->current_output_base_;
- for (int i = 0; i < global_score_header_fields.size (); i++)
+ SCM fields = header->to_alist ();
+ for (int i = 0; i < global_dumped_header_fieldnames.size (); i++)
{
- String key = global_score_header_fields[i];
+ String key = global_dumped_header_fieldnames[i];
SCM val = gh_assoc (ly_symbol2scm (key.ch_C ()), fields);
String s;
/* Only write header field to file if it exists */
{
s = ly_scm2string (gh_cdr (val));
/* Always write header field file, even if string is empty ... */
- output_score_header_field (base, key, s);
+ write_header_field_to_file (basename_, key, s);
}
}
}
Array<Column_x_positions> breaking = calc_breaking ();
line_l_->break_into_pieces (breaking);
- outputter_l_ = new Paper_outputter (paper_l_->paper_stream_p ());
+ outputter_l_ = paper_l_->paper_outputter_p ();
;
outputter_l_->output_header ();
outputter_l_->output_version ();
-
- if (header_global_p)
- outputter_l_->output_scope (header_global_p, "lilypond");
- if (header_l_)
- outputter_l_->output_scope (header_l_, "lilypond");
+
+ if (global_header_p)
+ {
+ Scope gh (global_header_p);
+ outputter_l_->output_scope (&gh, "lilypond");
+ }
+ if (header_l_)
+ {
+ if (header_l_)
+ outputter_l_->output_scope (header_l_, "lilypond");
+ }
+
outputter_l_->output_comment (_ ("Outputting Score, defined at: "));
outputter_l_->output_comment (origin_str_);
progress_indication ("\n");
- outputter_l_->output_score_header_fields (paper_l_);
-
+ if (global_header_p)
+ {
+ Scope gh (global_header_p);
+ outputter_l_->write_header_fields_to_file (&gh);
+ }
+
// huh?
delete outputter_l_;
outputter_l_ = 0;
#include "file-path.hh"
#include "debug.hh"
#include "dimensions.hh"
-#include "identifier.hh"
#include "command-request.hh"
#include "musical-request.hh"
#include "my-lily-parser.hh"
#include "grace-music.hh"
#include "auto-change-music.hh"
#include "part-combine-music.hh"
+#include "scm-hash.hh"
#include "chord.hh"
%union {
Link_array<Request> *reqvec;
- Identifier *id;
String * string;
Music *music;
Score *score;
Scope *scope;
-
+ Scheme_hash_table *scmhash;
Musical_req* musreq;
Music_output_def * outputdef;
%token <id> IDENTIFIER
-%token <id> SCORE_IDENTIFIER
-%token <id> MUSIC_OUTPUT_DEF_IDENTIFIER
+%token <scm> SCORE_IDENTIFIER
+%token <scm> MUSIC_OUTPUT_DEF_IDENTIFIER
%token <scm> NUMBER_IDENTIFIER
%token <scm> REQUEST_IDENTIFIER
%token <real> REAL
%type <outputdef> output_def
-%type <scope> lilypond_header lilypond_header_body
+%type <scmhash> lilypond_header lilypond_header_body
%type <request> open_request_parens close_request_parens open_request close_request
%type <request> request_with_dir request_that_take_dir verbose_request
%type <i> sub_quotes sup_quotes
THIS->lexer_p_->chordmodifier_tab_ = $1;
}
| lilypond_header {
- delete header_global_p;
- header_global_p = $1;
+ if (global_header_p)
+ scm_unprotect_object (global_header_p->self_scm ());
+ global_header_p = $1;
}
| score_block {
score_global_array.push ($1);
+
}
| output_def {
- Identifier * id = new
- Music_output_def_identifier ($1, MUSIC_OUTPUT_DEF_IDENTIFIER);
if (dynamic_cast<Paper_def*> ($1))
- THIS->lexer_p_->set_identifier ("$defaultpaper", id->self_scm ());
+ THIS->lexer_p_->set_identifier ("$defaultpaper", $1->self_scm ());
else if (dynamic_cast<Midi_def*> ($1))
- THIS->lexer_p_->set_identifier ("$defaultmidi", id->self_scm ());
+ THIS->lexer_p_->set_identifier ("$defaultmidi", $1->self_scm ());
}
| embedded_scm {
// junk value
lilypond_header_body:
{
- $$ = new Scope;
- THIS->lexer_p_-> scope_l_arr_.push ($$);
+ $$ = new Scheme_hash_table;
+
+ Scope *sc = new Scope ($$);
+ THIS->lexer_p_-> scope_l_arr_.push (sc);
}
| lilypond_header_body assignment semicolon {
lilypond_header:
HEADER '{' lilypond_header_body '}' {
$$ = $3;
- THIS->lexer_p_-> scope_l_arr_.pop ();
+ delete THIS->lexer_p_-> scope_l_arr_.pop ();
}
;
all objects can be unprotected as soon as they're here.
*/
- Identifier * id =unsmob_identifier ($4);
- Input spot = THIS->pop_spot ();
- if (id) id->set_spot (spot);
+ /*
+ Should find generic way of associating input with objects.
+ */
+ THIS->pop_spot ();
}
;
identifier_init:
score_block {
- $$ = (new Score_identifier ($1, SCORE_IDENTIFIER))->self_scm();
+ $$ = $1->self_scm ();
+ scm_unprotect_object ($$);
}
| output_def {
- $$ = (new Music_output_def_identifier ($1, MUSIC_OUTPUT_DEF_IDENTIFIER))->self_scm();
+ $$ = $1->self_scm ();
+ scm_unprotect_object ($$);
}
| translator_spec_block {
$$ = $1;
$$ = $4;
if (!$$->def_p_arr_.size ())
{
- Identifier *id =
- unsmob_identifier (THIS->lexer_p_->lookup_identifier ("$defaultpaper"));
- $$->add_output (id ? id->access_content_Music_output_def (true) : new Paper_def );
+ Music_output_def *id =
+ unsmob_music_output_def (THIS->lexer_p_->lookup_identifier ("$defaultpaper"));
+ $$->add_output (id ? id->clone () : new Paper_def );
}
}
-/*
- | SCORE '{' score_body error {
- $$ = $3
- $$->set_spot (THIS->here_input ());
- // THIS->here_input ().error ("SCORE INVALID");
- $$->error ("SCORE INVALID");
- THIS->parser_error (_f ("SCORE ERROR"));
- }
-*/
;
score_body:
Music {
$$ = new Score;
-
+
$$->set_spot (THIS->here_input ());
SCM m = $1->self_scm ();
scm_unprotect_object (m);
$$->music_ = m;
}
| SCORE_IDENTIFIER {
- $$ = $1->access_content_Score (true);
+ $$ = new Score (*unsmob_score ($1));
+ $$->set_spot (THIS->here_input ());
}
| score_body lilypond_header {
+ scm_unprotect_object ( $1->self_scm ());
$$->header_p_ = $2;
}
| score_body output_def {
music_output_def_body:
MIDI '{' {
- Identifier *id = unsmob_identifier (THIS->lexer_p_->lookup_identifier ("$defaultmidi"));
+ Music_output_def *id = unsmob_music_output_def (THIS->lexer_p_->lookup_identifier ("$defaultmidi"));
Midi_def* p =0;
if (id)
- p = dynamic_cast<Midi_def*> (id->access_content_Music_output_def (true));
+ p = dynamic_cast<Midi_def*> (id->clone ());
else
p = new Midi_def;
THIS->lexer_p_->scope_l_arr_.push (p->scope_p_);
}
| PAPER '{' {
- Identifier *id = unsmob_identifier (THIS->lexer_p_->lookup_identifier ("$defaultpaper"));
+ Music_output_def *id = unsmob_music_output_def (THIS->lexer_p_->lookup_identifier ("$defaultpaper"));
Paper_def *p = 0;
if (id)
- p = dynamic_cast<Paper_def*> (id->access_content_Music_output_def (true));
+ p = dynamic_cast<Paper_def*> (id->clone ());
else
p = new Paper_def;
THIS-> lexer_p_-> scope_l_arr_.push (p->scope_p_);
$$ = p;
}
| PAPER '{' MUSIC_OUTPUT_DEF_IDENTIFIER {
- Music_output_def *p = $3->access_content_Music_output_def (true);
+ Music_output_def *p = unsmob_music_output_def ($3);
+ p = p->clone();
THIS->lexer_p_->scope_l_arr_.push (p->scope_p_);
$$ = p;
}
| MIDI '{' MUSIC_OUTPUT_DEF_IDENTIFIER {
- Music_output_def *p = $3->access_content_Music_output_def (true);
+ Music_output_def *p = unsmob_music_output_def ($3);
+ p = p->clone();
+
THIS->lexer_p_->scope_l_arr_.push (p->scope_p_);
$$ = p;
}
void
-Performer_group_performer::create_grobs ()
+Performer_group_performer::create_audio_elements ()
{
for (SCM p = simple_trans_list_; gh_pair_p (p); p = gh_cdr ( p))
{
Translator * t = unsmob_translator (gh_car (p));
Performer * eng = dynamic_cast<Performer*> (t);
if (eng)
- eng->create_grobs ();
+ eng->create_audio_elements ();
}
}
void
-Performer_group_performer::acknowledge_grobs ()
+Performer_group_performer::acknowledge_audio_elements ()
{
for (int j =0; j < announce_info_arr_.size(); j++)
{
Translator * t = unsmob_translator (gh_car (p));
Performer * eng = dynamic_cast<Performer*> (t);
if (eng && eng!= info.origin_trans_l_)
- eng->acknowledge_grob (info);
+ eng->acknowledge_audio_element (info);
}
}
}
}
- create_grobs ();
+ create_audio_elements ();
- // debug
- int i = 0;
- while (announce_info_arr_.size () && i++ < 5)
+ while (announce_info_arr_.size ())
{
- acknowledge_grobs ();
+ acknowledge_audio_elements ();
announce_info_arr_.clear ();
- create_grobs ();
+ create_audio_elements ();
}
if (announce_info_arr_.size ())
}
void
-Performer::acknowledge_grob (Audio_element_info)
+Performer::acknowledge_audio_element (Audio_element_info)
{
}
void
-Performer::create_grobs ()
+Performer::create_audio_elements ()
{
}
protected:
virtual void initialize ();
virtual bool try_music (Music*);
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
}
void
-Piano_pedal_performer::create_grobs ()
+Piano_pedal_performer::create_audio_elements ()
{
for (Pedal_info*p = info_alist_; p && p->name_; p ++)
SCM type_name = gh_call1 (typefunc, type_p);
warning (_f ("Wrong type for property: %s, type: %s, value found: %s, type: %s",
ly_symbol2string (prop_sym).ch_C (),
- ly_scm2string (type_name).ch_C (),
+ ly_symbol2string (type_name).ch_C (),
ly_scm2string (ly_write2scm (val)).ch_C (),
ly_scm2string (ly_type (val)).ch_C ()));
scm_puts ("\n", errport);
*/
#include "scope.hh"
-#include "identifier.hh"
+#include "string.hh"
#include "scm-hash.hh"
-
-Scope::~Scope ()
+Scope::Scope (Scheme_hash_table * st)
{
- scm_unprotect_object (id_dict_->self_scm ());
-}
-
-Scope::Scope (Scope const&s)
-{
- id_dict_ =new Scheme_hash_table (*s.id_dict_);
-}
-
-Scope::Scope ()
-{
- id_dict_ = new Scheme_hash_table;
+ assert (st);
+ id_dict_ =st;
}
bool
return id_dict_->elem_b (ly_symbol2scm (s.ch_C()));
}
-
bool
Scope::elem_b (SCM s) const
{
return id_dict_->elem_b (s);
}
-Identifier*
-Scope::elem (SCM s)const
-{
- return unsmob_identifier (id_dict_->get (s));
-}
+
SCM
Scope::scm_elem (SCM s)const
return scm_elem (ly_symbol2scm (s.ch_C()));
}
-Identifier*
-Scope::elem (String s)const
-{
- return elem (ly_symbol2scm (s.ch_C()));
-}
void
Scope::set (String s, SCM id)
return id_dict_->set (ly_symbol2scm (s.ch_C()), id);
}
-void
-Scope::set (String s, Identifier * id)
-{
- return id_dict_->set (ly_symbol2scm (s.ch_C()), id->self_scm ());
-}
-
SCM
Scope::to_alist () const
{
(c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-#include <iostream.h>
+#include "ly-smobs.icc"
+#include "scm-hash.hh"
#include "score.hh"
#include "debug.hh"
#include "music-output-def.hh"
#include "music-output.hh"
-#include "source.hh"
-#include "source-file.hh"
#include "music-iterator.hh"
#include "music.hh"
#include "global-translator.hh"
header_p_ = 0;
music_ = SCM_EOL;
errorlevel_i_ = 0;
+ smobify_self ();
}
Score::Score (Score const &s)
: Input (s)
{
+ music_ = SCM_EOL;
+
+ smobify_self ();
+
Music * m =unsmob_music (s.music_);
music_ = m?m->clone()->self_scm () : SCM_EOL;
+
for (int i=0; i < s.def_p_arr_.size (); i++)
def_p_arr_.push(s.def_p_arr_[i]->clone());
errorlevel_i_ = s.errorlevel_i_;
- header_p_ = (s.header_p_) ? new Scope (*s.header_p_): 0;
+ header_p_ = (s.header_p_) ? new Scheme_hash_table (*s.header_p_): 0;
}
Score::~Score()
{
- delete header_p_;
- junk_pointer_array (def_p_arr_);
+
}
void
if(verbose_global_b)
progress_indication (_f ("elapsed time: %.2f seconds", timer.read ()));
- output->header_l_ = header_p_;
+ if (!header_p_)
+ header_p_ = new Scheme_hash_table; // ugh
+ Scope bla (header_p_);
+ output->header_l_ = &bla;
output->origin_str_ = location_str();
progress_indication ("\n");
{
def_p_arr_.push(pap_p);
}
+
+IMPLEMENT_SMOBS(Score);
+IMPLEMENT_DEFAULT_EQUAL_P(Score);
+IMPLEMENT_UNSMOB(Score, score);
+
+SCM
+Score::mark_smob (SCM s)
+{
+ Score * sc = (Score*) SCM_CELL_WORD_1(s);
+ if (sc->header_p_)
+ scm_gc_mark (sc->header_p_->self_scm ());
+ for (int i = sc->def_p_arr_.size (); i--;)
+ scm_gc_mark (sc->def_p_arr_[i]->self_scm ());
+
+ return sc->music_;
+}
+
+int
+Score::print_smob (SCM s, SCM p, scm_print_state*)
+{
+ scm_puts ("#<Score>", p);
+
+ return 1;
+}
#include "my-lily-parser.hh"
#include "source.hh"
#include "lily-version.hh"
+#include "scm-hash.hh"
Sources* source_global_l = 0;
Array<String> inclusion_global_array;
Array<String> target_str_global_array;
Link_array<Score> score_global_array;
-Scope * header_global_p;
+Scheme_hash_table * global_header_p;
void write_dependency_file (String fn, Array<String> targets,
void
do_scores()
{
- if (!header_global_p)
- header_global_p = new Scope;
+ if (!global_header_p)
+ global_header_p = new Scheme_hash_table;
for (int i=0; i < score_global_array.size(); i++)
{
Score* is_p = score_global_array[i];
void
clear_scores ()
{
- junk_pointer_array (score_global_array);
-
+ for (int i=0; i < score_global_array.size (); i++)
+ scm_unprotect_object (score_global_array[i]->self_scm ());
+ score_global_array.clear();
+
inclusion_global_array.clear ();
- delete header_global_p ;
- header_global_p =0;
+ scm_unprotect_object (global_header_p ->self_scm ());
+ global_header_p =0;
}
protected:
virtual bool try_music (Music*);
- virtual void acknowledge_grob (Audio_element_info);
- virtual void create_grobs ();
+ virtual void acknowledge_audio_element (Audio_element_info);
+ virtual void process_music ();
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
}
void
-Span_dynamic_performer::acknowledge_grob (Audio_element_info i)
+Span_dynamic_performer::acknowledge_audio_element (Audio_element_info i)
{
if (Audio_dynamic * d = dynamic_cast <Audio_dynamic*> (i.elem_l_))
{
}
void
-Span_dynamic_performer::create_grobs ()
+Span_dynamic_performer::process_music ()
{
if (span_start_req_l_ || span_req_l_drul_[START])
{
virtual void play_element (Audio_element* p);
virtual void finalize ();
virtual void initialize ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
virtual void stop_translation_timestep ();
private:
}
void
-Staff_performer::create_grobs ()
+Staff_performer::create_audio_elements ()
{
String str = new_instrument_str ();
if (str.length_i ())
virtual bool try_music (Music* req_l);
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
private:
Tempo_req* tempo_req_l_;
void
-Tempo_performer::create_grobs ()
+Tempo_performer::create_audio_elements ()
{
if (tempo_req_l_)
{
virtual void initialize ();
virtual void start_translation_timestep ();
virtual void stop_translation_timestep ();
- virtual void acknowledge_grob (Audio_element_info);
+ virtual void acknowledge_audio_element (Audio_element_info);
virtual bool try_music (Music*);
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
};
}
void
-Tie_performer::acknowledge_grob (Audio_element_info i)
+Tie_performer::acknowledge_audio_element (Audio_element_info i)
{
if (Audio_note *nh = dynamic_cast<Audio_note *> (i.elem_l_))
{
}
void
-Tie_performer::create_grobs ()
+Tie_performer::create_audio_elements ()
{
if (req_l_ && ! done_)
{
protected:
virtual void stop_translation_timestep ();
- virtual void create_grobs ();
+ virtual void create_audio_elements ();
SCM prev_fraction_;
private:
void
-Time_signature_performer::create_grobs ()
+Time_signature_performer::create_audio_elements ()
{
SCM fr = get_property ("timeSignatureFraction");
if (gh_pair_p (fr)
&& gh_procedure_p (type_p)
&& gh_call1 (type_p, val) == SCM_BOOL_F)
{
+ ok = false;
+ scm_puts (_("Failed typecheck for `").ch_C (),errport);
+ scm_display (sym,errport);
+ scm_puts ( _("', value `").ch_C (), errport);
+ scm_write (val, errport);
+ scm_puts (_("' must be of type ").ch_C (), errport);
+ SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
+ scm_display (gh_call1 (typefunc, type_p), errport);
+ scm_puts ("\n", errport);
+#if 0
ok = false;
SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
SCM type_name = gh_call1 (typefunc, type_p);
/* warning () ? */
+
scm_puts (_f ("Failed typecheck for `%s', value `%s' must be of type `%s'",
ly_symbol2string (sym).ch_C (),
- ly_scm2string (ly_write2scm( val)).ch_C (),
- ly_scm2string (type_name).ch_C ()).ch_C (),
+ ly_symbol2string (val).ch_C (),
+ ly_scm2string (ly_write2scm (val)).ch_C (),
+ ly_symbol2string (type_name).ch_C ()).ch_C (),
errport);
scm_puts ("\n", errport);
+#endif
+
}
}
return ok;
bool no_vertical_start = false;
bool no_vertical_end = to_boolean (me->get_grob_property ("last-volta"));
Spanner *orig_span = dynamic_cast<Spanner*> (me->original_l_);
- if (orig_span && (orig_span->broken_into_l_arr_[0] != (Spanner*)me))
- no_vertical_start = true;
- if (orig_span && (orig_span->broken_into_l_arr_.top () != (Spanner*)me))
- no_vertical_end = true;
-#if 0
- // FIXME
- if (bar_arr.top ()->me->get_grob_property (type_str_.length_i () > 1)
- no_vertical_end = false;
-#endif
+ bool first_bracket = orig_span && (orig_span->broken_into_l_arr_[0] == (Spanner*)me);
+
+ bool last_bracket = orig_span && (orig_span->broken_into_l_arr_.top () == (Spanner*)me);
+
+ no_vertical_start = orig_span && !first_bracket;
+ no_vertical_end = orig_span && !last_bracket;
Real staff_thick = me->paper_l ()->get_var ("stafflinethickness");
Real half_space = 0.5;
+ Item * bound = dynamic_cast<Spanner*>(me)->get_bound (LEFT);
+
/*
- the volta spanner is attached to the bar-line, which is moved
- to the right. We don't need to compensate for the left edge.
+ not a start, but really broken in two
*/
- Real left = 0.0;
+ Real left =0.;
+ if (bound->break_status_dir () == RIGHT)
+ {
+ Paper_column *pc = bound->column_l ();
+ left = pc->extent (pc, X_AXIS)[RIGHT] - bound->relative_coordinate (pc, X_AXIS);
+ }
+ else
+ {
+ /*
+ the volta spanner is attached to the bar-line, which is moved
+ to the right. We don't need to compensate for the left edge.
+ */
+ }
+
Real w = dynamic_cast<Spanner*>(me)->spanner_length () - left - half_space;
Real h = gh_scm2double (me->get_grob_property ("height"));
Real t = staff_thick * gh_scm2double (me->get_grob_property ("thickness"));
Begin3
Title: LilyPond
-Version: 1.3.117
-Entered-date: 14DEC00
+Version: 1.3.118
+Entered-date: 17DEC00
Description:
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.3.117.tar.gz
+ 1000k lilypond-1.3.118.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.117.tar.gz
+ 1000k lilypond-1.3.118.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.3.117
+Version: 1.3.118
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.117.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.118.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# Icon: lilypond-icon.gif
\header{
-filename = "bassi-part.ly";
+filename = "bassi-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "bassi.ly"
\header{
-filename = "bassi.ly";
+filename = "bassi.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "violoncello.ly"
\include "contrabasso.ly"
-bassiGroup = \context PianoStaff = bassi_group \notes <
+bassiGroup = \context PianoStaff = bassi_group \notes <
%\global
\context StaffCombineStaff=oneBassi {
\property StaffCombineStaff.midiInstrument = #"cello"
\header{
-filename = "c-midi.ly";
-title = "Ouverture";
-subtitle = "Coriolan";
-opus = "Op. 62";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "c-midi.ly";
+title = "Ouverture";
+subtitle = "Coriolan";
+opus = "Op. 62";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
%% Hopefully, this can be junked when part-combiner+midi+dynamics work ok.
%%
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\header{
-filename = "clarinetti-part.ly";
+filename = "clarinetti-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "clarinetti.ly"
\header{
-filename = "clarinetti.ly";
+filename = "clarinetti.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "clarinetto-1.ly"
\include "clarinetto-2.ly"
-clarinettiStaff = \context VoiceCombineStaff = clarinetti <
+clarinettiStaff = \context VoiceCombineStaff = clarinetti <
\property VoiceCombineStaff.midiInstrument = #"clarinet"
\property VoiceCombineStaff.instrument = #"2 Clarinetti\n(B\\textflat)"
\property VoiceCombineStaff.instr = #"Cl.\n(B\\textflat)"
\header{
-filename = "clarinetto-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "clarinetto-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-clarinettoI = \notes \relative c {
+clarinettoI = \notes \relative c {
R1 *2 |
d''4-.\ff r r2 |
R1 *3 |
\header{
-filename = "clarinetto-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "clarinetto-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-clarinettoII = \notes \relative c {
+clarinettoII = \notes \relative c {
R1*2 bes''4-.\ff r r2 |
R1*3 |
cis4-. r r2 |
\header{
-filename = "contrabasso.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "contrabasso.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-contrabasso = \notes \relative c {
+contrabasso = \notes \relative c {
% copied 21 from cello
c1\ff ~ |
c |
%% on my printer, I use dvips -O 5mm,0mm -o x.ps coriolan
\header{
-filename = "coriolan.ly";
-title = "Ouverture";
-subtitle = "Coriolan";
-opus = "Op. 62";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "coriolan.ly";
+title = "Ouverture";
+subtitle = "Coriolan";
+opus = "Op. 62";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "paper16.ly"
\include "violino-2.ly"
-legniGroup = \context StaffGroup = legni_group <
+legniGroup = \context StaffGroup = legni_group <
\flautiStaff
\oboiStaff
\clarinettiStaff
\fagottiStaff
>
-ottoniGroup = \context StaffGroup = otonni_group <
+ottoniGroup = \context StaffGroup = otonni_group <
\corniStaff
\trombeStaff
>
-timpaniGroup = \context StaffGroup = timpani_group <
+timpaniGroup = \context StaffGroup = timpani_group <
\timpaniStaff
% Force a staff bracket (?)
\context Staff = timpany { \skip 1*314; }
>
-violiniGroup = \context GrandStaff = violini_group <
+violiniGroup = \context GrandStaff = violini_group <
\violinoIStaff
\violinoIIStaff
>
-archiGroup = \context StaffGroup = archi_group <
+archiGroup = \context StaffGroup = archi_group <
\violiniGroup
\violiGroup
\bassiGroup
\header{
-filename = "corni-part.ly";
+filename = "corni-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "corni.ly"
\header{
-filename = "corni.ly";
+filename = "corni.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "corno-1.ly"
\include "corno-2.ly"
-corniStaff = \context VoiceCombineStaff = corni <
+corniStaff = \context VoiceCombineStaff = corni <
\property VoiceCombineStaff.midiInstrument = #"french horn"
\property VoiceCombineStaff.instrument = #"2 Corni\n(E\\textflat)"
\property VoiceCombineStaff.instr = #"Cor.\n(E\\textflat)"
\header{
-filename = "corno-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "corno-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-cornoI = \notes \relative c {
+cornoI = \notes \relative c {
R1*2 |
f''4-.\ff r r2 |
R1*3 |
\header{
-filename = "corno-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "corno-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-cornoII = \notes \relative c {
+cornoII = \notes \relative c {
R1*2 |
d''4-.\ff r r2 |
R1*3 |
\header{
-filename = "fagotti-part.ly";
+filename = "fagotti-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "fagotti.ly"
\header{
-filename = "fagotti.ly";
+filename = "fagotti.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "fagotto-1.ly"
\include "fagotto-2.ly"
-fagottiStaff = \context VoiceCombineStaff = fagotti <
+fagottiStaff = \context VoiceCombineStaff = fagotti <
\property VoiceCombineStaff.midiInstrument = #"bassoon"
\property VoiceCombineStaff.instrument = #"2 Fagotti"
\property VoiceCombineStaff.instr = #"Fg."
\header{
-filename = "fagotto-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "fagotto-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-fagottoI = \notes \relative c {
+fagottoI = \notes \relative c {
R1*2 |
as'4-.\ff r r2 |
R1 *3 |
\header{
-filename = "fagotto-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "fagotto-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-fagottoII = \notes \relative c {
+fagottoII = \notes \relative c {
R1*2 |
f4-.\ff r r2 |
R1*3 |
\header{
-filename = "flauti-part.ly";
+filename = "flauti-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "flauti.ly"
\header{
-filename = "flauti.ly";
+filename = "flauti.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "flauto-1.ly"
\include "flauto-2.ly"
-flautiStaff = \notes \context VoiceCombineStaff = flauti <
+flautiStaff = \notes \context VoiceCombineStaff = flauti <
\property VoiceCombineStaff.midiInstrument = #"flute"
\property VoiceCombineStaff.instrument = #"2 Flauti"
\property VoiceCombineStaff.instr = #"Fl."
\header{
-filename = "flauto-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "flauto-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-flautoI = \notes \relative c {
+flautoI = \notes \relative c {
R1 *2 |
c'''4-.\ff r r2 |
R1 *3 |
\header{
-filename = "flauto-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "flauto-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-flautoII = \notes \relative c {
+flautoII = \notes \relative c {
R1 *2 |
as'''4-.\ff r r2 |
R1 *3 |
\header{
-filename = "global.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "global.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
\time 4/4;
\key es \major;
\skip 1*314; \bar "|.";
\header{
-filename = "oboe-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "oboe-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-oboeI = \notes \relative c'' {
+oboeI = \notes \relative c'' {
R1*2 |
as'4-.\ff r r2 |
R1*3 |
\header{
-filename = "oboe-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "oboe-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-oboeII = \notes \relative c{
+oboeII = \notes \relative c{
R1*2|
f''4-.\ff r r2 |
R1*3 |
\header{
-filename = "oboi-part.ly";
+filename = "oboi-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "oboi.ly"
\header{
-filename = "oboi.ly";
+filename = "oboi.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "oboe-1.ly"
\include "oboe-2.ly"
-oboiStaff = \context VoiceCombineStaff = oboi <
+oboiStaff = \context VoiceCombineStaff = oboi <
\property VoiceCombineStaff.midiInstrument = #"oboe"
\property VoiceCombineStaff.instrument = #"2 Oboi"
\property VoiceCombineStaff.instr = #"Ob."
\header{
-filename = "timpani-part.ly";
+filename = "timpani-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "timpani.ly"
\header{
-filename = "timpani.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "timpani.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-timpani = \notes \relative c {
+timpani = \notes \relative c {
R1*2 |
c4-.\ff r r2 |
R1*3 |
R1*18|
}
-timpaniStaff = \context Staff = timpani <
+timpaniStaff = \context Staff = timpani <
\property Staff.midiInstrument = #"timpani"
\property Staff.instrument = #"2 Timpani\n(C-G)"
\property Staff.instr = #"Timp."
\header{
-filename = "trombe-part.ly";
+filename = "trombe-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "trombe.ly"
\header{
-filename = "trombe.ly";
+filename = "trombe.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "trombo-1.ly"
\include "trombo-2.ly"
-trombeStaff = \context VoiceCombineStaff = trombe <
+trombeStaff = \context VoiceCombineStaff = trombe <
\context VoiceCombineStaff=trombe {
\property VoiceCombineStaff.midiInstrument = #"trumpet"
\property VoiceCombineStaff.instrument = #"2 Trombe\n(C)"
\header{
-filename = "trombo-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "trombo-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-tromboI = \notes \relative c {
+tromboI = \notes \relative c {
R1*2 |
c''4-.\ff r r2 |
R1*3 |
\header{
-filename = "trombo-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "trombo-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-tromboII = \notes \relative c {
+tromboII = \notes \relative c {
R1*2 |
c'4-.\ff r r2 |
R1*3 |
\header{
-filename = "viola-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "viola-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-violaI = \notes \relative c {
+violaI = \notes \relative c {
c'1\ff ~ |
c |
f,4-. r r2 |
\header{
-filename = "viola-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "viola-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-violaII = \notes \relative c {
+violaII = \notes \relative c {
c1\ff ~ |
c |
f4-. r r2 |
\header{
-filename = "violi-part.ly";
+filename = "violi-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "violi.ly"
\header{
-filename = "violi.ly";
+filename = "violi.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "viola-1.ly"
\include "viola-2.ly"
%{
-violiGroup = \context PianoStaff = violi_group \notes <
+violiGroup = \context PianoStaff = violi_group \notes <
\context StaffCombineStaff=oneVioli {
\property StaffCombineStaff.midiInstrument = #"viola"
\property StaffCombineStaff.instrument = #"Viola"
>
%}
-violiGroup = \notes \context VoiceCombineStaff = violi <
+violiGroup = \notes \context VoiceCombineStaff = violi <
\context VoiceCombineStaff=violi {
\property VoiceCombineStaff.midiInstrument = #"viola"
\property VoiceStaffCombineStaff.instrument = #"Viola"
\header{
-filename = "violino-1-part.ly";
+filename = "violino-1-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "violino-1.ly"
\header{
-filename = "violino-1.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "violino-1.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-violinoI = \notes \relative c {
+violinoI = \notes \relative c {
c'1\ff ~ |
c |
<f4-. c'-. as'-.> r r2 |
c4 r r2 |
}
-violinoIStaff = \context Staff = violino1 <
+violinoIStaff = \context Staff = violino1 <
\property Staff.midiInstrument = #"violin"
\property Staff.instrument = #"Violino I"
\property Staff.instr = #"Vl. I"
\header{
-filename = "violino-2-part.ly";
+filename = "violino-2-part.ly";
% %title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global.ly"
\include "violino-2.ly"
\header{
-filename = "violino-2.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "violino-2.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-violinoII = \notes \relative c {
+violinoII = \notes \relative c {
c'1\ff ~ |
c |
<f4-. c'-. as'-.> r r2 |
c4 r r2 |
}
-violinoIIStaff = \context Staff = violino2 <
+violinoIIStaff = \context Staff = violino2 <
% MIDI hoort geeneens verschil tussen een
% eerste en tweede viool ;-)
\property Staff.midiInstrument = #"violin"
\header{
-filename = "violoncello.ly";
-%title = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
-description = "";
-composer = "Ludwig van Beethoven (1770-1827)";
-enteredby = "JCN";
-copyright = "public domain";
+filename = "violoncello.ly";
+xtitle = "Ouvert\\"ure zu Collins Trauerspiel \\"Coriolan\\" Opus 62";
+description = "";
+composer = "Ludwig van Beethoven (1770-1827)";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
-violoncello = \notes \relative c {
+violoncello = \notes \relative c {
c1\ff ~ |
c |
f,4-. r r2 |
\header{
filename="verso_2.ly";
-enteredby = "Peter Chubb";
-arranger = "Peter Chubb";
-composer = "Domenico Zipoli";
-date = "c1700";
-title = "Verso II";
+enteredby = "Peter Chubb";
+arranger = "Peter Chubb";
+composer = "Domenico Zipoli";
+date = "c1700";
+title = "Verso II";
}
%{
under the Gnu Public Licence.
%}
-\version "1.3.110";
+\version "1.3.117";
-$voice_one = \notes \relative c' {
+voiceOne = \notes \relative c' {
a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
[a8 gis16 fis16] gis4 a4^"'" e'4 | f2 ~ [f8 g16 f] e4 ~| [e8 f16 e] [d8 c] d2 |
c2 bes4 ~ [bes8 c16 bes] | a4~[a8 bes16 a] g4~ [g8 a16 g] f4 ~ [ f8 g16 f] e4 a4~|
[a8 g16 fis] g4 ~ g f | e2 ~ e4 g4 ~ | g [fis8 e] fis2 \bar "|.";
}
-$voice_two = \notes \relative c' {
+voiceTwo = \notes \relative c' {
[d8 e f d ] g4 c, | f d e2 | f4 ~ [f8 g16 f] e4 a|
d,4. d8 c4 a'4 | r4 a4 bes4 ~ [bes8 c16 bes] | a2 ~ [a8 bes16 a] g4 ~|
[ g8 a16 g ] f4 ~ [f8 g16 f] e4 | f2 ~ f4 e4 ~| e4 d4~ d4 cis4 |
d2 cis4 d4~ | d4 [cis8 b] cis2 | d1 \bar "|.";
}
-$voice_three = \notes \relative c'
+voiceThree = \notes \relative c'
{
r1 | r2 [a8 b c a] | d4 g, c4. [d16 c] |
b4. b8 [a b c a ] | [d, e f d ] g4 c,4 | f2 bes4 ~ [bes8 c16 bes]|
\context Staff = descant {
\property Staff.Instrument = "Descant"
\clef "G^8";
- \notes \transpose bes' {\global \$voice_one }
+ \notes \transpose bes' {\global \voiceOne }
}
\context Staff = treble {
\property Staff.Instrument = "Treble"
\clef "G";
- \notes \transpose bes' {\global \$voice_two }
+ \notes \transpose bes' {\global \voiceTwo }
}
\context Staff = lower {
\property Staff.Instrument = "Tenor or Treble II"
\clef "G";
- \notes \transpose bes'' {\global \$voice_three }
+ \notes \transpose bes'' {\global \voiceThree }
}
>
}
\clef "G";
\global
\context Staff <
- { \voiceOne \$voice_one }
- { \voiceTwo \$voice_two }
+ { \voiceOne \voiceOne }
+ { \voiceTwo \voiceTwo }
>
}
\context Staff = bass {
- \clef "F"; \global \$voice_three
+ \clef "F"; \global \voiceThree
}
>
}
Tested Features: cross staff auto beams and slurs, grace notes, no bars
%}
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
\key a \minor;
\time 6/4;
\skip 1.*34;
\bar "|.";
}
-melody = \notes\relative c''{
+melody = \notes\relative c''{
\clef violin;
\property Voice.verticalDirection = #1
\property Voice.graceFraction = #(make-moment 1 4)
<e1*6/4 g b e> ~ <e g b e>
}
-basloopje = \notes\relative c{
+basloopje = \notes\relative c{
d,8( a' d f a d f d a f d )a
}
-accompany = \notes \relative c {
+accompany = \notes \relative c {
% snapnie, hoevaak relative c heeft ze nodig?
\basloopje
\basloopje
Tested Features:
%}
-\version "1.3.110";
+\version "1.3.117";
\include "nederlands.ly"
-global = \notes {
+global = \notes {
\key a \minor;
\time 2/4;
s2*10
\bar "|.";
}
-i = \context Staff \notes\relative c''{
+i = \context Staff \notes\relative c''{
\context Voice=i
\stemUp
}
-ii = \context Staff \notes\relative c'{
+ii = \context Staff \notes\relative c'{
\context Voice=ii
\stemDown
}
-lower = \context Staff \notes \relative c{
+lower = \context Staff \notes \relative c{
\context Voice=iii
<as4 as'> <es es'> | r <as as'> | <des, des'> <f f'> | <c c'> r |
\header{
-filename = "standchen.ly";
-title = "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
-opus = "D. 957 No. 4";
-composer = "Franz Schubert (1797-1828)";
+filename = "standchen.ly";
+title = "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
+opus = "D. 957 No. 4";
+composer = "Franz Schubert (1797-1828)";
poet= "Text by Ludwig Rellstab (1799-1860)";
-enteredby = "JCN";
-description = "A schubert song in 16 pt";
-copyright = "public domain";
+enteredby = "JCN";
+description = "A schubert song in 16 pt";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "standchen.ly"
\header{
-filename = "standchen.ly";
+filename = "standchen.ly";
title = "St\\\"andchen";
-subtitle = "(Serenade)\\\\``Leise flehen meine Lieder''";
-opus = "D. 957 No. 4";
-date = "August 1828";
-composer = "Franz Schubert (1797-1828)";
+subtitle = "(Serenade)\\\\``Leise flehen meine Lieder''";
+opus = "D. 957 No. 4";
+date = "August 1828";
+composer = "Franz Schubert (1797-1828)";
poet= "Text by Ludwig Rellstab (1799-1860)";
-enteredby = "JCN";
-copyright = "public domain";
+enteredby = "JCN";
+copyright = "public domain";
}
-\version "1.3.110";
+\version "1.3.117";
% fool make-website
% \include "standchen.ly";
\header{
-filename = "standchen.ly";
+filename = "standchen.ly";
%
% From the album:
% Schubert-Lieder
% page 60
%
title = "St\\\"andchen";
-subtitle = "(Serenade)\\\\``Leise flehen meine Lieder''";
-opus = "D. 957 No. 4";
-date = "August 1828";
-composer = "Franz Schubert (1797-1828)";
+subtitle = "(Serenade)\\\\``Leise flehen meine Lieder''";
+opus = "D. 957 No. 4";
+date = "August 1828";
+composer = "Franz Schubert (1797-1828)";
poet= "Text by Ludwig Rellstab (1799-1860)";
-enteredby = "JCN";
-copyright = "public domain";
+enteredby = "JCN";
+copyright = "public domain";
% mutopia headers.
mutopiatitle = "St\\\"andchen";
Note: Original key f.
%}
-\version "1.3.110";
+\version "1.3.117";
-dynamicUp = \property Voice.DynamicLineSpanner \override #'direction = #1
-dynamicRevert = \property Voice.DynamicLineSpanner \revert #'direction
+dynamicUp = \property Voice.DynamicLineSpanner \override #'direction = #1
+dynamicRevert = \property Voice.DynamicLineSpanner \revert #'direction
-vocalVerse = \notes\relative c''{
+vocalVerse = \notes\relative c''{
\dynamicUp
\times 2/3 { [ g8( )as] g } c4. g8 |
\times 2/3 { [ f8( )g] f } c'4 f,8 r |
c!2. |
}
-vocalThrough = \notes\relative c{
+vocalThrough = \notes\relative c{
\dynamicUp
g''8. g16 b8. b16 d8. d16 |
c4 b r |
e2 r4 |
}
-lyricVerseOne = \lyrics{
+lyricVerseOne = \lyrics{
Lei- se fleh- en mei- ne Lie- der
Durch die Nacht zu dir;
In den stil- len Hain her- nie- der
F\"urch- te, Hol- de, nicht.
}
-lyricVerseTwo = \lyrics{
+lyricVerseTwo = \lyrics{
H\"orst die Nach- ti- gal- len schla- gen?
Ach! sie fleh- en dich,
Mit der T\"o- ne s\"u- "\ss en" Kla- gen
Jed- es wei- che Herz.
}
-lyricThrough = \lyrics{
+lyricThrough = \lyrics{
La\ss auch dir die Brust be- we- gen
Lieb- chen, h\"o- re mich!
Be- bend harr' ich dir ent- ge- gen!
Be- gl\"uk- ke mich!
}
-trebleIntro = \notes\relative c{
+trebleIntro = \notes\relative c{
r8^"\bf M\\\"a\\ss ig"\pp <g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.> |
r8 <as-. c-.> <c-. es-.> <as-. c-.> <c-. es-.> <as-. c-.> |
r8 <as-. c-.> <c-. d-.> <as-. c-.> <c-. d-.> <as-. c-.> |
\break
}
-trebleVerseOne = \notes\relative c{
+trebleVerseOne = \notes\relative c{
%5
r8 <g' c> <c es> <g c> <c es> <g c> |
r8 <f c'> <c' d> <f, c'> <c' d> <f, c'> |
< {a4.- > )f8} { a'4. f8 } > |
}
-trebleEentje = \notes \relative c'{
+trebleEentje = \notes \relative c'{
\stemBoth
<e2 e'> <e4 g>|
<f2\mf as!(> <as8.->( c> <)f16 )as> |
<e2. g> |
}
-trebleThrough = \notes \relative c'{
+trebleThrough = \notes \relative c'{
\stemBoth
<e2. e'> |
%61
<g2.-\fermata e' g> |
}
-bassIntro = \notes\relative c{
+bassIntro = \notes\relative c{
\dynamicUp
%1
<c,2 c'> r4 |
<g2 g'> r4 |
}
-bassVerseOne = \notes\relative c{
+bassVerseOne = \notes\relative c{
% \clef bass;
\dynamicUp
%5
c,8 [<c' e g> <e g c> <c e g> <e g c> <c e g>] |
}
-bassEentje = \notes\relative c{
+bassEentje = \notes\relative c{
\dynamicUp
<c,8 c'> [<c' f as!> <f as c> <c f as> <f as c> <c f as>] |
c,8 [<c' e g> <e g c> <c e g> <e g c> <c e g>] |
c,8 [<e' g> <g c> <e g> <g c> <e g>] |
}
-bassThrough = \notes\relative c{
+bassThrough = \notes\relative c{
\dynamicUp
%61
<g,8^"cresc." g'> [<g' b d> <b d f> <g b d> <as!-> b-> d->> <b d f>] |
<c,2._\fermata g' c> |
}
-global = \notes{
+global = \notes{
\time 3/4;
\key es \major;
\skip 4 * 12;
\bar "|.";
}
-allLyrics = \lyrics {
+allLyrics = \lyrics {
\lyricVerseOne
\lyricVerseTwo
\lyricThrough
}
-lyricStaff = \context Lyrics = lyric<
+lyricStaff = \context Lyrics = lyric<
\allLyrics
>
-vocals = \notes{
+vocals = \notes{
\clef treble;
% certainly no auto-beaming for vocals
\property Voice.noAutoBeaming = ##t
\vocalThrough
}
-vocalStaff = \context Staff = vocal<
+vocalStaff = \context Staff = vocal<
\property Staff.instrument = "synth voice"
\global
\vocals
>
-treble = {
+treble = {
\clef treble;
\property Voice.autoBeamSettings \override #'(begin * * * *) = #(make-moment 0 1)
\trebleIntro
\trebleThrough
}
-trebleStaff = \context Staff = treble<
+trebleStaff = \context Staff = treble<
\global
\treble
>
-bass = {
+bass = {
\clef bass;
\bassIntro
\bassVerseOne
\bassThrough
}
-bassStaff = \context Staff = bass<
+bassStaff = \context Staff = bass<
\global
\bass
>
-grandStaff = \context PianoStaff <
+grandStaff = \context PianoStaff <
\trebleStaff
\bassStaff
>
metre = "6 6. 8 6. D";
}
-\version "1.3.110";
+\version "1.3.117";
sop=\notes \transpose c''{
ees2 ees4 ees4 g2 g2 | c'1.
g,2 | aes, ees bes, bes, | ees\breve
}
-global = \notes{
+global = \notes{
\time 4/2;
\key ees \major;
\skip 2*4; \skip 1.; \bar "||";
\skip 2; \skip 2*12;\skip 1.; \bar "||";
}
-$upper_staff = \context Staff = upper {
+upperStaff = \context Staff = upper {
\clef "treble";
\context Staff <
\global
>
}
-$lower_staff = \context Staff = lower {
+lowerStaff = \context Staff = lower {
\clef "bass";
\context Staff <
\global
\score{
\context ChoirStaff\notes <
- \$upper_staff
- \$lower_staff
+ \upperStaff
+ \lowerStaff
>
\paper {
indent = 0.0\mm;
\header {
-title = "Laudate Dominum";
-composer = "Parry";
-metre = "10 10 . 11 11";
+title = "Laudate Dominum";
+composer = "Parry";
+metre = "10 10 . 11 11";
}
-\version "1.3.110";
+\version "1.3.117";
-sop = \notes \transpose c''{
+sop = \notes \transpose c''{
f4 | d' bes c' | f2 \bar "||";
bes4 | g f ees | d2 \bar "||";
f4 | d' c' f | bes2 \bar "||";
ees'4 | d' bes c' | bes2 \bar "||";
}
-alto = \notes \transpose c'' {
+alto = \notes \transpose c'' {
f4 | f f g | f2 \bar "||";
f4 | bes, d c | bes,2 \bar "||";
f4 | bes a f | f ~ g \bar "||";
g | f4. g8 a4 | bes2 \bar "||";
}
-tenor = \notes \transpose c' {
+tenor = \notes \transpose c' {
f4 | bes d' [c'8 ~ bes] | a2 \bar "||";
f4 | g g a | bes2 \bar "||";
d'4 | e' f' c' | d' ~ c' \bar "||";
bes4 | bes d' ees' | d'2 \bar "||";
}
-bass = \notes \transpose c'{
+bass = \notes \transpose c'{
f4 | bes d ees | f2 \bar "||";
d4 | ees c f | bes,2 \bar "||";
bes4 | g a a, | d ~ e \bar "||";
c4 | f f f | bes,2 \bar "||";
}
-global = \notes {
+global = \notes {
\time 3/4;
\partial 4;
\key bes \major;
\header {
-filename = "maccabaeus.ly";
-enteredby = "Peter Chubb";
-composer = "G. F. Handel";
-date = "1680";
-title = "Maccabaeus";
-metre = "10 11. 11 11. and refrain";
+filename = "maccabaeus.ly";
+enteredby = "Peter Chubb";
+composer = "G. F. Handel";
+date = "1680";
+title = "Maccabaeus";
+metre = "10 11. 11 11. and refrain";
}
-\version "1.3.110";
+\version "1.3.117";
sop=\notes \relative c'' {
b2 gis4. a8 |b2 e,2 |
fis4 [gis8 a] b4. e,8 | e1 \bar "|.";
}
-global = \notes {
+global = \notes {
\time 2/2;
\property Staff.timeSignatureStyle = "C"
\key e \major;
}
-$upper_staff = \context Staff = upper {
+upperStaff = \context Staff = upper {
\global
\clef "treble";
\context Staff <
>
}
-$lower_staff = \context Staff = lower {
+lowerStaff = \context Staff = lower {
\global
\clef "bass";
\context Staff <
\score {
<
- \$upper_staff
- \$lower_staff
+ \upperStaff
+ \lowerStaff
>
\paper {
}
metre = "8 7 8 7 D";
}
-\version "1.3.110";
+\version "1.3.117";
sop=\notes \relative c'' {
b4 b c d | d c b a | g g a b | b4. a8 a2 |
\skip 1*4; \bar "|.";
}
-$upper_staff = \context Staff = upper \notes {
+upperStaff = \context Staff = upper \notes {
\clef "G";
\context Staff <
\global
>
}
-$lower_staff = \context Staff = lower \notes {
+lowerStaff = \context Staff = lower \notes {
\clef "F";
\context Staff <
\global
\score{
<
- \$upper_staff
- \$lower_staff
+ \upperStaff
+ \lowerStaff
>
\paper {
}
\header {
-filename = "passion.ly";
-title = "Passion Chorale";
-composer = "J. S. Bach";
-enteredby = "Peter Chubb";
+filename = "passion.ly";
+title = "Passion Chorale";
+composer = "J. S. Bach";
+enteredby = "Peter Chubb";
}
-\version "1.3.110";
+\version "1.3.117";
sop=\notes \transpose c'' {
\repeat "volta" 2 {
}
-\version "1.3.110";
+\version "1.3.117";
%{
Note: there are other verses, but the three here seem to be
bes1.
}
-v1 = \lyrics {
+vB = \lyrics {
Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2.
Al2 -- les4 schl\"aft,2. ein2 -- sam4 wacht2.
Nur2 das4 trau2 -- te,4 hoch4. -- heil8 ige4 Paar,2.
Schlaf2 in4 himm4. -- li8 -- scher4 Ruh'!1 __ ""2
}
-v2 = \lyrics {
+vC = \lyrics {
Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2.
Hir2 -- ten4 erst2. kund2 ge4 -- macht2.
Durch2 der4 En2 -- gel4 Ha4. -- lle8 -- lu4 ja2.
"``Christ,"2 der4 Ret4. -- ter,8 ist4 "da!''"1 __ ""2
}
-v3 = \lyrics {
+vD = \lyrics {
Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2.
Go2 -- ttes4 Sohn,2. o2 -- wie4 lacht2.
Lieb'2 aus4 dei2 -- nem4 g\"ott4. -- li8 -- chen4 Mund,2.
Christ,2 in4 Dei4. -- ner8 Ge4 -- burt!1 __ ""2
}
-v1e = \lyrics {
+vBe = \lyrics {
Si2 -- lent4 night,2. Ho2 -- ly4 night,2.
All2 is4 calm,2. all2 is4 bright,2.
'Round2 yon4 Vir2 -- gin4 Mo4. -- ther8 and4 Child2.
Sleep4. __ ""8 in4 hea4. -- ven-8 ly4 peace.1 __ ""2
}
-v2e = \lyrics {
+vCe = \lyrics {
Si2 -- lent4 night,2. Ho2 -- ly4 night,2.
Shep2 -- herds4 quake2. at2 the4 sight,2.
Glo2 -- ries4 stream4. __ ""8 from4 hea4. -- ven8 a4 -- far,2.
Christ4. __ ""8 the4 Sa4. -- viour8 is4 "born.''"1 __ ""2
}
-v3e = \lyrics {
+vDe = \lyrics {
Si2 -- lent4 night,2. Ho2 -- ly4 night,2.
Son2 of4 God,2. love's2 pure4 light2.
Ra2 -- diant4 beams4. from8 Thy4 ho2 -- ly4 face,2.
}
}
-lower = \notes {
+lower = \notes {
\context Staff = lower {
\clef "bass";
\context Staff <
piece = "Allemande";
}
-\version "1.3.110";
+\version "1.3.117";
-global = \notes{
+global = \notes{
\time 4/4;
\partial 8*3;
\key es \major;
\bar ":|";
}
-hoyreEn = \notes\relative c'''{
+hoyreEn = \notes\relative c'''{
% \partial 4.;
[as16 g f] |
[g16 d es b][c f es d][es b c g][as d c b] |
> s8
}
-venstreEn = \notes\relative c{
+venstreEn = \notes\relative c{
\clef bass;
% \partial 4.;
r16 r8 |
%%
%% Noe liknende skjer også i mellom andre og tredje stemme i takt 28
-\version "1.3.110";
+\version "1.3.117";
-global = \notes{
+global = \notes{
\time 2/4;
\key es \major;
s2*48
\bar "|.";
}
-vOne = \context 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 = \context Voice = voiceTwo \notes\relative c{
+vTwo = \context Voice = voiceTwo \notes\relative c{
es4 r8 es |
f4 r8 bes |
c4. b8 |
\property Voice.horizontalNoteShift = 0
c4 b8 |
}
-vThree = \context Voice = voiceThree \notes\relative c{
+vThree = \context Voice = voiceThree \notes\relative c{
\stemDown
c4 r8 c |
d4 r |
<c2 c,>
}
-vOneSwitch = \context Voice = voiceOne \notes{
+vOneSwitch = \context Voice = voiceOne \notes{
s2*4
%5
\stemUp s2*17
\stemBoth
}
-vTwoSwitch = \context 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 = \context Voice = voiceThree \notes{
+vThreeSwitch = \context Voice = voiceThree \notes{
\stemDown s2*6
%7
\stemBoth s2*21
copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
\time 4/4;
\key es \major;
\skip 1*7;
\bar "|.";
}
-hoyreOpp = \notes\relative c'' {
+hoyreOpp = \notes\relative c'' {
\stemUp
es4^"Grave adagio" r16 [es d16. es32] f4 r16 [f16 f16. g32] |
[as8. as16] [as16 g32 f g16. d32] es4 r16 [g g16. as32] |
> g2
}
-hoyreNed = \notes\relative c'' {
+hoyreNed = \notes\relative c'' {
\clef violin;
\stemDown
<c4 g> r16 [c b16. c32] d4 r16 [d d16. es32] |
g4 <c8 a> r <d2 b>
}
-venstreOpp = \notes\relative c' {
+venstreOpp = \notes\relative c' {
\clef bass;
\stemUp
<c4 g es> r <b as f d> r |
r <a es c> <g2 d>
}
-venstreNed = \notes\relative c{
+venstreNed = \notes\relative c{
\stemDown
c4 r c r | r c c r | c r r c | c r r16 [c c16. bes32] bes4 |
r16 [bes bes16. as32] as4_"tr" g r16 [d' d16. es32] |
r g g2
}
-andanteEn = \notes\relative c''{
+andanteEn = \notes\relative c''{
[g16^"andante" c32 d es8~] [es16 d32 c es d c b] [c16 g as f] [g c g f] |
[es16 c'32 d es d c16] [g' c, as' c,] [b c d b] g16 r16 r8 |
%10
>
}
-andanteTo = \notes\relative c{
+andanteTo = \notes\relative c{
%8
[c8 c'] [f, g] [es c] [es g] |
[c as] [es f] [g g,]
>
}
-allegroEn = \notes\relative c''{
+allegroEn = \notes\relative c''{
%30
[g8^"allegro" g16 a] [b8 c d es] |
[f16 es d es] [f8 g as d,] |
{ \stemDown r8 r16 <a16 es> <g2 d> | <g es> }
>
}
-allegroTo = \notes\relative c'{
+allegroTo = \notes\relative c'{
\clef bass;
%30
\context Staff <
-\version "1.3.110";
+\version "1.3.117";
-$global_i = \notes{
+globalI = \notes{
\time 12/8;
\key g \major;
}
-\version "1.3.110";
+\version "1.3.117";
-$global_ii = \notes{
+globalIi = \notes{
\time 4/4;
\property Staff.timeSignatureStyle = "C2/2"
\key a\minor;
\header{
-filename = "viola-i.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "viola-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global-i.ly"
\include "violoncello-i.ly";
-$viola_i_staff = \context Staff = viola <
+violaIStaff = \context Staff = viola <
\property Staff.instrument = "viola"
%\property Staff.instrument = "violin"
- \notes\transpose c'' \$violoncello_i
+ \notes\transpose c'' \violoncelloI
\clef alto;
- \$global_i
+ \globalI
>
\header{
-filename = "viola-ii.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "viola-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
\include "global-ii.ly"
\include "violoncello-ii.ly";
-$viola_ii_staff = \context Staff = viola <
+violaIiStaff = \context Staff = viola <
\property Staff.instrument = "viola"
%\property Staff.instrument = "violin"
\clef alto;
- \$global_ii
- \notes\transpose c'' \$violoncello_ii
+ \globalIi
+ \notes\transpose c'' \violoncelloIi
>
\header{
-filename = "viola-part.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "viola-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
% {
\include "viola-i.ly"
\score{
- \$viola_i_staff
+ \violaIStaff
\paper{
\translator { \BarNumberingStaffContext }
}
\include "viola-ii.ly"
\score{
- \$viola_ii_staff
+ \violaIiStaff
\paper{
% castingalgorithm=0.0;
\translator { \BarNumberingStaffContext }
\header{
-filename = "violino-i.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violino-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
-$violino_i = \notes\relative c'' {
+violinoI = \notes\relative c'' {
\property Voice.beamAutoEnd = "3/8"
%% should fix autobeamer: not only check shortest type's end in beam,
%%% but also the newly added type's end
\include "global-i.ly"
-$violino_i_staff = \context Staff = violino <
+violinoIStaff = \context Staff = violino <
%urg
% \notes\property Voice.textStyle = "large" s4^"Moderato"
% \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
% urg, timidity violino patches broken?
%\property Staff.instrument = "violin"
\property Staff.instrument = "viola"
- \$violino_i
- \$global_i
+ \violinoI
+ \globalI
>
\header{
-filename = "violino-ii.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violino-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
-$violino_ii = \notes\relative c''{
+violinoIi = \notes\relative c''{
R1*8 |
r2 e |
%10
\include "global-ii.ly"
-$violino_ii_staff = \context Staff = violino <
+violinoIiStaff = \context Staff = violino <
%urg
% \notes\property Voice.textStyle = "large" s4^"Moderato"
% \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
% urg, timidity violino patches broken?
%\property Staff.instrument = "violin"
\property Staff.instrument = "viola"
- \$violino_ii
- \$global_ii
+ \violinoIi
+ \globalIi
>
-\version "1.3.110";
+\version "1.3.117";
\header{
-filename = "violino-part.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violino-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
% {
\include "violino-i.ly"
\score{
- \$violino_i_staff
+ \violinoIStaff
\paper{
\translator { \BarNumberingStaffContext }
}
\include "violino-ii.ly"
\score{
- \$violino_ii_staff
+ \violinoIiStaff
\paper{
\translator { \BarNumberingStaffContext }
% castingalgorith=0;
\header{
-filename = "violino-viola.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violino-viola.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
% {
\include "violino-i.ly";
\score{
\context GrandStaff <
- \$violino_i_staff
- \$viola_i_staff
+ \violinoIStaff
+ \violaIStaff
>
\paper{
\translator {
\score{
\context GrandStaff <
- \$violino_ii_staff
- \$viola_ii_staff
+ \violinoIiStaff
+ \violaIiStaff
>
\paper{
\translator {
\header{
-filename = "violino-violoncello.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violino-violoncello.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
% {
\include "violino-i.ly";
\score{
\context GrandStaff <
- \$violino_i_staff
- \$violoncello_i_staff
+ \violinoIStaff
+ \violoncelloIStaff
>
\paper{
\translator {
\score{
\context GrandStaff <
- \$violino_ii_staff
- \$violoncello_ii_staff
+ \violinoIiStaff
+ \violoncelloIiStaff
>
\paper{
\translator {
\header{
-filename = "violoncello-i.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violoncello-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
-$violoncello_i = \notes\relative c{
+violoncelloI = \notes\relative c{
\property Voice.beamAutoEnd = "3/8"
g8()a d, g b()g d()fis a d a()fis |
g()d b' g b()c b()e fis g d()d, |
\include "global-i.ly"
-$violoncello_i_staff = \context Staff = violoncello <
+violoncelloIStaff = \context Staff = violoncello <
\property Staff.instrument = "cello"
- \$violoncello_i
+ \violoncelloI
\clef bass;
- \$global_i
+ \globalI
>
\header{
-filename = "violoncello-ii.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violoncello-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
-$violoncello_ii = \notes\relative c{
+violoncelloIi = \notes\relative c{
r2 a'2|c e,| f8(e)d2 e8()fis| g a bes2 a8()gis|
%5
a(e)a b a(e)a c|b(e,b')c b(e,b')d|c(e,c')d c(e,c')e|b(e,b')c b(e,b')d|
\include "global-ii.ly"
-$violoncello_ii_staff = \context Staff = violoncello <
+violoncelloIiStaff = \context Staff = violoncello <
\property Staff.instrument = "cello"
- \$violoncello_ii
+ \violoncelloIi
\clef bass;
- \$global_ii
+ \globalIi
>
\header{
-filename = "violoncello-part.ly";
-title = "Vier Duette";
-description = "Four duets for Violino and Violoncello (Viola)";
-opus = "BWV";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "jcn";
-copyright = "Public Domain";
+filename = "violoncello-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
}
-\version "1.3.110";
+\version "1.3.117";
% {
\include "violoncello-i.ly"
\score{
- \$violoncello_i_staff
+ \violoncelloIStaff
\paper{
\translator { \BarNumberingStaffContext }
}
\include "violoncello-ii.ly"
\score{
- \$violoncello_ii_staff
+ \violoncelloIiStaff
\paper{
%castingalgorithm=0.;
\translator { \BarNumberingStaffContext }
-\version "1.3.110";
+\version "1.3.117";
-lowstaff = \translator "Staff" = "lower"
-upstaff = \translator "Staff" = "upper"
+lowstaff = \translator "Staff" = "lower"
+upstaff = \translator "Staff" = "upper"
% upper = \context Staff \notes\relative c {
-upper = \context Staff=upper \notes\relative c {
+upper = \context Staff=upper \notes\relative c {
\context Voice=i
\property Voice . textStyle = "italic"
}
% lower = \context Staff \notes\relative c{
-lower = \context Staff=lower \notes\relative c{
+lower = \context Staff=lower \notes\relative c{
\context Voice=i
\property Voice . textStyle = "roman"
c4 e g^"\\textsharp"-\mordent g,4 |
\bar "|.";
}
-global = \notes{
+global = \notes{
\time 4/4;
}
-\version "1.3.110";
-upper = \context Staff \notes\relative c{
+\version "1.3.117";
+upper = \context Staff \notes\relative c{
\context Voice=i
\property Voice . textStyle = "italic"
r8 c' e g e c bes' g |
\bar "|.";
}
-lower = \context Staff \notes\relative c{
+lower = \context Staff \notes\relative c{
\context Voice=i
<
{ \stemUp c1 ~ | c ~ | c }
\bar "|.";
}
-global = \notes{
+global = \notes{
\time 4/4;
}
%}
-\version "1.3.110";
+\version "1.3.117";
-upper = \notes \transpose c'' {
+upper = \notes \transpose c'' {
r16 [c es g] [es c es c] r c r c |
r16 [c es g] [es c es c] r c r c |
r16 [c f as] [f c f c] r c r c |
\bar "|.";
}
-lower = \notes{
+lower = \notes{
c4 r [g8 es] |
c4 r [g8 es] |
c4 r [as8 f] |
}
-\version "1.3.110";
+\version "1.3.117";
-upper = \context Staff \notes\relative c
+upper = \context Staff \notes\relative c
\context Voice=i {
\property Voice . textStyle = "italic"
}
-lower = \context Staff \notes\relative c{
+lower = \context Staff \notes\relative c{
\context Voice=i
d4-\mordent r r |
d2. |
}
-global = \notes{
+global = \notes{
\time 3/4;
\key f \major;
}
}
-\version "1.3.110";
+\version "1.3.117";
-one = \context Staff \notes\relative c{
+one = \context Staff \notes\relative c{
\context Voice=i
\skip 1; |
\stemUp
\bar "|.";
}
-two = \context Staff \notes\relative c{
+two = \context Staff \notes\relative c{
\context Voice=ii
r16 d'' c bes a bes f g
a8.-\mordent bes16 g8.-\prall f16 |
fis1
}
-three = \context Staff \notes\relative c{
+three = \context Staff \notes\relative c{
\context Voice=iii
\stemUp
f2 e |
\bar "|.";
}
-four = \context Staff \notes\relative c{
+four = \context Staff \notes\relative c{
\context Voice=iv
\stemDown
d2 cis |
d,1
}
-global = \notes{
+global = \notes{
\time 4/4;
\key f \major;
}
-\version "1.3.110";
+\version "1.3.117";
\include "allemande-urtext.ly";
-allemande_cello_global = \notes{
+allemandeCelloGlobal = \notes{
\time 4/4;
\key f \major;
\clef bass;
}
}
-allemande_cello_scripts = \notes{
+allemandeCelloScripts = \notes{
}
-allemande_cello_staff = \context Staff <
- \$allemande
- \$allemande_cello_global
- \$allemande_cello_scripts
+allemandeCelloStaff = \context Staff <
+ \allemande
+ \allemandeCelloGlobal
+ \allemandeCelloScripts
>
\score{
- \$allemande_cello_staff
+ \allemandeCelloStaff
\paper{ }
\midi{ \tempo 4 = 45; }
\header{ piece = "Allemande";
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-allemande_a = \context Staff \notes \relative c {
+allemandeA = \context Staff \notes \relative c {
\context Voice=i
\stemUp
a'16 |
\bar "|.";
}
-allemande_b = \notes \relative c {
+allemandeB = \notes \relative c {
\context Voice=ii
\stemDown
s16 |
% }
}
-allemande = \context Staff \notes<
- \$allemande_a
- \$allemande_b
+allemande = \context Staff \notes<
+ \allemandeA
+ \allemandeB
>
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "allemande-urtext.ly";
-allemande_viola_global = \notes{
+allemandeViolaGlobal = \notes{
\time 4/4;
\key f \major;
\clef alto;
}
}
-allemande_viola_scripts = \notes{
+allemandeViolaScripts = \notes{
}
-allemande_viola_staff = \context Staff <
- \notes \transpose c'' \$allemande
- \$allemande_viola_global
- \$allemande_viola_scripts
+allemandeViolaStaff = \context Staff <
+ \notes \transpose c'' \allemande
+ \allemandeViolaGlobal
+ \allemandeViolaScripts
>
\score{
- \$allemande_viola_staff
+ \allemandeViolaStaff
\paper{ }
\midi{ \tempo 4 = 45; }
\header{ piece = "Allemande";
-\version "1.3.110";
+\version "1.3.117";
\include "courante-urtext.ly";
-courante_cello_global = \notes{
+couranteCelloGlobal = \notes{
\time 3/4;
\key f \major;
\clef bass;
}
}
-courante_cello_scripts = \notes{
+couranteCelloScripts = \notes{
}
-courante_cello_staff = \context Staff <
- \$courante
- \$courante_cello_global
- \$courante_cello_scripts
+couranteCelloStaff = \context Staff <
+ \courante
+ \couranteCelloGlobal
+ \couranteCelloScripts
>
\score{
- \$courante_cello_staff
+ \couranteCelloStaff
\paper {}
\midi{ \tempo 4 = 55; }
\header{ piece = "Courante";
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-courante_a = \context Staff \notes \relative c {
+couranteA = \context Staff \notes \relative c {
\context Voice=i
d'16 |
d a f a d, f g a bes a bes g |
\bar "|.";
}
-courante_b = \notes \relative c {
+couranteB = \notes \relative c {
\context Voice=ii
\stemDown
s16 |
s2 s8.
}
-courante = \context Staff \notes<
- \$courante_a
- \$courante_b
+courante = \context Staff \notes<
+ \couranteA
+ \couranteB
>
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "courante-urtext.ly";
-courante_viola_global = \notes{
+couranteViolaGlobal = \notes{
\time 3/4;
\key f \major;
\clef alto;
}
}
-courante_viola_scripts = \notes{
+couranteViolaScripts = \notes{
}
-courante_viola_staff = \context Staff <
- \notes \transpose c' \$courante
- \$courante_viola_global
- \$courante_viola_scripts
+couranteViolaStaff = \context Staff <
+ \notes \transpose c' \courante
+ \couranteViolaGlobal
+ \couranteViolaScripts
>
\score{
- \$courante_viola_staff
+ \couranteViolaStaff
\paper{ }
\midi{ \tempo 4 = 55; }
\header{
-\version "1.3.110";
+\version "1.3.117";
\include "gigue-urtext.ly";
-gigue_cello_global = \notes{
+gigueCelloGlobal = \notes{
\time 3/8;
\key f \major;
\clef bass;
}
}
-gigue_cello_scripts = \notes{
+gigueCelloScripts = \notes{
}
-gigue_cello_staff = \context Staff <
- \$gigue
- \$gigue_cello_global
- \$gigue_cello_scripts
+gigueCelloStaff = \context Staff <
+ \gigue
+ \gigueCelloGlobal
+ \gigueCelloScripts
>
\score{
- \$gigue_cello_staff
+ \gigueCelloStaff
\paper{
\translator{
\VoiceContext
\midi{ \tempo 4 = 60; }
\header{
opus= "" ;
-piece ="Gigue"; }
+piece = "Gigue"; }
}
% * slurs/ties in two different threads (like beams): urtext, and additionals
%
-gigue_notes = \context Staff \notes \relative c {
+gigueNotes = \context Staff \notes \relative c {
\context Voice=i
a'8 |
d,4 bes'8 | cis,4 g'8 | f16 e f g a8 |
\bar "|.";
}
-gigue_b = \context Staff \notes \relative c {
+gigueB = \context Staff \notes \relative c {
\context Voice=ii
\stemDown
s8
<g4 e'>
}
-gigue_a = \context Voice \notes<
- \$gigue_notes
+gigueA = \context Voice \notes<
+ \gigueNotes
>
-gigue = \notes<
- \$gigue_a
- \$gigue_b
+gigue = \notes<
+ \gigueA
+ \gigueB
>
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "gigue-urtext.ly";
-gigue_viola_global = \notes{
+gigueViolaGlobal = \notes{
\time 3/8;
\key f \major;
\clef alto;
}
}
-gigue_viola_scripts = \notes{
+gigueViolaScripts = \notes{
}
-gigue_viola_staff = \context Staff <
- \notes \transpose c' \$gigue
- \$gigue_viola_global
- \$gigue_viola_scripts
+gigueViolaStaff = \context Staff <
+ \notes \transpose c' \gigue
+ \gigueViolaGlobal
+ \gigueViolaScripts
>
\score{
- \$gigue_viola_staff
+ \gigueViolaStaff
\paper{
\translator{
\VoiceContext
-\version "1.3.110";
+\version "1.3.117";
\include "menuetto-urtext.ly";
-menuetto_i_cello_global = \notes{
+menuettoICelloGlobal = \notes{
\time 3/4;
\key f \major;
\clef bass;
}
}
-menuetto_i_cello_scripts = \notes{
+menuettoICelloScripts = \notes{
\context Voice=i
s2.
s8^"~"^1_2_4 s8 s4 s^4
s8^2_3 s s s^1 s4^1
}
-menuetto_i_cello_staff = \context Staff <
- \$menuetto_i
- \$menuetto_i_cello_global
-% \$menuetto_i_cello_scripts
+menuettoICelloStaff = \context Staff <
+ \menuettoI
+ \menuettoICelloGlobal
+% \menuettoICelloScripts
>
\score{
- \$menuetto_i_cello_staff
+ \menuettoICelloStaff
\paper{
\translator{
\VoiceContext
piece ="Menuetto I"; }
}
-menuetto_ii_cello_global = \notes{
+menuettoIiCelloGlobal = \notes{
\time 3/4;
\key d \major;
\clef bass;
}
-menuetto_ii_cello_staff = \context Staff <
- \$menuetto_ii
- \$menuetto_ii_cello_global
-% \$menuetto_ii_cello_scripts
+menuettoIiCelloStaff = \context Staff <
+ \menuettoIi
+ \menuettoIiCelloGlobal
+% \menuettoIiCelloScripts
>
\score{
- \$menuetto_ii_cello_staff
+ \menuettoIiCelloStaff
\paper{
\translator{
\VoiceContext
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-menuetto_i_a = \context Staff \notes \relative c {
+menuettoIA = \context Staff \notes \relative c {
\context Voice=i
<d2\f f a> bes'4 |
bes8 a bes g a4 |
<d2. a d,> |
}
-menuetto_i_b = \context Staff \notes \relative c {
+menuettoIB = \context Staff \notes \relative c {
\context Voice = ii
\stemDown
\skip 2.*1; |
}
% UGH, fix this like in sarabande
-menuetto_i_a_voice_urg = \notes{
+menuettoIAVoiceUrg = \notes{
\context Voice = i
\skip 2.*1; \stemUp
\skip 2.*1; \stemBoth
\skip 2.*1;
}
-menuetto_i_a_voice_urg_urg = \notes<
- \$menuetto_i_a_voice_urg
- \$menuetto_i_a
+menuettoIAVoiceUrgUrg = \notes<
+ \menuettoIAVoiceUrg
+ \menuettoIA
>
-menuetto_i_b_voice_urg = \notes{
+menuettoIBVoiceUrg = \notes{
\context Voice=ii
\stemDown
% urg urg, huh?
\skip 2.*8; \stemDown
}
-menuetto_i_b_voice_urg_urg = \notes<
- \$menuetto_i_b_voice_urg
- \$menuetto_i_b
+menuettoIBVoiceUrgUrg = \notes<
+ \menuettoIBVoiceUrg
+ \menuettoIB
>
-menuetto_i = \context Staff \notes<
- \repeat "volta" 2 { \$menuetto_i_a_voice_urg_urg }
- \repeat "volta" 2 { \$menuetto_i_b_voice_urg_urg }
+menuettoI = \context Staff \notes<
+ \repeat "volta" 2 { \menuettoIAVoiceUrgUrg }
+ \repeat "volta" 2 { \menuettoIBVoiceUrgUrg }
>
-menuetto_ii = \context Staff\notes \relative c {
+menuettoIi = \context Staff\notes \relative c {
\context Voice=i
fis4^\trill d8 e fis g |
a4 fis, a' |
\bar "|.";
}
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "menuetto-urtext.ly";
-menuetto_i_viola_global = \notes{
+menuettoIViolaGlobal = \notes{
\time 3/4;
\key f \major;
\clef alto;
}
}
-menuetto_i_viola_scripts = \notes{
+menuettoIViolaScripts = \notes{
\context Voice=i
s2.
s8^"~"^1_2_4 s8*5
s4-\downbow s4-\upbow
}
-menuetto_i_viola_staff = \context Staff <
- \notes \transpose c' \$menuetto_i
- \$menuetto_i_viola_global
-% \$menuetto_i_viola_scripts
+menuettoIViolaStaff = \context Staff <
+ \notes \transpose c' \menuettoI
+ \menuettoIViolaGlobal
+% \menuettoIViolaScripts
>
\score{
- \$menuetto_i_viola_staff
+ \menuettoIViolaStaff
\paper{
\include "scs-paper.ly";
gourlay_maxmeasures = 7.0;
}
}
-menuetto_ii_viola_global = \notes{
+menuettoIiViolaGlobal = \notes{
\time 3/4;
\key d \major;
\clef alto;
}
}
-menuetto_ii_viola_staff = \context Staff <
- \notes \transpose c' \$menuetto_ii
- \$menuetto_ii_viola_global
-% \$menuetto_ii_viola_scripts
+menuettoIiViolaStaff = \context Staff <
+ \notes \transpose c' \menuettoIi
+ \menuettoIiViolaGlobal
+% \menuettoIiViolaScripts
>
\score{
- \$menuetto_ii_viola_staff
+ \menuettoIiViolaStaff
\paper{
\translator{
\VoiceContext
-\version "1.3.110";
+\version "1.3.117";
\include "prelude-urtext.ly";
-prelude_cello_global = \notes{
+preludeCelloGlobal = \notes{
\time 3/4;
\key f \major;
\clef bass;
\bar "|.";
}
-prelude_cello_scripts = \notes{
+preludeCelloScripts = \notes{
}
-prelude_cello_staff = \context Staff <
- \$prelude
- \$prelude_cello_global
- \$prelude_cello_scripts
+preludeCelloStaff = \context Staff <
+ \prelude
+ \preludeCelloGlobal
+ \preludeCelloScripts
>
\score{
- \$prelude_cello_staff
+ \preludeCelloStaff
\paper{ }
\midi{ \tempo 4 = 40; }
\header{
But merging melodic and scripts doen't work too well yet see viola_scripts .
%}
-prelude_notes = \notes \relative c {
+preludeNotes = \notes \relative c {
\context Voice=i
d8 f a4 ~ a16 f e d |
cis e g a bes4 ~ bes16 a g f |
\stemUp <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,>
}
-prelude_b = \notes \relative c {
+preludeB = \notes \relative c {
\context Voice=ii
\stemDown
s2.*47
}
-fig1 = \notes{ s16( s s )s }
-fig2 = \notes{ s16( s ) s s }
-fig3 = \notes{ s16 s( s )s }
-fig4 = \notes{ s16( s s s s s s )s }
-fig5 = \notes{ s8.()s16 }
+figB = \notes{ s16( s s )s }
+figC = \notes{ s16( s ) s s }
+figD = \notes{ s16 s( s )s }
+figE = \notes{ s16( s s s s s s )s }
+figF = \notes{ s8.()s16 }
% of course, i just type fig1, and add the \ and the silly $ later
-prelude_slurs = \notes{
+preludeSlurs = \notes{
\context Voice=i
- s4 s4 \$fig3 |
- \$fig1 s4 \$fig3 |
- \$fig1 s4 \$fig3 |
- \$fig1 s8( s s )s |
+ s4 s4 \figD |
+ \figB s4 \figD |
+ \figB s4 \figD |
+ \figB s8( s s )s |
%5
- \$fig3 s2 |
+ \figD s2 |
s2. |
- s2 \$fig1 |
- s2 \$fig1 |
- s2 \$fig1 |
+ s2 \figB |
+ s2 \figB |
+ s2 \figB |
%10
- \$fig3 \$fig3 \$fig1 |
- \$fig3 \$fig3 s4 |
- \$fig3 s2 |
- s4 s4 \$fig3 |
- \$fig3 \$fig3 \$fig3 |
+ \figD \figD \figB |
+ \figD \figD s4 |
+ \figD s2 |
+ s4 s4 \figD |
+ \figD \figD \figD |
%15
s4 s s16 s s8 |
- \$fig3 \$fig3 s4 |
+ \figD \figD s4 |
s2. |
- \$fig1 s4 \$fig1 |
- s2 \$fig1 |
+ \figB s4 \figB |
+ s2 \figB |
%20
- \$fig1 s4 \$fig1 |
- s4 \$fig3 \$fig3 |
- \$fig3 \$fig3 \$fig3 |
- s2 \$fig1 |
+ \figB s4 \figB |
+ s4 \figD \figD |
+ \figD \figD \figD |
+ s2 \figB |
s2. |
%25
- \$fig3 s4 \$fig1 |
- \$fig2 \$fig3 \$fig3 |
- \$fig2 \$fig3 \$fig3 |
- \$fig2 \$fig3 s4 |
- \$fig2 \$fig3 \$fig3 |
+ \figD s4 \figB |
+ \figC \figD \figD |
+ \figC \figD \figD |
+ \figC \figD s4 |
+ \figC \figD \figD |
%30
- \$fig3 \$fig3 \$fig1 |
- \$fig2 \$fig3 \$fig3 |
+ \figD \figD \figB |
+ \figC \figD \figD |
s2. |
- s4 \$fig3 \$fig3 |
- \$fig2 \$fig3 \$fig3 |
+ s4 \figD \figD |
+ \figC \figD \figD |
%35
- \$fig2 s2 |
+ \figC s2 |
s2. |
s2. |
s2. |
s2. |
%40
- s4 s4 \$fig3 |
- \$fig1 s2 |
- s2 \$fig3 |
- \$fig2 s2 |
+ s4 s4 \figD |
+ \figB s2 |
+ s2 \figD |
+ \figC s2 |
s2. |
%45
s2. |
- s4 \$fig2 s4 |
- \$fig3 \$fig2 s4 |
+ s4 \figC s4 |
+ \figD \figC s4 |
s2. |
- \$fig3 s2 |
+ \figD s2 |
%50
- \$fig3 s4 \$fig2 |
+ \figD s4 \figC |
s2. |
- s4 \$fig3 s4 |
- s2 \$fig2 |
-% s8()s \$fig4 |
-% s8.()s16 \$fig4 |
- \$fig5 \$fig4 |
+ s4 \figD s4 |
+ s2 \figC |
+% s8()s \figE |
+% s8.()s16 \figE |
+ \figF \figE |
%55
- \$fig3 \$fig4 |
- \$fig3 \$fig4 |
- \$fig3 \$fig3 s4 |
- s4 \$fig3 s4 |
+ \figD \figE |
+ \figD \figE |
+ \figD \figD s4 |
+ s4 \figD s4 |
}
-prelude_a = \notes<
- \$prelude_notes
- \$prelude_slurs
+preludeA = \notes<
+ \preludeNotes
+ \preludeSlurs
>
-prelude = \context Staff \notes<
- \$prelude_a
- \$prelude_b
+prelude = \context Staff \notes<
+ \preludeA
+ \preludeB
>
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "prelude-urtext.ly";
-prelude_viola_global = \notes{
+preludeViolaGlobal = \notes{
\time 3/4;
\key f \major;
\clef alto;
\bar "|.";
}
-prelude_viola_scripts = \notes{
+preludeViolaScripts = \notes{
}
-prelude_viola_staff = \context Staff <
- \notes \transpose c' \$prelude
- \$prelude_viola_global
- \$prelude_viola_scripts
+preludeViolaStaff = \context Staff <
+ \notes \transpose c' \prelude
+ \preludeViolaGlobal
+ \preludeViolaScripts
>
\score{
- \$prelude_viola_staff
+ \preludeViolaStaff
\paper{ }
\midi{ \tempo 4 = 40; }
\header{
-\version "1.3.110";
+\version "1.3.117";
\include "sarabande-urtext.ly";
-sarabande_cello_global = \notes{
+sarabandeCelloGlobal = \notes{
\time 3/4;
\key f \major;
\clef bass;
}
}
-sarabande_cello_scripts = \notes{
+sarabandeCelloScripts = \notes{
}
-sarabande_cello_staff = \context Staff <
- \$sarabande
- \$sarabande_cello_global
- \$sarabande_cello_scripts
+sarabandeCelloStaff = \context Staff <
+ \sarabande
+ \sarabandeCelloGlobal
+ \sarabandeCelloScripts
>
\score{
- \$sarabande_cello_staff
+ \sarabandeCelloStaff
\paper{ }
\midi{ \tempo 4 = 40; }
\header{
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-sarabande_a = \context Staff \notes \relative c {
+sarabandeA = \context Staff \notes \relative c {
\context Voice=i
\stemUp d8. e16 e4.-\trill d16 e |
f4. \stemBoth e8 d c |
d4 d,,2 |
}
-sarabande_b = \context Staff \notes \relative c {
+sarabandeB = \context Staff \notes \relative c {
\context Voice=ii
\stemDown
% dispute
}
-sarabande = \context Staff \notes<
- \$sarabande_a
- \$sarabande_b
+sarabande = \context Staff \notes<
+ \sarabandeA
+ \sarabandeB
>
-\version "1.3.110";
+\version "1.3.117";
-\version "1.3.110";
+\version "1.3.117";
\include "sarabande-urtext.ly";
-sarabande_viola_global = \notes{
+sarabandeViolaGlobal = \notes{
\time 3/4;
\key f \major;
\clef alto;
}
}
-sarabande_viola_scripts = \notes{
+sarabandeViolaScripts = \notes{
}
-sarabande_viola_staff = \context Staff <
- \notes \transpose c' \$sarabande
- \$sarabande_viola_global
- \$sarabande_viola_scripts
+sarabandeViolaStaff = \context Staff <
+ \notes \transpose c' \sarabande
+ \sarabandeViolaGlobal
+ \sarabandeViolaScripts
>
\score{
- \$sarabande_viola_staff
+ \sarabandeViolaStaff
\paper{ }
\midi{ \tempo 4 = 40; }
\header{
\header{
-title = "Fuga a 4";
-opus = "BWV 846";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "Shay Rojansky";
+title = "Fuga a 4";
+opus = "BWV 846";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "Shay Rojansky";
% mutopia headers.
%{
TODO: use autobeaming.
%}
-\version "1.3.110";
+\version "1.3.117";
-tenor =
+tenor =
\context Voice = tenor \notes \relative c' {
\clef "violin";
}
-soprane =
+soprane =
\context Voice = sop \notes \relative c' {
\stemUp
[f32 c d e f16 g] [a8. b16] <g2 c 2> |
}
-alt =
+alt =
\context Voice = alt \notes \relative c {
\clef "bass";
c 1 |
}
-bass =\context Voice = bassvoice
+bass = \context Voice = bassvoice
\notes \relative c {
\clef "bass";
% It would be nice to squeeze this onto two pages, but I am not sure
% if it would work with US paper.
-\version "1.3.110";
+\version "1.3.117";
-dux = \context Voice=two \notes \relative c''{
+dux = \context Voice=two \notes \relative c''{
\voiceTwo
\clef violin;
}
-comes = \context Voice=one \notes \relative c'' {
+comes = \context Voice=one \notes \relative c'' {
\voiceOne
R1 |
R1 |
f,16 g as4 g16 f e2 |
}
-bassdux = \context Voice=three \notes \relative c' {
+bassdux = \context Voice=three \notes \relative c' {
\clef bass;
R1 |
R |
\header{
-title = "Preludium";
-opus = "BWV 846";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "Shay Rojansky";
+title = "Preludium";
+opus = "BWV 846";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "Shay Rojansky";
% mutopia headers.
lastupdated = "1999/Oct/14";
}
-\version "1.3.110";
+\version "1.3.117";
% should do programmable input.
-soprane =
+soprane =
\notes \transpose c'' {
\context Staff <
% Real soprane
<e1 g c'> \bar "|.";
}
-bass =
+bass =
\notes {
\clef "bass";
\header{
-title = "La Gallina à 2 violini";
-date = "1637";
-source = "the manuscript of Canzoni overo Sonate Concertate "
+title = "La Gallina à 2 violini";
+date = "1637";
+source = "the manuscript of Canzoni overo Sonate Concertate "
+ "libro terzo, opera duodecima ";
-composer = "Tarquinio Merula (1594/95-1665)";
-enteredby = "Mats Bengtsson";
-copyright = "Public Domain ";
-subtitle = "from Canzoni overo Sonate Concertate libro terzo, "
+composer = "Tarquinio Merula (1594/95-1665)";
+enteredby = "Mats Bengtsson";
+copyright = "Public Domain ";
+subtitle = "from Canzoni overo Sonate Concertate libro terzo, "
+ "opera duodecima 1637";
}
definition below. --MB
%}
-\version "1.3.110";
+\version "1.3.117";
-global = \notes {
+global = \notes {
\property StaffGroup.timeSignatureStyle = "old"
\time 4/4;
\tempo 4=100;
+
+
(define all-music-properties '())
(define (music-property-description symbol type? description)
)
(define (true? x) #t)
-(music-property-description 'iterator-ctor c++-function? "")
+(music-property-description 'iterator-ctor c++-function? "Function to construct music-event-iterator object for this Music")
(music-property-description 'duration duration? "")
-(music-property-description 'metronome-count number? "")
-(music-property-description 'span-type symbol? "")
-(music-property-description 'alternatives list? "")
+(music-property-description 'metronome-count number? "How many beats in a minute?")
+(music-property-description 'span-type symbol? "What kind of spanner should be created?")
+(music-property-description 'alternatives music? "Music_sequence of alternatives for repeated music.")
(music-property-description 'articulation-type symbol? "key for scriptDefinitions alist")
(music-property-description 'bass boolean? "")
(music-property-description 'body music? "")
conversions.append (((1,3,113), conv, 'LyricVoice -> LyricsVoice'))
+def regularize_id (str):
+ s = ''
+ lastx = ''
+ for x in str:
+ if x == '_':
+ lastx = x
+ continue
+ elif x in string.digits:
+ x = chr(ord (x) - ord ('0') +ord ('A'))
+ elif x not in string.letters:
+ x = 'x'
+ elif x in string.lowercase and lastx == '_':
+ x = string.upper (x)
+ s = s + x
+ lastx = x
+ return s
+
+if 1:
+ def conv (str):
+
+ def regularize_dollar_reference (match):
+ return regularize_id (match.group (1))
+ def regularize_assignment (match):
+ return '\n' + regularize_id (match.group (1)) + ' = '
+ str = re.sub ('\$([^\t\n ]+)', regularize_dollar_reference, str)
+ str = re.sub ('\n([^ \t\n]+) = ', regularize_assignment, str)
+ return str
+
+ conversions.append (((1,3,117), conv, 'identifier names: $!foo_bar_123 -> xfooBarABC'))
+
+
############################