-1.5.4.jcn2
+1.5.4.jcn3
==========
+* Spelling fixes, notably staffs->staves, except for ChangeLogs.
+
+* Removed `Default' from accidental comment names.
+
+* Compile fixes.
+
* Fixed off by one error for point and click.
* Website fixes, found bug in grace note stem lengths.
@refbugs
-Currently, only plain notes (pitches, durations), voices and staffs are
+Currently, only plain notes (pitches, durations), voices and staves are
converted.
Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly.
I: graffa, F: accolade, D: Klammer, Klavierklammer, Akkolade, Chorklammer, NL:
accolade, teksthaak, DK: klamme, S: klammer, N:
-Symbol at the start of a system connecting staffs. Curly braces are used
+Symbol at the start of a system connecting staves. Curly braces are used
for connecting piano staves, angular brackets for connecting parts in an
orchestral or choral score.
@w{@ar{}@strong{brace}}
-A combination of two staffs with a brace. Usually used for piano music.
+A combination of two staves with a brace. Usually used for piano music.
@item grave
ES: grave, I: grave, F: grave, D: grave, langsam, traurig, NL: grave, ernstig, DK: grave, S: grave, N:
ES: pentagrama, I: pentagramma, rigo (musicale), F: port@'ee, D: Notensystem, NL: (noten)balk;
partij, DK: nodesystem, S: notsystem, N: .
-pl. staves or staffs. A series of (normally 5) horizontal lines upon and
-between which the musical notes are written, thus indicating (in connection
-with a @w{@ar{}@strong{clef}}) their pitch. Staffs for
+pl. staves. A series of (normally 5) horizontal lines upon and between
+which the musical notes are written, thus indicating (in connection
+with a @w{@ar{}@strong{clef}}) their pitch. Staves for
@w{@ar{}@strong{percussion}} instruments may have fewer lines.
@item stem
A grob is often associated with a symbol, but some grobs do not print
any symbols. They take care of grouping objects. For example, there is a
-separate grob that stacks staffs vertically. The @code{NoteCollision}
+separate grob that stacks staves vertically. The @code{NoteCollision}
is also an abstract grob: it only moves around chords, but doesn't print
anything.
failed, obviously).
After long and hard thinking, I came up with an algorithm for the
-horizontal spacing of multiple staffs (april 1996) I coded it (and did
+horizontal spacing of multiple staves (april 1996) I coded it (and did
not test it). After starting with this fundamental piece, I slowly
added the stages which come before spacing, and after. A half year
later, I had a first working version, (october 1996). I announced
is to be expected that more functionality -- especially for the MIDI
backend -- will be implemented at some point in the future.
-Volta repeats are printed over all staffs in a score. You must turn them
+Volta repeats are printed over all staves in a score. You must turn them
off explicitly, for example by doing
@example
\property Staff.VoltaBracket = \turnOff
@menu
-* Rhythmic staffs::
+* Rhythmic staves::
@end menu
-@node Rhythmic staffs
-@subsection Rhythmic staffs
+@node Rhythmic staves
+@subsection Rhythmic staves
Sometimes you might want to show only the rhythm of a melody. This can
be done with the rhythmic staff. All pitches of notes on such a staff
@node Piano music
@section Piano music
-Piano music is an odd type of notation. Piano staffs are two normal
-staffs coupled with a brace. The staffs are largely independent, but
-sometimes voices can cross between the two staffs. The
+Piano music is an odd type of notation. Piano staves are two normal
+staves coupled with a brace. The staves are largely independent, but
+sometimes voices can cross between the two staves. The
@code{PianoStaff} is especially built to handle this cross-staffing
behavior. In this section we discuss the @code{PianoStaff} and some
other pianistic peculiarities.
@cindex manual staff switches
@cindex staff switch, manual
-Voices can be switched between staffs manually, using the following command:
+Voices can be switched between staves manually, using the following command:
@example
\translator Staff = @var{staffname} @var{music}
@end example
\context Voice <c\arpeggio e g c>
@end lilypond
-When an arpeggio crosses staffs in piano music, you attach an arpeggio
-to the chords in both staffs, and set
+When an arpeggio crosses staves in piano music, you attach an arpeggio
+to the chords in both staves, and set
@code{PianoStaff.connectArpeggios}.
@lilypond[fragment,relative,verbatim]
* Sound output for transposing instruments::
* Multi measure rests::
* Automatic part combining::
-* Hara kiri staffs::
+* Hara kiri staves::
@end menu
@c . {Rehearsal marks}
@cindex @code{Voice_engraver}
@cindex @code{A2_engraver}
-@node Hara kiri staffs
-@subsection Hara kiri staffs
+@node Hara kiri staves
+@subsection Hara kiri staves
In orchestral scores, staff lines that only have rests are usually removed.
This saves some space. LilyPond also supports this through the hara
@separate
The length of a note is specified by adding a number, ``@code{1}'' for a
-whole note, ``@code{2}'' for a halve note, and so on:
+whole note, ``@code{2}'' for a half note, and so on:
@quotation
@example
@separate
To print more than one staff, each piece of music that makes up a staff
-is marked by adding @code{\context Staff} before it. These staffs can
-be grouped inside @code{<} and @code{>}, as is demonstrated here:
+is marked by adding @code{\context Staff} before it. These
+@code{Staff}'s can be grouped inside @code{<} and @code{>}, as is
+demonstrated here:
@quotation
@lilypond[fragment,verbatim]
@end quotation
In this example, @code{staffA} and @code{staffB} are names that are
-given to the staffs. For now, it doesn't matter what names you give, as
+given to the staves. For now, it doesn't matter what names you give, as
long as each staff has a unique name.
@separate
-We can typeset a melody with two staffs now:
+We can typeset a melody with two staves now:
@quotation
@lilypond[verbatim]
Notice that the time signature is specified in one melody staff only
(the top staff), but is printed on both. LilyPond knows that the time
-signature should be the same for all staffs.
+signature should be the same for all staves.
@separate
@c hmm, te losjes, iig
In general, @code{ < @var{stuff} > } is used when @var{stuff} all
happens at the same time, like in chords, or (like in the two-staff
-example above) in a bunch of stacked staffs.
+example above) in a bunch of stacked staves.
@end ignore
Of course, you can combine beams and ties with chords. Notice that
comment before the ``note heads'' version of the accompaniment, the
accompaniment will be on a nameless staff. The melody has to be on
staff different from the accompaniment. This is accomplished by giving
-the melody and accompaniment staffs different names.
+the melody and accompaniment staves different names.
@separate
@example
@cindex setting context variables
An interpretation context has variables, called properties, that tune
its behavior. One of the variables is @code{noAutoBeaming}. Setting
-this Staff's property to @code{##t}, which is the boolean value @var{true},
-turns the automatic beaming mechanism off for the current staff.
+this @code{Staff}'s property to @code{##t}, which is the boolean value
+@var{true}, turns the automatic beaming mechanism off for the current
+staff.
@cindex GUILE
@cindex Scheme
@cindex accessing Scheme
positioned as if it were single part music.
The bass has a little hoom-pah melody to demonstrate parts switching
-between staffs. Since it is repetitive, we use repeats:
+between staves. Since it is repetitive, we use repeats:
@separate
@example
hoomPah = \repeat unfold 8
@cindex cross staff voice, automatic
@cindex @code{\autochange}
-Voices can switch between staffs. The easiest way to get this, is to use
+Voices can switch between staves. The easiest way to get this, is to use
@code{\autochange}. This command looks at the pitch of each note, and if
necessary, will cross to the other staff. For this to work, the two
-staffs must be called @code{"up"} and @code{"down"}.
+staves must be called @code{"up"} and @code{"down"}.
@separate
@example
\translator Staff = down
Key = \notes \key as \major
@end example
Declare the key signature of the piece and assign it to the identifier
-@var{Key}. Later on, we'll use @code{\Key} for all staffs except those
+@var{Key}. Later on, we'll use @code{\Key} for all staves except those
for transposing instruments.
@node The full score
<
\global
@end example
-Of course, all staffs are simultaneous and use the same global settings.
+Of course, all staves are simultaneous and use the same global settings.
@separate
@example
\context StaffGroup = woodwind <
\context Staff = flauti <
@end example
-A new notation context: the StaffGroup. StaffGroup can hold one or more
-Staffs, and will print a big bracket at the left of the score. Start a
-new staff group for the woodwind section (just the flutes in this case).
-Immediately after that, we start the staff for the two flutes, that also
-play simultaneously.
+A new notation context: the @code{StaffGroup}. @code{StaffGroup} can
+hold one or more @code{Staff}'s, and will print a big bracket at the
+left of the score. Start a new staff group for the woodwind section
+(just the flutes in this case). Immediately after that, we start the
+staff for the two flutes, that also play simultaneously.
@separate
@example
In orchestral scores, it often happens that one instrument has only
rests during one line of the score. The @code{HaraKiriStaffContext} can
be used as a regular @code{StaffContext} drop-in and will take care of
-the automatic removing of empty staffs.
+the automatic removing of empty staves.
@node Extracting an individual part
@subsection Extracting an individual part
MAJOR_VERSION=1
MINOR_VERSION=5
PATCH_LEVEL=4
-MY_PATCH_LEVEL=jcn2
+MY_PATCH_LEVEL=jcn3
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
\header {
-texidoc= "Staffs that end half way a system should end at the bar line.";
+texidoc= "Staves that end half way a system should end at the bar line.";
}
melody = \notes \relative c' {
\header {
-texidoc="slur or long note on other staffs fool lily into extending melisma"
+texidoc="slur or long note on other staves fool lily into extending melisma"
}
\score {
<
\midi{}
}
-% A full example with two staffs
+% A full example with two staves
%
% Type:
%
\header{
texidoc="
-Auto change piano staff switches voices between up and down staffs
+Auto change piano staff switches voices between up and down staves
automatically rests are switched along with the coming note.
"
}
\version "1.3.146"
\header{
texidoc="
-Beams can be typeset over fixed distance aligned staffs, beam
+Beams can be typeset over fixed distance aligned staves, beam
beautification doesn't really work, but knees do. Beams should be
behave well, wherever the switching point is.
"
\header {
- texidoc = "grace notes in different voices/staffs are synchronized."
+ texidoc = "grace notes in different voices/staves are synchronized."
}
\score {\notes < \context Staff { c2
\version "1.3.146"
\header{
texidoc="
-Hara kiri staffs kill themselves if they are empty. This example really
-contains two staffs, but the second contains only spaces, and is
+Hara kiri staves kill themselves if they are empty. This example really
+contains two staves, but the second contains only spaces, and is
therefore removed. Also, any staff brackets and braces are removed.
"
}
either by setting a property melismaBusy, or by setting
automaticMelismas (which will set melismas during slurs and ties). If
you want a different order than first Music, then Lyrics, you must
-precook a chord of staffs/lyrics and label those. Of course
+precook a chord of staves/lyrics and label those. Of course
@code{\rhythm} ignores any other rhythms in the piece. Hyphens and
extenders do not assume anything about lyric lengths, so they continue
to work.
texidoc="
Staff margins are also markings attached to barlines. They should be
left of the staff, and be centered vertically wrt the staff. They may
-be on normal staffs, but also on compound staffs, like the PianoStaff
+be on normal staves, but also on compound staves, like the PianoStaff
"
}
* Better comment-out most header entries, or
move to template/title.ly altogether?
-* Naming conventions for voices/staffs
+* Naming conventions for voices/staves
(think: \autochange, \partcombine)?
* Add (commented-out) stuff like \time 3/4
melody with lyrics and chords = melody-lyrics-chords.ly
piano = piano.ly
piano with several voices = piano-4-voices.ly
- piano with lyrics (between staffs) = piano-lyrics.ly
+ piano with lyrics (between staves) = piano-lyrics.ly
piano with melody and lyrics = piano-melody-lyrics.ly
TODO (Choral templates, anyone?)
(Message vers:9)
To: Adrian Mariano <adrian@cam.cornell.edu>
cc: gnu-music-discuss@gnu.org
-Subject: Re: Switching from one staff to two staffs
+Subject: Re: Switching from one staff to two staves
Reply-To: janneke@gnu.org
In-reply-to: Your message of "Tue, 19 Jan 1999 12:27:10 EST."
<199901191727.MAA29757@avalanche.cam.cornell.edu>
On Tuesday, 19 January 1999, Adrian Mariano writes:
> I want to typeset something which starts out with just one staff and then
-> harmony comes in and there are two staffs. I can't figure out how to do
+> harmony comes in and there are two staves. I can't figure out how to do
> this. I get an extra blank staff during the second section (using
> Lily 1.1.15):
\header{
texidoc="
-Theads can be traced automagically when they switch staffs by setting
+Theads can be traced automagically when they switch staves by setting
property @code{followVoice}.
"
}
>
voiceTwo = \notes \relative c' {
- % we must have a Thread context before we can switch staffs
+ % we must have a Thread context before we can switch staves
% in this case, the notes before the switching will do that
% implicitely
\context Thread
\version "1.3.146"
\header {
-texidoc = "Hara kiri staffs disappear when empty "
+texidoc = "Hara kiri staves disappear when empty "
}
In InnerStaffGroup and InnerChoirStaff, the brackets should be shiftet leftwards.
"
filename = "nested-groups.ly"
-description = "Test of nested staff groups and choirstaffs"
+description = "Test of nested staff groups and choirstaves"
enteredby = "RZ"
copyright = "public domain"
Tested = "Nested StaffGroups"
%}
%{
-Tested Features: lyrics, interleaving lyrics and staffs, repeats,
+Tested Features: lyrics, interleaving lyrics and staves, repeats,
auto beaming, adding lyrics to notes, hyphens
%}
}
/*
- lines may only be broken if there is a barline in all staffs
+ lines may only be broken if there is a barline in all staves
*/
void
Bar_engraver::stop_translation_timestep ()
/*
ugh: need to share code with mark_engraver
*/
- daddy_trans_l_->set_property ("staffsFound", SCM_EOL);
+ daddy_trans_l_->set_property ("stavesFound", SCM_EOL);
}
Grob * s = inf.elem_l_;
if (Staff_symbol::has_interface (s))
{
- SCM sts = get_property ("staffsFound");
+ SCM sts = get_property ("stavesFound");
SCM thisstaff = inf.elem_l_->self_scm ();
if (scm_memq (thisstaff, sts) == SCM_BOOL_F)
- daddy_trans_l_->set_property ("staffsFound", gh_cons (thisstaff, sts));
+ daddy_trans_l_->set_property ("stavesFound", gh_cons (thisstaff, sts));
}
else if (text_p_
&& dynamic_cast<Item*> (s)
{
if (text_p_)
{
- text_p_->set_grob_property ("side-support-elements", get_property ("staffsFound"));
+ text_p_->set_grob_property ("side-support-elements", get_property ("stavesFound"));
typeset_grob (text_p_);
text_p_ =0;
}
/// the total music def of one movement
class Score: public Input {
public:
- /// paper_, staffs_ and commands_ form the problem definition.
+ /// paper_, staves_ and commands_ form the problem definition.
Link_array<Music_output_def> def_p_arr_;
SCM music_;
Scheme_hash_table * header_p_;
/*
- staffsym.hh -- declare Staff_symbol
+ staff-symbol.hh -- declare Staff_symbol
source file of the GNU LilyPond music typesetter
*/
-#ifndef STAFFSYM_HH
-#define STAFFSYM_HH
+#ifndef STAFF_SYMBOL_HH
+#define STAFF_SYMBOL_HH
#include "lily-guile.hh"
static bool has_interface (Grob*);
static void set_interface (Grob*);
};
-#endif // STAFFSYM_HH
+#endif // STAFF_SYMBOL_HH
#include "lily-proto.hh"
/*
- Braces/brackets across staffs.
+ Braces/brackets across staves.
*/
class System_start_delimiter
{
return;
/*
- Hang the instrument names on the staffs, but not on the alignment
+ Hang the instrument names on the staves, but not on the alignment
groups enclosing that staff. The alignment has no real location,
but is only a vehicle for the placement routine it contains, and
therefore the location of its refpoint won't be very useful.
Warning: this thing is a cross-staff object, so it should have empty Y-dimensions.
(If not, you risk that this is called from the staff-alignment
- routine, via molecule_extent. At this point, the staffs aren't
+ routine, via molecule_extent. At this point, the staves aren't
separated yet, so it doesn't work cross-staff.
*/
void
Mark_engraver::initialize ()
{
- daddy_trans_l_->set_property ("staffsFound", SCM_EOL); // ugh: sharing with barnumber grav.
+ daddy_trans_l_->set_property ("stavesFound", SCM_EOL); // ugh: sharing with barnumber grav.
}
if (Staff_symbol::has_interface (s)
|| to_boolean (s->get_grob_property ("invisible-staff")))
{
- SCM sts = get_property ("staffsFound");
+ SCM sts = get_property ("stavesFound");
SCM thisstaff = inf.elem_l_->self_scm ();
if (scm_memq (thisstaff, sts) == SCM_BOOL_F)
- daddy_trans_l_->set_property ("staffsFound", gh_cons (thisstaff, sts));
+ daddy_trans_l_->set_property ("stavesFound", gh_cons (thisstaff, sts));
}
else if (text_p_ && Bar::has_interface (s))
{
{
if (text_p_)
{
- text_p_->set_grob_property ("side-support-elements" , get_property ("staffsFound"));
+ text_p_->set_grob_property ("side-support-elements" , get_property ("stavesFound"));
typeset_grob (text_p_);
text_p_ =0;
}
$$ = velt_p;
}
| MULTI_MEASURE_REST optional_notemode_duration {
- Input = THIS->pop_spot ();
+ Input i = THIS->pop_spot ();
Skip_req * sk = new Skip_req;
sk->set_mus_property ("duration", $2);
$$->set_mus_property ("elements", ms);
}
| STRING optional_notemode_duration {
- Input = THIS->pop_spot ();
+ Input i = THIS->pop_spot ();
Lyric_req* lreq_p = new Lyric_req;
lreq_p->set_mus_property ("text", $1);
$$= velt_p;
}
| chord {
- Input = THIS->pop_spot ();
+ Input i = THIS->pop_spot ();
if (!THIS->lexer_p_->chord_state_b ())
THIS->parser_error (_ ("Have to be in Chord mode for chords"));
/**
- Make arpeggios that span multiple staffs. Catch arpeggios, and span a
+ Make arpeggios that span multiple staves. Catch arpeggios, and span a
Span_arpeggio over them if we find more than two arpeggios.
*/
class Span_arpeggio_engraver : public Engraver
/**
- Make bars that span multiple "staffs". Catch bars, and span a
+ Make bars that span multiple "staves". Catch bars, and span a
Span_bar over them if we find more than 2 bars. Vertical alignment
- of staffs changes the appearance of spanbars. It is up to the
+ of staves changes the appearance of spanbars. It is up to the
aligner (Vertical_align_engraver, in this case, to add extra
dependencies to the spanbars.
points to.
TODO: maybe be more specific. Most probably fucks up if someone sets
- a pointer to the staffsymbol in S
+ a pointer to the staff symbol in S
*/
void
extend_spanner_over_elements (Grob*s)
% explicitly set instrument, so we don't get
% weird effects when doing instrument names for
- % piano staffs
+ % piano staves
instrument = ##f
instr = ##f
papersize = \papersize
% FIXME
-% direct PostScript line height for single line staffs
+% direct PostScript line height for single line staves
lineheight = 14
paperfile = \papersize + "-init.ly"
% a square pen). [Wanske] does not mention this, so we'll just ignore
% this fact
%
-fet_beginchar("Default Sharp" , "1", "sharp");
+fet_beginchar("Sharp" , "1", "sharp");
set_char_box(0, 1.1 staff_space#, 1.5 staff_space#,
1.5 staff_space#);
labels(1,2,3,4);
fet_endchar;
-fet_beginchar( "Default Natural", "0", "natural")
+fet_beginchar( "Natural", "0", "natural")
set_char_box(0, 8/12 staff_space#, 1.5 staff_space#, 1.5 staff_space#);
save interbeam, interstem, beamheight, beamwidth,
%
% unfortunately, 600dpi is not enough to show the brush of the stem.
%
-fet_beginchar("Default Flat", "-1", "flat")
+fet_beginchar("Flat", "-1", "flat")
set_char_box(1.2 stafflinethickness#, .8 staff_space#, .5 staff_space#, 2 staff_space#);
draw_meta_flat(0, w, 1/3 staff_space);
fet_endchar;
-fet_beginchar("Default Double Flat", "-2", "flatflat")
+fet_beginchar("Double Flat", "-2", "flatflat")
save left_wid, overlap, right_wid;
left_wid = .7;
right_wid = .8;
right_wid *staff_space, 1/3 staff_space);
fet_endchar;
-fet_beginchar("Default Double Sharp", "2", "sharpsharp")
+fet_beginchar("Double Sharp", "2", "sharpsharp")
set_char_box(0, staff_space#, .5 staff_space#, .5 staff_space#);
save klaverblad, klaversteel;
% FIXME
% urg, read from paper block
-% fixed base line skip value, for single line staffs
+% fixed base line skip value, for single line staves
/base-line-skip lilypondpaperlineheight def
'(BarLine)
'(
whichBar
- staffsFound
+ stavesFound
)))
(engraver-description
"Bar_number_engraver"
"A bar number is created whenever measurePosition is zero. It is
-put on top of all staffs, and appears only at left side of the staff."
+put on top of all staves, and appears only at left side of the staff."
'(BarNumber)
'(
currentBarNumber
'(
rehearsalMark
- staffsFound
+ stavesFound
)))
'Timing_engraver
(engraver-description
"Timing_engraver"
- " Responsible for synchronizing timing information from staffs.
+ " Responsible for synchronizing timing information from staves.
Normally in @code{Score}. In order to create polyrhythmic music,
this engraver should be removed from @code{Score} and placed in
@code{Staff}."
")
(GrandStaff . "
Contains @code{Staff} or @code{RhythmicStaff} contexts. It adds a
- brace on the left side, grouping the staffs together. The bar
- lines of the contained staffs are connected vertically. It can
+ brace on the left side, grouping the staves together. The bar
+ lines of the contained staves are connected vertically. It can
contain @code{Staff} contexts.")
(PianoStaff . "
(StaffGroup . "
Contains @code{Staff} or @code{RhythmicStaff} contexts. Adds a
- bracket on the left side, grouping the staffs together. The bar
- lines of the contained staffs are connected vertically. It can
+ bracket on the left side, grouping the staves together. The bar
+ lines of the contained staves are connected vertically. It can
contain @code{Staff}, @code{RhythmicStaff}, @code{GrandStaff}, or
@code{Lyrics} contexts.
")
(ChoirStaff . "
- Identical to @code{StaffGroup} except that the contained staffs
+ Identical to @code{StaffGroup} except that the contained staves
are not connected vertically.
")
(Score . "
contain a @code{Score} context. This context handles the
administration of time signatures. It also makes sure that items
such as clefs, time signatures, and key-signatures are aligned
- across staffs. It can contain @code{Lyrics}, @code{Staff},
+ across staves. It can contain @code{Lyrics}, @code{Staff},
@code{RhythmicStaff}, @code{GrandStaff}, @code{StaffGroup}, and
@code{ChoirStaff} contexts.
(translator-property-description 'combineParts boolean? "try to combine parts?")
(translator-property-description 'connectArpeggios boolean? " If
set, connect all arpeggios that are found. In this way, you can make
-arpeggios that cross staffs.
+arpeggios that cross staves.
")
(translator-property-description 'createKeyOnClefChange boolean? "Print a key signature whenever the clef is changed.")
(translator-property-description 'crescendoText markup? "Text to print at start of non-hairpin crecscendo, ie: @samp{cresc.}")
(translator-property-description 'split-interval boolean? "set if part-combiner separated voices based on splitInterval.")
(translator-property-description 'squashedPosition integer? " Vertical position of
squashing for Pitch_squash_engraver.")
-(translator-property-description 'staffsFound list? "list of all staff-symbols found.")
+(translator-property-description 'stavesFound list? "list of all staff-symbols found.")
(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")