From 1539b48e9bd7cd7698e602dc3d3dbe74a6567a49 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sat, 8 Sep 2001 20:11:09 +0200 Subject: [PATCH] release: 1.5.9 ========= * 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.j --- AUTHORS.txt | 3 +- CHANGES | 21 +- Documentation/header.html.in | 47 +- Documentation/regression-test.tely | 2 + Documentation/topdocs/README.texi | 6 + Documentation/user/refman.itely | 8 +- Documentation/user/tutorial.itely | 2 +- VERSION | 4 +- buildscripts/lilypond-profile.sh | 2 +- input/regression/collision-mesh.ly | 24 + input/regression/hara-kiri-short.ly | 21 +- input/test/ancient-font.ly | 63 +- input/test/boxed-molecule.ly | 5 +- input/test/drums.ly | 2 +- lily/collision.cc | 140 ++- lily/global-translator.cc | 2 +- lily/include/stem.hh | 1 + lily/main.cc | 8 +- lily/note-head.cc | 2 +- lily/rest.cc | 2 +- lily/span-bar.cc | 15 +- lily/stem.cc | 97 +- ly/GNUmakefile | 2 +- ly/a4-init.ly | 5 + ly/accordion-defs-init.ly | 56 ++ ly/book-init-init.ly | 14 + ly/catalan.ly | 74 ++ ly/center-init.ly | 15 + ly/chord-modifiers-init.ly | 17 + ly/declarations-init.ly | 56 ++ ly/deutsch.ly | 52 + ly/drumpitch-init.ly | 160 +++ ly/dynamic-scripts-init.ly | 27 + ly/english.ly | 82 ++ ly/engraver-init.ly | 415 ++++++++ ly/generate-documentation.ly | 6 + ly/generate-interface-doc-init.ly | 5 + ly/generic-paper-init.ly | 8 + ly/german-chords-init.ly | 41 + ly/grace-init.ly | 45 + ly/init.ly | 8 + ly/italiano.ly | 51 + ly/ledger-init.ly | 8 + ly/legal-init.ly | 5 + ly/letter-init.ly | 7 + ly/midi-init.ly | 7 + ly/nederlands.ly | 49 + ly/norsk.ly | 107 ++ ly/paper-as5-init.ly | 17 + ly/paper-as9-init.ly | 16 + ly/paper-init.ly | 15 + ly/paper11-init.ly | 12 + ly/paper11.ly | 2 + ly/paper13-init.ly | 14 + ly/paper13.ly | 2 + ly/paper16-init.ly | 12 + ly/paper16.ly | 2 + ly/paper20-init.ly | 13 + ly/paper20.ly | 2 + ly/paper23-init.ly | 12 + ly/paper23.ly | 2 + ly/paper26-init.ly | 12 + ly/paper26.ly | 2 + ly/params-as-init.ly | 30 + ly/params-init.ly | 48 + ly/part-paper-init.ly | 10 + ly/performer-init.ly | 124 +++ ly/property-init.ly | 167 ++++ ly/scale-definitions-init.ly | 100 ++ ly/script-init.ly | 47 + ly/spanners-init.ly | 53 + ly/suomi.ly | 48 + ly/svenska.ly | 43 + make/out/lilypond.lsm | 8 +- make/out/lilypond.mandrake.spec | 2 +- make/out/lilypond.redhat.spec | 4 +- make/out/lilypond.suse.spec | 4 +- mf/feta-banier.mf | 10 +- mf/feta-eindelijk.mf | 160 ++- po/sv.po | 1407 +++++++++++++++++++++++++++ scm/interface-description.scm | 1 + scripts/lilypond-book.py | 10 +- scripts/ly2dvi.py | 12 +- 83 files changed, 4075 insertions(+), 147 deletions(-) create mode 100644 input/regression/collision-mesh.ly create mode 100644 ly/a4-init.ly create mode 100644 ly/accordion-defs-init.ly create mode 100644 ly/book-init-init.ly create mode 100644 ly/catalan.ly create mode 100644 ly/center-init.ly create mode 100644 ly/chord-modifiers-init.ly create mode 100644 ly/declarations-init.ly create mode 100644 ly/deutsch.ly create mode 100644 ly/drumpitch-init.ly create mode 100644 ly/dynamic-scripts-init.ly create mode 100644 ly/english.ly create mode 100644 ly/engraver-init.ly create mode 100644 ly/generate-documentation.ly create mode 100644 ly/generate-interface-doc-init.ly create mode 100644 ly/generic-paper-init.ly create mode 100644 ly/german-chords-init.ly create mode 100644 ly/grace-init.ly create mode 100644 ly/init.ly create mode 100644 ly/italiano.ly create mode 100644 ly/ledger-init.ly create mode 100644 ly/legal-init.ly create mode 100644 ly/letter-init.ly create mode 100644 ly/midi-init.ly create mode 100644 ly/nederlands.ly create mode 100644 ly/norsk.ly create mode 100644 ly/paper-as5-init.ly create mode 100644 ly/paper-as9-init.ly create mode 100644 ly/paper-init.ly create mode 100644 ly/paper11-init.ly create mode 100644 ly/paper11.ly create mode 100644 ly/paper13-init.ly create mode 100644 ly/paper13.ly create mode 100644 ly/paper16-init.ly create mode 100644 ly/paper16.ly create mode 100644 ly/paper20-init.ly create mode 100644 ly/paper20.ly create mode 100644 ly/paper23-init.ly create mode 100644 ly/paper23.ly create mode 100644 ly/paper26-init.ly create mode 100644 ly/paper26.ly create mode 100644 ly/params-as-init.ly create mode 100644 ly/params-init.ly create mode 100644 ly/part-paper-init.ly create mode 100644 ly/performer-init.ly create mode 100644 ly/property-init.ly create mode 100644 ly/scale-definitions-init.ly create mode 100644 ly/script-init.ly create mode 100644 ly/spanners-init.ly create mode 100644 ly/suomi.ly create mode 100644 ly/svenska.ly create mode 100644 po/sv.po diff --git a/AUTHORS.txt b/AUTHORS.txt index 8c55c0faa4..4f9e6ff8a2 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -30,7 +30,8 @@ list is alphabetically ordered. * Neil Jerram . parts of Documentation/Vocab* - * Heikki Junes . Finnish note names + * Heikki Junes . 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) diff --git a/CHANGES b/CHANGES index 3110684ed7..5a62a5a968 100644 --- a/CHANGES +++ b/CHANGES @@ -1,11 +1,30 @@ +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 ========== diff --git a/Documentation/header.html.in b/Documentation/header.html.in index 13cee14734..481ad838c6 100644 --- a/Documentation/header.html.in +++ b/Documentation/header.html.in @@ -38,52 +38,47 @@ which substitutes some @AT_VARIABLES@ as well.
- Documentation + What is LilyPond
- General information
- For new users
- For users
- For developers
- Background information
+ General information
+ Simple examples
+ Complex examples
Download
- Source
- Binary
+ Linux
+ Windows
+ Source code
- Music + Documentation
- Short examples
- Longer examples
- Mutopia Project
- - Other URLs
+ Tutorial
+ Manual
+ Glossary
+ other ...

