* Neil Jerram <nj104@cus.cam.ac.uk>. parts of
Documentation/Vocab*
- * Heikki Junes <heikki.junes@hut.fi>. Finnish note names
+ * Heikki Junes <heikki.junes@hut.fi>. Finnish note names,
+ updates to Emacs-mode
* Donald Ervin Knuth, `http://www-cs-staff.stanford.edu/~knuth/'
mf/ital-*.mf (these were taken from the CM fonts)
+1.5.8.uu1
+=========
+
+* Mensural rests (Juergen Reuter)
+
+* Swedish translation (Thanks to the translation project)
+
+* Bugfix: down 8th flag restored.
+
+* Bugfix: span-bars and hara-kiri.
+
+* More advanced collisions: handle meshed chords as well.
+
1.5.8.jcn1
==========
* Add mktextfm wrapper for windows (thanks Mats).
+1.5.8.hjj1
+==========
+
+* Emacs-mode: new keywords, reserved words, notenames and brackets are
+font-lock-keywords; implementation encourages spacing/indenting.
+
+
1.5.8
=====
-
1.5.7.hwn1
==========
<table align=left>
<tr><td bgcolor="#e8e8ff">
- <b>Documentation</b>
+ <b>What is LilyPond</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/out-www/index.html#everyone">General information</a><br>
- <a href="@TOP@Documentation/out-www/index.html#newbies">For new users</a><br>
- <a href="@TOP@Documentation/out-www/index.html#users">For users</a><br>
- <a href="@TOP@Documentation/out-www/index.html#developers">For developers</a><br>
- <a href="@TOP@Documentation/out-www/index.html#background">Background information</a><br>
+ <a href="@TOP@index.html#everyone">General information</a><br>
+ <a href="@TOP@short-examples.html">Simple examples</a><br>
+ <a href="@TOP@long-examples.html">Complex examples</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
<b>Download </b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source</a><br>
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Binary</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Linux</a><br>
+ <a href="@TOP@Documentation/windows/out-www/installing.html">Windows</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
- <b>Music</b>
+ <b>Documentation</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@short-examples.html">Short examples</a><br>
- <a href="@TOP@long-examples.html">Longer examples</a><br>
- <a href="http://www.mutopiaproject.org/">Mutopia Project</a><br>
-
- <a href="http://www.lilypond.org/wiki?DownloadLilyPondScores">Other URLs</a><br>
+ <a href="@TOP@Documentation/user/out-www/lilypond/Tutorial.html">Tutorial</a><br>
+ <a href="@TOP@Documentation/user/out-www/lilypond/lilypond.html">Manual</a><br>
+ <a href="@TOP@Documentation/user/out-www/glossary.html">Glossary</a><br>
+ <a href="@TOP@Documentation/out-www/index.html">other ...</a><br>
<br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
- <b>Mailing Lists</b>
+ <b>Support</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/out-www/index.html#mailing-lists">About the lists</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/lilypond-user/">Using LilyPond</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/lilypond-devel/">Developing LilyPond</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/bug-lilypond/">Reporting bugs</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/info-lilypond/">Announcements</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/README.html#mailing-lists">Mailing lists</a><br>
+ <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
+ <a href="http://www.lilypond.org/wiki?LilyPondFaqs">FAQs</a><br>
<br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff"><b>External sites</b></td></tr>
<tr><td><font size="-1">
- <a href="http://www.lilypond.org/development">Development version</a><br>
- <a href="http://www.lilypond.org/stable">Stable version</a><br>
- <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
- <a href="ftp://ftp.lilypond.org/pub">FTP site</a><br>
- <a href="http://www.mutopiaproject.org/">Mutopia archive</a><br>
-
+ <a href="http://www.lilypond.org/development">lilypond.org/development</a><br>
+ <a href="http://www.lilypond.org/stable">lilypond.org/stable</a><br>
+ <a href="ftp://ftp.lilypond.org/pub">ftp.lilypond.org</a><br>
+ <a href="http://www.mutopiaproject.org/">Mutopia</a><br>
+ <a href="http://www.lilypond.org/wiki?DownloadLilyPondScores">Other music online</a><br>
<br>
</font></td></tr>
</table>
@lilypondfile[printfilename]{collision-dots.ly}
+@lilypondfile[printfilename]{collision-mesh.ly}
+
@lilypondfile[printfilename]{number-staff-lines.ly}
criticism, comments, bugreports, patches, etc., to the mailing list,
@emph{not} to us personally.
+@html
+<a name="mailing-lists">
+@end html
+
+
+
We have the following mailing lists:
@itemize @bullet
#(set! point-and-click line-column-location)
@end example
+One final hint: if you correct large files with point-and-click, then
+start correcting at the end of the file. When you start at the top, and
+insert one line, all subsequent locations will be off by a line.
@refbugs
will complain about not finding @code{src:X:Y} files. Those complaints
are harmless, and can be ignored.
-When using @code{line-column-location}, the cursor will be one off; it
-will not jump to the exact note that you clicked, but to the next one.
-
-[FIXME]
-
@node Skipping corrected music
@section Skipping corrected music
with a flat sign. LilyPond has a mechanism for font selection and
kerning called Scheme markup text (See @ref{Text markup}). The flat
sign is taken from the music font, and its name is @code{accidentals--1}
-(The sharp sign is called @code{accidentals-1}). The default font is
+(The natural sign is called @code{accidentals-0}). The default font is
too big for text, so we select a relative size of @code{-2}.
@separate
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=5
-PATCH_LEVEL=8
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=9
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
# trees, rather than messing around with environment variables (eg,
# see Debian or SuSE package).
-datadir="@datadir@"
+datadir=`echo "@datadir@" | sed 's!//!/!g'`
# For direct ps output fonts
GS_FONTPATH="$datadir/afm:$datadir/pfa"
--- /dev/null
+\header {
+texidoc = "Oppositely stemmed chords, meshing into each other,
+are resolved."
+}
+
+\score {
+ \context Staff \notes \relative c' {
+ \time 3/4
+ % Here's what I was trying to do:
+ < \context Voice = VI {\stemDown <g4 b g'>
+ r4 r4 }
+ \context Voice=VII {\stemUp d'2.} >
+
+ % Or:
+
+ <\context Voice = VI {\stemUp <g4 b g'> r r}
+ \context Voice= VII {\stemDown d'2.} >
+ }
+}
+
+
+
+
+
}
+
+
+
zager = \context Staff = zager \notes \relative c'' {
\clef treble
- c1
+ c1 c1
+}
+
+zeuger = \context Staff = zeuger \notes \relative c'' {
+ \clef treble
+ c1 c1
}
zoger = \context Staff = zoger \notes \relative c'' {
\clef treble
- \skip 1* 1
+ \skip 2* 1
}
-zagers = \context GrandStaff <
+zagers = \context StaffGroup <
\zager
\zoger
+ \zeuger
>
\score{
- <
- \context StaffGroup = zagers <
+ < \context StaffGroup = zagers <
\zagers
- >
- >
+ > >
\paper{
linewidth = 80.0\mm
\property Voice.NoteHead \override #'style = #'vaticana_subbipunctum
a! b! ces'
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
\property Voice.NoteHead \override #'style = #'vaticana_virga
b! a! ges fes
+ \breathe
\clef "vaticana_fa1"
\property Voice.NoteHead \override #'style = #'vaticana_quilisma
es d
\property Voice.NoteHead \override #'style = #'vaticana_rvirga
c d
- \breathe
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
\property Voice.NoteHead \override #'style = #'vaticana_rvirga
es f
- \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
\property Voice.NoteHead \override #'style = #'vaticana_lpes
g as
- \property Staff.BarLine \override #'bar-size = #2.0 \bar "|"
\property Voice.NoteHead \override #'style = #'vaticana_upes
bes as
- \breathe
\property Voice.NoteHead \override #'style = #'vaticana_vupes
g f
\property Voice.NoteHead \override #'style = #'vaticana_plica
\property Staff.BarLine \override #'bar-size = #2.0 \bar "|"
es d
\property Voice.NoteHead \override #'style = #'vaticana_epiphonus
- \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
c d
\property Voice.NoteHead \override #'style = #'vaticana_cephalicus
es f
\property Staff.Custos \override #'style = #'medicaea
\property Voice.NoteHead \override #'style = #'medicaea_punctum
\clef "medicaea_fa2"
- ces! des! e! f! ges!
+ ces! des!
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+ e! f! ges!
\clef "medicaea_do2"
\property Voice.NoteHead \override #'style = #'medicaea_subbipunctum
a! b! ces'!
\property Voice.NoteHead \override #'style = #'medicaea_virga
- b! a! ges! fes!
+ b! a!
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+ ges! fes!
\clef "medicaea_fa1"
\property Voice.NoteHead \override #'style = #'medicaea_rvirga
- e! des! ces! \bar "|"
+ e! des! ces!
\property Staff.KeySignature \override #'style = #'hufnagel
\property Staff.Accidentals \override #'style = #'hufnagel
\property Staff.Custos \override #'style = #'hufnagel
\property Voice.NoteHead \override #'style = #'hufnagel_punctum
\clef "hufnagel_fa2"
- ces! des! es! fes! ges!
+ ces! des! es!
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+ fes! ges!
\clef "hufnagel_do2"
\property Voice.NoteHead \override #'style = #'hufnagel_lpes
as! bes! ces'!
\property Voice.NoteHead \override #'style = #'hufnagel_virga
- bes! as! ges! fes!
+ bes! as!
+ \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+ ges! fes!
\clef "hufnagel_do_fa"
\property Voice.NoteHead \override #'style = #'hufnagel_punctum
- es! des! ces!1 \bar "||"
+ es! des! ces! des! es! fes!
+ \bar "||"
}
>
\property Staff.Accidentals \override #'style = #'mensural
\property Staff.Custos \override #'style = #'mensural
\property Voice.NoteHead \override #'style = #'neo_mensural
+ \property Voice.Rest \override #'style = #'neo_mensural
\key a \major
\clef "neo_mensural_c2"
c2 dis es fis ges
e d c1 \bar "|"
\clef "petrucci_c2"
- c2 d e f g
+ r\longa
\property Staff.forceClef = ##t
\clef "mensural_c2"
- a b c'
- b a g f
+ r\breve r1 r2
\clef "mensural_g"
- e d c1 \bar "|"
+ r4 r8 r16 r32 r32 \bar "|"
\property Voice.NoteHead \override #'style = #'mensural
\property Voice.Stem \override #'style = #'mensural
\property Voice.Stem \override #'thickness = #1.0
+ \property Voice.Rest \override #'style = #'mensural
\clef "petrucci_f"
c8 b, c16 b, c32 b, c64 b, c b,
d8 e d16 e d32 e d64 e d e
- c2 d e f g
+ r\longa
\property Staff.forceClef = ##t
\clef "petrucci_f"
- a b c'
- b a g f
+ r\breve r1 \bar "|"
\clef "mensural_f"
- e d c1 \bar "|"
+
+ % FIXME: need this to avoid segmentation fault on r8/r16/r32
+ % (Strange: what has Voice.Stem style to do with mensural rests?)
+ \property Voice.Stem \override #'style = #'neo_mensural
+
+ r2 r4 r8 r16 r32 r32
+ \property Voice.Stem \override #'style = #'mensural
\property Staff.forceClef = ##t
\clef "mensural_f"
- c2 d e f g
+ e2 f g
\clef "mensural_g"
as'! bes'! cis''!
bes'! as'! gis'! fis'!
% StaffSymbol \override #'thickness = #2.0
% StaffSymbol \override #'line-count = #4
}
+ \translator {
+ \ScoreContext
+% \remove System_start_delimiter_engraver
+% SystemStartDelimiter \override #'glyph = #'brace
+ }
+ \translator {
+ \ChoirStaffContext
+ \remove System_start_delimiter_engraver
+% SystemStartDelimiter \override #'glyph = #'empty
+ }
}
}
box around arbitrary grobs.
TODO: check whether the corners are really correct.
-
+
+ TODO: circled molecules.
+
"
}
+
#(define (box-molecule xext yext)
(ly-make-molecule
(list 'filledbox (- (car xext)) (cdr xext)
% see ly/drumpitch.ly for list of instruments and paper-kits.
% scm/midi.scm for list of midi-drumkits.
-\include "drumpitch.ly"
+\include "drumpitch-init.ly"
\version "1.3.146"
#include "paper-def.hh"
#include "axis-group-interface.hh"
#include "item.hh"
-
+#include "stem.hh"
MAKE_SCHEME_CALLBACK (Collision,force_shift_callback,2);
return gh_double2scm (0.0);
}
+
+void
+check_meshing_chords (Grob*me,
+ Drul_array< Array < Real > > *offsets,
+ Drul_array< Array < Slice > > const &extents,
+ Drul_array<Link_array<Grob> > const &clash_groups)
+
+{
+ if (!extents[UP].size () || ! extents[DOWN].size ())
+ return ;
+
+
+ Grob *cu =clash_groups[UP][0];
+ Grob *cd =clash_groups[DOWN][0];
+
+ Grob * nu_l= Note_column::first_head (cu);
+ Grob * nd_l = Note_column::first_head (cd);
+
+
+
+ bool half_collide = false;
+ bool full_collide = false;
+
+ /*
+ TODO:
+
+ filter out the 'o's in this configuration, since they're no part
+ in the collision.
+
+ |
+ x|o
+ x|o
+ x
+
+
+ */
+ Array<int> ups = Stem::note_head_positions (Note_column::stem_l (cu));
+ Array<int> dps = Stem::note_head_positions (Note_column::stem_l (cd));
+
+ /*
+ they're too far apart to collide.
+
+ */
+
+ if (ups[0] > dps.top () + 1)
+ return ;
+
+ bool touch = (ups[0] - dps.top () >= 0);
+
+ bool merge_possible = (ups[0] >= dps[0]) && (ups.top () <= dps.top ());
+
+ merge_possible = merge_possible &&
+ Rhythmic_head::balltype_i (nu_l) == Rhythmic_head::balltype_i (nd_l);
+
+ if (!to_boolean (me->get_grob_property ("merge-differently-dotted")))
+ merge_possible = merge_possible && Rhythmic_head::dot_count (nu_l) == Rhythmic_head::dot_count (nd_l);
+
+ int i = 0, j=0;
+ while (i < ups.size () && j < dps.size ())
+ {
+ if (abs (ups[i] - dps[j]) == 1)
+ {
+ merge_possible = false;
+ half_collide = true;
+ }
+ else if (ups[i]==dps[j])
+ full_collide = true;
+ else if (ups[i] >dps[0] && ups[i] < dps.top ())
+ merge_possible = false;
+ else if (dps[j] >ups[0] && dps[j] < ups.top ())
+ merge_possible = false;
+
+ if (ups[i] < dps[j])
+ i++;
+ else if (ups[i] > dps[j])
+ j++;
+ else
+ {
+ i++;
+ j++;
+ }
+ }
+
+ Drul_array<Real> center_note_shifts;
+ center_note_shifts[LEFT] = 0.0;
+ center_note_shifts[RIGHT] = 0.0;
+
+
+ Real shift_amount = 1;
+
+ if ( touch)
+ shift_amount *= -1;
+ else
+ /*
+ for full collisions, the right hand head may obscure dots, so
+ make sure the dotted heads go to the right.
+ */
+ if ((Rhythmic_head::dot_count (nu_l) < Rhythmic_head::dot_count (nd_l)
+ && full_collide))
+ shift_amount *= -1;
+
+ if (merge_possible)
+ shift_amount *= 0.0;
+ else if (half_collide || full_collide)
+ shift_amount *= 0.5;
+ else
+ shift_amount *= 0.25;
+
+ Direction d = UP;
+ do
+ {
+ for (int i=0; i < clash_groups[d].size (); i++)
+ (*offsets)[d][i] += d * shift_amount;
+ }
+ while ((flip (&d))!= UP);
+}
+
+
/*
TODO: make callback of this.
}
}
while ((flip (&d))!= UP);
+
+ /*
+ do horizontal shifts of each direction
+
+ |
+ x||
+ x||
+ x|
+ */
do
{
}
while ((flip (&d))!= UP);
+
+ /*
+ Check if chords are meshing
+ */
+
+ check_meshing_chords (me, &offsets, extents, clash_groups);
+
+#if 0
/*
if the up and down version are close, and can not be merged, move
all of them again. */
}
while ((flip (&d))!= UP);
}
-
+#endif
+
do
{
for (int i=0; i < clash_groups[d].size (); i++)
w = sneaky_insert_extra_moment (w);
- cout << "Proccing " << w << endl;
+ // cout << "Proccing " << w << endl;
if (first)
public:
DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
+ static Array<int> note_head_positions (Grob*);
static int flag_i (Grob*) ;
static int beam_count (Grob*,Direction) ;
static void set_beaming (Grob*,int, Direction d);
{_i ("EXPR"), "evaluate", 'e',_i ("evalute EXPR as Scheme after .scm init is read")},
/* another bug in option parser: --output=foe is taken as an abbreviation
for --output-format */
- {_i ("EXT"), "format", 'f', _i ("use output format EXT (scm, ps, tex or as)")},
+ {_i ("EXT"), "format", 'f', _i ("use output format EXT (tex [default], pdftex, ps, scm or as)")},
{0, "help", 'h', _i ("this help")},
{_i ("FIELD"), "header", 'H', _i ("write header field to BASENAME.FIELD")},
{_i ("DIR"), "include", 'I', _i ("add DIR to search path")},
<< " " <<
#ifdef NDEBUG
"NDEBUG "
-#endif
-#ifdef NPRINT
- "NPRINT "
-#endif
-#ifdef STRING_UTILS_INLINED
- "STRING_UTILS_INLINED "
#endif
"\n"
"datadir: `" DIR_DATADIR "'\n"
}
/*
- ugh: use gh_call ()
+ ugh: use gh_call () / scm_apply ().
UGH: use grob-property.
*/
String style;
SCM style_sym =me->get_grob_property ("style");
- if (balltype >= 2 && gh_symbol_p (style_sym))
+ if (gh_symbol_p (style_sym))
{
style = ly_scm2string (scm_symbol_to_string (style_sym));
}
// compose span_bar_mol
Molecule span_bar_mol;
- Grob *prev_staff_bar = 0;
+
+ Interval prev_extent;
for (SCM elts = first_elt; gh_pair_p (elts); elts = gh_cdr (elts))
{
SCM smobbed_staff_bar = gh_car (elts);
Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
- if (prev_staff_bar)
+ Interval ext = staff_bar->extent (refp, Y_AXIS);
+ if (ext.empty_b ())
+ continue;
+
+ if (!prev_extent.empty_b ())
{
- Interval l(prev_staff_bar->extent (refp, Y_AXIS)[UP],
- staff_bar->extent (refp, Y_AXIS)[DOWN]);
+ Interval l(prev_extent [UP],
+ ext[DOWN]);
Molecule interbar
= Bar::compound_barline (staff_bar, glyph_str, l.length());
interbar.translate_axis (l.center (), Y_AXIS);
span_bar_mol.add_molecule (interbar);
}
- prev_staff_bar = staff_bar;
+ prev_extent = ext;
}
span_bar_mol.translate_axis (- me->relative_coordinate (refp, Y_AXIS), Y_AXIS);
return exthead;
}
+static int
+icmp (int const &a, int const &b)
+{
+ return a-b;
+}
+
+Array<int>
+Stem::note_head_positions (Grob *me)
+{
+ Array<int> ps ;
+ for (SCM s = me->get_grob_property ("heads"); gh_pair_p (s); s = gh_cdr (s))
+ {
+ Grob * n = unsmob_grob (gh_car (s));
+ int p = int (Staff_symbol_referencer::position_f (n));
+
+ ps.push (p);
+ }
+
+ ps.sort (icmp);
+ return ps;
+}
+
+
void
Stem::add_head (Grob*me, Grob *n)
{
return st;
}
+
+
/*
Number of hooks on the flag, ie. the log of the duration.
*/
Molecule
Stem::flag (Grob*me)
{
- // TODO: rename flag-style into something more appropriate,
- // e.g. "stroke-style", maybe with values "" (i.e. no stroke),
- // "single" and "double". Needs more discussion.
- String style, fstyle, stafflineOffs;
+ /* TODO: rename flag-style into something more appropriate,
+ e.g. "stroke-style", maybe with values "" (i.e. no stroke),
+ "single" and "double". Needs more discussion.
+ */
+ String style, fstyle, staffline_offs;
SCM fst = me->get_grob_property ("flag-style");
if (gh_string_p (fst))
{
style = "";
}
if (String::compare_i (style, "mensural") == 0)
- // Mensural notation: For notes on staff lines, use different
- // flags than for notes between staff lines. The idea is that
- // flags are always vertically aligned with the staff lines,
- // regardless if the note head is on a staff line or between two
- // staff lines. In other words, the inner end of a flag always
- // touches a staff line.
+ /* Mensural notation: For notes on staff lines, use different
+ flags than for notes between staff lines. The idea is that
+ flags are always vertically aligned with the staff lines,
+ regardless if the note head is on a staff line or between two
+ staff lines. In other words, the inner end of a flag always
+ touches a staff line.
+ */
{
- // Urrgh! We have to detect wether this stem ends on a staff
- // line or between two staff lines. But we can not call
- // stem_end_position(me) or get_default_stem_end_position(me),
- // since this encounters the flag and hence results in an
- // infinite recursion. However, in pure mensural notation,
- // there are no multiple note heads attached to a single stem,
- // neither is there usually need for using the stem_shorten
- // property (except for 32th and 64th notes, but that is not a
- // problem since the stem length in this case is augmented by
- // an integral multiple of staff_space). Hence, it should be
- // sufficient to just take the first note head, assume it's
- // the only one, look if it's on a staff line, and select the
- // flag's shape accordingly. In the worst case, the shape
- // looks slightly misplaced, but that will usually be the
- // programmer's fault (e.g. when trying to attach multiple
- // note heads to a single stem in mensural notation).
- Grob *firstHead = first_head(me);
+ /* Urrgh! We have to detect wether this stem ends on a staff
+ line or between two staff lines. But we can not call
+ stem_end_position(me) or get_default_stem_end_position(me),
+ since this encounters the flag and hence results in an
+ infinite recursion. However, in pure mensural notation,
+ there are no multiple note heads attached to a single stem,
+ neither is there usually need for using the stem_shorten
+ property (except for 32th and 64th notes, but that is not a
+ problem since the stem length in this case is augmented by
+ an integral multiple of staff_space). Hence, it should be
+ sufficient to just take the first note head, assume it's
+ the only one, look if it's on a staff line, and select the
+ flag's shape accordingly. In the worst case, the shape
+ looks slightly misplaced, but that will usually be the
+ programmer's fault (e.g. when trying to attach multiple
+ note heads to a single stem in mensural notation).
+
+ */
+ Grob *first = first_head(me);
int sz = Staff_symbol_referencer::line_count (me)-1;
- int p = (int)rint (Staff_symbol_referencer::position_f (firstHead));
- stafflineOffs = (((p ^ sz) & 0x1) == 0) ? "1" : "0";
+ int p = (int)rint (Staff_symbol_referencer::position_f (first));
+ staffline_offs = (((p ^ sz) & 0x1) == 0) ? "1" : "0";
}
else
{
- stafflineOffs = "";
+ staffline_offs = "";
}
char c = (get_direction (me) == UP) ? 'u' : 'd';
- Molecule m =
- Font_interface::get_default_font (me)->
- find_by_name (String ("flags-") + style + to_str (c) + stafflineOffs +
- to_str (flag_i (me)));
+ String index_str
+ = String ("flags-") + style + to_str (c) + staffline_offs + to_str (flag_i (me));
+ Molecule m
+ = Font_interface::get_default_font (me)->find_by_name (index_str);
if (!fstyle.empty_b ())
m.add_molecule (Font_interface::get_default_font (me)->find_by_name (String ("flags-") + to_str (c) + fstyle));
return m;
INSTALLATION_FILES=$(INI_FILES)
STEPMAKE_TEMPLATES=install
-LOCALSTEPMAKE_TEMPLATES=mutopia
+LOCALSTEPMAKE_TEMPLATES=ly
include $(depth)/make/stepmake.make
--- /dev/null
+\version "1.3.146"
+% a4.ly
+
+hsize = 210.0 \mm
+vsize = 296.9 \mm
--- /dev/null
+\version "1.3.146"
+% Symbols needed to print accordion music
+%
+% 2' = T
+% 4' = F
+% 8' = E
+% 16' = S
+%
+
+accDiscant = \script "accDiscant"
+accDiscantF = \script "accDiscantF"
+accDiscantE = \script "accDiscantE"
+accDiscantEh = \script "accDiscantEh"
+accDiscantFE = \script "accDiscantFE"
+accDiscantFEh = \script "accDiscantFEh"
+accDiscantEE = \script "accDiscantEE"
+accDiscantFEE = \script "accDiscantFEE"
+accDiscantEEE = \script "accDiscantEEE"
+accDiscantFEEE = \script "accDiscantFEEE"
+accDiscantS = \script "accDiscantS"
+accDiscantFS = \script "accDiscantFS"
+accDiscantES = \script "accDiscantES"
+accDiscantEhS = \script "accDiscantEhS"
+accDiscantFES = \script "accDiscantFES"
+accDiscantFEhS = \script "accDiscantFEhS"
+accDiscantEES = \script "accDiscantEES"
+accDiscantFEES = \script "accDiscantFEES"
+accDiscantEEES = \script "accDiscantEEES"
+accDiscantFEEES = \script "accDiscantFEEES"
+accDiscantSS = \script "accDiscantSS"
+accDiscantESS = \script "accDiscantESS"
+accDiscantEESS = \script "accDiscantEESS"
+accDiscantEEESS = \script "accDiscantEEESS"
+
+accFreebase = \script "accFreebase"
+accFreebaseF = \script "accFreebaseF"
+accFreebaseE = \script "accFreebaseE"
+accFreebaseFE = \script "accFreebaseFE"
+
+accBayanbase = \script "accBayanbase"
+accBayanbaseT = \script "accBayanbaseT"
+accBayanbaseE = \script "accBayanbaseE"
+accBayanbaseTE = \script "accBayanbaseTE"
+accBayanbaseEE = \script "accBayanbaseEE"
+accBayanbaseTEE = \script "accBayanbaseTEE"
+
+accStdbase = \script "accStdbase"
+accStdbaseFE = \script "accStdbaseFE"
+accStdbaseTFE = \script "accStdbaseTFE"
+accStdbaseMES = \script "accStdbaseMES"
+accStdbaseTFMES = \script "accStdbaseTFMES"
+
+accSB = \script "accSB"
+accBB = \script "accBB"
+accOldEE = \script "accOldEE"
+accOldEES = \script "accOldEES"
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.3.146"
+
+
+\include "declarations-init.ly"
+\include "paper16-init.ly"
+
+ \paper{
+ \paperSixteen
+}
+
+
+\maininput
--- /dev/null
+%{
+
+ Common catalan names for notes. "b" means flat (bemoll), "d" means sharp (diesi).
+ Also "s" is included for sharp (sostingut). Both "diesi" and "sostingut" are approved
+ by "Diccionari de la Llengua Catalana" from "Institut d'Estudis Catalans".
+
+ Adapted from italiano.ly.
+
+ English: a b c d e f g
+ Catalan: la si do re mi fa sol
+
+ For spanish naming just use the sharp sign "s" (sostenido) instead of "s"
+(sostenido) .
+%}
+
+% contributed by Jaume Obrador <jobrador@ipc4.uib.es>
+
+
+% For using "sostingut" notation, which is also correct
+\pitchnames #`(
+ (dobb . ,(make-pitch -1 0 -2 ))
+ (dob . ,(make-pitch -1 0 -1 ))
+ (do . ,(make-pitch -1 0 0 ))
+ (dod . ,(make-pitch -1 0 1 ))
+ (dodd . ,(make-pitch -1 0 2 ))
+ (rebb . ,(make-pitch -1 1 -2 ))
+ (reb . ,(make-pitch -1 1 -1 ))
+ (re . ,(make-pitch -1 1 0 ))
+ (red . ,(make-pitch -1 1 1 ))
+ (redd . ,(make-pitch -1 1 2 ))
+ (mibb . ,(make-pitch -1 2 -2 ))
+ (mib . ,(make-pitch -1 2 -1 ))
+ (mi . ,(make-pitch -1 2 0 ))
+ (mid . ,(make-pitch -1 2 1 ))
+ (midd . ,(make-pitch -1 2 2 ))
+ (fabb . ,(make-pitch -1 3 -2 ))
+ (fab . ,(make-pitch -1 3 -1 ))
+ (fa . ,(make-pitch -1 3 0 ))
+ (fad . ,(make-pitch -1 3 1 ))
+ (fadd . ,(make-pitch -1 3 2 ))
+ (solbb . ,(make-pitch -1 4 -2 ))
+ (solb . ,(make-pitch -1 4 -1 ))
+ (sol . ,(make-pitch -1 4 0 ))
+ (sold . ,(make-pitch -1 4 1 ))
+ (soldd . ,(make-pitch -1 4 2 ))
+ (labb . ,(make-pitch -1 5 -2 ))
+ (lab . ,(make-pitch -1 5 -1 ))
+ (la . ,(make-pitch -1 5 0 ))
+ (lad . ,(make-pitch -1 5 1 ))
+ (ladd . ,(make-pitch -1 5 2 ))
+ (sibb . ,(make-pitch -1 6 -2 ))
+ (sib . ,(make-pitch -1 6 -1 ))
+ (si . ,(make-pitch -1 6 0 ))
+ (sid . ,(make-pitch -1 6 1 ))
+ (sidd . ,(make-pitch -1 6 2 ))
+ (dos . ,(make-pitch -1 0 1 ))
+ (doss . ,(make-pitch -1 0 2 ))
+ (res . ,(make-pitch -1 1 1 ))
+ (ress . ,(make-pitch -1 1 2 ))
+ (mis . ,(make-pitch -1 2 1 ))
+ (miss . ,(make-pitch -1 2 2 ))
+ (fas . ,(make-pitch -1 3 1 ))
+ (fass . ,(make-pitch -1 3 2 ))
+ (sols . ,(make-pitch -1 4 1 ))
+ (solss . ,(make-pitch -1 4 2 ))
+ (las . ,(make-pitch -1 5 1 ))
+ (lass . ,(make-pitch -1 5 2 ))
+ (sis . ,(make-pitch -1 6 1 ))
+ (siss . ,(make-pitch -1 6 2 ))
+)
+
+
+
+\version "1.3.146"
--- /dev/null
+% Toplevel initialisation file.
+
+\version "1.3.146"
+
+
+\include "declarations-init.ly"
+\include "paper16-init.ly"
+
+ \paper {
+ \paperSixteen
+% linewidth = 7.\cm
+ linewidth = 11.\cm
+}
+
+\maininput
--- /dev/null
+\version "1.3.146"
+
+% urg!
+%
+\chordmodifiers #`(
+ (m . ,(make-pitch 0 2 -1 ))
+ (min . ,(make-pitch 0 2 -1 ))
+ (aug . ,(make-pitch 0 4 1 ))
+ ;; (dim . ,(make-pitch -100 4 -1 ))
+ (dim . ,(make-pitch -100 2 -1 ))
+ ;; urg, not actually a chord-modifier, but it works
+ ;; c7 -> <c bes>, c 7+ -> c b
+ (maj . ,(make-pitch 0 6 1 ))
+ ;; sus4 should delete 2 too...
+ (sus . ,(make-pitch 0 3 0 ))
+)
+
--- /dev/null
+
+\version "1.3.146"
+breve = \duration #(make-duration -1 0)
+longa = \duration #(make-duration -2 0 )
+maxima = \duration #(make-duration -3 0)
+
+\include "nederlands.ly" % dutch
+\include "chord-modifiers-init.ly"
+\include "script-init.ly"
+
+% declarations for standard directions
+left = -1
+right = 1
+up = 1
+down = -1
+start = -1
+stop = 1
+smaller = -1
+bigger = 1
+center=0
+
+break = \penalty #-10000
+noBreak = \penalty #10000
+\include "scale-definitions-init.ly"
+
+melisma = \property Staff.melismaBusy = ##t
+melismaEnd = \property Staff.melismaBusy = ##f
+
+
+\include "engraver-init.ly"
+\include "grace-init.ly"
+
+singleLine = \paper { linewidth = 1. }
+
+% ugh
+\include "midi-init.ly"
+
+papersize = "a4"
+paperfile = \papersize + "-init.ly"
+
+\include "generic-paper-init.ly"
+\include "paper20-init.ly"
+
+
+\include "dynamic-scripts-init.ly"
+\include "spanners-init.ly"
+
+\include "property-init.ly"
+
+
+
+% reset default duration
+unusedEntry = \notes { c4 }
+
+% music = "\melodic\relative c"
+
--- /dev/null
+% common german names for notes. "es" means flat, "is" means sharp
+%
+% by Roland Meier <meier@informatik.th-darmstadt.de>
+% based on swedish.ly by Mats Bengtsson.
+
+% 1999/06/09 Bjoern Jacke <bjoern.jacke@gmx.de>
+% added asas and marked ases as `unusual'
+
+
+\pitchnames #`(
+ (ceses . ,(make-pitch -1 0 -2 ))
+ (ces . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (cis . ,(make-pitch -1 0 1 ))
+ (cisis . ,(make-pitch -1 0 2 ))
+ (deses . ,(make-pitch -1 1 -2 ))
+ (des . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (dis . ,(make-pitch -1 1 1 ))
+ (disis . ,(make-pitch -1 1 2 ))
+ (eses . ,(make-pitch -1 2 -2 ))
+ (es . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (eis . ,(make-pitch -1 2 1 ))
+ (eisis . ,(make-pitch -1 2 2 ))
+ (feses . ,(make-pitch -1 3 -2 ))
+ (fes . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fis . ,(make-pitch -1 3 1 ))
+ (fisis . ,(make-pitch -1 3 2 ))
+ (geses . ,(make-pitch -1 4 -2 ))
+ (ges . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gis . ,(make-pitch -1 4 1 ))
+ (gisis . ,(make-pitch -1 4 2 ))
+ (asas . ,(make-pitch -1 5 -2 ))
+ (ases . ,(make-pitch -1 5 -2 )) ;;non-standard name for asas
+ (as . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (ais . ,(make-pitch -1 5 1 ))
+ (aisis . ,(make-pitch -1 5 2 ))
+ (heses . ,(make-pitch -1 6 -2 ))
+ (b . ,(make-pitch -1 6 -1 ))
+ (h . ,(make-pitch -1 6 0 ))
+ (his . ,(make-pitch -1 6 1 ))
+ (hisis . ,(make-pitch -1 6 2 ))
+)
+
+
+
+
+\version "1.3.146"
--- /dev/null
+% GM drum pitches.
+% I use different accidentals to distinguish drums at the same GM pitch.
+% Always accidental 0 (white keys) or 1 (black keys) to get the "correct" gm name.
+% i.e. fis, for closed highat ges, for highat.
+
+% 2001/03/25 Rune Zedeler <rune@zedeler.dk>
+
+
+%% TODO: don't pollute global namespace in this way .
+
+
+#(define drum-pitch-names `(
+ (acousticbassdrum bda ,(make-pitch -3 6 0 ))
+ (bassdrum bd ,(make-pitch -2 0 0 ))
+ (hisidestick ssh ,(make-pitch -3 6 2))
+ (sidestick ss ,(make-pitch -2 0 1))
+ (losidestick ssl ,(make-pitch -2 1 -1))
+ (acousticsnare sna ,(make-pitch -2 1 0))
+ (snare sn ,(make-pitch -2 2 -2))
+ (handclap hc ,(make-pitch -2 1 1))
+ (electricsnare sne ,(make-pitch -2 2 0))
+ (lowfloortom tomfl ,(make-pitch -2 3 0))
+ (closedhihat hhc ,(make-pitch -2 3 1))
+ (hihat hh ,(make-pitch -2 4 -1))
+ (highfloortom tomfh ,(make-pitch -2 4 0))
+ (pedalhihat hhp ,(make-pitch -2 4 1))
+ (lowtom toml ,(make-pitch -2 5 0))
+ (openhihat hho ,(make-pitch -2 5 1))
+ (halfopenhihat hhho ,(make-pitch -2 5 1))
+ (lowmidtom tomml ,(make-pitch -2 6 0))
+ (himidtom tommh ,(make-pitch -1 0 0))
+ (crashcymbala cymca ,(make-pitch -1 0 1))
+ (crashcymbal cymc ,(make-pitch -1 1 -1))
+ (hightom tomh ,(make-pitch -1 1 0))
+ (ridecymbala cymra ,(make-pitch -1 1 1))
+ (ridecymbal cymr ,(make-pitch -1 2 -1))
+ (chinesecymbal cymch ,(make-pitch -1 2 0))
+ (ridebell rb ,(make-pitch -1 3 0))
+ (tambourine tamb ,(make-pitch -1 3 1))
+ (splashcymbal cyms ,(make-pitch -1 4 0))
+ (cowbell cb ,(make-pitch -1 4 1))
+ (crashcymbalb cymcb ,(make-pitch -1 5 0))
+ (vibraslap vibs ,(make-pitch -1 5 1))
+ (ridecymbalb cymrb ,(make-pitch -1 6 0))
+ (hibongo boh ,(make-pitch 0 0 0))
+ (lobongo bol ,(make-pitch 0 0 1))
+ (mutehiconga cghm ,(make-pitch 0 1 0))
+ (openhiconga cgho ,(make-pitch 0 1 1))
+ (hiconga cgh ,(make-pitch 0 2 -1))
+ (openloconga cglo ,(make-pitch 0 1 2))
+ (loconga cgl ,(make-pitch 0 2 0))
+ (hitimbale timh ,(make-pitch 0 3 0))
+ (lotimbale timl ,(make-pitch 0 3 1))
+ (hiagogo agh ,(make-pitch 0 4 0))
+ (loagogo agl ,(make-pitch 0 4 1))
+ (cabasa cab ,(make-pitch 0 5 0))
+ (maracas mar ,(make-pitch 0 5 1))
+ (shortwhistle whs ,(make-pitch 0 6 0))
+ (longwhistle whl ,(make-pitch 1 0 0))
+ (shortguiro guis ,(make-pitch 1 0 1))
+ (longguiro guil ,(make-pitch 1 1 0))
+ (guiro gui ,(make-pitch 1 0 2))
+ (claves cl ,(make-pitch 1 1 1))
+ (hiwoodblock wbh ,(make-pitch 1 2 0))
+ (lowoodblock wbl ,(make-pitch 1 3 0))
+ (mutecuica cuim ,(make-pitch 1 3 1))
+ (opencuica cuio ,(make-pitch 1 4 0))
+ (mutetriangle trim ,(make-pitch 1 4 1))
+ (triangle tri ,(make-pitch 1 4 2))
+ (opentriangle trio ,(make-pitch 1 5 0))
+ ;; "transposing" pitches:
+ (oneup ua ,(make-pitch 0 1 0))
+ (twoup ub ,(make-pitch 0 2 0))
+ (threeup uc ,(make-pitch 0 3 0))
+ (fourup ud ,(make-pitch 0 4 0))
+ (fiveup ue ,(make-pitch 0 5 0))
+ (onedown da ,(make-pitch -1 6 0))
+ (twodown db ,(make-pitch -1 5 0))
+ (threedown dc ,(make-pitch -1 4 0))
+ (fourdown dd ,(make-pitch -1 3 0))
+ (fivedown de ,(make-pitch -1 2 0))
+))
+
+#(define drums `(
+ (acousticbassdrum default ,#f ,(make-pitch -1 4 0))
+ (bassdrum default ,#f ,(make-pitch -1 4 0))
+ (sidestick cross ,#f ,(make-pitch 0 1 0))
+ (acousticsnare default ,#f ,(make-pitch 0 1 0))
+ (snare default ,#f ,(make-pitch 0 1 0))
+ (handclap triangle ,#f ,(make-pitch 0 1 0))
+ (electricsnare default ,#f ,(make-pitch 0 1 0))
+ (lowfloortom default ,#f ,(make-pitch -1 3 0))
+ (closedhihat cross "stopped" ,(make-pitch 0 3 0))
+ (hihat cross ,#f ,(make-pitch 0 3 0))
+ (highfloortom default ,#f ,(make-pitch -1 5 0))
+ (pedalhihat cross ,#f ,(make-pitch -1 2 0))
+ (lowtom default ,#f ,(make-pitch 0 0 0))
+ (openhihat cross "open" ,(make-pitch 0 3 0))
+ (halfopenhihat xcircle ,#f ,(make-pitch 0 3 0))
+ (lowmidtom default ,#f ,(make-pitch 0 1 0))
+ (himidtom default ,#f ,(make-pitch 0 2 0))
+ (crashcymbala xcircle ,#f ,(make-pitch 0 5 0))
+ (crashcymbal xcircle ,#f ,(make-pitch 0 5 0))
+ (hightom default ,#f ,(make-pitch 0 4 0))
+ (ridecymbala cross ,#f ,(make-pitch 0 5 0))
+ (ridecymbal cross ,#f ,(make-pitch 0 5 0))
+ (chinesecymbal mensural ,#f ,(make-pitch 0 5 0))
+ (ridebell default ,#f ,(make-pitch 0 5 0))
+ (splashcymbal diamond ,#f ,(make-pitch 0 5 0))
+ (cowbell triangle ,#f ,(make-pitch 0 5 0))
+ (crashcymbalb cross ,#f ,(make-pitch 0 5 0))
+ (vibraslap diamond ,#f ,(make-pitch 0 4 0))
+ (ridecymbalb cross ,#f ,(make-pitch 0 5 0))
+ ))
+
+#(define timbales `(
+ (losidestick cross ,#f ,(make-pitch -1 6 0))
+ (lotimbale default ,#f ,(make-pitch -1 6 0))
+ (cowbell triangle ,#f ,(make-pitch 0 0 0))
+ (hisidestick cross ,#f ,(make-pitch 0 1 0))
+ (hitimbale default ,#f ,(make-pitch 0 1 0))
+ ))
+
+#(define congas `(
+ (losidestick cross ,#f ,(make-pitch -1 6 0))
+ (loconga default ,#f ,(make-pitch -1 6 0))
+ (openloconga default ,"open" ,(make-pitch -1 6 0))
+ (hisidestick cross ,#f ,(make-pitch 0 1 0))
+ (hiconga default ,#f ,(make-pitch 0 1 0))
+ (openhiconga default "open" ,(make-pitch 0 1 0))
+ (mutehiconga default "stopped" ,(make-pitch 0 1 0))
+
+ ))
+
+#(define bongos `(
+ (lobongo default ,#f ,(make-pitch -1 6 0))
+ (hibongo default ,#f ,(make-pitch 0 1 0))
+ ))
+
+#(define guiro `(
+ (shortguiro default "staccato",(make-pitch 0 0 0))
+ (longguiro default "tenuto" ,(make-pitch 0 0 0))
+ (guiro default ,#f ,(make-pitch 0 0 0))
+ ))
+
+#(define triangle `(
+ (opentriangle cross "open" ,(make-pitch 0 0 0))
+ (mutetriangle cross "stopped" ,(make-pitch 0 0 0))
+ (triangle cross ,#f ,(make-pitch 0 0 0))
+ ))
+
+
+
+\pitchnames
+#(append (map (lambda (x) (cons (car x) (caddr x))) drum-pitch-names)
+ (map (lambda (x) (cons (cadr x) (caddr x))) drum-pitch-names)
+ )
+
+
+\version "1.3.146"
--- /dev/null
+\version "1.3.146"
+
+%
+% declare the standard dynamic identifiers.
+%
+ppppp = \dynamicscript #"ppppp"
+pppp = \dynamicscript #"pppp"
+ppp = \dynamicscript #"ppp"
+pp = \dynamicscript #"pp"
+p = \dynamicscript #"p"
+mp = \dynamicscript #"mp"
+mf = \dynamicscript #"mf"
+f = \dynamicscript #"e" % see feta-din layout
+ff = \dynamicscript #"ff"
+fff = \dynamicscript #"fff"
+ffff = \dynamicscript #"ffff"
+fp = \dynamicscript #"fp"
+
+sf = \dynamicscript #"sf"
+sfp = \dynamicscript #"sfp"
+sff = \dynamicscript #"sff"
+sfz = \dynamicscript #"sfz"
+fz = \dynamicscript #"fz"
+sp = \dynamicscript #"sp"
+spp = \dynamicscript #"spp"
+rfz = \dynamicscript #"rfz"
+
--- /dev/null
+%{
+ English note names spelled out in full, and abbreviated
+ with s for sharp and f for flat.
+%}
+
+\pitchnames #`(
+ (cflatflat . ,(make-pitch -1 0 -2 ))
+ (cflat . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (csharp . ,(make-pitch -1 0 1 ))
+ (csharpsharp . ,(make-pitch -1 0 2 ))
+ (dflatflat . ,(make-pitch -1 1 -2 ))
+ (dflat . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (dsharp . ,(make-pitch -1 1 1 ))
+ (dsharpsharp . ,(make-pitch -1 1 2 ))
+ (eflatflat . ,(make-pitch -1 2 -2 ))
+ (eflat . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (esharp . ,(make-pitch -1 2 1 ))
+ (esharpsharp . ,(make-pitch -1 2 2 ))
+ (fflatflat . ,(make-pitch -1 3 -2 ))
+ (fflat . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fsharp . ,(make-pitch -1 3 1 ))
+ (fsharpsharp . ,(make-pitch -1 3 2 ))
+ (gflatflat . ,(make-pitch -1 4 -2 ))
+ (gflat . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gsharp . ,(make-pitch -1 4 1 ))
+ (gsharpsharp . ,(make-pitch -1 4 2 ))
+ (aflatflat . ,(make-pitch -1 5 -2 ))
+ (aflat . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (asharp . ,(make-pitch -1 5 1 ))
+ (asharpsharp . ,(make-pitch -1 5 2 ))
+ (bflatflat . ,(make-pitch -1 6 -2 ))
+ (bflat . ,(make-pitch -1 6 -1 ))
+ (b . ,(make-pitch -1 6 0 ))
+ (bsharp . ,(make-pitch -1 6 1 ))
+ (bsharpsharp . ,(make-pitch -1 6 2 ))
+
+ (cff . ,(make-pitch -1 0 -2 ))
+ (cf . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (cs . ,(make-pitch -1 0 1 ))
+ (css . ,(make-pitch -1 0 2 ))
+ (dff . ,(make-pitch -1 1 -2 ))
+ (df . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (ds . ,(make-pitch -1 1 1 ))
+ (dss . ,(make-pitch -1 1 2 ))
+ (eff . ,(make-pitch -1 2 -2 ))
+ (ef . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+
+ (es . ,(make-pitch -1 2 1 ))
+ (ess . ,(make-pitch -1 2 2 ))
+ (fff . ,(make-pitch -1 3 -2 ))
+ (ff . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fs . ,(make-pitch -1 3 1 ))
+ (fss . ,(make-pitch -1 3 2 ))
+ (gff . ,(make-pitch -1 4 -2 ))
+ (gf . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gs . ,(make-pitch -1 4 1 ))
+ (gss . ,(make-pitch -1 4 2 ))
+ (aff . ,(make-pitch -1 5 -2 ))
+ (af . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (as . ,(make-pitch -1 5 1 ))
+ (ass . ,(make-pitch -1 5 2 ))
+ (bff . ,(make-pitch -1 6 -2 ))
+ (bf . ,(make-pitch -1 6 -1 ))
+ (b . ,(make-pitch -1 6 0 ))
+ (bs . ,(make-pitch -1 6 1 ))
+ (bss . ,(make-pitch -1 6 2 ))
+)
+
+\version "1.3.146"
+
--- /dev/null
+\version "1.3.146"
+
+%
+% setup for Request->Element conversion. Guru-only
+%
+
+StaffContext=\translator {
+ \type "Engraver_group_engraver"
+ \name Staff
+ \consists "Output_property_engraver"
+ Generic_property_list = #generic-staff-properties
+
+ \consists "Bar_engraver"
+ % Bar_engraver must be first so default bars aren't overwritten
+% with empty ones.
+ \consists "Font_size_engraver"
+
+% \consists "Repeat_engraver"
+ \consists "Volta_engraver"
+ \consists "Separating_line_group_engraver"
+
+
+
+ \consists "Clef_engraver"
+ \consists "Key_engraver"
+ \consists "Time_signature_engraver"
+ \consists "Staff_symbol_engraver"
+ \consists "Collision_engraver"
+ \consists "Rest_collision_engraver"
+ \consists "Local_key_engraver"
+ \consists "Piano_pedal_engraver"
+ \consists "Instrument_name_engraver"
+
+ \consistsend "Axis_group_engraver"
+
+ MinimumVerticalExtent = #'(-4 . 4)
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+ % explicitly set instrument, so we don't get
+ % weird effects when doing instrument names for
+ % piano staves
+
+ instrument = ##f
+ instr = ##f
+
+ \accepts "Voice"
+}
+
+
+StaffContainerContext = \translator {
+ \type Engraver_group_engraver
+ \consists "Axis_group_engraver"
+ MinimumVerticalExtent = ##f
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+ \accepts Staff
+ \name StaffContainer
+}
+
+InnerChoirStaffContext = \translator {
+ \type "Engraver_group_engraver"
+ \name InnerChoirStaff
+ alignmentReference = #0
+ \consists "System_start_delimiter_engraver"
+ SystemStartDelimiter \override #'glyph = #'bracket
+
+ \accepts "Staff"
+ \accepts "RhythmicStaff"
+ \accepts "GrandStaff"
+ \accepts "PianoStaff"
+ \accepts "Lyrics"
+ \accepts "ChordNames"
+}
+ChoirStaffContext = \translator {
+ \InnerChoirStaffContext
+ \name ChoirStaff
+ \accepts "InnerChoirStaff"
+ \accepts "InnerStaffGroup"
+}
+
+
+RhythmicStaffContext=\translator{
+ \type "Engraver_group_engraver"
+
+ \consists "Output_property_engraver"
+
+ Generic_property_list = #generic-staff-properties
+ MinimumVerticalExtent = ##f
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+ \consists "Pitch_squash_engraver"
+ \consists "Separating_line_group_engraver"
+ \name RhythmicStaff
+ \alias "Staff"
+
+ Bar \override #'bar-size = #4
+ VoltaBracket \override #'minimum-space = #15 % urg, in \pt
+ VoltaBracket \override #'padding = #5 % urg, in \pt
+ StaffSymbol \override #'line-count = #1
+
+% \consists "Repeat_engraver"
+ \consists "Volta_engraver"
+ \consists "Bar_engraver"
+ \consists "Time_signature_engraver"
+ \consists "Staff_symbol_engraver"
+ \consistsend "Axis_group_engraver"
+ \accepts "Voice"
+}
+
+
+VoiceContext = \translator {
+ \type "Engraver_group_engraver"
+ \name Voice
+
+ Generic_property_list = #generic-voice-properties
+ \consists "Font_size_engraver"
+
+ % must come before all
+ \consists "Voice_devnull_engraver"
+ \consists "Output_property_engraver"
+ \consists "Arpeggio_engraver"
+ \consists "Multi_measure_rest_engraver"
+ \consists "Text_spanner_engraver"
+
+ \consists "Breathing_sign_engraver"
+ % \consists "Rest_engraver"
+ \consists "Dot_column_engraver"
+ \consists "Stem_engraver"
+ \consists "Beam_engraver"
+ \consists "Auto_beam_engraver"
+
+ \consists "Chord_tremolo_engraver"
+ \consists "Percent_repeat_engraver"
+ \consists "Melisma_engraver"
+
+%{
+ Must come before text_engraver, but after note_column engraver.
+
+%}
+ \consists "Dynamic_engraver"
+ \consists "Text_engraver"
+
+ \consists "Script_engraver"
+ \consists "Script_column_engraver"
+ \consists "Rhythmic_column_engraver"
+ \consists "Phrasing_slur_engraver"
+ \consists "Slur_engraver"
+ \consists "Tie_engraver"
+ \consists "Tuplet_engraver"
+ \consists "A2_engraver"
+
+ \consists "Skip_req_swallow_translator"
+ \accepts Thread % bug if you leave out this!
+}
+
+ThreadContext = \translator{
+ \type Engraver_group_engraver
+ \name Thread
+
+ \consists "Font_size_engraver"
+ \consists "Thread_devnull_engraver"
+ \consists "Note_heads_engraver"
+ \consists "Rest_engraver"
+ \consists "Note_head_line_engraver"
+ \consists "Output_property_engraver"
+ Generic_property_list = #generic-thread-properties
+}
+
+GrandStaffContext=\translator{
+ \type "Engraver_group_engraver"
+ \name GrandStaff
+ \consists "Span_bar_engraver"
+ \consists "Span_arpeggio_engraver"
+ \consists "System_start_delimiter_engraver"
+ SystemStartDelimiter \override #'glyph = #'brace
+
+ Generic_property_list = #generic-grand-staff-properties
+ \accepts "Staff"
+}
+
+PianoStaffContext = \translator{
+ \GrandStaffContext
+ \name "PianoStaff"
+
+ \consists "Vertical_align_engraver"
+ \consists "Instrument_name_engraver"
+
+ instrument = ##f
+ instr = ##f
+
+ verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
+ VerticalAlignment \override #'forced-distance = #12
+ VerticalAlignment \override #'self-alignment-Y = #0
+% \consistsend "Axis_group_engraver"
+}
+
+InnerStaffGroupContext= \translator {
+ \type "Engraver_group_engraver"
+ \name InnerStaffGroup
+
+ \consists "Span_bar_engraver"
+ \consists "Span_arpeggio_engraver"
+ \consists "Output_property_engraver"
+ SystemStartDelimiter \override #'glyph = #'bracket
+
+ \consists "System_start_delimiter_engraver"
+ \accepts "Staff"
+ \accepts "RhythmicStaff"
+ \accepts "GrandStaff"
+ \accepts "PianoStaff"
+
+ \accepts "Lyrics"
+ \accepts "ChordNames"
+}
+StaffGroupContext = \translator {
+ \InnerStaffGroupContext
+ \name StaffGroup
+ \accepts "InnerChoirStaff"
+ \accepts "ChoirStaff"
+ \accepts "InnerStaffGroup"
+}
+
+
+% UGH! JUNKME
+LyricsVoiceContext= \translator{
+ \type "Engraver_group_engraver"
+ \consistsend "Axis_group_engraver"
+ MinimumVerticalExtent = #(cons -1.2 1.2)
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+ \name LyricsVoice
+ \consists "Separating_line_group_engraver"
+ \consists "Lyric_engraver"
+ \consists "Extender_engraver"
+ \consists "Hyphen_engraver"
+ \consists "Stanza_number_engraver"
+ phrasingPunctuation = #".,:!?\""
+
+}
+NoteNamesContext = \translator {
+ \type "Engraver_group_engraver"
+ \name NoteNames
+ \consistsend "Axis_group_engraver"
+
+ MinimumVerticalExtent = ##f
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+
+ \consists "Note_name_engraver"
+ \consists "Separating_line_group_engraver"
+}
+
+LyricsContext = \translator {
+ \type "Engraver_group_engraver"
+ \name Lyrics
+ \consists Vertical_align_engraver %need this for getting folded repeats right.
+ Generic_property_list = #generic-lyrics-properties
+
+ \consistsend "Axis_group_engraver"
+ MinimumVerticalExtent = ##f
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+ \accepts "LyricsVoice"
+}
+
+
+ChordNamesContext = \translator {
+ \type "Engraver_group_engraver"
+ \name ChordNames
+
+ Generic_property_list = #generic-chord-staff-properties
+
+
+ \consists "Output_property_engraver"
+ \consists "Separating_line_group_engraver"
+ \consists "Chord_name_engraver"
+ \consists "Skip_req_swallow_translator"
+ \consistsend "Axis_group_engraver"
+ MinimumVerticalExtent = ##f
+ ExtraVerticalExtent = ##f
+ VerticalExtent = ##f
+
+ VerticalAxisGroup \override #'invisible-staff = ##t
+ }
+
+
+
+StupidScore = \translator {
+ \type "Score_engraver"
+ \name Score
+ \consists "Note_heads_engraver"
+}
+
+
+
+
+HaraKiriStaffContext = \translator {
+ \StaffContext
+ \remove "Axis_group_engraver"
+ \consistsend "Hara_kiri_engraver"
+ \consists "Instrument_name_engraver"
+ \accepts "Voice"
+}
+%{
+ The HaraKiriStaffContexts doesn't override \name,
+ so it is still named `Staff'.
+
+ %\translator { \HaraKiriStaffContext }
+%}
+
+
+
+
+ScoreContext = \translator {
+ \type Score_engraver
+ \name Score
+
+
+ \consists "Repeat_acknowledge_engraver"
+ \consists "Timing_engraver"
+ \consists "Output_property_engraver"
+ \consists "System_start_delimiter_engraver"
+ \consists "Mark_engraver"
+ \consists "Break_align_engraver"
+ \consists "Spacing_engraver"
+ \consists "Vertical_align_engraver"
+
+ \consists "Lyric_phrasing_engraver"
+ \consists "Bar_number_engraver"
+ \consists "Span_arpeggio_engraver"
+
+ \accepts "Staff"
+ \accepts "StaffContainer"
+ \accepts "StaffGroup"
+ \accepts "RhythmicStaff"
+ \accepts "Lyrics"
+ \accepts "ChordNames"
+ \accepts "GrandStaff"
+ \accepts "ChoirStaff"
+ \accepts "PianoStaff"
+ \accepts "NoteNames"
+
+ soloText = #"Solo"
+ soloIIText = #"Solo II"
+ aDueText = #"a2"
+ soloADue = ##t
+ splitInterval = #'(0 . 1)
+ changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
+
+ barAuto = ##t
+ voltaVisibility = ##t
+ % name, glyph id, clef position
+ % where is c0 in this clef?
+
+ clefGlyph = #"clefs-G"
+ clefPosition = #-2
+ centralCPosition = #-6
+
+ automaticPhrasing = ##t
+ alignmentReference = #-1 % \down
+ defaultBarType = #"|"
+
+ explicitClefVisibility = #all-visible
+ explicitKeySignatureVisibility = #all-visible
+
+ scriptDefinitions = #default-script-alist
+
+ verticalAlignmentChildCallback = #Align_interface::alignment_callback
+
+ pedalSustainStrings = #'("Ped." "*Ped." "*")
+ pedalUnaCordaStrings = #'("una corda" "" "tre corde")
+ pedalSostenutoStrings = #'() % FIXME
+
+ tupletNumberFormatFunction = #denominator-tuplet-formatter
+
+ keyAccidentalOrder = #'(
+ (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
+ (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
+ (6 . -2) (2 . -2) (5 . -2 ) (1 . -2) (4 . -2) (0 . -2) (3 . -2)
+ (3 . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
+ )
+ breakAlignOrder = #'(
+ Instrument_name
+ Left_edge_item
+ Span_bar
+ Breathing_sign
+ Clef_item
+ Key_item
+ Staff_bar
+ Time_signature
+ Custos
+ )
+
+
+ \elementdescriptions #all-grob-descriptions
+}
+
+OrchestralScoreContext= \translator {
+ \ScoreContext
+}
+EasyNotation = \translator {
+ \ScoreContext
+ NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
+ easyPlay = ##t
+}
+
+% retain for compatibility reasons (FIXME: convert-ly)
+GraceContext = \translator {
+ \type "Engraver_group_engraver"
+}
--- /dev/null
+\version "1.3.146"
+
+%
+% Running LilyPond on this file generates the documentation
+%
+#(eval-string (ly-gulp-file "generate-documentation.scm"))
--- /dev/null
+
+%
+% Running LilyPond on this file generates the short interface doc
+%
+#(eval-string (ly-gulp-file "generate-interface-doc.scm"))
--- /dev/null
+\version "1.3.146"
+
+\paper {
+ texsetting = ""
+ pssetting = ""
+ scmsetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n"% UGH.
+
+}
--- /dev/null
+\version "1.3.148"
+
+% german-chords.ly:
+% german/norwegian/danish?
+
+% To get Bb instead of B, use
+% \include "german-chords.ly"
+% #(set! german-Bb #t)
+
+#(define german-Bb #f)
+
+#(define (pitch->chord-name-text-banter pitch steps)
+ (let ((dopitch (if (member (cdr pitch) '((6 -1) (6 -2)))
+ (list 7 (+ (if german-Bb 0 1) (caddr pitch)))
+ (cdr pitch)
+ )))
+ (cons
+ (list-ref '("C" "D" "E" "F" "G" "A" "H" "B") (car dopitch))
+ (accidental->text-super (cadr dopitch))
+ )
+ )
+ )
+
+
+
+#(define (pitch->note-name-text-banter pitch)
+ (let ((dopitch (if (member (cdr pitch) '((6 -1) (6 -2)))
+ (list 7 (+ 1 (caddr pitch)))
+ (cdr pitch)
+ )))
+ (list
+ (string-append
+ (list-ref '("c" "d" "e" "f" "g" "a" "h" "b") (car dopitch))
+ (if (or (equal? (car dopitch) 2) (equal? (car dopitch) 5))
+ (list-ref '( "ses" "s" "" "is" "isis") (+ 2 (cadr dopitch)))
+ (list-ref '("eses" "es" "" "is" "isis") (+ 2 (cadr dopitch)))
+ )
+ )
+ )
+ )
+ )
--- /dev/null
+
+#(define (grace-beam-space-function multiplicity)
+ (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
+
+
+startGraceMusic = {
+ \property Voice.Stem \override #'direction = #1
+ \property Voice.Stem \override #'length = #6
+ \property Voice.Stem \override #'lengths =
+ #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))
+ \property Voice.Stem \override #'beamed-lengths =
+ #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5))
+ \property Voice.Stem \override #'beamed-minimum-lengths =
+ #(map (lambda (x) (* 0.8 x)) '(0.0 1.5 1.25 1.0))
+ \property Voice.Stem \override #'no-stem-extend = ##t
+ \property Voice.Stem \override #'flag-style = #"grace"
+
+ \property Voice.Beam \override #'space-function = #grace-beam-space-function
+ \property Voice.Beam \override #'thickness = #0.384
+
+ % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
+ % be smaller as well.
+
+ \property Voice.fontSize = #-2
+ \property Staff.Accidentals \override #'font-relative-size = #-2
+}
+
+stopGraceMusic = {
+ \property Voice.Beam \revert #'space-function
+ \property Voice.Beam \revert #'thickness
+
+ \property Voice.Stem \revert #'flag-style
+ \property Voice.Stem \revert #'no-stem-extend
+ \property Voice.Stem \revert #'beamed-lengths
+ \property Voice.Stem \revert #'beamed-minimum-lengths
+ \property Voice.Stem \revert #'lengths
+ \property Voice.Stem \revert #'length
+ \property Voice.Stem \revert #'direction
+
+ % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
+ % be smaller as well.
+
+ \property Voice.fontSize \unset
+ \property Staff.LocalKeyItem \revert #'font-relative-size
+}
--- /dev/null
+% Toplevel initialisation file.
+
+
+\version "1.3.146"
+
+\include "declarations-init.ly"
+
+\maininput
--- /dev/null
+%{
+ Common italian names for notes. "b" means flat (bemolle), "d" means sharp (diesis)
+ Adapted from dutch.ly.
+
+ English: a b c d e f g
+ Italian: la si do re mi fa sol
+
+ For french naming just change 'do' in 'ut'.
+%}
+
+% contributed by Paolo Zuliani <zuliap@easynet.it>
+
+\pitchnames #`(
+ (dobb . ,(make-pitch -1 0 -2 ))
+ (dob . ,(make-pitch -1 0 -1 ))
+ (do . ,(make-pitch -1 0 0 ))
+ (dod . ,(make-pitch -1 0 1 ))
+ (dodd . ,(make-pitch -1 0 2 ))
+ (rebb . ,(make-pitch -1 1 -2 ))
+ (reb . ,(make-pitch -1 1 -1 ))
+ (re . ,(make-pitch -1 1 0 ))
+ (red . ,(make-pitch -1 1 1 ))
+ (redd . ,(make-pitch -1 1 2 ))
+ (mibb . ,(make-pitch -1 2 -2 ))
+ (mib . ,(make-pitch -1 2 -1 ))
+ (mi . ,(make-pitch -1 2 0 ))
+ (mid . ,(make-pitch -1 2 1 ))
+ (midd . ,(make-pitch -1 2 2 ))
+ (fabb . ,(make-pitch -1 3 -2 ))
+ (fab . ,(make-pitch -1 3 -1 ))
+ (fa . ,(make-pitch -1 3 0 ))
+ (fad . ,(make-pitch -1 3 1 ))
+ (fadd . ,(make-pitch -1 3 2 ))
+ (solbb . ,(make-pitch -1 4 -2 ))
+ (solb . ,(make-pitch -1 4 -1 ))
+ (sol . ,(make-pitch -1 4 0 ))
+ (sold . ,(make-pitch -1 4 1 ))
+ (soldd . ,(make-pitch -1 4 2 ))
+ (labb . ,(make-pitch -1 5 -2 ))
+ (lab . ,(make-pitch -1 5 -1 ))
+ (la . ,(make-pitch -1 5 0 ))
+ (lad . ,(make-pitch -1 5 1 ))
+ (ladd . ,(make-pitch -1 5 2 ))
+ (sibb . ,(make-pitch -1 6 -2 ))
+ (sib . ,(make-pitch -1 6 -1 ))
+ (si . ,(make-pitch -1 6 0 ))
+ (sid . ,(make-pitch -1 6 1 ))
+ (sidd . ,(make-pitch -1 6 2 ))
+)
+
+\version "1.3.146"
--- /dev/null
+\version "1.3.146"
+
+% ledger.ly
+
+hsize = 11.0 \in
+vsize = 17.0 \in
+
+
--- /dev/null
+\version "1.3.146"
+% legal-init.ly
+
+hsize = 8.5 \in
+vsize = 14.0 \in
--- /dev/null
+\version "1.3.146"
+% letter-init.ly
+
+hsize = 8.5 \in
+vsize = 11.0 \in
+
+
--- /dev/null
+\version "1.3.146"
+\midi {
+ \tempo 4=60
+ \include "performer-init.ly"
+% unfold_all = "1"
+}
+
--- /dev/null
+\version "1.3.146"
+%{
+ common dutch names for notes. es means flat, is means sharp
+%}
+
+\pitchnames #`(
+ (ceses . ,(make-pitch -1 0 -2))
+ (ces . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (cis . ,(make-pitch -1 0 1 ))
+ (cisis . ,(make-pitch -1 0 2 ))
+ (deses . ,(make-pitch -1 1 -2 ))
+ (des . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (dis . ,(make-pitch -1 1 1 ))
+ (disis . ,(make-pitch -1 1 2 ))
+ (eeses . ,(make-pitch -1 2 -2 ))
+ (eses . ,(make-pitch -1 2 -2 ))
+ (ees . ,(make-pitch -1 2 -1 ))
+ (es . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (eis . ,(make-pitch -1 2 1 ))
+ (eisis . ,(make-pitch -1 2 2 ))
+ (feses . ,(make-pitch -1 3 -2 ))
+ (fes . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fis . ,(make-pitch -1 3 1 ))
+ (fisis . ,(make-pitch -1 3 2 ))
+ (geses . ,(make-pitch -1 4 -2 ))
+ (ges . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gis . ,(make-pitch -1 4 1 ))
+ (gisis . ,(make-pitch -1 4 2 ))
+ (aeses . ,(make-pitch -1 5 -2 ))
+ (ases . ,(make-pitch -1 5 -2 ))
+ (aes . ,(make-pitch -1 5 -1 ))
+ (as . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (ais . ,(make-pitch -1 5 1 ))
+ (aisis . ,(make-pitch -1 5 2 ))
+ (beses . ,(make-pitch -1 6 -2 ))
+ (bes . ,(make-pitch -1 6 -1 ))
+ (b . ,(make-pitch -1 6 0 ))
+ (bis . ,(make-pitch -1 6 1 ))
+ (bisis . ,(make-pitch -1 6 2 ))
+)
+
+
+
--- /dev/null
+
+% Idx norsk.ly,v 1.1 1998/03/25 11:38:28 arvidg Exp arvidg $
+
+%{
+
+ Common norwegian names for notes, including versions without the
+ double s-es to save typing, as well as the traditional names with
+ them not to confuse musicians. "es" or "ess" means flat, "is" or
+ "iss" means sharp.
+
+ Otherwise, the main difference from the dutch names is the that the
+ "b" is called "h" in norwegian, while the dutch "bes" is a norwegian
+ "b".
+
+ Staying within the (proud?) naming convention for norwegian language
+ setup used in LaTeX, this file is called "norsk.ly" instead of
+ "norwegian.ly", even if all other languages' files use the english
+ name.
+
+ This file is based on "dutch.ly". Basically, I copied "dutch.ly",
+ duplicated all lines containing at least one "is" or "es", changed
+ every other "is" into an "iss" and every other "es" into an "ess",
+ added "ass" et al, and made some b->h-related changes. There may be
+ bugs in here please tell me (or send patches) if you find any.
+
+ Arvid Gr=F8tting <arvidg@ifi.uio.no>
+
+%}
+
+\pitchnames #`(
+ (ceses . ,(make-pitch -1 0 -2 ))
+ (cessess . ,(make-pitch -1 0 -2 ))
+ (ces . ,(make-pitch -1 0 -1 ))
+ (cess . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (cis . ,(make-pitch -1 0 1 ))
+ (ciss . ,(make-pitch -1 0 1 ))
+ (cisis . ,(make-pitch -1 0 2 ))
+ (cississ . ,(make-pitch -1 0 2 ))
+ (deses . ,(make-pitch -1 1 -2 ))
+ (dessess . ,(make-pitch -1 1 -2 ))
+ (des . ,(make-pitch -1 1 -1 ))
+ (dess . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (dis . ,(make-pitch -1 1 1 ))
+ (diss . ,(make-pitch -1 1 1 ))
+ (disis . ,(make-pitch -1 1 2 ))
+ (dississ . ,(make-pitch -1 1 2 ))
+ (eeses . ,(make-pitch -1 2 -2 ))
+ (eessess . ,(make-pitch -1 2 -2 ))
+ (eses . ,(make-pitch -1 2 -2 ))
+ (essess . ,(make-pitch -1 2 -2 ))
+ (ees . ,(make-pitch -1 2 -1 ))
+ (eess . ,(make-pitch -1 2 -1 ))
+ (es . ,(make-pitch -1 2 -1 ))
+ (ess . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (eis . ,(make-pitch -1 2 1 ))
+ (eiss . ,(make-pitch -1 2 1 ))
+ (eisis . ,(make-pitch -1 2 2 ))
+ (eississ . ,(make-pitch -1 2 2 ))
+ (feses . ,(make-pitch -1 3 -2 ))
+ (fessess . ,(make-pitch -1 3 -2 ))
+ (fes . ,(make-pitch -1 3 -1 ))
+ (fess . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fis . ,(make-pitch -1 3 1 ))
+ (fiss . ,(make-pitch -1 3 1 ))
+ (fisis . ,(make-pitch -1 3 2 ))
+ (fississ . ,(make-pitch -1 3 2 ))
+ (geses . ,(make-pitch -1 4 -2 ))
+ (gessess . ,(make-pitch -1 4 -2 ))
+ (ges . ,(make-pitch -1 4 -1 ))
+ (gess . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gis . ,(make-pitch -1 4 1 ))
+ (giss . ,(make-pitch -1 4 1 ))
+ (gisis . ,(make-pitch -1 4 2 ))
+ (gississ . ,(make-pitch -1 4 2 ))
+ (aeses . ,(make-pitch -1 5 -2 ))
+ (aessess . ,(make-pitch -1 5 -2 ))
+ (ases . ,(make-pitch -1 5 -2 ))
+ (assess . ,(make-pitch -1 5 -2 ))
+ (aes . ,(make-pitch -1 5 -1 ))
+ (aess . ,(make-pitch -1 5 -1 ))
+ (as . ,(make-pitch -1 5 -1 ))
+ (ass . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (ais . ,(make-pitch -1 5 1 ))
+ (aiss . ,(make-pitch -1 5 1 ))
+ (aisis . ,(make-pitch -1 5 2 ))
+ (aississ . ,(make-pitch -1 5 2 ))
+ (bes . ,(make-pitch -1 6 -2 ))
+ (bess . ,(make-pitch -1 6 -2 ))
+ (b . ,(make-pitch -1 6 -1 ))
+ (b . ,(make-pitch -1 6 -1 ))
+ (h . ,(make-pitch -1 6 0 ))
+ (his . ,(make-pitch -1 6 1 ))
+ (hiss . ,(make-pitch -1 6 1 ))
+ (hisis . ,(make-pitch -1 6 2 ))
+ (hississ . ,(make-pitch -1 6 2 ))
+)
+
+
+
+\version "1.3.146"
--- /dev/null
+% paper-as5-init.ly
+
+\version "1.3.146"
+
+paperAsFive = \paper {
+ staffheight = 5.\char
+
+ \stylesheet #(as-make-style-sheet 'as5)
+
+ \translator { \StaffContext barSize = #5 }
+
+ % no beam-slope
+ %\translator { \VoiceContext beamHeight = #0 }
+ \include "params-as-init.ly"
+}
+
+\paper { \paperAsFive }
--- /dev/null
+% paper-as9-init.ly
+
+\version "1.3.146"
+
+paperAsNine = \paper {
+ staffheight = 9.\char
+
+ %\translator { \StaffContext barSize = \staffheight }
+
+ \stylesheet #(as-make-style-sheet 'as9)
+
+ \include "params-as-init.ly"
+
+}
+
+\paper { \paperAsNine }
--- /dev/null
+\version "1.3.146"
+% paper-init.ly
+
+%% Why som complicated? /MB
+%linewidth20 = \hsize - 2.5 * \staffheight
+%textheight20 = \vsize - 5.0 * \staffheight
+%linewidth = \staffheight/20.0 * \linewidth20
+%textheight = \staffheight/20.0 * \textheight20
+
+linewidth = \hsize - 2.\cm
+% Leave the textheight calculation to the geometry package. /MB
+%textheight = \vsize - 4.\cm
+
+indent = \linewidth / 14.0
+
--- /dev/null
+% paper11-init.ly
+
+\version "1.3.146"
+
+paperEleven = \paper {
+ staffheight = 11.0\pt
+ \stylesheet #(make-style-sheet 'paper11)
+
+ \include "params-init.ly"
+}
+
+\paper { \paperEleven }
--- /dev/null
+
+\include "paper11-init.ly"
--- /dev/null
+% paper13-init.ly
+
+
+\version "1.3.146"
+
+paperThirteen = \paper {
+ staffheight = 13.0\pt
+
+ \stylesheet #(make-style-sheet 'paper13)
+
+ \include "params-init.ly"
+}
+
+\paper { \paperThirteen }
--- /dev/null
+
+\include "paper13-init.ly"
--- /dev/null
+% paper16-init.ly
+
+\version "1.3.146"
+
+paperSixteen = \paper {
+ staffheight = 16.0\pt
+ \stylesheet #(make-style-sheet 'paper16)
+
+ \include "params-init.ly"
+}
+
+\paper {\paperSixteen }
--- /dev/null
+
+\include "paper16-init.ly"
--- /dev/null
+% paper20-init.ly
+
+
+\version "1.3.146"
+
+paperTwenty = \paper {
+ staffheight = 20.0\pt
+ \stylesheet #(make-style-sheet 'paper20)
+
+ \include "params-init.ly"
+}
+
+\paper { \paperTwenty }
--- /dev/null
+
+\include "paper20-init.ly"
--- /dev/null
+% paper23-init.ly
+
+
+\version "1.3.146"
+
+paperTwentythree = \paper {
+ staffheight = 23.0\pt
+ \stylesheet #(make-style-sheet 'paper23)
+ \include "params-init.ly"
+}
+
+\paper { \paperTwentythree }
--- /dev/null
+
+\include "paper23-init.ly"
--- /dev/null
+% paper26-init.ly
+
+\version "1.3.146"
+
+paperTwentysix = \paper {
+ staffheight = 26.0\pt
+ \stylesheet #(make-style-sheet 'paper26)
+
+ \include "params-init.ly"
+}
+
+\paper { \paperTwentysix }
--- /dev/null
+
+\include "paper26-init.ly"
--- /dev/null
+\version "1.3.146"
+% params-as-init.ly
+% generic paper parameters
+
+outputscale = \staffheight / 4.0
+
+linewidth = 60.0 \char
+textheight = 60.0 \char
+indent = 8.0\char
+
+staffspace = (\staffheight - 1.0 ) / 4.0
+stafflinethickness = \staffspace / 2.0
+
+\translator { \NoteNamesContext }
+\translator { \ScoreContext }
+\translator { \ChoirStaffContext }
+\translator { \GraceContext }
+\translator { \RhythmicStaffContext}
+\translator { \StaffContext }
+\translator { \VoiceContext }
+\translator { \StaffGroupContext }
+\translator { \ChordNamesContext }
+\translator { \GrandStaffContext }
+\translator { \LyricsContext }
+\translator { \ThreadContext }
+\translator { \PianoStaffContext }
+\translator { \LyricsVoiceContext }
+\translator { \StaffContainerContext }
+
+
--- /dev/null
+\version "1.3.146"
+% JUNKME.
+
+%% deprecated
+papersizename = \papersize
+
+% ly2dvi now uses `papersize' internally (and on cmd line)
+papersize = \papersize
+
+% FIXME
+% direct PostScript line height for single line staves
+lineheight = 14
+
+paperfile = \papersize + "-init.ly"
+
+% paperfile = "a4-init.ly"
+
+\include \paperfile
+\include "paper-init.ly"
+
+staffspace = \staffheight / 4.0
+stafflinethickness = \staffspace / 10.0
+outputscale = \staffheight / 4.0
+
+blotdiameter = 0.4 / \outputscale
+
+\translator { \NoteNamesContext }
+\translator { \ScoreContext }
+\translator { \ChoirStaffContext}
+\translator { \InnerChoirStaffContext}
+
+\translator { \RhythmicStaffContext}
+\translator { \StaffContext }
+\translator { \VoiceContext}
+\translator { \StaffGroupContext }
+\translator { \InnerStaffGroupContext }
+\translator { \ChordNamesContext }
+\translator { \GrandStaffContext}
+\translator { \LyricsContext }
+\translator { \ThreadContext}
+\translator { \PianoStaffContext}
+\translator { \LyricsVoiceContext }
+\translator { \StaffContainerContext }
+
+
+
+
+
--- /dev/null
+\version "1.3.146"
+
+% JUNKME
+%part-paper-init.ly
+
+\paper {
+ \translator { \OrchestralPartStaffContext }
+ \translator { \ScoreContext skipBars = ##t }
+}
+
--- /dev/null
+\version "1.3.146"
+%
+% setup for Request->Element conversion. Guru-only
+%
+StaffContext = \translator {
+ \type "Staff_performer"
+ \name Staff
+ \accepts Voice
+
+ \consists "Key_performer"
+ \consists "Tempo_performer"
+ \consists "Time_signature_performer"
+ dynamicStyle = #"dynamic"
+}
+\translator { \StaffContext }
+\translator { \StaffContext
+ \name RhythmicStaff
+}
+
+
+VoiceContext = \translator {
+ \type "Performer_group_performer"
+ \name Voice
+ \consists "Dynamic_performer"
+ \consists "Span_dynamic_performer"
+ \consists "Piano_pedal_performer"
+ \accepts "Thread"
+}
+\translator { \VoiceContext }
+
+ThreadContext = \translator {
+ \type "Performer_group_performer"
+ \name Thread
+ \consists "Note_performer"
+ \consists "Tie_performer"
+}
+\translator { \ThreadContext }
+
+% retain for compatibility reasons (FIXME: convert-ly)
+\translator {
+ \type "Performer_group_performer"
+ \name Grace
+}
+
+\translator
+{
+ \type "Performer_group_performer"
+ \name VoiceTwo\consists "Note_performer"
+
+}
+
+GrandStaffContext = \translator {
+ \type "Performer_group_performer"
+ \name GrandStaff
+ \accepts RhythmicStaff
+ \accepts Staff
+}
+\translator { \GrandStaffContext }
+
+PianoStaffContext = \translator {
+ \type "Performer_group_performer"
+ \name "PianoStaff"
+ \accepts Staff
+}
+\translator { \PianoStaffContext }
+
+\translator {
+ \type "Performer_group_performer"
+ \consists "Lyric_performer"
+ \name LyricsVoice
+}
+
+\translator{
+ \type "Performer_group_performer"
+ \name ChoirStaff
+ \accepts Staff
+}
+\translator {
+ \type "Staff_performer"
+ \accepts LyricsVoice
+ \name Lyrics
+ \consists "Time_signature_performer"
+ \consists "Tempo_performer"
+}
+
+\translator {
+ \type "Staff_performer"
+ \accepts ChordNameVoice
+ \name ChordNames
+}
+
+\translator {
+ \type Performer_group_performer
+ \consists Note_performer
+ \name ChordNameVoice
+}
+
+\translator {
+ \type Performer_group_performer
+
+ \name StaffGroup
+ \accepts Staff
+}
+
+ScoreContext = \translator {
+ \type "Score_performer"
+
+ \name Score
+ instrument = #"bright acoustic"
+ \accepts Staff
+ \accepts GrandStaff
+ \accepts PianoStaff
+ \accepts Lyrics
+ \accepts StaffGroup
+ \accepts ChoirStaff
+ \accepts RhythmicStaff
+ \accepts ChordNames
+ \consists "Swallow_performer"
+
+ dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
+ instrumentEqualizer = #default-instrument-equalizer
+}
+\translator { \ScoreContext }
+
--- /dev/null
+% property-init.ly
+
+\version "1.3.146"
+
+stemUp = \property Voice.Stem \set #'direction = #1
+stemDown = \property Voice.Stem \set #'direction = #-1
+stemBoth= \property Voice.Stem \revert #'direction
+
+slurUp = \property Voice.Slur \override #'direction = #1
+slurDown = \property Voice.Slur \override #'direction = #-1
+slurBoth = \property Voice.Slur \revert #'direction
+shiftOn = \property Voice.NoteColumn \override #'horizontal-shift = #1
+shiftOnn = \property Voice.NoteColumn \override #'horizontal-shift = #2
+shiftOnnn = \property Voice.NoteColumn \override #'horizontal-shift = #3
+shiftOff = \property Voice.NoteColumn \revert #'horizontal-shift
+
+tieUp = \property Voice.Tie \override #'direction = #1
+tieDown = \property Voice.Tie \override #'direction = #-1
+tieBoth = \property Voice.Tie \revert #'direction
+
+dynamicUp = {
+ \property Voice.DynamicText \override #'direction = #1
+ \property Voice.DynamicLineSpanner \override #'direction = #1
+}
+dynamicDown = {
+ \property Voice.DynamicText \override #'direction = #-1
+ \property Voice.DynamicLineSpanner \override #'direction = #-1
+}
+dynamicBoth = {
+ \property Voice.DynamicText \revert #'direction
+ \property Voice.DynamicLineSpanner \revert #'direction
+}
+
+scriptUp = {
+ \property Voice.TextScript \override #'direction = #1
+ \property Voice.Script \override #'direction = #1
+}
+scriptDown = {
+ \property Voice.TextScript \override #'direction = #-1
+ \property Voice.Script \override #'direction = #-1
+}
+scriptBoth = {
+ \property Voice.TextScript \revert #'direction
+ \property Voice.Script \revert #'direction
+}
+
+dotsUp = \property Voice.Dots \override #'direction = #1
+dotsDown = \property Voice.Dots \override #'direction = #-1
+dotsBoth = \property Voice.Dots \revert #'direction
+
+% why doubly?
+tupletUp = {
+ \property Voice.TupletBracket \override #'direction = #1
+ \property Voice.TupletBracket \override #'direction = #1
+}
+tupletDown = {
+ \property Voice.TupletBracket \override #'direction = #-1
+ \property Voice.TupletBracket \override #'direction = #-1
+}
+tupletBoth = {
+ \property Voice.TupletBracket \revert #'direction
+ \property Voice.TupletBracket \revert #'direction
+}
+
+
+
+cadenzaOn = \property Score.timing = ##f
+cadenzaOff = {
+ \property Score.timing = ##t
+ \property Score.measurePosition = #(make-moment 0 1)
+}
+
+newpage = {
+ \break
+ % urg, only works for TeX output
+ \context Score \outputproperty #(make-type-checker 'paper-column-interface)
+ #'between-system-string = #"\\newpage"
+}
+
+% dynamic dir? text script, articulation script dir?
+oneVoice = {
+ \stemBoth
+ \slurBoth
+ \tieBoth
+ \shiftOff
+}
+
+voiceOne = {
+ \stemUp
+ \slurUp
+ \tieUp
+ \dotsUp
+}
+
+voiceTwo = {
+ \stemDown
+ \slurDown
+ \tieDown
+ \dotsDown
+
+}
+
+voiceThree = {
+ \stemUp
+ \slurUp
+ \tieUp
+ \shiftOn
+ \dotsUp
+}
+
+voiceFour = {
+ \stemDown
+ \slurDown
+ \tieDown
+ \shiftOn
+ \dotsDown
+}
+
+% There's also dash, but setting dash period/length should be fixed.
+slurDotted = \property Voice.Slur \override #'dashed = #1
+slurSolid = \property Voice.Slur \revert #'dashed
+tieDotted = \property Voice.Tie \override #'dashed = #1
+tieSolid = \property Voice.Tie \revert #'dashed
+
+
+tiny =
+ \property Voice.fontSize= -2
+
+
+small =
+ \property Voice.fontSize= -1
+
+
+normalsize = {
+ \property Voice.fontSize= 0
+}
+
+normalkey = {
+ \property Staff.keyOctaviation = ##f
+}
+
+specialkey = {
+ \property Staff.keyOctaviation = ##t
+}
+
+% End the incipit and print a ``normal line start''.
+endincipit = \notes{
+ \partial 16 s16 % Hack to handle e.g. \bar ".|" \endincipit
+ \context Staff \outputproperty #(make-type-checker 'clef-interface) #'full-size-change = ##t
+ \context Staff \outputproperty #(make-type-checker 'clef-interface) #'non-default = ##t
+ \bar ""
+}
+
+autoBeamOff = \property Voice.noAutoBeaming = ##t
+autoBeamOn = \property Voice.noAutoBeaming = ##f
+
+emptyText = \property Voice.textNonEmpty = ##f
+fatText = \property Voice.textNonEmpty = ##t
+
+showStaffSwitch = \property PianoStaff.followVoice = ##t
+hideStaffSwitch = \property PianoStaff.followVoice = ##f
+
+
+% To remove a Volta bracet or some other graphical object,
+% set it to turnOff. Example: \property Staff.VoltaBracket = \turnOff
+
+turnOff = #'((meta . ((interfaces . ()))))
--- /dev/null
+\version "1.3.146"
+
+
+major = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . 0)
+ (3 . 0)
+ (4 . 0)
+ (5 . 0)
+ (6 . 0)
+ )
+
+minor = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . -1)
+ (3 . 0)
+ (4 . 0)
+ (5 . -1)
+ (6 . -1)
+ )
+
+
+ionian = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . 0)
+ (3 . 0)
+ (4 . 0)
+ (5 . 0)
+ (6 . 0)
+ )
+
+
+locrian = #'(
+ (0 . 0)
+ (1 . -1)
+ (2 . -1)
+ (3 . 0)
+ (4 . -1)
+ (5 . -1)
+ (6 . -1)
+ )
+
+
+aeolian = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . -1)
+ (3 . 0)
+ (4 . 0)
+ (5 . -1)
+ (6 . -1)
+ )
+
+
+mixolydian = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . 0)
+ (3 . 0)
+ (4 . 0)
+ (5 . 0)
+ (6 . -1)
+ )
+
+
+lydian = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . 0)
+ (3 . 1)
+ (4 . 0)
+ (5 . 0)
+ (6 . 0)
+ )
+
+
+phrygian = #'(
+ (0 . 0)
+ (1 . -1)
+ (2 . -1)
+ (3 . 0)
+ (4 . 0)
+ (5 . -1)
+ (6 . -1)
+)
+
+
+dorian = #'(
+ (0 . 0)
+ (1 . 0)
+ (2 . -1)
+ (3 . 0)
+ (4 . 0)
+ (5 . 0)
+ (6 . -1)
+ )
+
--- /dev/null
+\version "1.3.146"
+
+
+dashHat= "marcato"
+dashPlus= "stopped"
+dashDash= "tenuto"
+dashBar= "staccatissimo"
+dashLarger= "accent"
+dashDot= "staccato"
+
+
+thumb = \script "thumb"
+accent = \script "accent"
+marcato = \script "marcato"
+staccatissimo = \script "staccatissimo"
+
+% portato is indicated
+% either by
+% * slurred & dotted notes.
+%or by
+% * slur and dash notes.
+% Neither are really supported, but c4-.-- should work.
+% portato = \script "portato"
+
+fermata = \script "fermata"
+stopped = \script "stopped"
+staccato = \script "staccato"
+tenuto = \script "tenuto"
+upbow = \script "upbow"
+downbow = \script "downbow"
+lheel = \script "lheel"
+rheel = \script "rheel"
+ltoe = \script "ltoe"
+rtoe = \script "rtoe"
+turn = \script "turn"
+open = \script "open"
+flageolet = \script "flageolet"
+reverseturn = \script "reverseturn"
+trill = \script "trill"
+prall = \script "prall"
+mordent = \script "mordent"
+prallprall = \script "prallprall"
+prallmordent = \script "prallmordent"
+upprall = \script "upprall"
+downprall = \script "downprall"
+segno = \script "segno"
+coda = \script "coda"
--- /dev/null
+\version "1.3.146"
+
+cr = \spanrequest \start "crescendo"
+decr = \spanrequest \start "decrescendo"
+rc = \spanrequest \stop "crescendo"
+rced = \spanrequest \stop "decrescendo"
+
+cresc = \notes {
+ \commandspanrequest \start "crescendo"
+ \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoSpanner = #'dashed-line
+}
+
+% ah, this is handy: maybe drop resetting of properties in
+% dynamic-engraver ?
+endcresc = \notes {
+ \commandspanrequest \stop "crescendo"
+ \property Voice.crescendoText \unset
+ \property Voice.crescendoSpanner \unset
+}
+
+dim = \notes {
+ \commandspanrequest \start "decrescendo"
+ \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoSpanner = #'dashed-line
+}
+
+enddim = \notes {
+ \commandspanrequest \stop "decrescendo"
+ \property Voice.decrescendoText \unset
+ \property Voice.decrescendoSpanner \unset
+}
+
+%{
+
+cresc = \spanrequest \start "crescendo"
+endcresc = \spanrequest \stop "crescendo"
+
+%}
+
+% better name sustainstart/stop?
+sustainDown = \spanrequest \start "Sustain"
+sustainUp = \spanrequest \stop "Sustain"
+
+unaCorda = \spanrequest \start "UnaCorda"
+treCorde = \spanrequest \stop "UnaCorda"
+
+sostenutoDown = \spanrequest \start "Sostenuto"
+sostenutoUp = \spanrequest \stop "Sostenuto"
+
+%crescpoco = \property Voice.crescendoText = "cresc. poco a poco"
+%decresc = \property Voice.crescendoText = "decr."
+%dim = \property Voice.crescendoText = "dim."
--- /dev/null
+% common finnish names for notes. "es" means flat, "is" means sharp
+%
+% by Heikki Junes <heikki.junes@hut.fi>
+% based on svenska.ly by Mats Bengtsson.
+
+% 2001/08/28 Heikki Junes <heikki.junes@hut.fi>
+% added bb and marked heses as `unusual'
+
+\pitchnames #`(
+ (ceses . ,(make-pitch -1 0 -2 ))
+ (ces . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (cis . ,(make-pitch -1 0 1 ))
+ (cisis . ,(make-pitch -1 0 2 ))
+ (deses . ,(make-pitch -1 1 -2 ))
+ (des . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (dis . ,(make-pitch -1 1 1 ))
+ (disis . ,(make-pitch -1 1 2 ))
+ (eses . ,(make-pitch -1 2 -2 ))
+ (es . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (eis . ,(make-pitch -1 2 1 ))
+ (eisis . ,(make-pitch -1 2 2 ))
+ (feses . ,(make-pitch -1 3 -2 ))
+ (fes . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fis . ,(make-pitch -1 3 1 ))
+ (fisis . ,(make-pitch -1 3 2 ))
+ (geses . ,(make-pitch -1 4 -2 ))
+ (ges . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (gis . ,(make-pitch -1 4 1 ))
+ (gisis . ,(make-pitch -1 4 2 ))
+ (asas . ,(make-pitch -1 5 -2 ))
+ (ases . ,(make-pitch -1 5 -2 )) ;;non-standard name for asas
+ (as . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (ais . ,(make-pitch -1 5 1 ))
+ (aisis . ,(make-pitch -1 5 2 ))
+ (bb . ,(make-pitch -1 6 -2 ))
+ (heses . ,(make-pitch -1 6 -2 )) ;;non-standard name for bb
+ (b . ,(make-pitch -1 6 -1 ))
+ (h . ,(make-pitch -1 6 0 ))
+ (his . ,(make-pitch -1 6 1 ))
+ (hisis . ,(make-pitch -1 6 2 ))
+)
+\version "1.3.146"
--- /dev/null
+%
+% common Swedish names for notes. "ess" means flat, "iss" means sharp
+%
+% by Mats Bengtsson.
+
+\pitchnames #`(
+ (cessess . ,(make-pitch -1 0 -2 ))
+ (cess . ,(make-pitch -1 0 -1 ))
+ (c . ,(make-pitch -1 0 0 ))
+ (ciss . ,(make-pitch -1 0 1 ))
+ (cississ . ,(make-pitch -1 0 2 ))
+ (dessess . ,(make-pitch -1 1 -2 ))
+ (dess . ,(make-pitch -1 1 -1 ))
+ (d . ,(make-pitch -1 1 0 ))
+ (diss . ,(make-pitch -1 1 1 ))
+ (dississ . ,(make-pitch -1 1 2 ))
+ (essess . ,(make-pitch -1 2 -2 ))
+ (ess . ,(make-pitch -1 2 -1 ))
+ (e . ,(make-pitch -1 2 0 ))
+ (eiss . ,(make-pitch -1 2 1 ))
+ (eississ . ,(make-pitch -1 2 2 ))
+ (fessess . ,(make-pitch -1 3 -2 ))
+ (fess . ,(make-pitch -1 3 -1 ))
+ (f . ,(make-pitch -1 3 0 ))
+ (fiss . ,(make-pitch -1 3 1 ))
+ (fississ . ,(make-pitch -1 3 2 ))
+ (gessess . ,(make-pitch -1 4 -2 ))
+ (gess . ,(make-pitch -1 4 -1 ))
+ (g . ,(make-pitch -1 4 0 ))
+ (giss . ,(make-pitch -1 4 1 ))
+ (gississ . ,(make-pitch -1 4 2 ))
+ (assess . ,(make-pitch -1 5 -2 ))
+ (ass . ,(make-pitch -1 5 -1 ))
+ (a . ,(make-pitch -1 5 0 ))
+ (aiss . ,(make-pitch -1 5 1 ))
+ (aississ . ,(make-pitch -1 5 2 ))
+ (hessess . ,(make-pitch -1 6 -2 ))
+ (b . ,(make-pitch -1 6 -1 ))
+ (h . ,(make-pitch -1 6 0 ))
+ (hiss . ,(make-pitch -1 6 1 ))
+ (hississ . ,(make-pitch -1 6 2 ))
+)
+\version "1.3.146"
Begin3
Title: LilyPond
-Version: 1.5.8
-Entered-date: 30AUG01
+Version: 1.5.9
+Entered-date: 08SEP01
Description: @BLURB@
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.5.8.tar.gz
+ 1000k lilypond-1.5.9.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.5.8.tar.gz
+ 1000k lilypond-1.5.9.tar.gz
Copying-policy: GPL
End
%define name lilypond
-%define version 1.5.8
+%define version 1.5.9
%define release 1mdk
Name: %{name}
%define info yes
Name: lilypond
-Version: 1.5.8
+Version: 1.5.9
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.9.tar.gz
Summary: Create and print music notation
URL: http://www.lilypond.org/
BuildRoot: /tmp/lilypond-install
Distribution: SuSE Linux 7.0 (i386)
Name: lilypond
-Version: 1.5.8
+Version: 1.5.9
Release: 2
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.9.tar.gz
# music notation software for.. ?
Summary: A program for printing sheet music.
URL: http://www.lilypond.org/
(hip_width, foot_depth),
hip_depth_ratio,foot_width_ratio, hip_thickness, foot_thickness);
+ pickup pencircle scaled stemthickness;
+ draw (0, 0) .. (0,-2 staff_space);
+ y_mirror_char;
+fet_endchar;
+
%%%%%%%%
%
%
(w, h);
fet_endchar;
- pickup pencircle scaled stemthickness;
- draw (0, 0) .. (0,-2 staff_space);
- y_mirror_char;
-fet_endchar;
-
fet_beginchar("16th (down)", "d4", "dsixteenthflag")
save flare,
hip_depth_ratio, hip_width,
endgroup;
-% Rest symbols for mensural notation:
+%%%%%%%%
+%
+%
+%
+% MENSURAL NOTATION
+%
+%
+%
-mensrestsize# = .8staff_space#;
+% Neo-mensural longa and breve are identical with default longa and breve.
-fet_beginchar("Mensural 4th rest","2mensural","minimarest")
- set_char_box(0,mensrestsize#,0,mensrestsize#);
+neomens_block_rest_x# = 2/5 staff_space#;
+neomens_block_rest_y# = 1/1 staff_space#;
+neomens_half_block_rest_y# = 5/8 staff_space#;
+
+define_pixels(neomens_block_rest_x,
+ neomens_block_rest_y, neomens_half_block_rest_y);
+
+def neomens_half_block_rest =
+ draw_block ((0,0), (neomens_block_rest_x, neomens_half_block_rest_y));
+ enddef;
+
+fet_beginchar("Neo-mensural longa rest", "-2neo_mensural", "neomenslongarest");
+ set_char_box(0, neomens_block_rest_x#,
+ neomens_block_rest_y#, neomens_block_rest_y#);
+ draw_block ((0,-neomens_block_rest_y),
+ (neomens_block_rest_x, neomens_block_rest_y));
+fet_endchar;
+
+fet_beginchar("Neo-mensural breve rest", "-1neo_mensural", "neomensbreverest");
+ set_char_box(0, neomens_block_rest_x#,
+ 0, neomens_block_rest_y#);
+ draw_block ((0,0), (neomens_block_rest_x, neomens_block_rest_y));
+fet_endchar;
+
+fet_beginchar("Neo-mensural whole rest", "0neo_mensural", "neomenssemibrevisrest");
+ set_char_box(0, neomens_block_rest_x#,
+ neomens_half_block_rest_y#, 0);
+ neomens_half_block_rest;
+ currentpicture :=
+ currentpicture shifted (0,- neomens_half_block_rest_y);
+fet_endchar;
+
+fet_beginchar("Neo-mensural half rest", "1neo_mensural", "neomensminimahalfrest");
+ set_char_box(0, neomens_block_rest_x#,
+ 0, neomens_half_block_rest_y#);
+ neomens_half_block_rest;
+fet_endchar;
+
+neomensrestsize# = .8staff_space#;
+
+fet_beginchar("Neo-mensural 4th rest","2neo_mensural","neomenssemiminimarest")
+ set_char_box(0,neomensrestsize#,0,neomensrestsize#);
pickup pencircle scaled 2 stafflinethickness;
lft x1 = 0;
bot y1 = 0;
draw z2 .. z3;
fet_endchar
-fet_beginchar("Mensural 8th rest","3mensural","fusarest")
- set_char_box(0,mensrestsize#,0,mensrestsize#);
+fet_beginchar("Neo-mensural 8th rest","3neo_mensural","neomensfusarest")
+ set_char_box(0,neomensrestsize#,0,neomensrestsize#);
pickup pencircle scaled 2 stafflinethickness;
rt x1 = w;
bot y1 = 0;
draw z2 .. z3;
fet_endchar
-fet_beginchar("Mensural 16th rest","4mensural","semifusarest")
- set_char_box(0,mensrestsize#,0,staff_space#);
+fet_beginchar("Neo-mensural 16th rest","4neo_mensural","neomenssemifusarest")
+ set_char_box(0,neomensrestsize#,0,staff_space#);
pickup pencircle scaled 2 stafflinethickness;
rt x1 = w;
bot y1 = 0;
draw z5 .. z6;
fet_endchar
+pen_width# = 2/5 staff_space#;
+pen_height# = 0;
+pen_rotation = 30;
+slight_pen_rotation = 15;
+
+mens_block_rest_y# = 1/1 staff_space#;
+mens_half_block_rest_y# = 5/8 staff_space#;
+
+define_pixels(mens_block_rest_y, mens_half_block_rest_y,
+ pen_width, pen_height);
+
+fet_beginchar("Mensural longa rest", "-2mensural", "menslongarest");
+ set_char_box(pen_width#/2, pen_width#/2,
+ mens_block_rest_y#, mens_block_rest_y#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated slight_pen_rotation;
+ draw (0, -mens_block_rest_y) -- (0, mens_block_rest_y);
+fet_endchar;
+
+fet_beginchar("Mensural breve rest", "-1mensural", "mensbreverest");
+ set_char_box(pen_width#/2, pen_width#/2,
+ 0, mens_block_rest_y#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated slight_pen_rotation;
+ draw (0, 0) -- (0, mens_block_rest_y);
+fet_endchar;
+
+fet_beginchar("Mensural whole rest", "0mensural", "menssemibrevisrest");
+ set_char_box(pen_width#/2, pen_width#/2,
+ mens_half_block_rest_y#, 0);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated slight_pen_rotation;
+ draw (0, 0) -- (0, -mens_half_block_rest_y);
+fet_endchar;
+
+fet_beginchar("Mensural half rest", "1mensural", "mensminimahalfrest");
+ set_char_box(pen_width#/2, pen_width#/2,
+ 0, mens_half_block_rest_y#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated slight_pen_rotation;
+ draw (0, 0) -- (0, mens_half_block_rest_y);
+fet_endchar;
+
+mensrestsize# = .8staff_space#;
+
+fet_beginchar("Mensural 4th rest","2mensural","menssemiminimarest")
+ set_char_box(0,mensrestsize#,0,mensrestsize#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated pen_rotation;
+ lft x1 = 0; y1 = 0;
+ lft x2 = 0; top y2 = 5/8 h;
+ rt x3 = 4/8 w; bot y3 = 6/8 h;
+ rt x4 = 10/8 w; bot y4 = 4/8 h;
+ draw z1 -- z2 -- z3 -- z4;
+fet_endchar
+
+fet_beginchar("Mensural 8th rest","3mensural","mensfusarest")
+ set_char_box(0,mensrestsize#,0,mensrestsize#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated pen_rotation;
+ rt x1 = 10/8 w; y1 = 0;
+ rt x2 = 10/8 w; top y2 = 5/8 h;
+ lft x3 = 2/8 w; bot y3 = 6/8 h;
+ lft x4 = 0; bot y4 = 4/8 h;
+ draw z1 -- z2 -- z3 -- z4;
+fet_endchar
+
+fet_beginchar("Mensural 16th rest","4mensural","menssemifusarest")
+ set_char_box(0,mensrestsize#,0,staff_space#);
+ pickup pencircle
+ xscaled pen_width
+ yscaled pen_height
+ rotated pen_rotation;
+
+ rt x1 = 10/8 w; y1 = 0;
+ rt x2 = 10/8 w; top y2 = 5.5/8 h;
+ lft x3 = 2/8 w; bot y3 = 6.5/8 h;
+ lft x4 = 0; bot y4 = 4.5/8 h;
+ rt x5 = 10/8 w; top y5 = 2.5/8 h;
+ lft x6 = 2/8 w; bot y6 = 3.5/8 h;
+ lft x7 = 0; bot y7 = 1.5/8 h;
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6 -- z7;
+fet_endchar
+
fet_endgroup("rests")
--- /dev/null
+# Swedish translation of lilypond
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Martin Norbäck <d95mback@dtek.chalmers.se>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 1.4.6\n"
+"POT-Creation-Date: 2001-06-14 13:22+0200\n"
+"PO-Revision-Date: 2001-09-03 21:00+0200\n"
+"Last-Translator: Martin Norbäck <d95mback@dtek.chalmers.se>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ly2dvi.py:105
+msgid "Generate .dvi with LaTeX for LilyPond"
+msgstr "Generera .dvi med LaTeX för LilyPond"
+
+#: data-file.cc:118 input.cc:85 ly2dvi.py:190 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
+msgid "warning: "
+msgstr "varning: "
+
+#: input.cc:90 ly2dvi.py:205 ly2dvi.py:804 mup2ly.py:98 mup2ly.py:188
+#: update-lily.py:123 update-lily.py:211 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "fel: "
+
+#: ly2dvi.py:206 mup2ly.py:100 update-lily.py:125
+msgid "Exiting ... "
+msgstr "Avslutar... "
+
+#: ly2dvi.py:264 mup2ly.py:158 update-lily.py:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE"
+msgstr "Användning: %s [FLAGGA]... FIL"
+
+#: ly2dvi.py:268 main.cc:120 main.cc:148 mup2ly.py:162 update-lily.py:187
+msgid "Options:"
+msgstr "Flaggor:"
+
+#: ly2dvi.py:272 main.cc:124 main.cc:171 mup2ly.py:168 update-lily.py:191
+#, c-format
+msgid "Report bugs to %s"
+msgstr ""
+"Rapportera programfel till %s\n"
+"Rapportera fel i översättningen till <sv@li.org>"
+
+#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:208
+#, c-format
+msgid "Invoking `%s'"
+msgstr "Startar \"%s\""
+
+#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:211
+#, c-format
+msgid "command exited with value %d"
+msgstr "kommandot avslutade med värde %d"
+
+#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:213
+msgid "(ignored)"
+msgstr "(ignorerat)"
+
+# här är det fråga om rensning av en temporärkatalog
+#: ly2dvi.py:321
+#, c-format
+msgid "Cleaning %s..."
+msgstr "Rensar %s..."
+
+#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:237
+#, c-format
+msgid "no such setting: %s"
+msgstr "inställningen finns inte: %s"
+
+#: ly2dvi.py:349 main.cc:112
+msgid "write Makefile dependencies for every input file"
+msgstr "skriv Makefile-beroenden för varje indatafil"
+
+# förklaring av flaggan -h
+#: ly2dvi.py:350 main.cc:96 main.cc:108 mup2ly.py:1117 update-lily.py:251
+msgid "this help"
+msgstr "denna hjälp"
+
+#: ly2dvi.py:351 main.cc:110 main.cc:115
+msgid "DIR"
+msgstr "KATALOG"
+
+#: ly2dvi.py:351
+msgid "add DIR to LilyPond's search path"
+msgstr "lägg till KATALOG till LilyPonds sökväg"
+
+# %s är programmets namn
+#: ly2dvi.py:352
+#, c-format
+msgid "keep all output, and name the directory %s.dir"
+msgstr "behåll all utdata, och namnge katalogen %s.dir"
+
+#: ly2dvi.py:353
+msgid "don't run LilyPond"
+msgstr "kör inte LilyPond"
+
+#: ly2dvi.py:354 main.cc:113
+msgid "produce MIDI output only"
+msgstr "skapa enbart MIDI-utdata"
+
+#: ly2dvi.py:355 main.cc:99 main.cc:111 main.cc:114
+msgid "FILE"
+msgstr "FIL"
+
+#: ly2dvi.py:355
+msgid "write ouput to FILE"
+msgstr "skriv utdata till FIL"
+
+#: ly2dvi.py:357
+msgid "generate PostScript output"
+msgstr "skapa PostScript-utdata"
+
+#: ly2dvi.py:358
+msgid "KEY=VAL"
+msgstr "NYCKEL=VÄRDE"
+
+#: ly2dvi.py:358
+msgid "change global setting KEY to VAL"
+msgstr "ändra global inställning NYCKEL till VÄRDE"
+
+# Förklaring till --verbose (borde vara längre)
+#: ly2dvi.py:359 main.cc:118 mup2ly.py:1120 update-lily.py:255
+msgid "verbose"
+msgstr "utförlig utdata"
+
+#: ly2dvi.py:360 main.cc:105 main.cc:117 mup2ly.py:1121 update-lily.py:256
+msgid "print version number"
+msgstr "visa versionsnummer"
+
+#: ly2dvi.py:361 main.cc:107 main.cc:119 mup2ly.py:1122 update-lily.py:258
+msgid "show warranty and copyright"
+msgstr "visa garanti och copyright"
+
+#: ly2dvi.py:383 ly2dvi.py:578 ly2dvi.py:603
+#, c-format
+msgid "Running %s..."
+msgstr "Kör %s..."
+
+#: ly2dvi.py:396
+#, c-format
+msgid "Analyzing %s..."
+msgstr "Analyserar %s..."
+
+#: ly2dvi.py:452
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr "ingen lilypondutdata funnen för %s"
+
+#: ly2dvi.py:494
+#, c-format
+msgid "invalid value: %s"
+msgstr "ogiltigt värde: %s"
+
+# här är det fråga om skrivning till en fil
+#: ly2dvi.py:781 scores.cc:44
+#, c-format
+msgid "dependencies output to `%s'..."
+msgstr "beroenden skrivna till \"%s\"..."
+
+# här är det fråga om skrivning till en fil (första parametern är t.ex
+# DVI, LATEX, MIDI, TEX)
+#: ly2dvi.py:791
+#, c-format
+msgid "%s output to `%s'..."
+msgstr "%s skrivet till \"%s\"..."
+
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:793
+#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
+#, c-format
+msgid "can't find file: `%s'"
+msgstr "kan inte hitta fil: \"%s\""
+
+#: ly2dvi.py:804
+msgid "no files specified on command line."
+msgstr "inga filer angivna på kommandoraden."
+
+#: mup2ly.py:51
+msgid "Convert mup to ly"
+msgstr "Konvertera mup till ly"
+
+# %s är programnamnet (mup2ly)
+#: mup2ly.py:166
+#, c-format
+msgid "%s is far from completed. Not all constructs are recognised."
+msgstr "%s är långt ifrån färdig, och kan inte alla konstruktioner."
+
+#: mup2ly.py:964
+#, c-format
+msgid "no such context: %s"
+msgstr "omgivning finns inte: %s"
+
+#: mup2ly.py:1115
+msgid "debug"
+msgstr "felsökningsutdata"
+
+#: mup2ly.py:1116
+msgid "define macro NAME [optional expansion EXP]"
+msgstr "definiera makro NAME [valfri makroersättning EXP]"
+
+#: main.cc:114 mup2ly.py:1118
+msgid "write output to FILE"
+msgstr "skriv utdata till FIL"
+
+#: mup2ly.py:1119
+msgid "only pre-process"
+msgstr "förbehandla enbart"
+
+#: mup2ly.py:1200
+#, c-format
+msgid "Processing `%s'..."
+msgstr "Behandlar \"%s\"..."
+
+#: mup2ly.py:1219
+#, c-format
+msgid "Writing `%s'..."
+msgstr "Skriver \"%s\"..."
+
+#: update-lily.py:51
+msgid "Fetch and rebuild from latest source package"
+msgstr "Hämta och bygg om från senaste källkodspaketet"
+
+#: update-lily.py:223
+#, c-format
+msgid "Cleaning `%s'..."
+msgstr "Rensar \"%s\"..."
+
+#: update-lily.py:243
+#, c-format
+msgid "unpack and build in DIR [%s]"
+msgstr "packa upp och bygg i DIR [%s]"
+
+#: update-lily.py:244
+msgid "execute COMMAND, subtitute:"
+msgstr "kör COMMAND, ersätt:"
+
+#: update-lily.py:245
+msgid "%b: build root"
+msgstr "%b: byggrot"
+
+#: update-lily.py:246
+#, c-format
+msgid "%n: package name"
+msgstr "%n: paketnamn"
+
+#: update-lily.py:247
+msgid "%r: release directory"
+msgstr "%r: programsläppskatalog"
+
+#: update-lily.py:248
+msgid "%t: tarball"
+msgstr "%t: tarboll"
+
+#: update-lily.py:249
+msgid "%v: package version"
+msgstr "%v: paketversion"
+
+#: update-lily.py:252
+#, c-format
+msgid "keep all output, and name the directory %s"
+msgstr "behåll all utdata, och döp katalogen till %s"
+
+#: update-lily.py:253
+msgid "upon failure notify EMAIL[,EMAIL]"
+msgstr "vid fel, meddela EMAIL[,EMAIL]"
+
+#: update-lily.py:254
+msgid "remove previous build"
+msgstr "ta bort föregående bygge"
+
+#: update-lily.py:257
+#, c-format
+msgid "fetch and build URL [%s]"
+msgstr "hämta och bygg URL [%s]"
+
+#: update-lily.py:365
+#, c-format
+msgid "Listing `%s'..."
+msgstr "Listar \"%s\"..."
+
+#: update-lily.py:426
+#, c-format
+msgid "latest is: %s"
+msgstr "senaste är: %s"
+
+#: update-lily.py:427
+#, c-format
+msgid "relax, %s is up to date"
+msgstr "lugn, %s är senaste versionen"
+
+#: update-lily.py:435 update-lily.py:448
+#, c-format
+msgid "Fetching `%s'..."
+msgstr "Hämtar \"%s\"..."
+
+#: update-lily.py:457
+#, c-format
+msgid "Building `%s'..."
+msgstr "Bygger \"%s\"..."
+
+#: data-file.cc:54
+msgid "EOF in a string"
+msgstr "EOF i en sträng"
+
+#: getopt-long.cc:145
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "flaggan \"%s\" kräver ett argument"
+
+#: getopt-long.cc:149
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr "flaggan \"%s\" tillåter inget argument"
+
+#: getopt-long.cc:153
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "okänd flagga: \"%s\""
+
+#: getopt-long.cc:160
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "ogiltigt argument \"%s\" till flaggan \"%s\""
+
+#: input.cc:96
+msgid "non fatal error: "
+msgstr "icke-fatalt fel: "
+
+#: input.cc:104 source-file.cc:63 source-file.cc:156
+msgid "position unknown"
+msgstr "okänd position"
+
+# det handlar om mmap här
+#: mapped-file-storage.cc:74
+msgid "can't map file"
+msgstr "kan inte göra \"mmap\" på filen"
+
+#: lilypond-stream.cc:111 mapped-file-storage.cc:87 paper-stream.cc:45
+#: scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
+#, c-format
+msgid "can't open file: `%s'"
+msgstr "kan inte öppna fil: \"%s\""
+
+#: simple-file-storage.cc:56
+#, c-format
+msgid "Huh? Got %d, expected %d characters"
+msgstr "Öh? Fick %d, väntade %d tecken"
+
+#: text-stream.cc:10
+msgid "<stdin>"
+msgstr "<stdin>"
+
+#: warn.cc:36
+msgid "programming error: "
+msgstr "programmeringsfel: "
+
+#: warn.cc:36
+msgid " (Continuing; cross thumbs)"
+msgstr " (Fortsätter, håll tummarna)"
+
+#: afm.cc:59
+#, c-format
+msgid "can't find character number: %d"
+msgstr "kan inte hitta teckennummer: %d"
+
+#: afm.cc:74
+#, c-format
+msgid "can't find character called: `%s'"
+msgstr "kan inte hitta tecken som heter: \"%s\""
+
+#: afm.cc:124
+#, c-format
+msgid "Error parsing AFM file: `%s'"
+msgstr "Fel vid tolkning av AFM-fil: \"%s\""
+
+#: all-font-metrics.cc:95
+#, c-format
+msgid "checksum mismatch for font file: `%s'"
+msgstr "felaktig checksumma för typsnittsfil: \"%s\""
+
+#: all-font-metrics.cc:97
+#, c-format
+msgid "does not match: `%s'"
+msgstr "matchar inte: \"%s\""
+
+#: all-font-metrics.cc:102
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files. Rerun with -V to show font paths."
+msgstr " Bygg om alla .afm-filer, och ta bort alla .pk- och .tfm-filer. Kör igen med -V för att visa typsnittssökvägar."
+
+#: all-font-metrics.cc:167
+#, c-format
+msgid "can't find font: `%s'"
+msgstr "kan inte hitta typsnitt: \"%s\""
+
+#: all-font-metrics.cc:168
+msgid "Loading default font"
+msgstr "Läser in standardtypsnitt"
+
+#: all-font-metrics.cc:183
+#, c-format
+msgid "can't find default font: `%s'"
+msgstr "kan inte hitta standardtypsnitt: \"%s\""
+
+#: all-font-metrics.cc:184 includable-lexer.cc:51 scores.cc:137
+#, c-format
+msgid "(search path: `%s')"
+msgstr "(sökväg: \"%s\")"
+
+#: all-font-metrics.cc:185
+msgid "Giving up"
+msgstr "Ger upp"
+
+#: auto-change-iterator.cc:43 change-iterator.cc:59
+#: part-combine-music-iterator.cc:97
+msgid "Can't switch translators, I'm there already"
+msgstr "Kan inte byta översättare, jag är redan där"
+
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "balk har mindre än två skaft"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underligt vertikalt avstånd för balk"
+
+#: beam-engraver.cc:91 beam-engraver.cc:124
+msgid "can't find start of beam"
+msgstr "kan inte hitta start på balk"
+
+#: beam-engraver.cc:158
+msgid "already have a beam"
+msgstr "har redan en balk"
+
+#: beam-engraver.cc:222
+msgid "unterminated beam"
+msgstr "oavslutad balk"
+
+#: beam-engraver.cc:260 chord-tremolo-engraver.cc:195
+msgid "stem must have Rhythmic structure"
+msgstr "skaft måste ha en rytmisk struktur"
+
+#: beam-engraver.cc:272
+msgid "stem doesn't fit in beam"
+msgstr "skaftet passar inte i balken"
+
+#: beam-engraver.cc:273
+msgid "beam was started here"
+msgstr "balken startade här"
+
+#: break-align-item.cc:136
+#, c-format
+msgid "unknown spacing pair `%s', `%s'"
+msgstr "okänt avståndspar \"%s\", \"%s\""
+
+#: change-iterator.cc:21
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr "kan inte ändra \"%s\" till \"%s\""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:78
+msgid "I'm one myself"
+msgstr "Jag är en själv"
+
+#: change-iterator.cc:81
+msgid "none of these in my family"
+msgstr "ingen av dessa i min familj"
+
+#: chord.cc:369
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
+msgstr "ogiltig subtraktion: inte del av ackord: %s"
+
+# "pitch" här ska alltså vara en ton i ett ackord
+#: chord.cc:398
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
+msgstr "ogiltig ton för inversion: inte del av ett ackord: %s"
+
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "icke avslutat ackordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "det finns ingen som kan skriva tremolon"
+
+#: collision.cc:127
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr "För många krockande notkolumner. Ignorerar dem."
+
+#: dimensions.cc:13
+msgid "NaN"
+msgstr "-"
+
+#: dynamic-engraver.cc:197 span-dynamic-performer.cc:86
+msgid "can't find start of (de)crescendo"
+msgstr "kan inte hitta start på crescendo/diminuendo"
+
+#: dynamic-engraver.cc:222
+msgid "already have a crescendo"
+msgstr "har redan ett crescendo"
+
+#: dynamic-engraver.cc:223
+msgid "already have a decrescendo"
+msgstr "har redan ett diminuendo"
+
+#: dynamic-engraver.cc:317
+msgid "unterminated (de)crescendo"
+msgstr "oavslutat crescendo/diminuendo"
+
+#: extender-engraver.cc:97
+msgid "unterminated extender"
+msgstr "oavslutad utökare"
+
+#: extender-engraver.cc:109
+msgid "Nothing to connect extender to on the left. Ignoring extender request."
+msgstr "Det finns inget att koppla utökaren mot till vänster. Ignorerar utökarförfrågan"
+
+#: folded-repeat-iterator.cc:78
+msgid "no one to print a repeat brace"
+msgstr "det finns ingen som kan skriva ett repristecken"
+
+#: font-interface.cc:237
+msgid "couldn't find any font satisfying "
+msgstr "kunde inte hitta något typsnitt som uppfyller "
+
+#: gourlay-breaking.cc:157
+msgid "No feasible line breaking found"
+msgstr "Ingen lämplig radbrytning hittades"
+
+#: grace-iterator.cc:43
+msgid "no Grace context available"
+msgstr "ingen prydnadsomgivning tillgänglig"
+
+#: grace-position-engraver.cc:96
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr "Ej fastsatta prydnadsnoter. Fäster vid sista musikkolumnen."
+
+#: hairpin.cc:93
+msgid "decrescendo too small"
+msgstr "diminuendo för litet"
+
+#: hairpin.cc:94
+msgid "crescendo too small"
+msgstr "crescendo för litet"
+
+#: hyphen-engraver.cc:90
+msgid "unterminated hyphen"
+msgstr "oavslutat bindestreck"
+
+#: hyphen-engraver.cc:102
+msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
+msgstr "Det finns inget att koppla bindestrecket mot till vänster. Ignorerar bindestrecksförfrågan."
+
+#: key-engraver.cc:99
+msgid "Conflicting key signatures found."
+msgstr "Motsägande tonartssignaturer funna."
+
+#: key-engraver.cc:100
+msgid "This was the other key definition."
+msgstr "Detta var den andra tonartsdefinitionen."
+
+#: key-performer.cc:77
+msgid "FIXME: key change merge"
+msgstr "FIXA: tonartsbytessammanslagning"
+
+#: lily-guile.cc:141
+#, c-format
+msgid "(load path: `%s')"
+msgstr "(inläsningssökväg: \"%s\""
+
+#: line-of-score.cc:96
+#, c-format
+msgid "Element count %d."
+msgstr "Elementantal %d."
+
+#: line-of-score.cc:253 paper-score.cc:77
+#, c-format
+msgid "Element count %d "
+msgstr "Elementantal %d "
+
+#: line-of-score.cc:267
+msgid "Calculating column positions..."
+msgstr "Beräknar kolumnpositioner..."
+
+#: lyric-phrasing-engraver.cc:284
+msgid "lyrics found without any matching notehead"
+msgstr "text hittad utan något matchande nothuvud"
+
+#: lyric-phrasing-engraver.cc:289
+msgid "Huh? Melismatic note found to have associated lyrics."
+msgstr "Öh? Melismatisk not har tillhörande text."
+
+#: main.cc:104
+msgid "EXPR"
+msgstr "UTTR"
+
+#: main.cc:104
+msgid "evalute EXPR as Scheme after .scm init is read"
+msgstr "evaluera UTTR som Scheme efter .scm-init har lästs"
+
+#. another bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format
+#: main.cc:107
+msgid "EXT"
+msgstr "FMT"
+
+#: main.cc:107
+msgid "use output format EXT (scm, ps, tex or as)"
+msgstr "använd utdataformat FMT (scm, ps, tex eller as)"
+
+#: main.cc:109
+msgid "FIELD"
+msgstr "FÄLT"
+
+#: main.cc:109
+msgid "write header field to BASENAME.FIELD"
+msgstr "skriv rubrikfält till BASNAMN.FÄLT"
+
+#: main.cc:110
+msgid "add DIR to search path"
+msgstr "lägg till KATALOG till sökvägen"
+
+#: main.cc:111
+msgid "use FILE as init file"
+msgstr "använd FIL som init-fil"
+
+#: main.cc:115
+msgid "prepend DIR to dependencies"
+msgstr "lägg till KATALOG efter beroenden"
+
+#: main.cc:116
+msgid "inhibit file output naming and exporting"
+msgstr "hindra namngivning av filutdata och exportering"
+
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:136
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Användning: %s [FLAGGA]... FIL..."
+
+#: main.cc:138
+msgid "Typeset music and or play MIDI from FILE"
+msgstr "Typsätt musik och/eller spela MIDI från FIL"
+
+#: main.cc:142
+msgid ""
+"LilyPond is a music typesetter. It produces beautiful sheet music\n"
+"using a high level description file as input. LilyPond is part of \n"
+"the GNU Project.\n"
+msgstr ""
+"LilyPond är en musiktypsättare. Den producerar vackra noter från en\n"
+"högnivåbeskrivning av musiken i en fil. LilyPond är en del av\n"
+"GNU-projektet.\n"
+
+#: main.cc:152
+msgid "This binary was compiled with the following options:"
+msgstr "Detta program kompilerades med följande alternativ:"
+
+#: main.cc:56 main.cc:179
+#, c-format
+msgid ""
+"This is free software. It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions. Invoke as `%s --warranty' for more information.\n"
+msgstr ""
+"Det här är fri programvara. Den täcks av \"GNU General Public License\",\n"
+"och du får ändra och/eller distribuera kopior av den under vissa\n"
+"villkor. Kör \"%s --warranty\" för mer information.\n"
+
+#: main.cc:63 main.cc:186 main.cc:198
+#, c-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright © %s av"
+
+#: main.cc:196
+msgid "GNU LilyPond -- The music typesetter"
+msgstr "GNU Lilypond -- Musiktypsättaren"
+
+#: main.cc:72 main.cc:204
+msgid ""
+" This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+" This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+" You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+"USA.\n"
+msgstr ""
+"Detta program är fri programvara. Du kan distribuera det och/eller\n"
+"modifiera det under villkoren i GNU General Public License, publicerad\n"
+"av Free Software Foundation, antingen version 2 eller (om du så vill)\n"
+"någon senare version. \n"
+"\n"
+"Detta program distribueras i hopp om att det ska vara användbart, men\n"
+"UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti om\n"
+"SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General\n"
+"Public License för ytterligare information.\n"
+"\n"
+"Du bör ha fått en kopia av GNU General Public License tillsammans med\n"
+"detta program. Om inte, skriv till Free Software Foundation, Inc., 59\n"
+"Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: midi-item.cc:139
+#, c-format
+msgid "no such instrument: `%s'"
+msgstr "instrumentet finns inte: \"%s\""
+
+#: midi-item.cc:228
+msgid "silly duration"
+msgstr "tokig längd"
+
+#: midi-item.cc:241
+msgid "silly pitch"
+msgstr "tokig ton"
+
+#: musical-request.cc:28
+#, c-format
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s gör höjning/sänkning större än två"
+
+#: music.cc:232
+msgid "ly_get_mus_property (): Not a Music"
+msgstr "ly_get_mus_property (): Inte en \"Music\""
+
+#: music.cc:246
+msgid "ly_set_mus_property (): Not a symbol"
+msgstr "ly_set_mus_property (): inte en symbol"
+
+#: music.cc:258
+msgid "ly_set_mus_property (): not of type Music"
+msgstr "ly_set_mus_property (): inte av typen \"Music\""
+
+#: music.cc:272
+msgid "ly_make_music (): Not a string"
+msgstr "ly_make_music (): Inte en sträng"
+
+#: music.cc:292
+msgid "ly_music_name (): Not a music expression"
+msgstr "ly_music_name (): Inte ett musikuttryck"
+
+#: music-output-def.cc:115
+#, c-format
+msgid "can't find `%s' context"
+msgstr "kan inte hitta omgivningen \"%s\""
+
+#: my-lily-lexer.cc:139
+#, c-format
+msgid "Identifier name is a keyword: `%s'"
+msgstr "Identifierarnamn är ett nyckelord: \"%s\""
+
+#: my-lily-lexer.cc:159
+#, c-format
+msgid "error at EOF: %s"
+msgstr "fel vid filslut: %s"
+
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
+msgid "Parsing..."
+msgstr "Tolkar..."
+
+#: my-lily-parser.cc:57
+msgid "Braces don't match"
+msgstr "Krullparenteser matchar inte"
+
+#: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
+#, c-format
+msgid "Junking request: `%s'"
+msgstr "Slänger förfrågan: \"%s\""
+
+#: paper-def.cc:109
+#, c-format
+msgid "paper output to `%s'..."
+msgstr "pappersutdata till \"%s\"..."
+
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:99
+msgid ", at "
+msgstr ", vid "
+
+#: paper-outputter.cc:232
+#, c-format
+msgid "writing header field `%s' to `%s'..."
+msgstr "skriver rubrikfält \"%s\" till \"%s\"..."
+
+#: paper-score.cc:80
+msgid "Preprocessing elements..."
+msgstr "Förbehandlar element..."
+
+#: paper-score.cc:114
+msgid "Outputting Score, defined at: "
+msgstr "Matar ut partitur, definierade vid: "
+
+#: paper-stream.cc:41
+#, c-format
+msgid "can't create directory: `%s'"
+msgstr "kan inte skapa katalog: \"%s\""
+
+#: paper-stream.cc:55
+msgid "Error syncing file (disk full?)"
+msgstr "Fel vid synkning av fil (disken full?)"
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:116
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr "Jag är en själv: \"%s\""
+
+#: part-combine-music-iterator.cc:119
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr "ingen av dessa i min familj: \"%s\""
+
+#: percent-repeat-engraver.cc:117
+msgid "Don't know how to handle a percent repeat of this length."
+msgstr "Vet inte hur en procentupprepning av denna längd ska hanteras."
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr "det finns ingen som kan skriva procent"
+
+#: performance.cc:51
+msgid "Track ... "
+msgstr "Spår... "
+
+#: performance.cc:83
+msgid "Creator: "
+msgstr "Skapare: "
+
+#: performance.cc:113
+#, c-format
+msgid "from musical definition: %s"
+msgstr "från musikdefinition: %s"
+
+#: performance.cc:168
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr "MIDI-utdata till \"%s\"..."
+
+#: phrasing-slur-engraver.cc:119
+msgid "unterminated phrasing slur"
+msgstr "oavslutad fraseringsbåge"
+
+#: phrasing-slur-engraver.cc:134
+msgid "can't find start of phrasing slur"
+msgstr "kan inte hitta start på fraseringsbåge"
+
+#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
+#: piano-pedal-performer.cc:87
+#, c-format
+msgid "can't find start of piano pedal: `%s'"
+msgstr "kan inte hitta start på pianopedal: \"%s\""
+
+#: pitch.cc:25
+msgid "Pitch arguments out of range"
+msgstr "Tonargument utanför intervallet"
+
+#: property-engraver.cc:121
+#, c-format
+msgid ""
+"`%s' is deprecated. Use\n"
+" \\property %s.%s \\override #'%s = #%s"
+msgstr ""
+"\"%s\" är föråldrat. Använd\n"
+" \\property %s.%s \\override #'%s = #%s"
+
+#: property-engraver.cc:145
+#, c-format
+msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
+msgstr "Fel typ för egenskap: %s, typ: %s, värde funnet: %s, typ: %s"
+
+#: rest-collision.cc:194
+msgid "too many colliding rests"
+msgstr "för många krockande pauser"
+
+#: rest-collision.cc:198
+msgid "too many notes for rest collision"
+msgstr "för många toner för pauskrock"
+
+#: scm-option.cc:59
+msgid "Scheme options:"
+msgstr "Scheme-alternativ:"
+
+#: score.cc:78
+msgid "Interpreting music..."
+msgstr "Tolkar musik..."
+
+#: score.cc:92
+msgid "Need music in a score"
+msgstr "Behöver musik i partitur"
+
+#. should we? hampers debugging.
+#: score.cc:105
+msgid "Errors found/*, not processing score*/"
+msgstr "Fel funna/*, behandlar inte partitur*/"
+
+#: score.cc:112
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr "tidsåtgång: %.2f sekunder"
+
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "obunden bryggare \"%s\""
+
+#: scores.cc:106
+msgid "Score contains errors; will not process it"
+msgstr "Partitur innehåller fel; kommer inte behandla det"
+
+#: scores.cc:152
+#, c-format
+msgid "Now processing: `%s'"
+msgstr "Behandlar nu: \"%s\""
+
+#: script-engraver.cc:66
+#, c-format
+msgid "Don't know how to interpret articulation `%s'"
+msgstr "Kan inte tolka artikulering \"%s\""
+
+#. this shouldn't happen, but let's continue anyway.
+#: separation-item.cc:47
+msgid "Separation_item: I've been drinking too much"
+msgstr "Separation_item: Jag har druckit för mycket"
+
+#: slur.cc:48
+msgid "Putting slur over rest. Ignoring."
+msgstr "Sätter båge över paus. Ignorerar."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Båge över paus?"
+
+#: slur-engraver.cc:127
+msgid "unterminated slur"
+msgstr "oavslutat båge"
+
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
+msgid "can't find start of slur"
+msgstr "kan inte hitta start på båge"
+
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Konstig skaftstorlek; kolla efter smala balkar"
+
+#: stem-engraver.cc:115
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr "Lägger till nothuvud till inkompatibel båge (typ = %d)"
+
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Textbryggare för liten"
+
+#: text-spanner-engraver.cc:94
+msgid "can't find start of text spanner"
+msgstr "kan inte hitta start på textbryggare"
+
+#: text-spanner-engraver.cc:114
+msgid "already have a text spanner"
+msgstr "har redan en textbryggare"
+
+#: text-spanner-engraver.cc:169
+msgid "unterminated text spanner"
+msgstr "oavslutad textbryggare"
+
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan inte hitta ASCII-tecken: %d"
+
+#: tfm-reader.cc:106
+#, c-format
+msgid "TFM header of `%s' has only %u word (s)"
+msgstr "TFM-rubrik i \"%s\" har bara %u ord"
+
+#: tfm-reader.cc:140
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+msgstr "%s: TFM-fil har %u parametrar, vilket är mer än de %u jag kan hantera"
+
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:220 tie-performer.cc:173
+msgid "No ties were created!"
+msgstr "Inga bågar skapades!"
+
+#: tie-engraver.cc:240
+msgid "lonely tie"
+msgstr "ensam båge"
+
+#: time-scaled-music-iterator.cc:25
+msgid "no one to print a tuplet start bracket"
+msgstr "det finns ingen som kan skriva en starthake för tupel"
+
+#: timing-translator.cc:38
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr "taktkontroll misslyckades vid: %s"
+
+#: translator-ctors.cc:40
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "okänd översättare: \"%s\""
+
+#: translator-def.cc:99
+msgid "Program has no such type"
+msgstr "Programmet har ingen sådan typ"
+
+#: translator-def.cc:105
+#, c-format
+msgid "Already contains: `%s'"
+msgstr "Innehåller redan: \"%s\""
+
+#: translator-def.cc:106
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Lägger inte till översättare: \"%s\""
+
+#: translator-def.cc:224
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan inte hitta: \"%s\""
+
+#: translator-group.cc:146
+#, c-format
+msgid "can't find or create `%s' called `%s'"
+msgstr "kan inte hitta eller skapa \"%s\" kallad \"%s\""
+
+#: translator-group.cc:231
+#, c-format
+msgid "can't find or create: `%s'"
+msgstr "kan inte hitta eller skapa: \"%s\""
+
+#: translator-group.cc:414
+#, c-format
+msgid "Can't find property type-check for `%s'. Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan inte hitta egenskapstypkontroll för \"%s\". Kanske har du gjort ett typfel? Gör tilldelning i alla fall."
+
+#: translator-group.cc:428
+#, c-format
+msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "Typkontroll för \"%s\" misslyckades. Värde \"%s\" måste ha typen \"%s\""
+
+#. programming_error?
+#: translator-group.cc:447
+msgid "ly-get-trans-property: expecting a Translator_group argument"
+msgstr "ly-get-trans-property: väntade ett Translator_group-argument"
+
+#: volta-engraver.cc:87
+msgid "No volta spanner to end"
+msgstr "Ingen reprisbryggare till slutet"
+
+#: volta-engraver.cc:104
+msgid "Already have a volta spanner. Stopping that one prematurely."
+msgstr "Har redan en reprisbryggare. Stoppar den tidigare."
+
+#: volta-engraver.cc:108
+msgid "Also have a stopped spanner. Giving up."
+msgstr "Har också en stoppad bryggare. Ger upp."
+
+#: parser.yy:121
+#, c-format
+msgid "Expecting %d arguments"
+msgstr "Väntade %d argument"
+
+#: parser.yy:423
+msgid "Identifier should have alphabetic characters only"
+msgstr "Identifierare får bara innehålla alfabetiska tecken"
+
+#: parser.yy:697
+msgid "More alternatives than repeats. Junking excess alternatives."
+msgstr "Fler alternativ än repriser. Slänger överblivna alternativ."
+
+#: parser.yy:761
+msgid "Second argument must be a symbol"
+msgstr "Andra argumentet måste vara en symbol"
+
+#: parser.yy:766
+msgid "First argument must be a procedure taking 1 argument"
+msgstr "Första argumentet måste vara en procedur som tar 1 argument"
+
+#: parser.yy:1263
+msgid "Expecting string as script definition"
+msgstr "Väntade sträng som skriptdefinition"
+
+#: parser.yy:1273
+msgid "Can't specify direction for this request"
+msgstr "Kan inte ange riktning för denna förfrågan"
+
+#: parser.yy:1398
+msgid "Expecting musical-pitch value"
+msgstr "Väntade notvärde"
+
+#: parser.yy:1409
+msgid "Must have duration object"
+msgstr "Måste ha längdobjekt"
+
+#: parser.yy:1418 parser.yy:1426
+msgid "Have to be in Lyric mode for lyrics"
+msgstr "Måste vara i textläge (Lyric mode) för text"
+
+#: parser.yy:1579 parser.yy:1636
+#, c-format
+msgid "not a duration: %d"
+msgstr "inte en längd: %d"
+
+#: parser.yy:1645
+msgid "Have to be in Note mode for notes"
+msgstr "Måste vara i notläge (Note mode) för noter"
+
+#: parser.yy:1731
+msgid "Have to be in Chord mode for chords"
+msgstr "Måste vara i ackordläge (Chord mode) för ackord"
+
+#: parser.yy:1910
+msgid "need integer number arg"
+msgstr "behöver heltalsargument"
+
+#: lexer.ll:174
+msgid "EOF found inside a comment"
+msgstr "filslut hittat inuti en kommentar"
+
+#: lexer.ll:188
+msgid "\\maininput disallowed outside init files"
+msgstr "\\maininput förbjudet utanför init-filer"
+
+#: lexer.ll:212
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "felaktig eller odefinierad identifierare: \"%s\""
+
+#. backup rule
+#: lexer.ll:221
+msgid "Missing end quote"
+msgstr "Saknat slutcitationstecken"
+
+#. backup rule
+#: lexer.ll:243 lexer.ll:247
+msgid "white expected"
+msgstr "väntade tomrum"
+
+#: lexer.ll:256
+msgid "Can't evaluate Scheme in safe mode"
+msgstr "Kan inte evaluera Scheme i säkert läge"
+
+#: lexer.ll:349
+msgid "Brace found at end of lyric. Did you forget a space?"
+msgstr "Krullparentes funnen i slutet på text. Glömde du ett mellanslag?"
+
+#: lexer.ll:457
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "ogiltigt tecken: \"%c\""
+
+#: lexer.ll:538
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "okänd \"escaped\" sträng: \"\\%s\""
+
+#: lexer.ll:617
+#, c-format
+msgid "Oldest supported input version: %s"
+msgstr "Äldsta indataversion som stöds: %s"
+
+#: lexer.ll:629
+#, c-format
+msgid "incorrect lilypond version: %s (%s, %s)"
+msgstr "felaktig lilypond-version: %s (%s, %s)"
+
+#: lexer.ll:630
+msgid "Consider converting the input with the convert-ly script"
+msgstr "Fundera på att konvertera indata med skriptet \"convert-ly\""
+
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 i fjärdedel: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "LY output to `%s'..."
+msgstr "LY-utdata till \"%s\"..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spår %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Behandlar..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Skapar stämmor..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "spår "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "Filtrerar INTE tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "Kvantifierar INTE kolumner..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Kvantifierar kolumner..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Bestämmer kolumner..."
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr "% MIDI-copyright:"
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr "% MIDI-instrument:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "indenteringsnivå för lily: %d"
+
+# Kanske man inte ska översätta, men då får de ta bort _() i stället för
+# att skriva en fånig kommentar
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Skapare: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatgenererad"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% från indatafil: "
+
+#: main.cc:94
+msgid "write exact durations, e.g.: a4*385/384"
+msgstr "skriv exakta länger, t.ex: a4*385/384"
+
+#: main.cc:95
+msgid "enable debugging output"
+msgstr "slå på felsökningsutdata"
+
+#: main.cc:97
+msgid "ACC[:MINOR]"
+msgstr "TON[:MOLL]"
+
+#: main.cc:97
+msgid "set key: ACC +sharps/-flats; :1 minor"
+msgstr "sätt tonart: TON +höjningar/-sänkningar; :1 moll"
+
+#: main.cc:98
+msgid "don't output tuplets, double dots or rests, smallest is 32"
+msgstr "mata inte ut tupler, dubbelpunkteringar eller pauser, minsta är 32"
+
+#: main.cc:99
+msgid "set FILE as default output"
+msgstr "sätt FIL som standardutdata"
+
+#: main.cc:100
+msgid "don't output tuplets"
+msgstr "mata inte ut tupler"
+
+#: main.cc:101
+msgid "be quiet"
+msgstr "var tyst"
+
+#: main.cc:102
+msgid "don't output rests or skips"
+msgstr "mata inte ut pauser eller hopp"
+
+#: main.cc:103
+msgid "DUR"
+msgstr "LÄNGD"
+
+#: main.cc:103
+msgid "set smallest duration"
+msgstr "ställ in minsta längd"
+
+#: main.cc:104
+msgid "don't timestamp the output"
+msgstr "tidsstämpla inte utdata"
+
+#: main.cc:106
+msgid "be verbose"
+msgstr "var utförlig"
+
+#: main.cc:108
+msgid "assume no double dotted notes"
+msgstr "anta inga dubbelpunkterade noter"
+
+#: main.cc:115
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]"
+msgstr "Användning: %s [FLAGGA]... [FIL]"
+
+#: main.cc:117
+msgid "Translate MIDI-file to lilypond"
+msgstr "Översätt MIDI-fil till lilypond"
+
+#: main.cc:131
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr "no_double_dots: %d\n"
+
+#: main.cc:133
+#, c-format
+msgid "no_rests: %d\n"
+msgstr "no_rests: %d\n"
+
+#: main.cc:135
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr "no_quantify_b_s: %d\n"
+
+#: main.cc:137
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr "no_smaller_than: %d (1/%d)\n"
+
+#: main.cc:140
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr "no_tuplets: %d\n"
+
+#: midi-parser.cc:64
+msgid "zero length string encountered"
+msgstr "sträng med längd noll påträffad"
+
+#: midi-score-parser.cc:44
+msgid "MIDI header expected"
+msgstr "väntade MIDI-rubrik"
+
+#: midi-score-parser.cc:49
+msgid "invalid header length"
+msgstr "felaktig rubriklängd"
+
+#: midi-score-parser.cc:52
+msgid "invalid MIDI format"
+msgstr "ogiltigt MIDI-format"
+
+#: midi-score-parser.cc:55
+msgid "invalid number of tracks"
+msgstr "ogiltigt antal spår"
+
+#: midi-score-parser.cc:58
+msgid "can't handle non-metrical time"
+msgstr "kan inte hantera icke-metrisk tid"
+
+#: midi-track-parser.cc:68
+#, c-format
+msgid "Junking note-end event: channel = %d, pitch = %d"
+msgstr "Slänger notslutshändelse: kanal = %d, ton = %d"
+
+#: midi-track-parser.cc:124
+msgid "invalid running status"
+msgstr "ogiltig körstatus"
+
+#: midi-track-parser.cc:328
+msgid "unimplemented MIDI meta-event"
+msgstr "oimplementerad MIDI-metahändelse"
+
+#: midi-track-parser.cc:333
+msgid "invalid MIDI event"
+msgstr "ogiltig MIDI-händelse"
+
+#: midi-track-parser.cc:348
+msgid "MIDI track expected"
+msgstr "väntade MIDI-spår"
+
+#: midi-track-parser.cc:353
+msgid "invalid track length"
+msgstr "ogiltig spårlängd"
tuplet-bracket-visibility
tuplet-number-visibility
thick
+ direction
))
re_dict = {
'latex': {'input': r'(?m)^[^%\n]*?(?P<match>\\mbinput{?([^}\t \n}]*))',
'include': r'(?m)^[^%\n]*?(?P<match>\\mbinclude{(?P<filename>[^}]+)})',
- 'option-sep' : ', *',
+ 'option-sep' : ',\s*',
'header': r"\\documentclass\s*(\[.*?\])?",
'geometry': r"^(?m)[^%\n]*?\\usepackage\s*(\[(?P<options>.*)\])?\s*{geometry}",
'preamble-end': r'(?P<code>\\begin{document})',
'verbatim': r"(?s)(?P<code>\\begin{verbatim}.*?\\end{verbatim})",
'verb': r"(?P<code>\\verb(?P<del>.).*?(?P=del))",
- 'lilypond-file': r'(?m)^[^%\n]*?(?P<match>\\lilypondfile(\[(?P<options>.*?)\])?\{(?P<filename>.+)})',
- 'lilypond' : r'(?m)^[^%\n]*?(?P<match>\\lilypond(\[(?P<options>.*?)\])?{(?P<code>.*?)})',
- 'lilypond-block': r"(?sm)^[^%\n]*?(?P<match>\\begin(\[(?P<options>.*?)\])?{lilypond}(?P<code>.*?)\\end{lilypond})",
+ 'lilypond-file': r'(?m)^[^%\n]*?(?P<match>\\lilypondfile\s*(\[(?P<options>.*?)\])?\s*\{(?P<filename>.+)})',
+ 'lilypond' : r'(?m)^[^%\n]*?(?P<match>\\lilypond\s*(\[(?P<options>.*?)\])?\s*{(?P<code>.*?)})',
+ 'lilypond-block': r"(?sm)^[^%\n]*?(?P<match>\\begin\s*(\[(?P<options>.*?)\])?\s*{lilypond}(?P<code>.*?)\\end{lilypond})",
'def-post-re': r"\\def\\postLilypondExample",
'def-pre-re': r"\\def\\preLilypondExample",
'usepackage-graphics': r"\usepackage{graphics}",
'lilypond-file': '(?m)^(?!@c)(?P<match>@lilypondfile(\[(?P<options>.*?)\])?{(?P<filename>[^}]+)})',
'lilypond' : '(?m)^(?!@c)(?P<match>@lilypond(\[(?P<options>.*?)\])?{(?P<code>.*?)})',
'lilypond-block': r"""(?m)^(?!@c)(?P<match>(?s)(?P<match>@lilypond(\[(?P<options>.*?)\])?\s(?P<code>.*?)@end lilypond\s))""",
- 'option-sep' : ', *',
+ 'option-sep' : ',\s*',
'intertext': r',?\s*intertext=\".*?\"',
'multiline-comment': r"(?sm)^\s*(?!@c\s+)(?P<code>@ignore\s.*?@end ignore)\s",
'singleline-comment': r"(?m)^.*?(?P<match>(?P<code>@c.*$\n+))",
import operator
import tempfile
import traceback
-import resource
datadir = '@datadir@'
sys.path.append (datadir + '/python')
def _ (s):
return s
+# Attempt to fix problems with limited stack size set by Python!
+# Sets unlimited stack size. Note that the resource module only
+# is available on UNIX.
+try:
+ import resource
+ resource.setrlimit(resource.RLIMIT_STACK, (-1,-1))
+except:
+ pass
+
layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle',
'footer', 'head', 'composer', 'arranger', 'instrument',
#
environment = {
'MFINPUTS' : datadir + '/mf' + ':',
- 'TEXINPUTS': datadir + '/tex:' + datadir + '/ps' + ':',
+ 'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:' + os.getcwd() + ':',
'TFMFONTS' : datadir + '/tfm' + ':',
'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
'GS_LIB' : datadir + '/ps',