- Mailing Lists + Support
- About the lists
- Using LilyPond
- Developing LilyPond
- Reporting bugs
- Announcements
+ Mailing lists
+ WikiWiki
+ FAQs

External sites
- Development version
- Stable version
- WikiWiki
- FTP site
- Mutopia archive
- + lilypond.org/development
+ lilypond.org/stable
+ ftp.lilypond.org
+ Mutopia
+ Other music online

diff --git a/Documentation/regression-test.tely b/Documentation/regression-test.tely index 03f562a563..bed908046a 100644 --- a/Documentation/regression-test.tely +++ b/Documentation/regression-test.tely @@ -199,6 +199,8 @@ Grace note do weird things with timing. Fragile. @lilypondfile[printfilename]{collision-dots.ly} +@lilypondfile[printfilename]{collision-mesh.ly} + @lilypondfile[printfilename]{number-staff-lines.ly} diff --git a/Documentation/topdocs/README.texi b/Documentation/topdocs/README.texi index dadd6967f5..2c97cb4c6c 100644 --- a/Documentation/topdocs/README.texi +++ b/Documentation/topdocs/README.texi @@ -61,6 +61,12 @@ LilyPond is a long way from finished and polished, so please send your criticism, comments, bugreports, patches, etc., to the mailing list, @emph{not} to us personally. +@html + +@end html + + + We have the following mailing lists: @itemize @bullet diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 1c9d14271e..d76a9c9f64 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -3945,6 +3945,9 @@ following line #(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 @@ -3953,11 +3956,6 @@ When you convert the @TeX{} file to PostScript using @code{dvips}, it 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 diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 4ac0a5679f..1234406f23 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -2385,7 +2385,7 @@ When naming the tuning of the french horn, we'll need a piece of text 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 diff --git a/VERSION b/VERSION index 95f1602188..b3531ee599 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ 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. diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh index 880b6a5d2c..703df5ccc7 100755 --- a/buildscripts/lilypond-profile.sh +++ b/buildscripts/lilypond-profile.sh @@ -9,7 +9,7 @@ # 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" diff --git a/input/regression/collision-mesh.ly b/input/regression/collision-mesh.ly new file mode 100644 index 0000000000..25881933f7 --- /dev/null +++ b/input/regression/collision-mesh.ly @@ -0,0 +1,24 @@ +\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 + r4 r4 } + \context Voice=VII {\stemUp d'2.} > + + % Or: + + <\context Voice = VI {\stemUp r r} + \context Voice= VII {\stemDown d'2.} > + } +} + + + + + diff --git a/input/regression/hara-kiri-short.ly b/input/regression/hara-kiri-short.ly index 313e0dd4f4..38aeac0877 100644 --- a/input/regression/hara-kiri-short.ly +++ b/input/regression/hara-kiri-short.ly @@ -8,27 +8,34 @@ therefore removed. Also, any staff brackets and braces are removed. } + + + 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 diff --git a/input/test/ancient-font.ly b/input/test/ancient-font.ly index 5afabdbd26..405e6add22 100644 --- a/input/test/ancient-font.ly +++ b/input/test/ancient-font.ly @@ -38,30 +38,28 @@ upperVoice = \context Staff = upperVoice < \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 @@ -71,30 +69,39 @@ upperVoice = \context Staff = upperVoice < \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 "||" } > @@ -112,6 +119,7 @@ lowerVoice = \context Staff = lowerNotes < \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 @@ -123,31 +131,36 @@ lowerVoice = \context Staff = lowerNotes < 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'! @@ -186,5 +199,15 @@ lowerVoice = \context Staff = lowerNotes < % 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 + } } } diff --git a/input/test/boxed-molecule.ly b/input/test/boxed-molecule.ly index aef4112f2a..0aeb856200 100644 --- a/input/test/boxed-molecule.ly +++ b/input/test/boxed-molecule.ly @@ -5,9 +5,12 @@ texidoc = "overriding the molecule callback can also be used to draw a 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) diff --git a/input/test/drums.ly b/input/test/drums.ly index 4285d18bfb..93a0a9e700 100644 --- a/input/test/drums.ly +++ b/input/test/drums.ly @@ -2,7 +2,7 @@ % 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" diff --git a/lily/collision.cc b/lily/collision.cc index 5b6b815aa6..39e906b6ab 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -13,7 +13,7 @@ #include "paper-def.hh" #include "axis-group-interface.hh" #include "item.hh" - +#include "stem.hh" MAKE_SCHEME_CALLBACK (Collision,force_shift_callback,2); @@ -37,6 +37,124 @@ Collision::force_shift_callback (SCM element_smob, SCM axis) return gh_double2scm (0.0); } + +void +check_meshing_chords (Grob*me, + Drul_array< Array < Real > > *offsets, + Drul_array< Array < Slice > > const &extents, + Drul_array > 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 ups = Stem::note_head_positions (Note_column::stem_l (cu)); + Array 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 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. @@ -146,6 +264,15 @@ Collision::automatic_shift (Grob *me) } } while ((flip (&d))!= UP); + + /* + do horizontal shifts of each direction + + | + x|| + x|| + x| + */ do { @@ -161,6 +288,14 @@ Collision::automatic_shift (Grob *me) } 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. */ @@ -203,7 +338,8 @@ Collision::automatic_shift (Grob *me) } while ((flip (&d))!= UP); } - +#endif + do { for (int i=0; i < clash_groups[d].size (); i++) diff --git a/lily/global-translator.cc b/lily/global-translator.cc index d66b6f05e9..4e4208bd82 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -98,7 +98,7 @@ Global_translator::run_iterator_on_me (Music_iterator * iter) w = sneaky_insert_extra_moment (w); - cout << "Proccing " << w << endl; + // cout << "Proccing " << w << endl; if (first) diff --git a/lily/include/stem.hh b/lily/include/stem.hh index 40d26e6c13..6730e25fb1 100644 --- a/lily/include/stem.hh +++ b/lily/include/stem.hh @@ -17,6 +17,7 @@ class Stem public: DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); + static Array note_head_positions (Grob*); static int flag_i (Grob*) ; static int beam_count (Grob*,Direction) ; static void set_beaming (Grob*,int, Direction d); diff --git a/lily/main.cc b/lily/main.cc index 1f355bf961..dfb402ee41 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -105,7 +105,7 @@ static Long_option_init options_static[] = { {_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")}, @@ -154,12 +154,6 @@ _ ( << " " << #ifdef NDEBUG "NDEBUG " -#endif -#ifdef NPRINT - "NPRINT " -#endif -#ifdef STRING_UTILS_INLINED - "STRING_UTILS_INLINED " #endif "\n" "datadir: `" DIR_DATADIR "'\n" diff --git a/lily/note-head.cc b/lily/note-head.cc index 2a1c813a84..33ce000315 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -94,7 +94,7 @@ Note_head::brew_molecule (SCM smob) } /* - ugh: use gh_call () + ugh: use gh_call () / scm_apply (). UGH: use grob-property. */ diff --git a/lily/rest.cc b/lily/rest.cc index 4a9169e83f..c29f777652 100644 --- a/lily/rest.cc +++ b/lily/rest.cc @@ -82,7 +82,7 @@ Rest::brew_internal_molecule (SCM smob) 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)); } diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 015f6b2e25..61e1f097ea 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -76,22 +76,27 @@ Span_bar::brew_molecule (SCM smobbed_me) // 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); diff --git a/lily/stem.cc b/lily/stem.cc index 03d2c07ef8..140e6876b6 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -196,6 +196,29 @@ Stem::extremal_heads (Grob*me) return exthead; } +static int +icmp (int const &a, int const &b) +{ + return a-b; +} + +Array +Stem::note_head_positions (Grob *me) +{ + Array 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) { @@ -337,6 +360,8 @@ Stem::get_default_stem_end_position (Grob*me) return st; } + + /* Number of hooks on the flag, ie. the log of the duration. */ @@ -461,10 +486,11 @@ Stem::set_spacing_hints (Grob*me) 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)) { @@ -481,43 +507,46 @@ Stem::flag (Grob*me) 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; diff --git a/ly/GNUmakefile b/ly/GNUmakefile index dda5863d26..2e9f025b29 100644 --- a/ly/GNUmakefile +++ b/ly/GNUmakefile @@ -9,7 +9,7 @@ INSTALLATION_DIR=$(datadir)/ly/ INSTALLATION_FILES=$(INI_FILES) STEPMAKE_TEMPLATES=install -LOCALSTEPMAKE_TEMPLATES=mutopia +LOCALSTEPMAKE_TEMPLATES=ly include $(depth)/make/stepmake.make diff --git a/ly/a4-init.ly b/ly/a4-init.ly new file mode 100644 index 0000000000..8c729c5f5b --- /dev/null +++ b/ly/a4-init.ly @@ -0,0 +1,5 @@ +\version "1.3.146" +% a4.ly + +hsize = 210.0 \mm +vsize = 296.9 \mm diff --git a/ly/accordion-defs-init.ly b/ly/accordion-defs-init.ly new file mode 100644 index 0000000000..f363efc71d --- /dev/null +++ b/ly/accordion-defs-init.ly @@ -0,0 +1,56 @@ +\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" diff --git a/ly/book-init-init.ly b/ly/book-init-init.ly new file mode 100644 index 0000000000..f12fc8683b --- /dev/null +++ b/ly/book-init-init.ly @@ -0,0 +1,14 @@ +% Toplevel initialisation file. + +\version "1.3.146" + + +\include "declarations-init.ly" +\include "paper16-init.ly" + + \paper{ + \paperSixteen +} + + +\maininput diff --git a/ly/catalan.ly b/ly/catalan.ly new file mode 100644 index 0000000000..74d42851d1 --- /dev/null +++ b/ly/catalan.ly @@ -0,0 +1,74 @@ +%{ + + 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 + + +% 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" diff --git a/ly/center-init.ly b/ly/center-init.ly new file mode 100644 index 0000000000..72ecace841 --- /dev/null +++ b/ly/center-init.ly @@ -0,0 +1,15 @@ +% Toplevel initialisation file. + +\version "1.3.146" + + +\include "declarations-init.ly" +\include "paper16-init.ly" + + \paper { + \paperSixteen +% linewidth = 7.\cm + linewidth = 11.\cm +} + +\maininput diff --git a/ly/chord-modifiers-init.ly b/ly/chord-modifiers-init.ly new file mode 100644 index 0000000000..dd82fdb331 --- /dev/null +++ b/ly/chord-modifiers-init.ly @@ -0,0 +1,17 @@ +\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 7+ -> c b + (maj . ,(make-pitch 0 6 1 )) + ;; sus4 should delete 2 too... + (sus . ,(make-pitch 0 3 0 )) +) + diff --git a/ly/declarations-init.ly b/ly/declarations-init.ly new file mode 100644 index 0000000000..c200465244 --- /dev/null +++ b/ly/declarations-init.ly @@ -0,0 +1,56 @@ + +\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" + diff --git a/ly/deutsch.ly b/ly/deutsch.ly new file mode 100644 index 0000000000..8476b59531 --- /dev/null +++ b/ly/deutsch.ly @@ -0,0 +1,52 @@ +% common german names for notes. "es" means flat, "is" means sharp +% +% by Roland Meier +% based on swedish.ly by Mats Bengtsson. + +% 1999/06/09 Bjoern Jacke +% 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" diff --git a/ly/drumpitch-init.ly b/ly/drumpitch-init.ly new file mode 100644 index 0000000000..b55e8bb1f4 --- /dev/null +++ b/ly/drumpitch-init.ly @@ -0,0 +1,160 @@ +% 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 + + +%% 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" diff --git a/ly/dynamic-scripts-init.ly b/ly/dynamic-scripts-init.ly new file mode 100644 index 0000000000..0f2f3e6b24 --- /dev/null +++ b/ly/dynamic-scripts-init.ly @@ -0,0 +1,27 @@ +\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" + diff --git a/ly/english.ly b/ly/english.ly new file mode 100644 index 0000000000..9afeff28f6 --- /dev/null +++ b/ly/english.ly @@ -0,0 +1,82 @@ +%{ + 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" + diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly new file mode 100644 index 0000000000..9717e3c5e2 --- /dev/null +++ b/ly/engraver-init.ly @@ -0,0 +1,415 @@ +\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" +} diff --git a/ly/generate-documentation.ly b/ly/generate-documentation.ly new file mode 100644 index 0000000000..104d57efeb --- /dev/null +++ b/ly/generate-documentation.ly @@ -0,0 +1,6 @@ +\version "1.3.146" + +% +% Running LilyPond on this file generates the documentation +% +#(eval-string (ly-gulp-file "generate-documentation.scm")) diff --git a/ly/generate-interface-doc-init.ly b/ly/generate-interface-doc-init.ly new file mode 100644 index 0000000000..a50eeaf3d0 --- /dev/null +++ b/ly/generate-interface-doc-init.ly @@ -0,0 +1,5 @@ + +% +% Running LilyPond on this file generates the short interface doc +% +#(eval-string (ly-gulp-file "generate-interface-doc.scm")) diff --git a/ly/generic-paper-init.ly b/ly/generic-paper-init.ly new file mode 100644 index 0000000000..df96f2abcd --- /dev/null +++ b/ly/generic-paper-init.ly @@ -0,0 +1,8 @@ +\version "1.3.146" + +\paper { + texsetting = "" + pssetting = "" + scmsetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n"% UGH. + +} diff --git a/ly/german-chords-init.ly b/ly/german-chords-init.ly new file mode 100644 index 0000000000..cb741eba14 --- /dev/null +++ b/ly/german-chords-init.ly @@ -0,0 +1,41 @@ +\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))) + ) + ) + ) + ) + ) diff --git a/ly/grace-init.ly b/ly/grace-init.ly new file mode 100644 index 0000000000..691498d1bd --- /dev/null +++ b/ly/grace-init.ly @@ -0,0 +1,45 @@ + +#(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 +} diff --git a/ly/init.ly b/ly/init.ly new file mode 100644 index 0000000000..0ddb2db3a9 --- /dev/null +++ b/ly/init.ly @@ -0,0 +1,8 @@ +% Toplevel initialisation file. + + +\version "1.3.146" + +\include "declarations-init.ly" + +\maininput diff --git a/ly/italiano.ly b/ly/italiano.ly new file mode 100644 index 0000000000..263d2bfab9 --- /dev/null +++ b/ly/italiano.ly @@ -0,0 +1,51 @@ +%{ + 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 + +\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" diff --git a/ly/ledger-init.ly b/ly/ledger-init.ly new file mode 100644 index 0000000000..e1b774d343 --- /dev/null +++ b/ly/ledger-init.ly @@ -0,0 +1,8 @@ +\version "1.3.146" + +% ledger.ly + +hsize = 11.0 \in +vsize = 17.0 \in + + diff --git a/ly/legal-init.ly b/ly/legal-init.ly new file mode 100644 index 0000000000..47f413c0d3 --- /dev/null +++ b/ly/legal-init.ly @@ -0,0 +1,5 @@ +\version "1.3.146" +% legal-init.ly + +hsize = 8.5 \in +vsize = 14.0 \in diff --git a/ly/letter-init.ly b/ly/letter-init.ly new file mode 100644 index 0000000000..1ae8c499db --- /dev/null +++ b/ly/letter-init.ly @@ -0,0 +1,7 @@ +\version "1.3.146" +% letter-init.ly + +hsize = 8.5 \in +vsize = 11.0 \in + + diff --git a/ly/midi-init.ly b/ly/midi-init.ly new file mode 100644 index 0000000000..730d92a483 --- /dev/null +++ b/ly/midi-init.ly @@ -0,0 +1,7 @@ +\version "1.3.146" +\midi { + \tempo 4=60 + \include "performer-init.ly" +% unfold_all = "1" +} + diff --git a/ly/nederlands.ly b/ly/nederlands.ly new file mode 100644 index 0000000000..bba3d0ad31 --- /dev/null +++ b/ly/nederlands.ly @@ -0,0 +1,49 @@ +\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 )) +) + + + diff --git a/ly/norsk.ly b/ly/norsk.ly new file mode 100644 index 0000000000..f6630bab93 --- /dev/null +++ b/ly/norsk.ly @@ -0,0 +1,107 @@ + +% 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 + +%} + +\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" diff --git a/ly/paper-as5-init.ly b/ly/paper-as5-init.ly new file mode 100644 index 0000000000..f7f58a3a3d --- /dev/null +++ b/ly/paper-as5-init.ly @@ -0,0 +1,17 @@ +% 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 } diff --git a/ly/paper-as9-init.ly b/ly/paper-as9-init.ly new file mode 100644 index 0000000000..86866b0eff --- /dev/null +++ b/ly/paper-as9-init.ly @@ -0,0 +1,16 @@ +% 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 } diff --git a/ly/paper-init.ly b/ly/paper-init.ly new file mode 100644 index 0000000000..f6ac488597 --- /dev/null +++ b/ly/paper-init.ly @@ -0,0 +1,15 @@ +\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 + diff --git a/ly/paper11-init.ly b/ly/paper11-init.ly new file mode 100644 index 0000000000..2cc39133f3 --- /dev/null +++ b/ly/paper11-init.ly @@ -0,0 +1,12 @@ +% paper11-init.ly + +\version "1.3.146" + +paperEleven = \paper { + staffheight = 11.0\pt + \stylesheet #(make-style-sheet 'paper11) + + \include "params-init.ly" +} + +\paper { \paperEleven } diff --git a/ly/paper11.ly b/ly/paper11.ly new file mode 100644 index 0000000000..313d25a0e4 --- /dev/null +++ b/ly/paper11.ly @@ -0,0 +1,2 @@ + +\include "paper11-init.ly" diff --git a/ly/paper13-init.ly b/ly/paper13-init.ly new file mode 100644 index 0000000000..d053f1e440 --- /dev/null +++ b/ly/paper13-init.ly @@ -0,0 +1,14 @@ +% paper13-init.ly + + +\version "1.3.146" + +paperThirteen = \paper { + staffheight = 13.0\pt + + \stylesheet #(make-style-sheet 'paper13) + + \include "params-init.ly" +} + +\paper { \paperThirteen } diff --git a/ly/paper13.ly b/ly/paper13.ly new file mode 100644 index 0000000000..7ecec51bbb --- /dev/null +++ b/ly/paper13.ly @@ -0,0 +1,2 @@ + +\include "paper13-init.ly" diff --git a/ly/paper16-init.ly b/ly/paper16-init.ly new file mode 100644 index 0000000000..c747eac11d --- /dev/null +++ b/ly/paper16-init.ly @@ -0,0 +1,12 @@ +% paper16-init.ly + +\version "1.3.146" + +paperSixteen = \paper { + staffheight = 16.0\pt + \stylesheet #(make-style-sheet 'paper16) + + \include "params-init.ly" +} + +\paper {\paperSixteen } diff --git a/ly/paper16.ly b/ly/paper16.ly new file mode 100644 index 0000000000..2621cae3e6 --- /dev/null +++ b/ly/paper16.ly @@ -0,0 +1,2 @@ + +\include "paper16-init.ly" diff --git a/ly/paper20-init.ly b/ly/paper20-init.ly new file mode 100644 index 0000000000..13a67f0809 --- /dev/null +++ b/ly/paper20-init.ly @@ -0,0 +1,13 @@ +% paper20-init.ly + + +\version "1.3.146" + +paperTwenty = \paper { + staffheight = 20.0\pt + \stylesheet #(make-style-sheet 'paper20) + + \include "params-init.ly" +} + +\paper { \paperTwenty } diff --git a/ly/paper20.ly b/ly/paper20.ly new file mode 100644 index 0000000000..4511cff2ad --- /dev/null +++ b/ly/paper20.ly @@ -0,0 +1,2 @@ + +\include "paper20-init.ly" diff --git a/ly/paper23-init.ly b/ly/paper23-init.ly new file mode 100644 index 0000000000..bbb55106e0 --- /dev/null +++ b/ly/paper23-init.ly @@ -0,0 +1,12 @@ +% paper23-init.ly + + +\version "1.3.146" + +paperTwentythree = \paper { + staffheight = 23.0\pt + \stylesheet #(make-style-sheet 'paper23) + \include "params-init.ly" +} + +\paper { \paperTwentythree } diff --git a/ly/paper23.ly b/ly/paper23.ly new file mode 100644 index 0000000000..61dfc7fc1b --- /dev/null +++ b/ly/paper23.ly @@ -0,0 +1,2 @@ + +\include "paper23-init.ly" diff --git a/ly/paper26-init.ly b/ly/paper26-init.ly new file mode 100644 index 0000000000..e64eba6a54 --- /dev/null +++ b/ly/paper26-init.ly @@ -0,0 +1,12 @@ +% paper26-init.ly + +\version "1.3.146" + +paperTwentysix = \paper { + staffheight = 26.0\pt + \stylesheet #(make-style-sheet 'paper26) + + \include "params-init.ly" +} + +\paper { \paperTwentysix } diff --git a/ly/paper26.ly b/ly/paper26.ly new file mode 100644 index 0000000000..c874b34f25 --- /dev/null +++ b/ly/paper26.ly @@ -0,0 +1,2 @@ + +\include "paper26-init.ly" diff --git a/ly/params-as-init.ly b/ly/params-as-init.ly new file mode 100644 index 0000000000..b9928df8b1 --- /dev/null +++ b/ly/params-as-init.ly @@ -0,0 +1,30 @@ +\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 } + + diff --git a/ly/params-init.ly b/ly/params-init.ly new file mode 100644 index 0000000000..f406588183 --- /dev/null +++ b/ly/params-init.ly @@ -0,0 +1,48 @@ +\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 } + + + + + diff --git a/ly/part-paper-init.ly b/ly/part-paper-init.ly new file mode 100644 index 0000000000..4e8fea418f --- /dev/null +++ b/ly/part-paper-init.ly @@ -0,0 +1,10 @@ +\version "1.3.146" + +% JUNKME +%part-paper-init.ly + +\paper { + \translator { \OrchestralPartStaffContext } + \translator { \ScoreContext skipBars = ##t } +} + diff --git a/ly/performer-init.ly b/ly/performer-init.ly new file mode 100644 index 0000000000..97c6638c15 --- /dev/null +++ b/ly/performer-init.ly @@ -0,0 +1,124 @@ +\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 } + diff --git a/ly/property-init.ly b/ly/property-init.ly new file mode 100644 index 0000000000..83ea32eb9a --- /dev/null +++ b/ly/property-init.ly @@ -0,0 +1,167 @@ +% 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 . ())))) diff --git a/ly/scale-definitions-init.ly b/ly/scale-definitions-init.ly new file mode 100644 index 0000000000..b3268ffef9 --- /dev/null +++ b/ly/scale-definitions-init.ly @@ -0,0 +1,100 @@ +\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) + ) + diff --git a/ly/script-init.ly b/ly/script-init.ly new file mode 100644 index 0000000000..b0fcedd3dc --- /dev/null +++ b/ly/script-init.ly @@ -0,0 +1,47 @@ +\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" diff --git a/ly/spanners-init.ly b/ly/spanners-init.ly new file mode 100644 index 0000000000..3fdf1b7b31 --- /dev/null +++ b/ly/spanners-init.ly @@ -0,0 +1,53 @@ +\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." diff --git a/ly/suomi.ly b/ly/suomi.ly new file mode 100644 index 0000000000..66e1fa1464 --- /dev/null +++ b/ly/suomi.ly @@ -0,0 +1,48 @@ +% common finnish names for notes. "es" means flat, "is" means sharp +% +% by Heikki Junes +% based on svenska.ly by Mats Bengtsson. + +% 2001/08/28 Heikki Junes +% 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" diff --git a/ly/svenska.ly b/ly/svenska.ly new file mode 100644 index 0000000000..c9b54987e9 --- /dev/null +++ b/ly/svenska.ly @@ -0,0 +1,43 @@ +% +% 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" diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index c20e4bec2e..2496a8b717 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ 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 diff --git a/make/out/lilypond.mandrake.spec b/make/out/lilypond.mandrake.spec index b5595d928d..e5b3515cab 100644 --- a/make/out/lilypond.mandrake.spec +++ b/make/out/lilypond.mandrake.spec @@ -1,5 +1,5 @@ %define name lilypond -%define version 1.5.8 +%define version 1.5.9 %define release 1mdk Name: %{name} diff --git a/make/out/lilypond.redhat.spec b/make/out/lilypond.redhat.spec index db5c4ebb6d..39388a36fd 100644 --- a/make/out/lilypond.redhat.spec +++ b/make/out/lilypond.redhat.spec @@ -1,11 +1,11 @@ %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 diff --git a/make/out/lilypond.suse.spec b/make/out/lilypond.suse.spec index a5c1627454..b20198c2c7 100644 --- a/make/out/lilypond.suse.spec +++ b/make/out/lilypond.suse.spec @@ -14,11 +14,11 @@ 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/ diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 2bb37f8d65..dfa347ef75 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -257,6 +257,11 @@ fet_beginchar("8th (down)", "d3", "deighthflag") (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; + %%%%%%%% % % @@ -470,11 +475,6 @@ fet_beginchar("grace dash (up)", "ugrace", "gracedash") (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, diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index fadde1ec0e..24515de89e 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -345,12 +345,59 @@ fet_beginchar("128th rest","7","hundredtwentyeighthrest"); 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; @@ -362,8 +409,8 @@ fet_beginchar("Mensural 4th rest","2mensural","minimarest") 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; @@ -375,8 +422,8 @@ fet_beginchar("Mensural 8th rest","3mensural","fusarest") 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; @@ -399,4 +446,101 @@ fet_beginchar("Mensural 16th rest","4mensural","semifusarest") 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") diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000000..03dcf0cad5 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,1407 @@ +# Swedish translation of lilypond +# Copyright (C) 2001 Free Software Foundation, Inc. +# Martin Norbäck , 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 \n" +"Language-Team: Swedish \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 " + +#: 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 "" +msgstr "" + +#: 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" diff --git a/scm/interface-description.scm b/scm/interface-description.scm index 3dd45314c4..c11059a1c5 100644 --- a/scm/interface-description.scm +++ b/scm/interface-description.scm @@ -251,6 +251,7 @@ object." tuplet-bracket-visibility tuplet-number-visibility thick + direction )) diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index a2f447694d..f7f734b8f2 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -418,15 +418,15 @@ def output_verbatim (body): re_dict = { 'latex': {'input': r'(?m)^[^%\n]*?(?P\\mbinput{?([^}\t \n}]*))', 'include': r'(?m)^[^%\n]*?(?P\\mbinclude{(?P[^}]+)})', - 'option-sep' : ', *', + 'option-sep' : ',\s*', 'header': r"\\documentclass\s*(\[.*?\])?", 'geometry': r"^(?m)[^%\n]*?\\usepackage\s*(\[(?P.*)\])?\s*{geometry}", 'preamble-end': r'(?P\\begin{document})', 'verbatim': r"(?s)(?P\\begin{verbatim}.*?\\end{verbatim})", 'verb': r"(?P\\verb(?P.).*?(?P=del))", - 'lilypond-file': r'(?m)^[^%\n]*?(?P\\lilypondfile(\[(?P.*?)\])?\{(?P.+)})', - 'lilypond' : r'(?m)^[^%\n]*?(?P\\lilypond(\[(?P.*?)\])?{(?P.*?)})', - 'lilypond-block': r"(?sm)^[^%\n]*?(?P\\begin(\[(?P.*?)\])?{lilypond}(?P.*?)\\end{lilypond})", + 'lilypond-file': r'(?m)^[^%\n]*?(?P\\lilypondfile\s*(\[(?P.*?)\])?\s*\{(?P.+)})', + 'lilypond' : r'(?m)^[^%\n]*?(?P\\lilypond\s*(\[(?P.*?)\])?\s*{(?P.*?)})', + 'lilypond-block': r"(?sm)^[^%\n]*?(?P\\begin\s*(\[(?P.*?)\])?\s*{lilypond}(?P.*?)\\end{lilypond})", 'def-post-re': r"\\def\\postLilypondExample", 'def-pre-re': r"\\def\\preLilypondExample", 'usepackage-graphics': r"\usepackage{graphics}", @@ -449,7 +449,7 @@ re_dict = { 'lilypond-file': '(?m)^(?!@c)(?P@lilypondfile(\[(?P.*?)\])?{(?P[^}]+)})', 'lilypond' : '(?m)^(?!@c)(?P@lilypond(\[(?P.*?)\])?{(?P.*?)})', 'lilypond-block': r"""(?m)^(?!@c)(?P(?s)(?P@lilypond(\[(?P.*?)\])?\s(?P.*?)@end lilypond\s))""", - 'option-sep' : ', *', + 'option-sep' : ',\s*', 'intertext': r',?\s*intertext=\".*?\"', 'multiline-comment': r"(?sm)^\s*(?!@c\s+)(?P@ignore\s.*?@end ignore)\s", 'singleline-comment': r"(?m)^.*?(?P(?P@c.*$\n+))", diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index 6d74809fda..50fa1bca87 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -66,7 +66,6 @@ import __main__ import operator import tempfile import traceback -import resource datadir = '@datadir@' sys.path.append (datadir + '/python') @@ -79,6 +78,15 @@ except: 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', @@ -151,7 +159,7 @@ verbose_p = 0 # 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', -- 2.39.2