From 136a3c6f6c871b2365ca625554a0230980779b21 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Wed, 21 Mar 2001 16:06:42 +0100 Subject: patch::: 1.3.140.jcn6 1.3.140.jcn6 ============ * po update. * Renamed remaining mudela -> lilypond (except for old change logs). * Dropped Solo-Cello-Suite II and gnossienne-4 from ./mutopia, as they're now accessible throug the ports. * Fixed compilation of lots of examples. * Convert-ly: added and fixed some conversions. * Doco updates. * Ly2dvi: don't hang compilation process: run latex in batchmode. --- CHANGES | 18 + Documentation/topdocs/FAQ.texi | 8 + Documentation/user/invoking.itexi | 4 +- Documentation/user/latex-example.latex | 49 +++ Documentation/user/latex-lilypond-example.latex | 16 +- Documentation/user/refman.itely | 64 +-- Documentation/user/tutorial.itely | 3 + NEWS | 23 +- VERSION | 2 +- buildscripts/mutopia-index.py | 4 +- flower/input.cc | 4 +- input/bugs/denneboom.ly | 115 ++++++ input/bugs/minimal.ly | 12 + input/bugs/multiply.ly | 24 ++ input/denneboom.ly | 8 +- input/les-nereides.ly | 2 +- input/regression/arpeggio-collision.ly | 2 +- input/test/ac-extra-voice.ly | 2 +- input/test/auto-beam-override.ly | 2 +- input/test/bar-break.ly | 2 - input/test/font.ly | 27 -- input/test/harmonics.ly | 8 - input/test/part-combine-mmrest.ly | 4 - input/test/top-staff-volta.ly | 6 - input/tutorial/wss.ly | 9 - ly/dynamic-scripts.ly | 2 + ly/params-as.ly | 13 +- ly/property.ly | 16 +- make/ly.make | 2 +- make/ports-rules.make | 2 +- midi2ly/include/duration-convert.hh | 2 +- midi2ly/include/lilypond-column.hh | 29 ++ midi2ly/include/lilypond-item.hh | 130 ++++++ midi2ly/include/lilypond-score.hh | 51 +++ midi2ly/include/lilypond-staff.hh | 43 ++ midi2ly/include/lilypond-stream.hh | 42 ++ midi2ly/include/lilypond-voice.hh | 29 ++ midi2ly/include/midi-parser.hh | 2 +- midi2ly/include/midi-score-parser.hh | 4 +- midi2ly/include/midi-track-parser.hh | 12 +- midi2ly/include/midi2ly-proto.hh | 22 +- midi2ly/include/mudela-column.hh | 29 -- midi2ly/include/mudela-item.hh | 130 ------ midi2ly/include/mudela-score.hh | 51 --- midi2ly/include/mudela-staff.hh | 43 -- midi2ly/include/mudela-stream.hh | 42 -- midi2ly/include/mudela-voice.hh | 29 -- midi2ly/lilypond-column.cc | 24 ++ midi2ly/lilypond-item.cc | 364 +++++++++++++++++ midi2ly/lilypond-score.cc | 256 ++++++++++++ midi2ly/lilypond-staff.cc | 339 ++++++++++++++++ midi2ly/lilypond-stream.cc | 192 +++++++++ midi2ly/lilypond-voice.cc | 105 +++++ midi2ly/main.cc | 18 +- midi2ly/midi-score-parser.cc | 16 +- midi2ly/midi-track-parser.cc | 84 ++-- midi2ly/mudela-column.cc | 24 -- midi2ly/mudela-item.cc | 364 ----------------- midi2ly/mudela-score.cc | 256 ------------ midi2ly/mudela-staff.cc | 339 ---------------- midi2ly/mudela-stream.cc | 192 --------- midi2ly/mudela-voice.cc | 105 ----- mutopia/E.Satie/gnossienne-4.ly | 144 ------- mutopia/J.S.Bach/GNUmakefile | 2 +- mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile | 15 - .../J.S.Bach/Solo-Cello-Suites/allemande-cello.ly | 40 -- .../J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly | 103 ----- .../J.S.Bach/Solo-Cello-Suites/allemande-viola.ly | 39 -- .../J.S.Bach/Solo-Cello-Suites/courante-cello.ly | 39 -- .../J.S.Bach/Solo-Cello-Suites/courante-urtext.ly | 92 ----- .../J.S.Bach/Solo-Cello-Suites/courante-viola.ly | 42 -- mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly | 51 --- mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly | 106 ----- mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly | 49 --- mutopia/J.S.Bach/Solo-Cello-Suites/header.ly | 41 -- .../J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly | 105 ----- .../J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly | 153 ------- .../J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly | 102 ----- .../J.S.Bach/Solo-Cello-Suites/prelude-cello.ly | 33 -- .../J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly | 197 --------- .../J.S.Bach/Solo-Cello-Suites/prelude-viola.ly | 33 -- .../J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly | 36 -- .../J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly | 93 ----- .../J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly | 33 -- mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly | 4 - mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly | 4 - .../Solo-Cello-Suites/solo-cello-suite-ii.ly | 21 - po/de.po | 445 +++++++++++---------- po/fr.po | 436 +++++++++++--------- po/it.po | 440 ++++++++++---------- po/ja.po | 437 +++++++++++--------- po/lilypond.pot | 148 +++---- po/nl.po | 153 ++++--- po/ru.po | 435 +++++++++++--------- ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile | 5 + ports/mutopia/BeethovenLv/O62/GNUmakefile | 3 + scm/basic-properties.scm | 1 + scm/c++.scm | 8 +- scm/lily.scm | 3 + scripts/as2text.scm | 6 +- scripts/convert-ly.py | 69 +++- scripts/ly2dvi.py | 2 +- tex/mudela-book.tex | 35 -- tex/p.tex | 39 -- tex/test-pedal.tex | 39 ++ 105 files changed, 3445 insertions(+), 4657 deletions(-) create mode 100644 Documentation/user/latex-example.latex create mode 100644 input/bugs/denneboom.ly create mode 100644 input/bugs/minimal.ly create mode 100644 input/bugs/multiply.ly create mode 100644 midi2ly/include/lilypond-column.hh create mode 100644 midi2ly/include/lilypond-item.hh create mode 100644 midi2ly/include/lilypond-score.hh create mode 100644 midi2ly/include/lilypond-staff.hh create mode 100644 midi2ly/include/lilypond-stream.hh create mode 100644 midi2ly/include/lilypond-voice.hh create mode 100644 midi2ly/lilypond-column.cc create mode 100644 midi2ly/lilypond-item.cc create mode 100644 midi2ly/lilypond-score.cc create mode 100644 midi2ly/lilypond-staff.cc create mode 100644 midi2ly/lilypond-stream.cc create mode 100644 midi2ly/lilypond-voice.cc create mode 100644 ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile create mode 100644 ports/mutopia/BeethovenLv/O62/GNUmakefile create mode 100644 tex/test-pedal.tex diff --git a/CHANGES b/CHANGES index fc2dda2f9b..788db95138 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,21 @@ +1.3.140.jcn6 +============ + +* po update. + +* Renamed remaining mudela -> lilypond (except for old change logs). + +* Dropped Solo-Cello-Suite II and gnossienne-4 from ./mutopia, as +they're now accessible throug the ports. + +* Fixed compilation of lots of examples. + +* Convert-ly: added and fixed some conversions. + +* Doco updates. + +* Ly2dvi: don't hang compilation process: run latex in batchmode. + 1.3.140.jcn4 ============ diff --git a/Documentation/topdocs/FAQ.texi b/Documentation/topdocs/FAQ.texi index 1f7d909a99..97d93cb614 100644 --- a/Documentation/topdocs/FAQ.texi +++ b/Documentation/topdocs/FAQ.texi @@ -83,4 +83,12 @@ The website is usually made from the latest snapshots. Binary releases, in particular the windows32 binaries, are only made every once in a while. They may lag several versions behind the latest version. +@subsection Beams, slurs and crescendi are not displayed at all! + +XDvi uses GhostScript for displaying PostScript, check that you have +GhostScript installed. If you use a different DVI viewer (eg, on +Windows), check if it will display embedded PostScript. Don't worry, +the symbols should appear on the printout. + + @bye diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi index a082f4df5d..9d23b38f20 100644 --- a/Documentation/user/invoking.itexi +++ b/Documentation/user/invoking.itexi @@ -8,10 +8,10 @@ @example - lilypond [OPTION]... [MUDELA-FILE]... + lilypond [OPTION]... [FILE]... @end example -@unnumberedsec Command Options +@unnumberedsec Options @table @code diff --git a/Documentation/user/latex-example.latex b/Documentation/user/latex-example.latex new file mode 100644 index 0000000000..022a4c8368 --- /dev/null +++ b/Documentation/user/latex-example.latex @@ -0,0 +1,49 @@ +\documentclass[a4paper]{article} + + + +%\def\preLilypondExample{}} +%\def\postLilypondExample{} + + +\begin{document} + +\begin{lilypond} +\score { + \notes\relative c' { c d e f g a b c } +} +\end{lilypond} + + +\begin[fragment]{lilypond} +c d e +\end{lilypond} + + +% generate standard lilypond titles +\input titledefs.tex +\def\preLilypondExample{\def\mustmakelilypondtitle{}} + +\begin{lilypond} +\header { + title = "Title"; + subtitle = "Subtitle"; + subsubtitle = "Subsubtitle"; + opus = "Opus 1"; + piece = "Piece"; + composer = "Composer"; + enteredby = "JCN"; + instrument = "instrument"; +} +\paper { linewidth = -1.; } +\score { + \notes \relative c'' { a b c d } +} +\end{lilypond} + +\begin{enumerate} +\item Vers one. aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa +\item Vers two. bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb +\end{enumerate} + +\end{document} diff --git a/Documentation/user/latex-lilypond-example.latex b/Documentation/user/latex-lilypond-example.latex index d155917b56..155795a526 100644 --- a/Documentation/user/latex-lilypond-example.latex +++ b/Documentation/user/latex-lilypond-example.latex @@ -1,15 +1,23 @@ -% kommentar +% +% This is way too long and hairy +% +% + + + \documentclass[a4paper, 12pt]{article} -%\def\preMudelaExample{} -%\def\postMudelaExample{} + +%\def\preLilypondExample{} +%\def\postLilypondExample{} %\usepackage{graphics} %\usepackage{landscape} + \begin{document} %uncomment this to try twocolumn mode %\twocolumn -\section{Mudelabook + LaTeX} +\section{Lilypond-book + LaTeX} This is an examplefile for mixing Lilypond and Latex. It is also used to test lilypond-book. View the source to see how it is done. diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index ebf3898768..96efdb7c4e 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -859,7 +859,6 @@ beaming algorithm. For example, the auto beamer will not beam over rests or bar lines, so if you want that, specify the begin and end point manually using @code{[} and @code{]}: -@quotation @lilypond[fragment,relative,verbatim] \context Staff { r4 [r8 g'' a r8] r8 [g | a] r8 @@ -880,7 +879,6 @@ control the number of beams through the properties [f8 r16 \property Voice.stemLeftBeamCount = #1 f g a] } @end lilypond -@end quotation @cindex @code{stemRightBeamCount} The beam symbol can be tweaked through @code{Voice.Beam}'s @@ -889,24 +887,20 @@ in staff-spaces. Set @code{height} to zero, to get horizontal beams: -@quotation @lilypond[fragment,relative,verbatim] \property Voice.Beam \set #'direction = #1 \property Voice.Beam \set #'height = #0 [a''8 e' d c] @end lilypond -@end quotation Here's how you'd specify a weird looking beam that instead of being horizontal, falls two staff spaces: -@quotation @lilypond[fragment,relative,verbatim] \property Voice.Beam \set #'staff-position = #2 \property Voice.Beam \set #'height = #-2 [c'8 c] @end lilypond -@end quotation @cindex @code{default-neutral-direction} @node Expressive marks @@ -940,7 +934,6 @@ stem end. If you want to override this layout you can do this through Maybe reinclude other slur features and move back to tricks? Esp. the second example, how to fix, can be very helpful. -@quotation @lilypond[fragment,relative,verbatim] \property Voice.Slur \set #'direction = #1 \property Voice.Stem \set #'length = #5.5 @@ -948,13 +941,11 @@ second example, how to fix, can be very helpful. \property Voice.Slur \set #'attachment = #'(stem . stem) g8(g)g4 @end lilypond -@end quotation If a slur would strike through a stem or beam, the slur will be moved away upward or downward. If this happens, attaching the slur to the stems might look better: -@quotation @lilypond[fragment,relative,verbatim] \property Voice.Stem \set #'direction = #1 \property Voice.Slur \set #'direction = #1 @@ -962,7 +953,6 @@ stems might look better: \property Voice.Slur \set #'attachment = #'(stem . stem) d,32( d'4 )d8.. @end lilypond -@end quotation Similarly, the curvature of a slur is adjusted to stay clear of note @@ -1083,6 +1073,8 @@ An application---or rather, a hack---is to fake octavation indications. * Articulation:: * Text scripts:: * Grace notes:: +* Glissando :: +* Dynamics:: @end menu @c . {Articulation} @@ -1256,15 +1248,12 @@ Unbeamed eighth notes and shorter by default have a slash through the stem. This behavior can be controlled with the @code{Stem}.@code{flag-style} property. -@quotation @lilypond[fragment,verbatim] \relative c'' { \grace c8 c4 \grace { [c16 c16] } c4 \grace { \property Grace.Stem \override #'flag-style = #'() c16 } c4 } - @end lilypond -@end quotation At present, nesting @code{\grace} notes is not supported. The following @@ -1300,7 +1289,7 @@ also be implemented. @c . {Glissando} @node Glissando -@subsubsection Glissando +@subsection Glissando @cindex Glissando @cindex @code{\glissando} @@ -1308,11 +1297,9 @@ also be implemented. A glissando line can be requested by attaching a @code{\glissando} to a note: -@quotation @lilypond[fragment,relative,verbatim] c'' \glissando c' @end lilypond -@end quotation @refbugs @@ -1323,7 +1310,7 @@ manually. @c . {Dynamics} @node Dynamics -@subsubsection Dynamics +@subsection Dynamics @cindex Dynamics @@ -1352,6 +1339,10 @@ note: @code{c4-\ff}. The available dynamic marks are: @code{\ppp}, @code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff}, @code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}. +@lilypond[verbatim,singleline,fragment,relative] + c''\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff + c2\sf c\rfz +@end lilypond @cindex Crescendo and Decrescendo @cindex crescendo @@ -1464,34 +1455,28 @@ Normal notation repeats are used like this: @end lilypond With alternative endings: -@quotation @lilypond[fragment,verbatim] c'1 \repeat volta 2 {c'4 d' e' f'} \alternative { {d'2 d'} {f' f} } @end lilypond -@end quotation Folded repeats look like this:@footnote{Folded repeats offer little more over simultaneous music. However, it is to be expected that more functionality -- especially for the MIDI backend -- will be implemented at some point in the future.} -@quotation @lilypond[fragment,verbatim] c'1 \repeat fold 2 {c'4 d' e' f'} \alternative { {d'2 d'} {f' f} } @end lilypond -@end quotation - If you don't give enough alternatives for all of the repeats, then the first alternative is assumed to be repeated often enough to equal the specified number of repeats. -@quotation @lilypond[fragment,verbatim] \context Staff { \relative c' { @@ -1501,7 +1486,6 @@ the specified number of repeats. } } @end lilypond -@end quotation @refbugs @@ -1740,17 +1724,14 @@ You can specify an arpeggio sign on a chord by attaching an @code{\arpeggio} to a note of the chord. -@quotation @lilypond[fragment,relative,verbatim] \context Voice @end lilypond -@end quotation When an arpeggio crosses staffs in piano music, you attach an arpeggio to the chords in both staffs, and set @code{PianoStaff.connectArpeggios}. -@quotation @lilypond[fragment,relative,verbatim] \context PianoStaff < \property PianoStaff.connectArpeggios = ##t @@ -1758,7 +1739,6 @@ to the chords in both staffs, and set \context Voice = other { \clef bass; } > @end lilypond -@end quotation This command creates @code{Arpeggio} grobs. @@ -1782,7 +1762,6 @@ Whenever a voice switches to another staff a line connecting the notes can be printed automatically. This is enabled if the property @code{PianoStaff.followVoice} is set to true: -@quotation @lilypond[fragment,relative,verbatim] \context PianoStaff < \property PianoStaff.followVoice = ##t @@ -1794,7 +1773,6 @@ can be printed automatically. This is enabled if the property \context Staff=two {\clef bass; \skip 1*2;} > @end lilypond -@end quotation @c . {Lyrics} @@ -2054,9 +2032,6 @@ must be separated by a dot (@code{.}). Throughout these examples, chords have been shifted around the staff using @code{\transpose}. - -@quotation - @lilypond[fragment,verbatim] \transpose c'' { \chords { @@ -2064,9 +2039,7 @@ using @code{\transpose}. c:9 c:9-.5+.7+ c:3-.5- c:4.6.8 } } - @end lilypond -@end quotation @cindex @code{aug} @cindex @code{dim} @@ -2081,17 +2054,13 @@ raises the 5th, `@code{dim}' which lowers the 5th, `@code{maj}' which adds a raised 7th, and `@code{sus}' which replaces the 5th with a 4th. -@quotation - @lilypond[fragment,verbatim] \transpose c'' { \chords { c1:m c:min7 c:maj c:aug c:dim c:sus } } - @end lilypond -@end quotation Chord subtractions are used to eliminate notes from a chord. The @@ -2153,7 +2122,6 @@ For displaying printed chord names, use the @code{ChordNames} context. The chords may be entered either using the notation described above, or directly using simultaneous music. -@quotation @lilypond[verbatim,singleline] scheme = \notes { \chords {a1 b c} @@ -2165,14 +2133,12 @@ scheme = \notes { > } @end lilypond -@end quotation You can make the chord changes stand out by setting property @code{ChordNames.chordChanges} to true. This will only display chord names when there's a change in the chords scheme and at the start of the line. -@quotation @lilypond[verbatim] scheme = \chords { c1:m \break c:m c:m c:m d @@ -2186,7 +2152,6 @@ scheme = \chords { \context Staff \transpose c'' \scheme > } @end lilypond -@end quotation LilyPond examines chords specified as lists of notes to determine a name to give the chord. LilyPond will not try to identify chord inversions or @@ -2195,7 +2160,6 @@ entered as a list of pitches: [base vs. bass ?] -@quotation @lilypond[verbatim,center,singleline] scheme = \notes { @@ -2210,7 +2174,6 @@ scheme = \notes { > } @end lilypond -@end quotation By default LilyPond uses chord name system proposed by Harald Banter @@ -2328,7 +2291,6 @@ This means that middle C in @var{musicexpr} is transposed to a tone. The first version will print sharps and the second version will print flats. -@quotation @lilypond[fragment,verbatim] \context Staff { \clef "F"; @@ -2337,9 +2299,7 @@ will print flats. \transpose des'' { \key e \major; c d e f } \transpose cis'' { \key e \major; c d e f } } - @end lilypond -@end quotation If you want to use both @code{\transpose} and @code{\relative}, then you must use @code{\transpose} first. @code{\relative} will have no @@ -2516,7 +2476,6 @@ anticipates the pitch of the first note(s) of the following line and thus helps the player or singer to manage line breaks during performance, thus enhancing readability of a score. -@quotation @lilypond[verbatim] \score { \notes { c'1 d' e' d' \break c' d' e' d' } @@ -2529,7 +2488,6 @@ performance, thus enhancing readability of a score. } } @end lilypond -@end quotation Custodes were frequently used in music notation until the 16th century. There were different appearences for different notation styles. @@ -2827,8 +2785,6 @@ the @TeX{} family. @cindex font magnification @cindex @code{font-interface} -@refbugs - @node Text markup @subsection Text markup @@ -3543,8 +3499,6 @@ This instructs lilypond to interpret @var{musicexpr} within the context of type @var{contexttype} and with name @var{contextname}. If this context does not exist, it will be created. -@quotation - @lilypond[verbatim,singleline] \score { \notes \relative c'' { @@ -3553,7 +3507,6 @@ context does not exist, it will be created. } @end lilypond -@end quotation In this example, the @code{c} and @code{d} are printed on the default staff. For the @code{e}, a context Staff called @@ -3806,7 +3759,6 @@ be used as the very first item of a translator. In order to define such an identifier outside of @code{\score}, you must do @quotation - @example \paper @{ foo = \translator @{ @dots{} @} diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index db10ca4a27..e225639dc9 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -182,6 +182,9 @@ manual was written using lilypond-book. lilypond-book is discussed in [TODO] +* setting of env vars (TFMINPUTS,MFINPUTS,TEXINPUTS) +* dvi viewer doesn't display postscript + @node The first tune @section The first tune diff --git a/NEWS b/NEWS index ca0c0f2de9..a402dff008 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,16 @@ +New features in 1.4 + * Finale (.etf), PMX (.pmx) and musedata import tools. * Point and click functionality using emacs and Xdvi. +* Comprehensive documentation, including tutorial. + +* Self-documenting: generated internal documentation. + +* Includes an extensive glossary of musical terms. + * Improved design and implementation: Complete rewrite of the internals: LilyPond is smaller, cleaner, more flexible, etc. @@ -29,21 +37,24 @@ internals: LilyPond is smaller, cleaner, more flexible, etc. and stanza numbering. * Part combining for orchestral scores and hymns: two voices are - combined into a staff automatically, including Solo/`a2 + combined into a staff automatically, including Solo/a2 indications as appropriate. * Chordnames are now configurable in every respect -* Includes an extensive glossary of musical terms. - -* Many bugfixes. +* Easy-play notation * Finished ouverture Coriolan as full orchestral score example. -* Self-documenting: generated internal documentation. +* Mutopia ports collection: easy accessible music archive. * AsciiScript: ASCII-art output * Translations into Japanese, French and Russian -* EZ play notation +* Many bugfixes. + + +Removed features + +* margin shape diff --git a/VERSION b/VERSION index c84d4348f2..2a02e1e6ad 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=140 -MY_PATCH_LEVEL=jcn5 +MY_PATCH_LEVEL=jcn6 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py index a79e99cc6e..4cb45eae1e 100755 --- a/buildscripts/mutopia-index.py +++ b/buildscripts/mutopia-index.py @@ -65,7 +65,7 @@ These images are generated at approximately 180dpi. If you want a better impress # # FIXME breaks on multiple strings. # -def read_mudela_header (fn): +def read_lilypond_header (fn): s = open(fn).read () s = re.sub('%.*$', '', s) s = re.sub('\n', ' ', s) @@ -126,7 +126,7 @@ def gen_list(inputs, filename): ext = ext2 + ext print '%s, ' % ex - header = read_mudela_header(ex) + header = read_lilypond_header(ex) def read_dict(s, default, h =header): try: diff --git a/flower/input.cc b/flower/input.cc index 8ec33cf882..d45f81b9d3 100644 --- a/flower/input.cc +++ b/flower/input.cc @@ -37,8 +37,8 @@ Input::set_spot (Input const &i) } /* - Produce GNU-compliant error message. Correcting mudela is such a - breeze if you ('re edidor) know (s) the error column too + Produce GNU-compliant error message. Correcting lilypond source is + such a breeze if you ('re edidor) know (s) the error column too Format: diff --git a/input/bugs/denneboom.ly b/input/bugs/denneboom.ly new file mode 100644 index 0000000000..5f368a7d56 --- /dev/null +++ b/input/bugs/denneboom.ly @@ -0,0 +1,115 @@ +\header{ +filename = "denneboom.ly"; +enteredby = "jcn"; +copyright = "public domain"; +} +%{ file tests silly line shapes %} + +\include "paper20.ly" + + + +oden = \lyrics{ + O | + den- ne- boom, o | + den- ne- boom Wat | + zijn uw tak- ken | + won- der- schoon +} + +ikheb = \lyrics{ + Ik | + heb u laatst in_'t | + bos zien staan toen | + zat- en er geen | + kaars- jes aan +} + +ugloeit = \lyrics{ + U | + gloeit in bar- re | + win- ter- tijd, als | + sneeuw op aar- de | + licht ge- spreid +} + +oboom = \notes\transpose c''{ + g,8 | + c8. c16 c4. d8 | + e8. e16 e4. e8 | + d e f4 b, | + d8. c16 c4 r8 +} + +bos = \notes\transpose c''{ + g8 | + g e a4. g8 | + g8. f16 f4 r8 f8 | + f d g4. f8 | + f8. e16 e4 r8 +} + + +melody = \notes{ + \oboom + \oboom + \bos + \oboom +} + + +verseOne = \notes{ + \oden + \oden + \ikheb + \oden +} + +verseOneStaff = \context Lyrics = one + \$verse_one + + +verseTwo = \notes{ + \oden + \oden + \ugloeit + \oden +} + +verseTwoStaff = \context Lyrics = two + \$verse_two + + +denneboomShape = \paper{ + \paperTwenty + indent = 20. \mm; + + % UGH -- THIS IS HAIRY + #'margin-shape = #(map + (lambda (x) (cons-map mm-to-pt x)) + '((70.0 . 20.) + (65.0 . 30.0) + (57.5 . 45.0) + (50.0 . 60.0) + (42.5 . 75.) + (35.0 . 90.) + (27.5 . 105.) + (20.0 . 120.0) + (10.0 . 140.0) + (65.0 . 30.0)) + ) + + gourlay_maxmeasures = 30.; + arithmetic_basicspace = 3.8; + arithmetic_multiplier = 8.\pt; +} + +\score{ + \addlyrics + \context Staff { \time 3/4; \melody } + \context Lyrics \$verse_one + \paper{ + \$denneboom_shape + } + \midi{ \tempo 4 = 90; } +} diff --git a/input/bugs/minimal.ly b/input/bugs/minimal.ly new file mode 100644 index 0000000000..489cbd14e8 --- /dev/null +++ b/input/bugs/minimal.ly @@ -0,0 +1,12 @@ +% minimal what? +% dumps core + + +\score { + \sequential {\clef bass ; } + \paper { +% \translator { \context Score_engraver ; \name "Score"; } + \translator { \type "Score_engraver"; \name "Score"; } + linewidth = 30 * \staffspace; + } +} diff --git a/input/bugs/multiply.ly b/input/bugs/multiply.ly new file mode 100644 index 0000000000..85c02dc5c8 --- /dev/null +++ b/input/bugs/multiply.ly @@ -0,0 +1,24 @@ +% ugh: strange order of things, this: +% a16 * 1/2 ( +% must be +% a16 ( * 1/2 + + +\score { + \context Voice \notes\relative c { + % to see the magic: uncomment size stuff in init/paper20.ly + + c'4 c4 + + \property Voice.fontSize= -2 + % ugh ugh + b16 * 1 / 2 ( + \property Voice.fontSize= 0 ) + g4 *31/32 + + a a g2 + + } + \paper { } + \midi { } +} diff --git a/input/denneboom.ly b/input/denneboom.ly index a68d3f565e..5f368a7d56 100644 --- a/input/denneboom.ly +++ b/input/denneboom.ly @@ -66,7 +66,7 @@ verseOne = \notes{ } verseOneStaff = \context Lyrics = one - \verse_one + \$verse_one verseTwo = \notes{ @@ -77,7 +77,7 @@ verseTwo = \notes{ } verseTwoStaff = \context Lyrics = two - \verse_two + \$verse_two denneboomShape = \paper{ @@ -107,9 +107,9 @@ denneboomShape = \paper{ \score{ \addlyrics \context Staff { \time 3/4; \melody } - \context Lyrics \verse_one + \context Lyrics \$verse_one \paper{ - \denneboom_shape + \$denneboom_shape } \midi{ \tempo 4 = 90; } } diff --git a/input/les-nereides.ly b/input/les-nereides.ly index dc4e04f823..d4efc7d037 100644 --- a/input/les-nereides.ly +++ b/input/les-nereides.ly @@ -36,7 +36,7 @@ global = \notes{ \skip 2; \skip 1*2; -#ifndef FAKE_GRACE +#ifndef FAKE_GRACE /* First run this through cpp. See head les-nereides.ly */ \skip 1; #else % FAKE_GRACE \skip 2.; \partial 32*24; diff --git a/input/regression/arpeggio-collision.ly b/input/regression/arpeggio-collision.ly index 6425b98217..7a8d7f0aee 100644 --- a/input/regression/arpeggio-collision.ly +++ b/input/regression/arpeggio-collision.ly @@ -1,5 +1,5 @@ -xheader = { +header = { texidoc = "arpeggio stays clear of accidentals and flipped note heads. Since Arpeggio engraver is Voice, it does nothing for voice collisions." }; diff --git a/input/test/ac-extra-voice.ly b/input/test/ac-extra-voice.ly index 316dee02c6..ca1dc4e8b0 100644 --- a/input/test/ac-extra-voice.ly +++ b/input/test/ac-extra-voice.ly @@ -65,7 +65,7 @@ accompany = \notes \relative c{ slurVerticalDirection = #1 verticalDirection = -1 - autoBeamSettings \override (end * * * *) = #(make-moment 1 2) + autoBeamSettings \override #'(end * * * *) = #(make-moment 1 2) } } \midi { diff --git a/input/test/auto-beam-override.ly b/input/test/auto-beam-override.ly index e03f7867ef..c99c614770 100644 --- a/input/test/auto-beam-override.ly +++ b/input/test/auto-beam-override.ly @@ -28,7 +28,7 @@ c8 c c4 r8 c c c % no autobeaming - \property Voice.beamAuto = ##f + \property Voice.noAutoBeaming = ##t c8 c c c } \paper{ diff --git a/input/test/bar-break.ly b/input/test/bar-break.ly index 139597f9cb..e69de29bb2 100644 --- a/input/test/bar-break.ly +++ b/input/test/bar-break.ly @@ -1,2 +0,0 @@ - - diff --git a/input/test/font.ly b/input/test/font.ly index 241d195fcb..e69de29bb2 100644 --- a/input/test/font.ly +++ b/input/test/font.ly @@ -1,27 +0,0 @@ -\header{ -title= "The Feta Font"; -subtitle = "proofsheet"; -enteredby = "jcn & hwn"; -copyright = "public domain"; -description = "This file tests the Feta music font"; -% "(Feta definitively is not an abbreviation of Font-En-TjA)"; -} - - - -\include "font-body.ly" -\score{ - \paper{ - % don't change this. - % otherwise 16pt and 20pt layouts differ. - linewidth = 12.5 \cm; - gourlay_maxmeasures =5.; - } - \paper{ - \paperTwenty - linewidth = 17.5 \cm; - gourlay_maxmeasures =5.; - output = "font20.tex"; - } -} - diff --git a/input/test/harmonics.ly b/input/test/harmonics.ly index 6c25e77507..e69de29bb2 100644 --- a/input/test/harmonics.ly +++ b/input/test/harmonics.ly @@ -1,8 +0,0 @@ - -\score { - \context Voice \notes\relative c { - - } - \paper { } - \midi { } -} diff --git a/input/test/part-combine-mmrest.ly b/input/test/part-combine-mmrest.ly index 7e035af3c9..e69de29bb2 100644 --- a/input/test/part-combine-mmrest.ly +++ b/input/test/part-combine-mmrest.ly @@ -1,4 +0,0 @@ -\header { - texidoc = "" - - } \ No newline at end of file diff --git a/input/test/top-staff-volta.ly b/input/test/top-staff-volta.ly index 5a1f20d4f7..e69de29bb2 100644 --- a/input/test/top-staff-volta.ly +++ b/input/test/top-staff-volta.ly @@ -1,6 +0,0 @@ - - -voltaCommands = \notes { - s1 \property Staff.repeatCommands = #((volta . "1")) - c4 c4 c4 c4 - s1 diff --git a/input/tutorial/wss.ly b/input/tutorial/wss.ly index cd51984d24..e69de29bb2 100644 --- a/input/tutorial/wss.ly +++ b/input/tutorial/wss.ly @@ -1,9 +0,0 @@ - - -\score { - -\notes {\notes \reletive c' { - \times 2/3 { [fis8 fis8 fis8] } - \times 2/3 { [b b b] } - bes4 -} diff --git a/ly/dynamic-scripts.ly b/ly/dynamic-scripts.ly index 7ccd8d8e64..bf6c3e74f9 100644 --- a/ly/dynamic-scripts.ly +++ b/ly/dynamic-scripts.ly @@ -3,6 +3,7 @@ % declare the standard dynamic identifiers. % +pppp = \dynamicscript #"pppp" ppp = \dynamicscript #"ppp" pp = \dynamicscript #"pp" p = \dynamicscript #"p" @@ -11,6 +12,7 @@ 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" diff --git a/ly/params-as.ly b/ly/params-as.ly index 5ed66e729d..78deb13655 100644 --- a/ly/params-as.ly +++ b/ly/params-as.ly @@ -26,18 +26,17 @@ outputscale = \staffheight / 4.0; \translator { \NoteNamesContext } \translator { \ScoreContext } -\translator { \ChoirStaffContext} -\translator { \GraceContext} +\translator { \ChoirStaffContext } +\translator { \GraceContext } \translator { \RhythmicStaffContext} \translator { \StaffContext } -\translator { \VoiceContext} +\translator { \VoiceContext } \translator { \StaffGroupContext } \translator { \ChordNamesContext } -\translator { \ChordNamesVoiceContext} -\translator { \GrandStaffContext} +\translator { \GrandStaffContext } \translator { \LyricsContext } -\translator { \ThreadContext} -\translator { \PianoStaffContext} +\translator { \ThreadContext } +\translator { \PianoStaffContext } \translator { \LyricsVoiceContext } \translator { \StaffContainerContext } diff --git a/ly/property.ly b/ly/property.ly index 3029e49e94..5a413798b6 100644 --- a/ly/property.ly +++ b/ly/property.ly @@ -7,8 +7,8 @@ stemDown = \property Voice.Stem \override #'direction = #-1 stemBoth= \property Voice.Stem \revert #'direction slurUp = \property Voice.Slur \override #'direction = #1 -slurBoth = \property Voice.Slur \revert #'direction 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 @@ -31,6 +31,20 @@ dynamicBoth = { \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 +} + + cadenzaOn = \property Score.timing = ##f cadenzaOff = { \property Score.timing = ##t diff --git a/make/ly.make b/make/ly.make index 4d2f7b1d3f..8355a3dc65 100644 --- a/make/ly.make +++ b/make/ly.make @@ -26,7 +26,7 @@ make-root?=$(wildcard /usr/local/share/lilypond/make) ifneq ($(make-root),) ### some versions apparently choke on $(message) ### $(message running from $(make-root)) -depth=$(make-root)/.. +depth:=$(make-root)/.. LOCALSTEPMAKE_TEMPLATES=ly mutopia include $(make-root)/stepmake.make else diff --git a/make/ports-rules.make b/make/ports-rules.make index b819f0747b..5e509eeb33 100644 --- a/make/ports-rules.make +++ b/make/ports-rules.make @@ -7,7 +7,7 @@ else wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@ %.ly: %-lys.zip - unzip $< + unzip -n $< $(MAKE) local-convert-ly endif diff --git a/midi2ly/include/duration-convert.hh b/midi2ly/include/duration-convert.hh index 683c6eb19b..db6818e2f2 100644 --- a/midi2ly/include/duration-convert.hh +++ b/midi2ly/include/duration-convert.hh @@ -48,7 +48,7 @@ struct Duration_convert { /// Return Rational representation (fraction of whole note). static Rational dur2_mom (Duration dur ); - /// Return Mudela string representation. + /// Return Lilypond string representation. static String dur2_str (Duration dur ); /// Return duration from Rational (fraction of whole) representation. diff --git a/midi2ly/include/lilypond-column.hh b/midi2ly/include/lilypond-column.hh new file mode 100644 index 0000000000..15a9097e9d --- /dev/null +++ b/midi2ly/include/lilypond-column.hh @@ -0,0 +1,29 @@ +// +// lilypond-column.hh -- declare Lilypond_column +// +// copyright 1997 Jan Nieuwenhuizen + +#ifndef LILYPOND_COLUMN_HH +#define LILYPOND_COLUMN_HH + +#include "flower-proto.hh" +#include "midi2ly-proto.hh" +#include "rational.hh" +#include "cons.hh" + +/// (lilypond_column) +class Lilypond_column +{ +public: + Lilypond_column (Lilypond_score* lilypond_score_l, Rational mom); + + void add_item (Lilypond_item* lilypond_item_l); + Rational at_mom (); + + Cons_list lilypond_item_l_list_; + Rational at_mom_; + Lilypond_score* lilypond_score_l_; +}; + +#endif // LILYPOND_COLUMN_HH + diff --git a/midi2ly/include/lilypond-item.hh b/midi2ly/include/lilypond-item.hh new file mode 100644 index 0000000000..039280c91e --- /dev/null +++ b/midi2ly/include/lilypond-item.hh @@ -0,0 +1,130 @@ +// +// lilypond-item.hh -- declare lilypond_item +// +// copyright 1997 Jan Nieuwenhuizen + +#ifndef LILYPOND_ITEM_HH +#define LILYPOND_ITEM_HH + +#include "midi2ly-proto.hh" +#include "string.hh" +#include "rational.hh" +#include "duration.hh" + +// should these: +// * be Lilypond_items +// * be Voice_elements/requests +// * get a name-change +// ? + +/// (lilypond_item) +class Lilypond_item +{ +public: + Lilypond_item (Lilypond_column* lilypond_column_l); + virtual ~Lilypond_item (); + + virtual Rational at_mom (); + virtual Rational duration_mom (); + void output (Lilypond_stream& lilypond_stream_r); + virtual String str () = 0; + + Lilypond_column* lilypond_column_l_; +}; + +class Lilypond_key : public Lilypond_item +{ +public: + Lilypond_key (int accidentals_i, int minor_i); + + String notename_str (int pitch_i); + virtual String str (); + + //private: + int accidentals_i_; + int minor_i_; +}; + +class Lilypond_time_signature : public Lilypond_item +{ +public: + Lilypond_time_signature (int num_i, int den_i, int division_4_i, int count_32_i); + + Duration i2_dur (int time_i, int division_1_i); + int clocks_1_i (); + int den_i (); + int num_i (); + virtual String str (); + Rational bar_mom (); + +private: + Real sync_f_; + Duration sync_dur_; + int clocks_1_i_; + int num_i_; + int den_i_; +}; + +class Lilypond_note : public Lilypond_item +{ +public: + Lilypond_note (Lilypond_column* lilypond_column_l, int channel_i, int pitch_i, int dyn_i); + + Duration duration (); + virtual Rational duration_mom (); + virtual String str (); + + // int const c0_pitch_i_c_ = 60; // huh? + static int const c0_pitch_i_c_ = 48; + + static bool const simple_plet_b_s = false; + int channel_i_; + int pitch_i_; + Lilypond_column* end_column_l_; +}; + +class Lilypond_skip : public Lilypond_item +{ +public: + Lilypond_skip (Lilypond_column* lilypond_column_l, Rational skip_mom); + + Duration duration (); + virtual Rational duration_mom (); + virtual String str (); + +private: + Rational mom_; +}; + + +class Lilypond_tempo : public Lilypond_item +{ +public: + Lilypond_tempo (int useconds_per_4_i); + + int get_tempo_i (Rational rational); + virtual String str (); + int useconds_per_4_i (); + +private: + int useconds_per_4_i_; + Rational seconds_per_1_mom_; +}; + +class Lilypond_text : public Lilypond_item +{ +public: + enum Type { + TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, + MARKER, CUE_POINT + }; + Lilypond_text (Lilypond_text::Type type, String str); + virtual String str (); + + //private: + Type type_; + String text_str_; +}; + +#endif // LILYPOND_ITEM_HH + diff --git a/midi2ly/include/lilypond-score.hh b/midi2ly/include/lilypond-score.hh new file mode 100644 index 0000000000..9076384ac5 --- /dev/null +++ b/midi2ly/include/lilypond-score.hh @@ -0,0 +1,51 @@ +// +// lilypond-score.hh -- declare Lilypond_score +// +// copyright 1997 Jan Nieuwenhuizen + +#ifndef LILYPOND_SCORE_HH +#define LILYPOND_SCORE_HH + +#include "midi2ly-proto.hh" +#include "flower-proto.hh" +#include "cons.hh" +#include "parray.hh" + +/// (lilypond_score) +class Lilypond_score { +public: + Lilypond_score (int format_i, int tracks_i, int tempo_i); + ~Lilypond_score (); + + void add_item (Lilypond_item* lilypond_item_p); + void add_staff (Lilypond_staff* lilypond_staff_p); + + Lilypond_column* find_column_l (Rational mom); + Lilypond_column* get_column_l (Rational mom); + + void output (String filename_str); + void process (); + + // ugh + Lilypond_key* lilypond_key_l_; + Lilypond_time_signature* lilypond_time_signature_l_; + Lilypond_tempo* lilypond_tempo_l_; + Lilypond_staff * last_staff_l_; +private: + void filter_tempo (); + void quantify_columns (); + void quantify_durations (); + void settle_columns (); + + Cons_list lilypond_staff_p_list_; + Link_array column_l_array_; + + // ugh, ugh, ugh +public: + int format_i_; + int tracks_i_; + int tempo_i_; +}; + +#endif // LILYPOND_SCORE_HH + diff --git a/midi2ly/include/lilypond-staff.hh b/midi2ly/include/lilypond-staff.hh new file mode 100644 index 0000000000..ceba267b4b --- /dev/null +++ b/midi2ly/include/lilypond-staff.hh @@ -0,0 +1,43 @@ +// +// lilypond-staff.hh -- declare lilypond_staff +// +// copyright 1997 Jan Nieuwenhuizen + +#ifndef LILYPOND_STAFF_HH +#define LILYPOND_STAFF_HH + +#include "midi2ly-proto.hh" +#include "flower-proto.hh" +#include "cons.hh" +#include "string.hh" + +/// (lilypond_staff) +class Lilypond_staff +{ +public: + Lilypond_staff (int number_i, String copyright_str, String track_name_str, String instrument_str); + + void add_item (Lilypond_item* lilypond_item_p); + void eat_voice (Cons_list& items); + String id_str (); + String name_str (); + void output (Lilypond_stream& lilypond_stream_r); + void process (); + + String copyright_str_; + String instrument_str_; + String name_str_; + Lilypond_key* lilypond_key_l_; + Lilypond_time_signature* lilypond_time_signature_l_; + Lilypond_tempo* lilypond_tempo_l_; + int number_i_; + +private: + void output_lilypond_begin_bar (Lilypond_stream& lilypond_stream_r, Rational now_mom, int bar_i); + + Cons_list lilypond_voice_p_list_; + Cons_list lilypond_item_p_list_; +}; + +#endif // LILYPOND_STAFF_HH + diff --git a/midi2ly/include/lilypond-stream.hh b/midi2ly/include/lilypond-stream.hh new file mode 100644 index 0000000000..29c1c8cf3a --- /dev/null +++ b/midi2ly/include/lilypond-stream.hh @@ -0,0 +1,42 @@ +// +// lilypond-stream.hh -- part of LilyPond +// +// copyright 1997 Jan Nieuwenhuizen + +// should i be named Lilypond_stream? + +#ifndef LILYPOND_STREAM_HH +#define LILYPOND_STREAM_HH + +#include "midi2ly-proto.hh" +#include "string.hh" +//#include "scalar.hh" + +/// Lily output +class Lilypond_stream { +public: + Lilypond_stream (String filename_str); + ~Lilypond_stream(); + + Lilypond_stream& operator << (char c); + Lilypond_stream& operator << (String s); + Lilypond_stream& operator << (Lilypond_item& lilypond_item_r); + +private: + void handle_pending_indent(); + void header(); + void open(); + void output (String str); + void output_wrapped (String str); + + ostream* os_p_; + String filename_str_; + int indent_i_; + int column_i_; + int pending_indent_i_; + int wrap_column_i_; + bool comment_mode_b_; +}; + +#endif // LILYPOND_STREAM_HH + diff --git a/midi2ly/include/lilypond-voice.hh b/midi2ly/include/lilypond-voice.hh new file mode 100644 index 0000000000..b64882f6fb --- /dev/null +++ b/midi2ly/include/lilypond-voice.hh @@ -0,0 +1,29 @@ +// +// lilypond-voice.hh -- declare Lilypond_voice +// +// copyright 1997 Jan Nieuwenhuizen + +#ifndef LILYPOND_VOICE_HH +#define LILYPOND_VOICE_HH + +#include "midi2ly-proto.hh" +#include "cons.hh" + +/// (lilypond_voice) +class Lilypond_voice +{ +public: + Lilypond_voice (Lilypond_staff* lilypond_staff_l); + void add_item (Lilypond_item* lilypond_item_l); + void output (Lilypond_stream& lilypond_stream_r); + String get_clef () const; + Lilypond_item * last_item_l_; + Lilypond_note * last_note_l_; +private: + Lilypond_staff* lilypond_staff_l_; + Cons_list lilypond_item_l_list_; + +}; + +#endif // LILYPOND_VOICE_HH + diff --git a/midi2ly/include/midi-parser.hh b/midi2ly/include/midi-parser.hh index d4b498dc0f..670ff5ea7e 100644 --- a/midi2ly/include/midi-parser.hh +++ b/midi2ly/include/midi-parser.hh @@ -49,7 +49,7 @@ struct Midi_parser_info Byte const* byte_L_; Byte const* end_byte_L_; Source_file* source_l_; - Mudela_score* score_l_; + Lilypond_score* score_l_; Rational bar_mom_; }; diff --git a/midi2ly/include/midi-score-parser.hh b/midi2ly/include/midi-score-parser.hh index de2e1db51e..2fca257ec3 100644 --- a/midi2ly/include/midi-score-parser.hh +++ b/midi2ly/include/midi-score-parser.hh @@ -18,14 +18,14 @@ class Midi_score_parser : public Midi_parser { public: - Mudela_score* parse (String filename_str, Sources*); + Lilypond_score* parse (String filename_str, Sources*); private: void open (String filename_str, Sources*); void parse_header (); int find_earliest_i (Link_array& tracks); - Mudela_score* parse_score (); + Lilypond_score* parse_score (); }; #endif // MIDI_SCORE_PARSER_HH diff --git a/midi2ly/include/midi-track-parser.hh b/midi2ly/include/midi-track-parser.hh index 21d6988a3b..89e6363d3d 100644 --- a/midi2ly/include/midi-track-parser.hh +++ b/midi2ly/include/midi-track-parser.hh @@ -24,20 +24,20 @@ public: ~Midi_track_parser (); Rational at_mom (); - Mudela_staff* parse (Mudela_column* col_l); + Lilypond_staff* parse (Lilypond_column* col_l); private: bool eot (); - void note_end (Mudela_column* col_l, int channel_i, int pitch_i, int aftertouch_i ); - void note_end_all (Mudela_column* col_l) ; + void note_end (Lilypond_column* col_l, int channel_i, int pitch_i, int aftertouch_i ); + void note_end_all (Lilypond_column* col_l) ; void parse_delta_time (); - Mudela_item* parse_event (Mudela_column* col_l); + Lilypond_item* parse_event (Lilypond_column* col_l); void parse_header (); Rational at_mom_; Byte running_byte_; - Cons_list open_note_l_list_; - Mudela_staff* mudela_staff_p_; + Cons_list open_note_l_list_; + Lilypond_staff* lilypond_staff_p_; Midi_parser_info* track_info_p_; }; diff --git a/midi2ly/include/midi2ly-proto.hh b/midi2ly/include/midi2ly-proto.hh index 5ac345ae94..dac1d8d1a1 100644 --- a/midi2ly/include/midi2ly-proto.hh +++ b/midi2ly/include/midi2ly-proto.hh @@ -14,16 +14,16 @@ class Midi_parser; struct Midi_parser_info; class Midi_score_parser; class Midi_track_parser; -class Mudela_stream; -class Mudela_item; -class Mudela_key; -class Mudela_time_signature; -class Mudela_note; -class Mudela_tempo; -class Mudela_text; -class Mudela_score; -class Mudela_staff; -class Mudela_voice; -class Mudela_column; +class Lilypond_stream; +class Lilypond_item; +class Lilypond_key; +class Lilypond_time_signature; +class Lilypond_note; +class Lilypond_tempo; +class Lilypond_text; +class Lilypond_score; +class Lilypond_staff; +class Lilypond_voice; +class Lilypond_column; #endif // MIDI2LY_PROTO_HH diff --git a/midi2ly/include/mudela-column.hh b/midi2ly/include/mudela-column.hh index ca682b29e4..e69de29bb2 100644 --- a/midi2ly/include/mudela-column.hh +++ b/midi2ly/include/mudela-column.hh @@ -1,29 +0,0 @@ -// -// mudela-column.hh -- declare Mudela_column -// -// copyright 1997 Jan Nieuwenhuizen - -#ifndef MUDELA_COLUMN_HH -#define MUDELA_COLUMN_HH - -#include "flower-proto.hh" -#include "midi2ly-proto.hh" -#include "rational.hh" -#include "cons.hh" - -/// (mudela_column) -class Mudela_column -{ -public: - Mudela_column (Mudela_score* mudela_score_l, Rational mom); - - void add_item (Mudela_item* mudela_item_l); - Rational at_mom (); - - Cons_list mudela_item_l_list_; - Rational at_mom_; - Mudela_score* mudela_score_l_; -}; - -#endif // MUDELA_COLUMN_HH - diff --git a/midi2ly/include/mudela-item.hh b/midi2ly/include/mudela-item.hh index 02c726b317..e69de29bb2 100644 --- a/midi2ly/include/mudela-item.hh +++ b/midi2ly/include/mudela-item.hh @@ -1,130 +0,0 @@ -// -// mudela-item.hh -- declare mudela_item -// -// copyright 1997 Jan Nieuwenhuizen - -#ifndef MUDELA_ITEM_HH -#define MUDELA_ITEM_HH - -#include "midi2ly-proto.hh" -#include "string.hh" -#include "rational.hh" -#include "duration.hh" - -// should these: -// * be Mudela_items -// * be Voice_elements/requests -// * get a name-change -// ? - -/// (mudela_item) -class Mudela_item -{ -public: - Mudela_item (Mudela_column* mudela_column_l); - virtual ~Mudela_item (); - - virtual Rational at_mom (); - virtual Rational duration_mom (); - void output (Mudela_stream& mudela_stream_r); - virtual String str () = 0; - - Mudela_column* mudela_column_l_; -}; - -class Mudela_key : public Mudela_item -{ -public: - Mudela_key (int accidentals_i, int minor_i); - - String notename_str (int pitch_i); - virtual String str (); - - //private: - int accidentals_i_; - int minor_i_; -}; - -class Mudela_time_signature : public Mudela_item -{ -public: - Mudela_time_signature (int num_i, int den_i, int division_4_i, int count_32_i); - - Duration i2_dur (int time_i, int division_1_i); - int clocks_1_i (); - int den_i (); - int num_i (); - virtual String str (); - Rational bar_mom (); - -private: - Real sync_f_; - Duration sync_dur_; - int clocks_1_i_; - int num_i_; - int den_i_; -}; - -class Mudela_note : public Mudela_item -{ -public: - Mudela_note (Mudela_column* mudela_column_l, int channel_i, int pitch_i, int dyn_i); - - Duration duration (); - virtual Rational duration_mom (); - virtual String str (); - - // int const c0_pitch_i_c_ = 60; // huh? - static int const c0_pitch_i_c_ = 48; - - static bool const simple_plet_b_s = false; - int channel_i_; - int pitch_i_; - Mudela_column* end_column_l_; -}; - -class Mudela_skip : public Mudela_item -{ -public: - Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom); - - Duration duration (); - virtual Rational duration_mom (); - virtual String str (); - -private: - Rational mom_; -}; - - -class Mudela_tempo : public Mudela_item -{ -public: - Mudela_tempo (int useconds_per_4_i); - - int get_tempo_i (Rational rational); - virtual String str (); - int useconds_per_4_i (); - -private: - int useconds_per_4_i_; - Rational seconds_per_1_mom_; -}; - -class Mudela_text : public Mudela_item -{ -public: - enum Type { - TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, - MARKER, CUE_POINT - }; - Mudela_text (Mudela_text::Type type, String str); - virtual String str (); - - //private: - Type type_; - String text_str_; -}; - -#endif // MUDELA_ITEM_HH - diff --git a/midi2ly/include/mudela-score.hh b/midi2ly/include/mudela-score.hh index 27162e4938..e69de29bb2 100644 --- a/midi2ly/include/mudela-score.hh +++ b/midi2ly/include/mudela-score.hh @@ -1,51 +0,0 @@ -// -// mudela-score.hh -- declare Mudela_score -// -// copyright 1997 Jan Nieuwenhuizen - -#ifndef MUDELA_SCORE_HH -#define MUDELA_SCORE_HH - -#include "midi2ly-proto.hh" -#include "flower-proto.hh" -#include "cons.hh" -#include "parray.hh" - -/// (mudela_score) -class Mudela_score { -public: - Mudela_score (int format_i, int tracks_i, int tempo_i); - ~Mudela_score (); - - void add_item (Mudela_item* mudela_item_p); - void add_staff (Mudela_staff* mudela_staff_p); - - Mudela_column* find_column_l (Rational mom); - Mudela_column* get_column_l (Rational mom); - - void output (String filename_str); - void process (); - - // ugh - Mudela_key* mudela_key_l_; - Mudela_time_signature* mudela_time_signature_l_; - Mudela_tempo* mudela_tempo_l_; - Mudela_staff * last_staff_l_; -private: - void filter_tempo (); - void quantify_columns (); - void quantify_durations (); - void settle_columns (); - - Cons_list mudela_staff_p_list_; - Link_array column_l_array_; - - // ugh, ugh, ugh -public: - int format_i_; - int tracks_i_; - int tempo_i_; -}; - -#endif // MUDELA_SCORE_HH - diff --git a/midi2ly/include/mudela-staff.hh b/midi2ly/include/mudela-staff.hh index 38be04823c..e69de29bb2 100644 --- a/midi2ly/include/mudela-staff.hh +++ b/midi2ly/include/mudela-staff.hh @@ -1,43 +0,0 @@ -// -// mudela-staff.hh -- declare mudela_staff -// -// copyright 1997 Jan Nieuwenhuizen - -#ifndef MUDELA_STAFF_HH -#define MUDELA_STAFF_HH - -#include "midi2ly-proto.hh" -#include "flower-proto.hh" -#include "cons.hh" -#include "string.hh" - -/// (mudela_staff) -class Mudela_staff -{ -public: - Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str); - - void add_item (Mudela_item* mudela_item_p); - void eat_voice (Cons_list& items); - String id_str (); - String name_str (); - void output (Mudela_stream& mudela_stream_r); - void process (); - - String copyright_str_; - String instrument_str_; - String name_str_; - Mudela_key* mudela_key_l_; - Mudela_time_signature* mudela_time_signature_l_; - Mudela_tempo* mudela_tempo_l_; - int number_i_; - -private: - void output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i); - - Cons_list mudela_voice_p_list_; - Cons_list mudela_item_p_list_; -}; - -#endif // MUDELA_STAFF_HH - diff --git a/midi2ly/include/mudela-stream.hh b/midi2ly/include/mudela-stream.hh index 04ddbd86e9..e69de29bb2 100644 --- a/midi2ly/include/mudela-stream.hh +++ b/midi2ly/include/mudela-stream.hh @@ -1,42 +0,0 @@ -// -// mudela-stream.hh -- part of LilyPond -// -// copyright 1997 Jan Nieuwenhuizen - -// should i be named Mudela_stream? - -#ifndef MUDELA_STREAM_HH -#define MUDELA_STREAM_HH - -#include "midi2ly-proto.hh" -#include "string.hh" -//#include "scalar.hh" - -/// Lily output -class Mudela_stream { -public: - Mudela_stream (String filename_str); - ~Mudela_stream(); - - Mudela_stream& operator << (char c); - Mudela_stream& operator << (String s); - Mudela_stream& operator << (Mudela_item& mudela_item_r); - -private: - void handle_pending_indent(); - void header(); - void open(); - void output (String str); - void output_wrapped (String str); - - ostream* os_p_; - String filename_str_; - int indent_i_; - int column_i_; - int pending_indent_i_; - int wrap_column_i_; - bool comment_mode_b_; -}; - -#endif // MUDELA_STREAM_HH - diff --git a/midi2ly/include/mudela-voice.hh b/midi2ly/include/mudela-voice.hh index a3fff8bdc5..e69de29bb2 100644 --- a/midi2ly/include/mudela-voice.hh +++ b/midi2ly/include/mudela-voice.hh @@ -1,29 +0,0 @@ -// -// mudela-voice.hh -- declare Mudela_voice -// -// copyright 1997 Jan Nieuwenhuizen - -#ifndef MUDELA_VOICE_HH -#define MUDELA_VOICE_HH - -#include "midi2ly-proto.hh" -#include "cons.hh" - -/// (mudela_voice) -class Mudela_voice -{ -public: - Mudela_voice (Mudela_staff* mudela_staff_l); - void add_item (Mudela_item* mudela_item_l); - void output (Mudela_stream& mudela_stream_r); - String get_clef () const; - Mudela_item * last_item_l_; - Mudela_note * last_note_l_; -private: - Mudela_staff* mudela_staff_l_; - Cons_list mudela_item_l_list_; - -}; - -#endif // MUDELA_VOICE_HH - diff --git a/midi2ly/lilypond-column.cc b/midi2ly/lilypond-column.cc new file mode 100644 index 0000000000..136f10a06d --- /dev/null +++ b/midi2ly/lilypond-column.cc @@ -0,0 +1,24 @@ +// +// lilypond-column.cc -- implement Lilypond_column +// +// copyright 1997 Jan Nieuwenhuizen + +#include "lilypond-column.hh" + +Lilypond_column::Lilypond_column (Lilypond_score* lilypond_score_l, Rational mom) +{ + lilypond_score_l_ = lilypond_score_l; + at_mom_ = mom; +} + +void +Lilypond_column::add_item (Lilypond_item* lilypond_item_l) +{ + lilypond_item_l_list_.append (new Cons (lilypond_item_l, 0)); +} + +Rational +Lilypond_column::at_mom() +{ + return at_mom_; +} diff --git a/midi2ly/lilypond-item.cc b/midi2ly/lilypond-item.cc new file mode 100644 index 0000000000..2f70f5d4be --- /dev/null +++ b/midi2ly/lilypond-item.cc @@ -0,0 +1,364 @@ +// +// lilypond-item.cc -- implement Lilypond_item +// +// copyright 1997 Jan Nieuwenhuizen + +#include +#include +#include "midi2ly-global.hh" +#include "string-convert.hh" +#include "duration-convert.hh" +#include "lilypond-column.hh" +#include "lilypond-item.hh" +#include "lilypond-stream.hh" +#include "lilypond-score.hh" + +Lilypond_item::Lilypond_item (Lilypond_column* lilypond_column_l) +{ + lilypond_column_l_ = lilypond_column_l; +} + +Lilypond_item::~Lilypond_item () +{ +} + +Rational +Lilypond_item::at_mom () +{ + return lilypond_column_l_->at_mom (); +} + +Rational +Lilypond_item::duration_mom () +{ + return Rational (0); +} + +void +Lilypond_item::output (Lilypond_stream& lilypond_stream_r) +{ + lilypond_stream_r << str () << " "; +} + +Lilypond_key::Lilypond_key (int accidentals_i, int minor_i) + : Lilypond_item (0) +{ + accidentals_i_ = accidentals_i; + minor_i_ = minor_i; +} + +char const *accname[] = {"eses", "es", "", "is" , "isis"}; + +String +Lilypond_key::str () +{ + int key_i = accidentals_i_ >= 0 + ? ((accidentals_i_ % 7) ["cgdaebf"] - 'a' - 2 -2 * minor_i_ + 7) % 7 + : ((-accidentals_i_ % 7) ["cfbeadg"] - 'a' - 2 -2 * minor_i_ + 7) % 7; + + String notename_str = !minor_i_ + ? to_str ((char) ((key_i + 2) % 7 + 'a')) + : to_str ((char) ((key_i + 2) % 7 + 'a')); + + // fis cis gis dis ais eis bis + static int sharps_i_a [7] = { 2, 4, 6, 1, 3, 5, 7 }; + // bes es as des ges ces fes + static int flats_i_a [7] = { 6, 4, 2, 7, 5, 3, 1 }; + int accidentals_i = accidentals_i_ >= 0 + ? sharps_i_a [key_i] <= accidentals_i_ ? 1 : 0 + : flats_i_a [key_i] <= -accidentals_i_ ? -1 : 0; + + if (accidentals_i) + notename_str += String (accname [accidentals_i + 2]); + + return "\\key " + notename_str + (minor_i_ ? "\\minor" : "\\major") + ";\n"; +} + +String +Lilypond_key::notename_str (int pitch_i) +{ + // this may seem very smart, + // but it-s only an excuse not to read a notename table + + // major scale: do-do + // minor scale: la-la (= + 5) + static int notename_i_a [12] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 }; + int notename_i = notename_i_a [pitch_i % 12]; + + static int accidentals_i_a [12] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 }; + int accidental_i = accidentals_i_a [(minor_i_ * 5 + pitch_i) % 12]; + if (accidental_i && (accidentals_i_ < 0)) + { + accidental_i *= -1; + notename_i = (notename_i + 1) % 7; + } + + String notename_str = to_str ((char)(((notename_i + 2) % 7) + 'a')); + if (accidental_i) + notename_str += String (accname [accidental_i + 2]); + + /* + By tradition, all scales now consist of a sequence of 7 notes each + with a distinct name, from amongst a b c d e f g. But, minor scales + have a wide second interval at the top - the 'leading note' is + sharped. (Why? it just works that way! Anything else doesn't sound as + good and isn't as flexible at saying things. In medieval times, + scales only had 6 notes to avoid this problem - the hexachords.) + + So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat + for the leading note would skip the name c and duplicate the name d. + Why isn't c-sharp put in the key signature? Tradition. (It's also + supposedly based on the Pythagorean theory of the cycle of fifths, + but that really only applies to major scales...) + + Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other + flat minor keys end up with a natural leading note. And there you + have it. + + John Sankey + + Let's also do a-minor: a b c d e f gis a + + --jcn + + */ + + /* ok, bit ugly, but here we go -- jcn */ + + + if (minor_i_) + { + if ((accidentals_i_ == 0) && (notename_str == "as")) + notename_str = "gis"; + else if ((accidentals_i_ == -1) && (notename_str == "des")) + notename_str = "cis"; + else if ((accidentals_i_ == -2) && (notename_str == "ges")) + notename_str = "fis"; + else if ((accidentals_i_ == 5) && (notename_str == "g")) + notename_str = "fisis"; + else if ((accidentals_i_ == 6) && (notename_str == "d")) + notename_str = "cisis"; + else if ((accidentals_i_ == 7) && (notename_str == "a")) + notename_str = "gisis"; + + if ((accidentals_i_ <= -6) && (notename_str == "b")) + notename_str = "ces"; + if ((accidentals_i_ <= -7) && (notename_str == "e")) + notename_str = "fes"; + } + + String de_octavate_str = to_str (',', (Lilypond_note::c0_pitch_i_c_ + 11 - pitch_i) / 12); + String octavate_str = to_str ('\'', (pitch_i - Lilypond_note::c0_pitch_i_c_) / 12); + return notename_str +de_octavate_str + octavate_str; +} + +Lilypond_time_signature::Lilypond_time_signature (int num_i, int den_i, int clocks_4_i, int count_32_i) + : Lilypond_item (0) +{ + sync_dur_.durlog_i_ = 3; + sync_f_ = 1.0; + if (count_32_i != 8) + warning (_f ("#32 in quarter: %d", count_32_i)); + num_i_ = num_i; + den_i_ = den_i; + clocks_1_i_ = clocks_4_i * 4; +} + +Rational +Lilypond_time_signature::bar_mom () +{ + Duration d; + d.durlog_i_ = den_i_; + return Rational (num_i_) * Duration_convert::dur2_mom (d); +} + +int +Lilypond_time_signature::clocks_1_i () +{ + return clocks_1_i_; +} + +int +Lilypond_time_signature::den_i () +{ + return den_i_; +} + +int +Lilypond_time_signature::num_i () +{ + return num_i_; +} + +String +Lilypond_time_signature::str () +{ + String str = "\\time " + + to_str (num_i_) + "/" + to_str (1 << den_i_) + + ";\n"; + return str; +} + + +// statics Lilypond_note +/* + this switch can be used to write simple plets like + c4*2/3 + as + \plet 2/3; c4 \plet 1/1; + */ +/* + UGH: .hh says false, .cc says true. + FIXME. + */ +bool const Lilypond_note::simple_plet_b_s; + +Lilypond_note::Lilypond_note (Lilypond_column* lilypond_column_l, + int channel_i, int pitch_i, int dyn_i) + : Lilypond_item (lilypond_column_l) +{ + // junk dynamics + (void)dyn_i; + channel_i_ = channel_i; + pitch_i_ = pitch_i; + end_column_l_ = 0; +} + +Duration +Lilypond_note::duration () +{ + assert (end_column_l_); + Rational mom = end_column_l_->at_mom () - at_mom (); + return Duration_convert::mom2_dur (mom); +} + +Rational +Lilypond_note::duration_mom () +{ + assert (end_column_l_); + return end_column_l_->at_mom () - at_mom (); +} + +String +Lilypond_note::str () +{ + Duration dur = duration (); + if (dur.durlog_i_ < -10) + return ""; + + String name_str + = lilypond_column_l_->lilypond_score_l_->lilypond_key_l_->notename_str (pitch_i_); + + if (simple_plet_b_s) + return name_str + Duration_convert::dur2_str (dur) + " "; + + String str; + + //ugh + if (dur.plet_b ()) + str += String ("\\times ") + + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0) + + "/" + + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0) + + " { "; + + + str += name_str; + + Duration tmp = dur; + tmp.set_plet (1,1); + str += Duration_convert::dur2_str (tmp); + + if (dur.plet_b ()) + str += String (" }"); + + /* + note of zero duration is nonsense, + but let's output anyway for convenient debugging + */ + if (!duration_mom ()) + return String ("\n% ") + str + "\n"; + + return str + " "; +} + +Lilypond_skip::Lilypond_skip (Lilypond_column* lilypond_column_l, Rational skip_mom) + : Lilypond_item (lilypond_column_l) +{ + mom_ = skip_mom; +} + +Duration +Lilypond_skip::duration () +{ + return Duration_convert::mom2_dur (mom_); +} + +Rational +Lilypond_skip::duration_mom () +{ + return Duration_convert::dur2_mom (duration ()); +} + +String +Lilypond_skip::str () +{ + if (!mom_) + return String (""); + + Duration dur = duration (); + if (dur.durlog_i_<-10) + return ""; + + String str = "\\skip "; + str += Duration_convert::dur2_str (dur) + "; "; + + return str; +} + +Lilypond_tempo::Lilypond_tempo (int useconds_per_4_i) + : Lilypond_item (0) +{ + useconds_per_4_i_ = useconds_per_4_i; + seconds_per_1_mom_ = Rational(useconds_per_4_i_ *4, 1e6); +} + +String +Lilypond_tempo::str () +{ + String str = "\\tempo 4="; + str += to_str (get_tempo_i (Rational (1, 4))); + str += ";\n"; + return str; +} + +int +Lilypond_tempo::useconds_per_4_i () +{ + return useconds_per_4_i_; +} + +int +Lilypond_tempo::get_tempo_i (Rational rational) +{ + Rational m1 = Rational (60) / rational; + Rational m2 = seconds_per_1_mom_; + return m1 / m2; +} + +Lilypond_text::Lilypond_text (Lilypond_text::Type type, String text_str) + : Lilypond_item (0) +{ + type_ = type; + text_str_ = text_str; +} + +String +Lilypond_text::str () +{ + if (!text_str_.length_i () + || (text_str_.length_i () != (int)strlen (text_str_.ch_C ()))) + return ""; + + return "% " + text_str_ + "\n"; +} diff --git a/midi2ly/lilypond-score.cc b/midi2ly/lilypond-score.cc new file mode 100644 index 0000000000..066f09d704 --- /dev/null +++ b/midi2ly/lilypond-score.cc @@ -0,0 +1,256 @@ +// +// lilypond-score.cc -- implement Lilypond_score +// +// copyright 1997 Jan Nieuwenhuizen + +#include +#include "rational.hh" +#include "duration.hh" +#include "duration-convert.hh" +#include "midi2ly-global.hh" +#include "lilypond-column.hh" +#include "lilypond-item.hh" +#include "lilypond-score.hh" +#include "lilypond-staff.hh" +#include "lilypond-stream.hh" + +#include "killing-cons.tcc" + +//static Lilypond_key key_c (0, 0); +static Lilypond_time_signature time_sig_4 (4, 2, 24, 8); +// useconds per 4: 250000 === 60 4 per minute +static Lilypond_tempo tempo_60 (1000000); + +Lilypond_score::Lilypond_score (int format_i, int tracks_i, int tempo_i) +{ + last_staff_l_ =0; + format_i_ = format_i; + tracks_i_ = tracks_i; + tempo_i_ = tempo_i; + column_l_array_.push (new Lilypond_column (this, Rational (0))); + // lilypond_key_l_ = &key_c; + lilypond_key_l_ = 0; + lilypond_time_signature_l_ = &time_sig_4; + lilypond_tempo_l_ = &tempo_60; +} + +Lilypond_score::~Lilypond_score () +{ +} + +void +Lilypond_score::add_item (Lilypond_item* lilypond_item_p) +{ + last_staff_l_->add_item (lilypond_item_p); +} + +void +Lilypond_score::add_staff (Lilypond_staff* lilypond_staff_p) +{ + lilypond_staff_p_list_.append (new Killing_cons (lilypond_staff_p, 0)); + last_staff_l_ = lilypond_staff_p; +} + +Lilypond_column* +Lilypond_score::find_column_l (Rational mom) +{ + int upper_i = max (0, column_l_array_.size () - 1); + int lower_i = 0; + int i = 0; //upper_i; + while (1) + { + Rational i_mom = column_l_array_ [i]->at_mom (); + if (i_mom == mom) + return column_l_array_ [i]; + if (mom < i_mom) + upper_i = i; + else + lower_i = i; + if ( (upper_i == lower_i) || (i == column_l_array_.size () - 1)) + { + // we don't do inserts + assert (0); + Lilypond_column* col_p = new Lilypond_column (this, mom); + column_l_array_.push (col_p); + return col_p; + } + i = (upper_i + lower_i + 1 ) / 2; + } + assert (0); + return 0; +} + +Lilypond_column* +Lilypond_score::get_column_l (Rational mom) +{ + int i; + Lilypond_column *c=0; + for (i=column_l_array_.size () - 1; !c && i >=0; i--) + { + if (column_l_array_ [i]->at_mom () == mom ) + c = column_l_array_[i]; + else if (column_l_array_[i]->at_mom () < mom) + break; + } + if (!c) + { + c = new Lilypond_column (this, mom); + column_l_array_.insert (c, i+1); + } + + assert (c->at_mom () == mom); + return c; +} + +void +Lilypond_score::output (String filename_str) +{ + LOGOUT (NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl; + + // ugh, ugly midi type 1 fix + if ( (lilypond_staff_p_list_.size_i () == 1) + && !lilypond_staff_p_list_.head_->car_->number_i_) + lilypond_staff_p_list_.head_->car_->number_i_ = 1; + + int track_i = 0; + Lilypond_stream lilypond_stream (filename_str); + for (Cons* i = lilypond_staff_p_list_.head_; i; i = i->next_) + { + LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush; + i->car_->output (lilypond_stream); + lilypond_stream << '\n'; + LOGOUT (NORMAL_ver) << endl; + } + + lilypond_stream << "\\score{\n"; + if (lilypond_staff_p_list_.size_i () > 1) + lilypond_stream << "< \n"; + for (Cons* i = lilypond_staff_p_list_.head_; i; i = i->next_) + { + if ( (lilypond_staff_p_list_.size_i () != 1) + && (i->car_ == lilypond_staff_p_list_.head_->car_)) + continue; + lilypond_stream << "\\context Staff = \"" << i->car_->id_str () << "\" "; + lilypond_stream << String ("\\" + i->car_->id_str ()) << '\n'; + } + if (lilypond_staff_p_list_.size_i () > 1) + lilypond_stream << ">\n"; + + lilypond_stream << "\\paper{}\n"; + +#if 1 + lilypond_stream << "\\midi{\n"; + + // let's not use silly 0 track + last_cons (lilypond_staff_p_list_.head_)->car_->lilypond_tempo_l_->output (lilypond_stream); + lilypond_stream << "}\n"; +#endif + + lilypond_stream << "}\n"; +} + +void +Lilypond_score::process () +{ + LOGOUT (NORMAL_ver) << '\n' << _ ("Processing...") << endl; + + LOGOUT (DEBUG_ver) << "columns\n"; + + settle_columns (); + filter_tempo (); + quantify_columns (); + quantify_durations (); + + LOGOUT (NORMAL_ver) << '\n' << _ ("Creating voices...") << endl; + int track_i = 0; + for (Cons* i = lilypond_staff_p_list_.head_; i; i = i->next_) + { + LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush; + i->car_->process (); + LOGOUT (NORMAL_ver) << endl; + } +} + +void +Lilypond_score::filter_tempo () +{ + LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl; +} + +void +Lilypond_score::quantify_columns () +{ + // ugh + if (Duration_convert::no_quantify_b_s) + { + LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Quantifying columns...") << endl; + return; + } + + LOGOUT (NORMAL_ver) << '\n' << _ ("Quantifying columns...") << endl; + + int current_bar_i = 0; + Rational bar_mom = lilypond_time_signature_l_->bar_mom (); + + int n = 5 >? Duration_convert::no_smaller_than_i_s; + n = Duration_convert::type2_i (n); + Rational s = Rational (1, n); + for (int i = 0; i < column_l_array_.size (); i++) + { + column_l_array_ [i]->at_mom_ = + s * Rational ( (int) ( (column_l_array_ [i]->at_mom ()) / s)); + + int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1; + if (bar_i > current_bar_i) + + { + LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; + current_bar_i = bar_i; + } + } + LOGOUT (NORMAL_ver) << endl; +} + +void +Lilypond_score::quantify_durations () +{ + +} + +void +Lilypond_score::settle_columns () +{ + LOGOUT (NORMAL_ver) << '\n' << _ ("Settling columns...") << endl; + + int n = column_l_array_.size (); + + int start_i = 0; + int end_i = 0; + Rational start_mom = 0; + + Duration smallest_dur; + smallest_dur.durlog_i_ = 6; + Rational const noise_mom = Duration_convert::dur2_mom (smallest_dur) + / Rational (2); + for (int i = 0; i < n; i++) + { + if (!start_i) + { + start_i = end_i = i; + start_mom = column_l_array_ [i]->at_mom (); + continue; + } + + // find all columns within noise's distance + while ( (i < n) + && (column_l_array_ [i]->at_mom () - start_mom < noise_mom)) + end_i = ++i; + + // bluntly set all to time of first in group + for (int j = start_i; j < end_i; j++) + column_l_array_ [j]->at_mom_ = start_mom; + + start_i = end_i = 0; + } +} + diff --git a/midi2ly/lilypond-staff.cc b/midi2ly/lilypond-staff.cc new file mode 100644 index 0000000000..0e79b7f4e2 --- /dev/null +++ b/midi2ly/lilypond-staff.cc @@ -0,0 +1,339 @@ +// +// lilypond-staff.cc -- implement Lilypond_staff +// +// copyright 1997 Jan Nieuwenhuizen + +#include +#include +#include "rational.hh" +#include "duration-convert.hh" +#include "string-convert.hh" +#include "midi2ly-proto.hh" +#include "midi2ly-global.hh" +#include "lilypond-column.hh" +#include "lilypond-item.hh" +#include "lilypond-staff.hh" +#include "lilypond-stream.hh" +#include "lilypond-voice.hh" +#include "lilypond-score.hh" + +#include "killing-cons.tcc" + +extern Lilypond_score* lilypond_score_l_g; + +Lilypond_staff::Lilypond_staff (int number_i, String copyright_str, String track_name_str, String instrument_str) +{ + number_i_ = number_i; + copyright_str_ = copyright_str; + instrument_str_ = instrument_str; + name_str_ = track_name_str; + lilypond_key_l_ = 0; + lilypond_time_signature_l_ = 0; + lilypond_tempo_l_ = 0; +} + +void +Lilypond_staff::add_item (Lilypond_item* lilypond_item_p) +{ + lilypond_item_p_list_.append (new Killing_cons (lilypond_item_p, 0)); + if (lilypond_item_p->lilypond_column_l_) + lilypond_item_p->lilypond_column_l_->add_item (lilypond_item_p); +} +/** + Walk ITEMS and find voices. Remove categorised items. + + TODO: + + * collect all channels into separate voices. Use chords for sim + notes on same channel. + * assume voices/assume chords modes. + + */ +void +Lilypond_staff::eat_voice (Cons_list& items) +{ + Lilypond_voice* voice_p = new Lilypond_voice (this); + lilypond_voice_p_list_.append (new Killing_cons (voice_p, 0)); + + // Rational mom = items.top ()->at_mom (); + Rational mom = 0; + + for (Cons** pp = &items.head_; *pp;) + { + Cons* i = *pp; + if (i->car_->at_mom () > mom) + { + if (no_rests_b_g && voice_p->last_note_l_) + { + voice_p->last_note_l_->end_column_l_ = i->car_->lilypond_column_l_; + } + else + { + /* uh, what about quantisation? This should probably + use mom2standardised_dur () + arg, urg: skip should get duration from start/end columns! + */ + + Rational r = i->car_->at_mom () - mom; + // ugh, need score + Lilypond_column* start = lilypond_score_l_g->find_column_l (mom); + voice_p->add_item (new Lilypond_skip (start, r)); + } + + mom = i->car_->at_mom (); + continue; // unnecessary + } + + Link_array now_items; + for (Cons *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_) + now_items.push (i->car_); + +#if 0 + /* + Why don't we use , if voice has: + + + + we'd get last_item == key_change -> last_note == 0; + */ + Lilypond_note * last_note = dynamic_cast (voice_p->last_item_l_); +#else + /* + Not sure, is this better? + */ + Lilypond_note * last_note = voice_p->last_note_l_; +#endif + + Link_array candidates; + + for (int i=0; last_note && i < now_items.size (); i++) + { + Lilypond_note * now_note = dynamic_cast (now_items[i]); + if (now_note && last_note->channel_i_ != now_note->channel_i_) + candidates.push (now_note); + } + + if (candidates.size()) + { + now_items = candidates; + } + + Lilypond_item * which = 0; + if (now_items.size () > 1) + { + int mindiff = 100000; // ugh + for (int i=0; last_note && i < now_items.size (); i++) + { + Lilypond_note *nt = dynamic_cast (now_items[i]); + if (!nt) + continue; + int diff = abs (last_note->pitch_i_ - nt->pitch_i_ ); + if(diff < mindiff) + { + mindiff = diff; + which = now_items [i]; + } + } + + if (which && mindiff > 18) // more than 1.5 octaves apart. Don't put in same voice. + { + which =0; + } + } + else if (now_items.size () == 1) + which = now_items[0]; + + if (which) + { + while ((*pp)->car_ != which) + pp = &(*pp)->next_; + + mom += (*pp)->car_->duration_mom (); + Cons* c = items.remove_cons (pp); + voice_p->add_item (c->car_); + delete c; + } + else + { + pp = &(*pp)->next_; + continue; + } + } +} + +String +Lilypond_staff::id_str () +{ + String id (name_str ()); + char *cp = id.ch_l (); + char *end = cp + id.length_i (); + for (;cp < end; cp++) + { + if (!isalpha (*cp)) + { + *cp = 'X'; + } + } + return id; +} + +String +Lilypond_staff::name_str () +{ + if (name_str_.length_i ()) + return name_str_; + return String ("track") + to_str (char ('A' - 1 + number_i_)); +} + + + +void +Lilypond_staff::output (Lilypond_stream& lilypond_stream_r) +{ + int c =0; + + String trackbody = ""; + for (Cons* i = lilypond_voice_p_list_.head_; i; i = i->next_) + { + String voicename = id_str () + "voice" + to_str (char (c + 'A')); + + lilypond_stream_r << voicename << " = \\notes "; + + trackbody += "\\" + voicename + "\n"; + + lilypond_stream_r << '\n'; + i->car_->output (lilypond_stream_r); + c++; + } + + lilypond_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n'; + lilypond_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n'; + lilypond_stream_r << id_str () << " = "; + lilypond_stream_r << "<\n " << trackbody << " >\n"; + + lilypond_stream_r << " % " << name_str () << '\n'; +} + +void +Lilypond_staff::output_lilypond_begin_bar (Lilypond_stream& lilypond_stream_r, Rational now_mom, int bar_i) +{ + Rational bar_mom = lilypond_time_signature_l_->bar_mom (); + Rational into_bar_mom = now_mom - Rational (bar_i - 1) * bar_mom; + if (bar_i > 1) + { + if (!into_bar_mom) + lilypond_stream_r << "|\n"; + } + lilypond_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' '); + if (into_bar_mom) + lilypond_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom)); + lilypond_stream_r << '\n'; +} + + +#if 0 // not used for now +void +Lilypond_staff::output_lilypond_rest (Lilypond_stream& lilypond_stream_r, Rational begin_mom, Rational end_mom) +{ + Rational bar_mom = lilypond_time_signature_l_->bar_mom (); + Rational now_mom = begin_mom; + + int begin_bar_i = (int) (now_mom / bar_mom) + 1; + int end_bar_i = (int) (end_mom / bar_mom) + 1; + + if (end_bar_i == begin_bar_i) + { + output_lilypond_rest_remain (lilypond_stream_r, end_mom - begin_mom); + return; + } + + // multiple bars involved + int bar_i = (int) (now_mom / bar_mom) + 1; + + //fill current bar + Rational begin_bar_mom = Rational (begin_bar_i - 1) * bar_mom; + if (now_mom > begin_bar_mom) + { + int next_bar_i = (int) (now_mom / bar_mom) + 2; + Rational next_bar_mom = Rational (next_bar_i - 1) * bar_mom; + assert (next_bar_mom <= end_mom); + + Rational remain_mom = next_bar_mom - now_mom; + if (remain_mom > Rational (0)) + { + output_lilypond_rest_remain (lilypond_stream_r, remain_mom); + now_mom += remain_mom; + } + + bar_i = check_end_bar_i (now_mom, bar_i); + } + + // fill whole bars + int count_i = end_bar_i - bar_i; + for (int i = 0; i < count_i; i++) + { + int begin_bar_i = check_begin_bar_i (now_mom, bar_i); + if (begin_bar_i) + output_lilypond_begin_bar (lilypond_stream_r, now_mom, begin_bar_i); + lilypond_stream_r << "r1 "; + // *lilypond_stream_r.os_p_ << flush; + if (begin_bar_i) + LOGOUT (NORMAL_ver) << begin_bar_i << flush; + bar_i = check_end_bar_i (now_mom, bar_i); + now_mom += bar_mom; + } + + // use "int i" here, and gcc 2.7.2 hits internal compiler error + int ii = check_begin_bar_i (now_mom, bar_i); + if (ii) + output_lilypond_begin_bar (lilypond_stream_r, now_mom, ii); + + // bar_i = check_end_bar_i (now_mom, bar_i); + + Rational remain_mom = end_mom - Rational (end_bar_i - 1) * bar_mom; + if (remain_mom > Rational (0)) + { + output_lilypond_rest_remain (lilypond_stream_r, remain_mom); + now_mom += remain_mom; + } + assert (now_mom == end_mom); +} + +void +Lilypond_staff::output_lilypond_rest_remain (Lilypond_stream& lilypond_stream_r, Rational mom) +{ + if (Duration_convert::no_quantify_b_s) + { + Duration dur = Duration_convert::mom2_dur (mom); + lilypond_stream_r << "r" << dur.str () << " "; + // assert (mom == dur.mom ()); + assert (mom == dur.length ()); + return; + } + + Duration dur = Duration_convert::mom2standardised_dur (mom); + if (dur.type_i_>-10) + lilypond_stream_r << "r" << dur.str () << " "; +} +#endif + + +void +Lilypond_staff::process () +{ + /* + group items into voices + */ + + assert (lilypond_score_l_g); + lilypond_key_l_ = lilypond_score_l_g->lilypond_key_l_; + lilypond_time_signature_l_ = lilypond_score_l_g->lilypond_time_signature_l_; + lilypond_tempo_l_ = lilypond_score_l_g->lilypond_tempo_l_; + + Cons_list items; + for (Cons* i = lilypond_item_p_list_.head_; i; i = i->next_) + items.append (new Cons (i->car_, 0)); + + while (items.size_i ()) + eat_voice (items); +} diff --git a/midi2ly/lilypond-stream.cc b/midi2ly/lilypond-stream.cc new file mode 100644 index 0000000000..f7ee15839b --- /dev/null +++ b/midi2ly/lilypond-stream.cc @@ -0,0 +1,192 @@ +// +// lilypond-stream.cc +// +// source file of the LilyPond music typesetter +// +// (c) 1997--1998, 1998 Jan Nieuwenhuizen + +#include +#include +#include +#include "midi2ly-global.hh" +#include "lilypond-item.hh" +#include "lilypond-stream.hh" +#include "string-convert.hh" + +extern String filename_str_g; + +static int const INDENT_i = 8; + +Lilypond_stream::Lilypond_stream (String filename_str) +{ + filename_str_ = filename_str; + pending_indent_i_ = 0; + os_p_ = 0; + indent_i_ = 0; + comment_mode_b_ = false; + column_i_ = 0; + wrap_column_i_ = 68; + open(); + header(); +} + +Lilypond_stream::~Lilypond_stream () +{ + delete os_p_; + if (indent_i_) + warning (_f ("lily indent level: %d", indent_i_)); +} + +Lilypond_stream& +Lilypond_stream::operator << (char c) +{ + *this << to_str (c); + return *this; +} + +Lilypond_stream& +Lilypond_stream::operator << (String s) +{ + static String word_sep_str = "{} \t\n"; + while (s.length_i()) + { + int i = s.index_any_i (word_sep_str) + 1; + if (!i) + i = s.length_i(); + String word = s.left_str (i); + s = s.cut_str (i, s.length_i()); + output_wrapped (word); + } + return *this; +} + +Lilypond_stream& +Lilypond_stream::operator << (Lilypond_item& lilypond_item_r) +{ + lilypond_item_r.output (*this); + *os_p_ << flush; + return *this; +} + +void +Lilypond_stream::handle_pending_indent() +{ + *os_p_ << String_convert::char_str ('\t', pending_indent_i_); + column_i_ += pending_indent_i_ * INDENT_i; + pending_indent_i_ = 0; +} + +void +Lilypond_stream::header() +{ + /* Maybe better not to translate these? */ + *os_p_ << _ ("% Creator: "); + if (no_timestamps_b_g) + *os_p_ << "GNU LilyPond\n"; + else + *os_p_ << midi2ly_version_str() << '\n'; + *os_p_ << _ ("% Automatically generated"); + if (no_timestamps_b_g) + *os_p_ << ".\n"; + else + { + *os_p_ << _ (", at "); + time_t t (time (0)); + *os_p_ << ctime (&t) << "%\n"; + } + *os_p_ << _ ("% from input file: "); + // *os_p_ << midi_parser_l_g->filename_str_; + // ugh + *os_p_ << filename_str_g; + *os_p_ << "\n\n"; + // ugh + *os_p_ << "\\version \"1.3.76\";\n"; +} + +void +Lilypond_stream::open() +{ + os_p_ = new ofstream (filename_str_.ch_C ()); + if (!*os_p_) + error (_f ("can't open file: `%s'", filename_str_)); +} + +void +Lilypond_stream::output (String str) +{ + for (int i = 0; i < str.length_i(); i++) + { + char c = str[ i ]; + switch (c) + { + case '{' : + case '<' : + handle_pending_indent(); + if (column_i_ == indent_i_ * INDENT_i) + output ("\t"); + indent_i_++; + *os_p_ << c; + column_i_++; + break; + case '}' : + case '>' : + assert (indent_i_); + indent_i_--; + if (pending_indent_i_) + pending_indent_i_--; + handle_pending_indent(); + *os_p_ << c; + column_i_++; + break; + case '%' : + handle_pending_indent(); + comment_mode_b_ = true; + *os_p_ << c; + column_i_++; + break; + case '\t' : + handle_pending_indent(); + *os_p_ << c; + column_i_ += INDENT_i; + break; + case '\n' : + *os_p_ << endl; + pending_indent_i_ = indent_i_; + column_i_ = 0; + comment_mode_b_ = false; + break; + default : + handle_pending_indent(); + *os_p_ << c; + column_i_++; + break; + } + } +} + +void +Lilypond_stream::output_wrapped (String str) +{ + // enough room left -> doit + if (column_i_ + str.length_i() <= wrap_column_i_) + { + output (str); + return; + } + + // we're at BOL already; this will never fit -> doit + if (column_i_ == indent_i_ * INDENT_i) + { + output (str); + return; + } + + // ok, let's wrap + // preserve comment mode + if (comment_mode_b_) + output (String ("\n%")); + else + output (String ("\n")); + + output (str); +} diff --git a/midi2ly/lilypond-voice.cc b/midi2ly/lilypond-voice.cc new file mode 100644 index 0000000000..9595b93569 --- /dev/null +++ b/midi2ly/lilypond-voice.cc @@ -0,0 +1,105 @@ +// +// lilypond-voice.cc -- implement Lilypond_voice +// +// copyright 1997 Jan Nieuwenhuizen + +#include "string-convert.hh" +#include "midi2ly-global.hh" +#include "lilypond-column.hh" +#include "lilypond-item.hh" +#include "lilypond-staff.hh" +#include "lilypond-stream.hh" +#include "lilypond-voice.hh" +#include "lilypond-score.hh" + +extern Lilypond_score* lilypond_score_l_g; + +Lilypond_voice::Lilypond_voice (Lilypond_staff* lilypond_staff_l) +{ + lilypond_staff_l_ = lilypond_staff_l; + last_item_l_ =0; + last_note_l_ =0; +} + +void +Lilypond_voice::add_item (Lilypond_item* lilypond_item_l) +{ + last_item_l_ = lilypond_item_l; + if (Lilypond_note* n = dynamic_cast (lilypond_item_l)) + { + last_note_l_ = n; + } + lilypond_item_l_list_.append (new Cons (lilypond_item_l, 0)); +} + +/** + analyse pitches to determine clef. + */ +String +Lilypond_voice::get_clef () const +{ + Lilypond_note * n =0; + + for (Cons *cp = lilypond_item_l_list_.head_; !n && cp; cp = cp->next_) + { + n = dynamic_cast (cp->car_); + } + + if (!n) + return ""; + + int p = n->pitch_i_; + + if (p < 56) + return "\\clef \"bass\";\n"; + else if (p > 67) + return "\\clef \"treble\";\n"; + else + return ""; +} + +static int const FAIRLY_LONG_VOICE_i = 6; + +void +Lilypond_voice::output (Lilypond_stream& lilypond_stream_r) +{ + lilypond_stream_r << "{ "; + if (lilypond_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i) + lilypond_stream_r << '\n'; + + + lilypond_stream_r << get_clef () << '\n'; + + int current_bar_i = 0; + Rational bar_mom = lilypond_staff_l_->lilypond_time_signature_l_->bar_mom (); + + for (Cons* i = lilypond_item_l_list_.head_; i; i = i->next_) + { + Rational at_mom = i->car_->lilypond_column_l_->at_mom (); + int bar_i = (int) (at_mom / bar_mom) + 1; + if (bar_i > current_bar_i) + { + if (current_bar_i) + { + if (at_mom == Rational (bar_i - 1) * bar_mom) + lilypond_stream_r << "|"; + lilypond_stream_r << "\n% "; + lilypond_stream_r << String_convert::i2dec_str (bar_i, 0, ' '); + lilypond_stream_r << '\n'; + } + LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; + current_bar_i = bar_i; + } + + lilypond_stream_r << *i->car_; + if (Lilypond_key* k = dynamic_cast (i->car_)) + lilypond_staff_l_->lilypond_key_l_ = lilypond_score_l_g->lilypond_key_l_ = k; + } + + if (lilypond_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i) + lilypond_stream_r << '\n'; + + lilypond_stream_r << "} "; +} + + diff --git a/midi2ly/main.cc b/midi2ly/main.cc index 38ce2703a6..d48b8739f0 100644 --- a/midi2ly/main.cc +++ b/midi2ly/main.cc @@ -16,8 +16,8 @@ #include "midi2ly-global.hh" #include "midi-score-parser.hh" -#include "mudela-item.hh" -#include "mudela-score.hh" +#include "lilypond-item.hh" +#include "lilypond-score.hh" #if HAVE_GETTEXT #include @@ -28,7 +28,7 @@ String filename_str_g; // ugh -Mudela_score* mudela_score_l_g = 0; +Lilypond_score* lilypond_score_l_g = 0; bool no_timestamps_b_g = false; bool no_rests_b_g = false; @@ -113,7 +113,7 @@ usage() { cout << _f ("Usage: %s [OPTION]... [FILE]", "midi2ly"); cout << '\n'; - cout << _ ("Translate MIDI-file to mudela"); + cout << _ ("Translate MIDI-file to lilypond"); cout << '\n'; cout << '\n'; cout << _ ("Options:"); @@ -154,7 +154,7 @@ main (int argc_i, char* argv_sz_a[]) #endif bool key_override_b = false; - Mudela_key key (0, 0); + Lilypond_key key (0, 0); Getopt_long getopt_long (argc_i, argv_sz_a, long_option_init_a); @@ -254,15 +254,15 @@ main (int argc_i, char* argv_sz_a[]) show_settings (); filename_str_g = arg_sz; Midi_score_parser midi_parser; - Mudela_score* score_p = midi_parser.parse (arg_sz, &source); + Lilypond_score* score_p = midi_parser.parse (arg_sz, &source); if (!score_p) return 1; // if given on command line: override - if (key_override_b || !score_p->mudela_key_l_) - score_p->mudela_key_l_ = &key; - mudela_score_l_g = score_p; + if (key_override_b || !score_p->lilypond_key_l_) + score_p->lilypond_key_l_ = &key; + lilypond_score_l_g = score_p; score_p->process(); if (!output_str.length_i ()) diff --git a/midi2ly/midi-score-parser.cc b/midi2ly/midi-score-parser.cc index e80e85740b..a09f28fce4 100644 --- a/midi2ly/midi-score-parser.cc +++ b/midi2ly/midi-score-parser.cc @@ -12,8 +12,8 @@ #include "midi2ly-global.hh" #include "midi-score-parser.hh" #include "midi-track-parser.hh" -#include "mudela-item.hh" -#include "mudela-score.hh" +#include "lilypond-item.hh" +#include "lilypond-score.hh" void @@ -26,7 +26,7 @@ Midi_score_parser::open (String filename_str, Sources* sources_l) info_l_->end_byte_L_ = info_l_->byte_L_ + info_l_->source_l_->length_i () + 1; } -Mudela_score* +Lilypond_score* Midi_score_parser::parse (String filename_str, Sources* sources_l) { Midi_parser_info info; @@ -77,14 +77,14 @@ Midi_score_parser::find_earliest_i (Link_array& tracks) return earliest_i; } -Mudela_score* +Lilypond_score* Midi_score_parser::parse_score () { int current_bar_i = 0; - Mudela_time_signature m4 (4, 2, 24, 8); + Lilypond_time_signature m4 (4, 2, 24, 8); Rational bar4_mom = m4.bar_mom (); - Mudela_score* score_p = new Mudela_score( 1, 1, 1 ); + Lilypond_score* score_p = new Lilypond_score( 1, 1, 1 ); info_l_->score_l_ = score_p; Link_array tracks; @@ -97,8 +97,8 @@ Midi_score_parser::parse_score () { int i = find_earliest_i (tracks); Rational at_mom = tracks [i]->at_mom (); - Mudela_column* column_l = score_p->get_column_l (at_mom); - Mudela_staff* staff_p = tracks [i]->parse (column_l); + Lilypond_column* column_l = score_p->get_column_l (at_mom); + Lilypond_staff* staff_p = tracks [i]->parse (column_l); if ( staff_p ) { score_p->add_staff (staff_p); diff --git a/midi2ly/midi-track-parser.cc b/midi2ly/midi-track-parser.cc index 69c7ed080e..3b62ffc106 100644 --- a/midi2ly/midi-track-parser.cc +++ b/midi2ly/midi-track-parser.cc @@ -10,24 +10,24 @@ #include "string-convert.hh" #include "midi2ly-global.hh" #include "midi-track-parser.hh" -#include "mudela-column.hh" -#include "mudela-item.hh" -#include "mudela-score.hh" -#include "mudela-staff.hh" +#include "lilypond-column.hh" +#include "lilypond-item.hh" +#include "lilypond-score.hh" +#include "lilypond-staff.hh" Midi_track_parser::Midi_track_parser (Midi_parser_info* info_l, int i) { info_l_ = info_l; at_mom_ = 0; track_info_p_ = 0; - mudela_staff_p_ = new Mudela_staff (i, "", "", ""); + lilypond_staff_p_ = new Lilypond_staff (i, "", "", ""); parse_header (); parse_delta_time (); } Midi_track_parser::~Midi_track_parser () { - delete mudela_staff_p_; + delete lilypond_staff_p_; delete track_info_p_; } @@ -46,16 +46,16 @@ Midi_track_parser::eot () } void -Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, int aftertouch_i ) +Midi_track_parser::note_end (Lilypond_column* col_l, int channel_i, int pitch_i, int aftertouch_i ) { // junk dynamics (void)aftertouch_i; assert (col_l); - for (Cons** pp = &open_note_l_list_.head_; *pp;) + for (Cons** pp = &open_note_l_list_.head_; *pp;) { - Cons* i = *pp; + Cons* i = *pp; if ((i->car_->pitch_i_ == pitch_i) && (i->car_->channel_i_ == channel_i)) { i->car_->end_column_l_ = col_l; @@ -70,11 +70,11 @@ Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, i } void -Midi_track_parser::note_end_all (Mudela_column* col_l) +Midi_track_parser::note_end_all (Lilypond_column* col_l) { // find assert (col_l); - for (Cons* i = open_note_l_list_.head_; i; i = i->next_) + for (Cons* i = open_note_l_list_.head_; i; i = i->next_) { i->car_->end_column_l_ = col_l; } @@ -82,15 +82,15 @@ Midi_track_parser::note_end_all (Mudela_column* col_l) open_note_l_list_.init (); } -Mudela_staff* -Midi_track_parser::parse (Mudela_column* col_l) +Lilypond_staff* +Midi_track_parser::parse (Lilypond_column* col_l) { Rational mom = at_mom (); while (!eot () && (mom == at_mom ())) { - Mudela_item* p = parse_event (col_l); + Lilypond_item* p = parse_event (col_l); if (p) - mudela_staff_p_->add_item (p); + lilypond_staff_p_->add_item (p); } if (!eot()) @@ -99,8 +99,8 @@ Midi_track_parser::parse (Mudela_column* col_l) // catch-all note_end_all (col_l); - Mudela_staff* p = mudela_staff_p_; - mudela_staff_p_ = 0; + Lilypond_staff* p = lilypond_staff_p_; + lilypond_staff_p_ = 0; return p; } @@ -113,8 +113,8 @@ Midi_track_parser::parse_delta_time () at_mom_ += Rational (delta_i, info_l_->division_1_i_); } -Mudela_item* -Midi_track_parser::parse_event (Mudela_column* col_l) +Lilypond_item* +Midi_track_parser::parse_event (Lilypond_column* col_l) { Byte byte = peek_byte (); // RUNNING_STATUS [\x00-\x5f] @@ -131,7 +131,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l) else byte = next_byte (); - Mudela_item* item_p = 0; + Lilypond_item* item_p = 0; // DATA_ENTRY [\x60-\x79] if ((byte >= 0x60) && (byte <= 0x79)) { @@ -166,9 +166,9 @@ Midi_track_parser::parse_event (Mudela_column* col_l) */ if (dyn_i) { - Mudela_note* p = new Mudela_note (col_l, channel_i, pitch_i, dyn_i); + Lilypond_note* p = new Lilypond_note (col_l, channel_i, pitch_i, dyn_i); item_p = p; - open_note_l_list_.append (new Cons (p, 0)); + open_note_l_list_.append (new Cons (p, 0)); } else { @@ -245,15 +245,15 @@ Midi_track_parser::parse_event (Mudela_column* col_l) int length_i = get_var_i (); String str = get_str (length_i); // LOGOUT (DEBUG_ver) << str << endl; - Mudela_text::Type t = (Mudela_text::Type)byte; - Mudela_text* p = new Mudela_text (t, str); + Lilypond_text::Type t = (Lilypond_text::Type)byte; + Lilypond_text* p = new Lilypond_text (t, str); item_p = p; - if (t == Mudela_text::COPYRIGHT) - mudela_staff_p_->copyright_str_ = p->text_str_; - else if (t == Mudela_text::TRACK_NAME) - mudela_staff_p_->name_str_ = p->text_str_; - else if (t == Mudela_text::INSTRUMENT_NAME) - mudela_staff_p_->instrument_str_ = p->text_str_; + if (t == Lilypond_text::COPYRIGHT) + lilypond_staff_p_->copyright_str_ = p->text_str_; + else if (t == Lilypond_text::TRACK_NAME) + lilypond_staff_p_->name_str_ = p->text_str_; + else if (t == Lilypond_text::INSTRUMENT_NAME) + lilypond_staff_p_->instrument_str_ = p->text_str_; } // END_OF_TRACK [\x2f][\x00] else @@ -269,12 +269,12 @@ Midi_track_parser::parse_event (Mudela_column* col_l) { next_byte (); unsigned useconds_per_4_u = get_u (3); - // $$ = new Mudela_tempo ( ($2 << 16) + ($3 << 8) + $4); + // $$ = new Lilypond_tempo ( ($2 << 16) + ($3 << 8) + $4); // LOGOUT (DEBUG_ver) << $$->str() << endl; - Mudela_tempo* p = new Mudela_tempo ( useconds_per_4_u ); + Lilypond_tempo* p = new Lilypond_tempo ( useconds_per_4_u ); item_p = p; - info_l_->score_l_->mudela_tempo_l_ = p; - mudela_staff_p_->mudela_tempo_l_ = p; + info_l_->score_l_->lilypond_tempo_l_ = p; + lilypond_staff_p_->lilypond_tempo_l_ = p; } // SMPTE_OFFSET [\x54][\x05] else if ((byte == 0x54) && (next == 0x05)) @@ -294,11 +294,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l) int den_i = (int)next_byte (); int clocks_4_i = (int)next_byte (); int count_32_i = (int)next_byte (); - Mudela_time_signature* p = new Mudela_time_signature ( num_i, den_i, clocks_4_i, count_32_i ); + Lilypond_time_signature* p = new Lilypond_time_signature ( num_i, den_i, clocks_4_i, count_32_i ); item_p = p; - info_l_->score_l_->mudela_time_signature_l_ = p; + info_l_->score_l_->lilypond_time_signature_l_ = p; info_l_->bar_mom_ = p->bar_mom (); - mudela_staff_p_->mudela_time_signature_l_ = p; + lilypond_staff_p_->lilypond_time_signature_l_ = p; } // KEY [\x59][\x02] else if ((byte == 0x59) && (next == 0x02)) @@ -306,11 +306,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l) next_byte (); int accidentals_i = (int)(signed char)next_byte (); int minor_i = (int)(bool)next_byte (); - Mudela_key* p = new Mudela_key (accidentals_i, minor_i); + Lilypond_key* p = new Lilypond_key (accidentals_i, minor_i); item_p = p; #if 0 - info_l_->score_l_->mudela_key_l_ = p; - mudela_staff_p_->mudela_key_l_ = p; + info_l_->score_l_->lilypond_key_l_ = p; + lilypond_staff_p_->lilypond_key_l_ = p; #endif } // SSME [\0x7f][\x03] @@ -319,7 +319,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l) next_byte (); int length_i = get_var_i (); String str = get_str (length_i); - item_p = new Mudela_text ((Mudela_text::Type)byte, str); + item_p = new Lilypond_text ((Lilypond_text::Type)byte, str); } else { @@ -333,7 +333,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l) exit (_ ("invalid MIDI event")); if (item_p) - item_p->mudela_column_l_ = col_l; + item_p->lilypond_column_l_ = col_l; parse_delta_time (); diff --git a/midi2ly/mudela-column.cc b/midi2ly/mudela-column.cc index e45e985c0e..e69de29bb2 100644 --- a/midi2ly/mudela-column.cc +++ b/midi2ly/mudela-column.cc @@ -1,24 +0,0 @@ -// -// mudela-column.cc -- implement Mudela_column -// -// copyright 1997 Jan Nieuwenhuizen - -#include "mudela-column.hh" - -Mudela_column::Mudela_column (Mudela_score* mudela_score_l, Rational mom) -{ - mudela_score_l_ = mudela_score_l; - at_mom_ = mom; -} - -void -Mudela_column::add_item (Mudela_item* mudela_item_l) -{ - mudela_item_l_list_.append (new Cons (mudela_item_l, 0)); -} - -Rational -Mudela_column::at_mom() -{ - return at_mom_; -} diff --git a/midi2ly/mudela-item.cc b/midi2ly/mudela-item.cc index 1415acd933..e69de29bb2 100644 --- a/midi2ly/mudela-item.cc +++ b/midi2ly/mudela-item.cc @@ -1,364 +0,0 @@ -// -// mudela-item.cc -- implement Mudela_item -// -// copyright 1997 Jan Nieuwenhuizen - -#include -#include -#include "midi2ly-global.hh" -#include "string-convert.hh" -#include "duration-convert.hh" -#include "mudela-column.hh" -#include "mudela-item.hh" -#include "mudela-stream.hh" -#include "mudela-score.hh" - -Mudela_item::Mudela_item (Mudela_column* mudela_column_l) -{ - mudela_column_l_ = mudela_column_l; -} - -Mudela_item::~Mudela_item () -{ -} - -Rational -Mudela_item::at_mom () -{ - return mudela_column_l_->at_mom (); -} - -Rational -Mudela_item::duration_mom () -{ - return Rational (0); -} - -void -Mudela_item::output (Mudela_stream& mudela_stream_r) -{ - mudela_stream_r << str () << " "; -} - -Mudela_key::Mudela_key (int accidentals_i, int minor_i) - : Mudela_item (0) -{ - accidentals_i_ = accidentals_i; - minor_i_ = minor_i; -} - -char const *accname[] = {"eses", "es", "", "is" , "isis"}; - -String -Mudela_key::str () -{ - int key_i = accidentals_i_ >= 0 - ? ((accidentals_i_ % 7) ["cgdaebf"] - 'a' - 2 -2 * minor_i_ + 7) % 7 - : ((-accidentals_i_ % 7) ["cfbeadg"] - 'a' - 2 -2 * minor_i_ + 7) % 7; - - String notename_str = !minor_i_ - ? to_str ((char) ((key_i + 2) % 7 + 'a')) - : to_str ((char) ((key_i + 2) % 7 + 'a')); - - // fis cis gis dis ais eis bis - static int sharps_i_a [7] = { 2, 4, 6, 1, 3, 5, 7 }; - // bes es as des ges ces fes - static int flats_i_a [7] = { 6, 4, 2, 7, 5, 3, 1 }; - int accidentals_i = accidentals_i_ >= 0 - ? sharps_i_a [key_i] <= accidentals_i_ ? 1 : 0 - : flats_i_a [key_i] <= -accidentals_i_ ? -1 : 0; - - if (accidentals_i) - notename_str += String (accname [accidentals_i + 2]); - - return "\\key " + notename_str + (minor_i_ ? "\\minor" : "\\major") + ";\n"; -} - -String -Mudela_key::notename_str (int pitch_i) -{ - // this may seem very smart, - // but it-s only an excuse not to read a notename table - - // major scale: do-do - // minor scale: la-la (= + 5) - static int notename_i_a [12] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 }; - int notename_i = notename_i_a [pitch_i % 12]; - - static int accidentals_i_a [12] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 }; - int accidental_i = accidentals_i_a [(minor_i_ * 5 + pitch_i) % 12]; - if (accidental_i && (accidentals_i_ < 0)) - { - accidental_i *= -1; - notename_i = (notename_i + 1) % 7; - } - - String notename_str = to_str ((char)(((notename_i + 2) % 7) + 'a')); - if (accidental_i) - notename_str += String (accname [accidental_i + 2]); - - /* - By tradition, all scales now consist of a sequence of 7 notes each - with a distinct name, from amongst a b c d e f g. But, minor scales - have a wide second interval at the top - the 'leading note' is - sharped. (Why? it just works that way! Anything else doesn't sound as - good and isn't as flexible at saying things. In medieval times, - scales only had 6 notes to avoid this problem - the hexachords.) - - So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat - for the leading note would skip the name c and duplicate the name d. - Why isn't c-sharp put in the key signature? Tradition. (It's also - supposedly based on the Pythagorean theory of the cycle of fifths, - but that really only applies to major scales...) - - Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other - flat minor keys end up with a natural leading note. And there you - have it. - - John Sankey - - Let's also do a-minor: a b c d e f gis a - - --jcn - - */ - - /* ok, bit ugly, but here we go -- jcn */ - - - if (minor_i_) - { - if ((accidentals_i_ == 0) && (notename_str == "as")) - notename_str = "gis"; - else if ((accidentals_i_ == -1) && (notename_str == "des")) - notename_str = "cis"; - else if ((accidentals_i_ == -2) && (notename_str == "ges")) - notename_str = "fis"; - else if ((accidentals_i_ == 5) && (notename_str == "g")) - notename_str = "fisis"; - else if ((accidentals_i_ == 6) && (notename_str == "d")) - notename_str = "cisis"; - else if ((accidentals_i_ == 7) && (notename_str == "a")) - notename_str = "gisis"; - - if ((accidentals_i_ <= -6) && (notename_str == "b")) - notename_str = "ces"; - if ((accidentals_i_ <= -7) && (notename_str == "e")) - notename_str = "fes"; - } - - String de_octavate_str = to_str (',', (Mudela_note::c0_pitch_i_c_ + 11 - pitch_i) / 12); - String octavate_str = to_str ('\'', (pitch_i - Mudela_note::c0_pitch_i_c_) / 12); - return notename_str +de_octavate_str + octavate_str; -} - -Mudela_time_signature::Mudela_time_signature (int num_i, int den_i, int clocks_4_i, int count_32_i) - : Mudela_item (0) -{ - sync_dur_.durlog_i_ = 3; - sync_f_ = 1.0; - if (count_32_i != 8) - warning (_f ("#32 in quarter: %d", count_32_i)); - num_i_ = num_i; - den_i_ = den_i; - clocks_1_i_ = clocks_4_i * 4; -} - -Rational -Mudela_time_signature::bar_mom () -{ - Duration d; - d.durlog_i_ = den_i_; - return Rational (num_i_) * Duration_convert::dur2_mom (d); -} - -int -Mudela_time_signature::clocks_1_i () -{ - return clocks_1_i_; -} - -int -Mudela_time_signature::den_i () -{ - return den_i_; -} - -int -Mudela_time_signature::num_i () -{ - return num_i_; -} - -String -Mudela_time_signature::str () -{ - String str = "\\time " - + to_str (num_i_) + "/" + to_str (1 << den_i_) - + ";\n"; - return str; -} - - -// statics Mudela_note -/* - this switch can be used to write simple plets like - c4*2/3 - as - \plet 2/3; c4 \plet 1/1; - */ -/* - UGH: .hh says false, .cc says true. - FIXME. - */ -bool const Mudela_note::simple_plet_b_s; - -Mudela_note::Mudela_note (Mudela_column* mudela_column_l, - int channel_i, int pitch_i, int dyn_i) - : Mudela_item (mudela_column_l) -{ - // junk dynamics - (void)dyn_i; - channel_i_ = channel_i; - pitch_i_ = pitch_i; - end_column_l_ = 0; -} - -Duration -Mudela_note::duration () -{ - assert (end_column_l_); - Rational mom = end_column_l_->at_mom () - at_mom (); - return Duration_convert::mom2_dur (mom); -} - -Rational -Mudela_note::duration_mom () -{ - assert (end_column_l_); - return end_column_l_->at_mom () - at_mom (); -} - -String -Mudela_note::str () -{ - Duration dur = duration (); - if (dur.durlog_i_ < -10) - return ""; - - String name_str - = mudela_column_l_->mudela_score_l_->mudela_key_l_->notename_str (pitch_i_); - - if (simple_plet_b_s) - return name_str + Duration_convert::dur2_str (dur) + " "; - - String str; - - //ugh - if (dur.plet_b ()) - str += String ("\\times ") - + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0) - + "/" - + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0) - + " { "; - - - str += name_str; - - Duration tmp = dur; - tmp.set_plet (1,1); - str += Duration_convert::dur2_str (tmp); - - if (dur.plet_b ()) - str += String (" }"); - - /* - note of zero duration is nonsense, - but let's output anyway for convenient debugging - */ - if (!duration_mom ()) - return String ("\n% ") + str + "\n"; - - return str + " "; -} - -Mudela_skip::Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom) - : Mudela_item (mudela_column_l) -{ - mom_ = skip_mom; -} - -Duration -Mudela_skip::duration () -{ - return Duration_convert::mom2_dur (mom_); -} - -Rational -Mudela_skip::duration_mom () -{ - return Duration_convert::dur2_mom (duration ()); -} - -String -Mudela_skip::str () -{ - if (!mom_) - return String (""); - - Duration dur = duration (); - if (dur.durlog_i_<-10) - return ""; - - String str = "\\skip "; - str += Duration_convert::dur2_str (dur) + "; "; - - return str; -} - -Mudela_tempo::Mudela_tempo (int useconds_per_4_i) - : Mudela_item (0) -{ - useconds_per_4_i_ = useconds_per_4_i; - seconds_per_1_mom_ = Rational(useconds_per_4_i_ *4, 1e6); -} - -String -Mudela_tempo::str () -{ - String str = "\\tempo 4="; - str += to_str (get_tempo_i (Rational (1, 4))); - str += ";\n"; - return str; -} - -int -Mudela_tempo::useconds_per_4_i () -{ - return useconds_per_4_i_; -} - -int -Mudela_tempo::get_tempo_i (Rational rational) -{ - Rational m1 = Rational (60) / rational; - Rational m2 = seconds_per_1_mom_; - return m1 / m2; -} - -Mudela_text::Mudela_text (Mudela_text::Type type, String text_str) - : Mudela_item (0) -{ - type_ = type; - text_str_ = text_str; -} - -String -Mudela_text::str () -{ - if (!text_str_.length_i () - || (text_str_.length_i () != (int)strlen (text_str_.ch_C ()))) - return ""; - - return "% " + text_str_ + "\n"; -} diff --git a/midi2ly/mudela-score.cc b/midi2ly/mudela-score.cc index 05d570f4fd..e69de29bb2 100644 --- a/midi2ly/mudela-score.cc +++ b/midi2ly/mudela-score.cc @@ -1,256 +0,0 @@ -// -// mudela-score.cc -- implement Mudela_score -// -// copyright 1997 Jan Nieuwenhuizen - -#include -#include "rational.hh" -#include "duration.hh" -#include "duration-convert.hh" -#include "midi2ly-global.hh" -#include "mudela-column.hh" -#include "mudela-item.hh" -#include "mudela-score.hh" -#include "mudela-staff.hh" -#include "mudela-stream.hh" - -#include "killing-cons.tcc" - -//static Mudela_key key_c (0, 0); -static Mudela_time_signature time_sig_4 (4, 2, 24, 8); -// useconds per 4: 250000 === 60 4 per minute -static Mudela_tempo tempo_60 (1000000); - -Mudela_score::Mudela_score (int format_i, int tracks_i, int tempo_i) -{ - last_staff_l_ =0; - format_i_ = format_i; - tracks_i_ = tracks_i; - tempo_i_ = tempo_i; - column_l_array_.push (new Mudela_column (this, Rational (0))); - // mudela_key_l_ = &key_c; - mudela_key_l_ = 0; - mudela_time_signature_l_ = &time_sig_4; - mudela_tempo_l_ = &tempo_60; -} - -Mudela_score::~Mudela_score () -{ -} - -void -Mudela_score::add_item (Mudela_item* mudela_item_p) -{ - last_staff_l_->add_item (mudela_item_p); -} - -void -Mudela_score::add_staff (Mudela_staff* mudela_staff_p) -{ - mudela_staff_p_list_.append (new Killing_cons (mudela_staff_p, 0)); - last_staff_l_ = mudela_staff_p; -} - -Mudela_column* -Mudela_score::find_column_l (Rational mom) -{ - int upper_i = max (0, column_l_array_.size () - 1); - int lower_i = 0; - int i = 0; //upper_i; - while (1) - { - Rational i_mom = column_l_array_ [i]->at_mom (); - if (i_mom == mom) - return column_l_array_ [i]; - if (mom < i_mom) - upper_i = i; - else - lower_i = i; - if ( (upper_i == lower_i) || (i == column_l_array_.size () - 1)) - { - // we don't do inserts - assert (0); - Mudela_column* col_p = new Mudela_column (this, mom); - column_l_array_.push (col_p); - return col_p; - } - i = (upper_i + lower_i + 1 ) / 2; - } - assert (0); - return 0; -} - -Mudela_column* -Mudela_score::get_column_l (Rational mom) -{ - int i; - Mudela_column *c=0; - for (i=column_l_array_.size () - 1; !c && i >=0; i--) - { - if (column_l_array_ [i]->at_mom () == mom ) - c = column_l_array_[i]; - else if (column_l_array_[i]->at_mom () < mom) - break; - } - if (!c) - { - c = new Mudela_column (this, mom); - column_l_array_.insert (c, i+1); - } - - assert (c->at_mom () == mom); - return c; -} - -void -Mudela_score::output (String filename_str) -{ - LOGOUT (NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl; - - // ugh, ugly midi type 1 fix - if ( (mudela_staff_p_list_.size_i () == 1) - && !mudela_staff_p_list_.head_->car_->number_i_) - mudela_staff_p_list_.head_->car_->number_i_ = 1; - - int track_i = 0; - Mudela_stream mudela_stream (filename_str); - for (Cons* i = mudela_staff_p_list_.head_; i; i = i->next_) - { - LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush; - i->car_->output (mudela_stream); - mudela_stream << '\n'; - LOGOUT (NORMAL_ver) << endl; - } - - mudela_stream << "\\score{\n"; - if (mudela_staff_p_list_.size_i () > 1) - mudela_stream << "< \n"; - for (Cons* i = mudela_staff_p_list_.head_; i; i = i->next_) - { - if ( (mudela_staff_p_list_.size_i () != 1) - && (i->car_ == mudela_staff_p_list_.head_->car_)) - continue; - mudela_stream << "\\context Staff = \"" << i->car_->id_str () << "\" "; - mudela_stream << String ("\\" + i->car_->id_str ()) << '\n'; - } - if (mudela_staff_p_list_.size_i () > 1) - mudela_stream << ">\n"; - - mudela_stream << "\\paper{}\n"; - -#if 1 - mudela_stream << "\\midi{\n"; - - // let's not use silly 0 track - last_cons (mudela_staff_p_list_.head_)->car_->mudela_tempo_l_->output (mudela_stream); - mudela_stream << "}\n"; -#endif - - mudela_stream << "}\n"; -} - -void -Mudela_score::process () -{ - LOGOUT (NORMAL_ver) << '\n' << _ ("Processing...") << endl; - - LOGOUT (DEBUG_ver) << "columns\n"; - - settle_columns (); - filter_tempo (); - quantify_columns (); - quantify_durations (); - - LOGOUT (NORMAL_ver) << '\n' << _ ("Creating voices...") << endl; - int track_i = 0; - for (Cons* i = mudela_staff_p_list_.head_; i; i = i->next_) - { - LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush; - i->car_->process (); - LOGOUT (NORMAL_ver) << endl; - } -} - -void -Mudela_score::filter_tempo () -{ - LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl; -} - -void -Mudela_score::quantify_columns () -{ - // ugh - if (Duration_convert::no_quantify_b_s) - { - LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Quantifying columns...") << endl; - return; - } - - LOGOUT (NORMAL_ver) << '\n' << _ ("Quantifying columns...") << endl; - - int current_bar_i = 0; - Rational bar_mom = mudela_time_signature_l_->bar_mom (); - - int n = 5 >? Duration_convert::no_smaller_than_i_s; - n = Duration_convert::type2_i (n); - Rational s = Rational (1, n); - for (int i = 0; i < column_l_array_.size (); i++) - { - column_l_array_ [i]->at_mom_ = - s * Rational ( (int) ( (column_l_array_ [i]->at_mom ()) / s)); - - int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1; - if (bar_i > current_bar_i) - - { - LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; - current_bar_i = bar_i; - } - } - LOGOUT (NORMAL_ver) << endl; -} - -void -Mudela_score::quantify_durations () -{ - -} - -void -Mudela_score::settle_columns () -{ - LOGOUT (NORMAL_ver) << '\n' << _ ("Settling columns...") << endl; - - int n = column_l_array_.size (); - - int start_i = 0; - int end_i = 0; - Rational start_mom = 0; - - Duration smallest_dur; - smallest_dur.durlog_i_ = 6; - Rational const noise_mom = Duration_convert::dur2_mom (smallest_dur) - / Rational (2); - for (int i = 0; i < n; i++) - { - if (!start_i) - { - start_i = end_i = i; - start_mom = column_l_array_ [i]->at_mom (); - continue; - } - - // find all columns within noise's distance - while ( (i < n) - && (column_l_array_ [i]->at_mom () - start_mom < noise_mom)) - end_i = ++i; - - // bluntly set all to time of first in group - for (int j = start_i; j < end_i; j++) - column_l_array_ [j]->at_mom_ = start_mom; - - start_i = end_i = 0; - } -} - diff --git a/midi2ly/mudela-staff.cc b/midi2ly/mudela-staff.cc index 284cc5ef0f..e69de29bb2 100644 --- a/midi2ly/mudela-staff.cc +++ b/midi2ly/mudela-staff.cc @@ -1,339 +0,0 @@ -// -// mudela-staff.cc -- implement Mudela_staff -// -// copyright 1997 Jan Nieuwenhuizen - -#include -#include -#include "rational.hh" -#include "duration-convert.hh" -#include "string-convert.hh" -#include "midi2ly-proto.hh" -#include "midi2ly-global.hh" -#include "mudela-column.hh" -#include "mudela-item.hh" -#include "mudela-staff.hh" -#include "mudela-stream.hh" -#include "mudela-voice.hh" -#include "mudela-score.hh" - -#include "killing-cons.tcc" - -extern Mudela_score* mudela_score_l_g; - -Mudela_staff::Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str) -{ - number_i_ = number_i; - copyright_str_ = copyright_str; - instrument_str_ = instrument_str; - name_str_ = track_name_str; - mudela_key_l_ = 0; - mudela_time_signature_l_ = 0; - mudela_tempo_l_ = 0; -} - -void -Mudela_staff::add_item (Mudela_item* mudela_item_p) -{ - mudela_item_p_list_.append (new Killing_cons (mudela_item_p, 0)); - if (mudela_item_p->mudela_column_l_) - mudela_item_p->mudela_column_l_->add_item (mudela_item_p); -} -/** - Walk ITEMS and find voices. Remove categorised items. - - TODO: - - * collect all channels into separate voices. Use chords for sim - notes on same channel. - * assume voices/assume chords modes. - - */ -void -Mudela_staff::eat_voice (Cons_list& items) -{ - Mudela_voice* voice_p = new Mudela_voice (this); - mudela_voice_p_list_.append (new Killing_cons (voice_p, 0)); - - // Rational mom = items.top ()->at_mom (); - Rational mom = 0; - - for (Cons** pp = &items.head_; *pp;) - { - Cons* i = *pp; - if (i->car_->at_mom () > mom) - { - if (no_rests_b_g && voice_p->last_note_l_) - { - voice_p->last_note_l_->end_column_l_ = i->car_->mudela_column_l_; - } - else - { - /* uh, what about quantisation? This should probably - use mom2standardised_dur () - arg, urg: skip should get duration from start/end columns! - */ - - Rational r = i->car_->at_mom () - mom; - // ugh, need score - Mudela_column* start = mudela_score_l_g->find_column_l (mom); - voice_p->add_item (new Mudela_skip (start, r)); - } - - mom = i->car_->at_mom (); - continue; // unnecessary - } - - Link_array now_items; - for (Cons *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_) - now_items.push (i->car_); - -#if 0 - /* - Why don't we use , if voice has: - - - - we'd get last_item == key_change -> last_note == 0; - */ - Mudela_note * last_note = dynamic_cast (voice_p->last_item_l_); -#else - /* - Not sure, is this better? - */ - Mudela_note * last_note = voice_p->last_note_l_; -#endif - - Link_array candidates; - - for (int i=0; last_note && i < now_items.size (); i++) - { - Mudela_note * now_note = dynamic_cast (now_items[i]); - if (now_note && last_note->channel_i_ != now_note->channel_i_) - candidates.push (now_note); - } - - if (candidates.size()) - { - now_items = candidates; - } - - Mudela_item * which = 0; - if (now_items.size () > 1) - { - int mindiff = 100000; // ugh - for (int i=0; last_note && i < now_items.size (); i++) - { - Mudela_note *nt = dynamic_cast (now_items[i]); - if (!nt) - continue; - int diff = abs (last_note->pitch_i_ - nt->pitch_i_ ); - if(diff < mindiff) - { - mindiff = diff; - which = now_items [i]; - } - } - - if (which && mindiff > 18) // more than 1.5 octaves apart. Don't put in same voice. - { - which =0; - } - } - else if (now_items.size () == 1) - which = now_items[0]; - - if (which) - { - while ((*pp)->car_ != which) - pp = &(*pp)->next_; - - mom += (*pp)->car_->duration_mom (); - Cons* c = items.remove_cons (pp); - voice_p->add_item (c->car_); - delete c; - } - else - { - pp = &(*pp)->next_; - continue; - } - } -} - -String -Mudela_staff::id_str () -{ - String id (name_str ()); - char *cp = id.ch_l (); - char *end = cp + id.length_i (); - for (;cp < end; cp++) - { - if (!isalpha (*cp)) - { - *cp = 'X'; - } - } - return id; -} - -String -Mudela_staff::name_str () -{ - if (name_str_.length_i ()) - return name_str_; - return String ("track") + to_str (char ('A' - 1 + number_i_)); -} - - - -void -Mudela_staff::output (Mudela_stream& mudela_stream_r) -{ - int c =0; - - String trackbody = ""; - for (Cons* i = mudela_voice_p_list_.head_; i; i = i->next_) - { - String voicename = id_str () + "voice" + to_str (char (c + 'A')); - - mudela_stream_r << voicename << " = \\notes "; - - trackbody += "\\" + voicename + "\n"; - - mudela_stream_r << '\n'; - i->car_->output (mudela_stream_r); - c++; - } - - mudela_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n'; - mudela_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n'; - mudela_stream_r << id_str () << " = "; - mudela_stream_r << "<\n " << trackbody << " >\n"; - - mudela_stream_r << " % " << name_str () << '\n'; -} - -void -Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i) -{ - Rational bar_mom = mudela_time_signature_l_->bar_mom (); - Rational into_bar_mom = now_mom - Rational (bar_i - 1) * bar_mom; - if (bar_i > 1) - { - if (!into_bar_mom) - mudela_stream_r << "|\n"; - } - mudela_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' '); - if (into_bar_mom) - mudela_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom)); - mudela_stream_r << '\n'; -} - - -#if 0 // not used for now -void -Mudela_staff::output_mudela_rest (Mudela_stream& mudela_stream_r, Rational begin_mom, Rational end_mom) -{ - Rational bar_mom = mudela_time_signature_l_->bar_mom (); - Rational now_mom = begin_mom; - - int begin_bar_i = (int) (now_mom / bar_mom) + 1; - int end_bar_i = (int) (end_mom / bar_mom) + 1; - - if (end_bar_i == begin_bar_i) - { - output_mudela_rest_remain (mudela_stream_r, end_mom - begin_mom); - return; - } - - // multiple bars involved - int bar_i = (int) (now_mom / bar_mom) + 1; - - //fill current bar - Rational begin_bar_mom = Rational (begin_bar_i - 1) * bar_mom; - if (now_mom > begin_bar_mom) - { - int next_bar_i = (int) (now_mom / bar_mom) + 2; - Rational next_bar_mom = Rational (next_bar_i - 1) * bar_mom; - assert (next_bar_mom <= end_mom); - - Rational remain_mom = next_bar_mom - now_mom; - if (remain_mom > Rational (0)) - { - output_mudela_rest_remain (mudela_stream_r, remain_mom); - now_mom += remain_mom; - } - - bar_i = check_end_bar_i (now_mom, bar_i); - } - - // fill whole bars - int count_i = end_bar_i - bar_i; - for (int i = 0; i < count_i; i++) - { - int begin_bar_i = check_begin_bar_i (now_mom, bar_i); - if (begin_bar_i) - output_mudela_begin_bar (mudela_stream_r, now_mom, begin_bar_i); - mudela_stream_r << "r1 "; - // *mudela_stream_r.os_p_ << flush; - if (begin_bar_i) - LOGOUT (NORMAL_ver) << begin_bar_i << flush; - bar_i = check_end_bar_i (now_mom, bar_i); - now_mom += bar_mom; - } - - // use "int i" here, and gcc 2.7.2 hits internal compiler error - int ii = check_begin_bar_i (now_mom, bar_i); - if (ii) - output_mudela_begin_bar (mudela_stream_r, now_mom, ii); - - // bar_i = check_end_bar_i (now_mom, bar_i); - - Rational remain_mom = end_mom - Rational (end_bar_i - 1) * bar_mom; - if (remain_mom > Rational (0)) - { - output_mudela_rest_remain (mudela_stream_r, remain_mom); - now_mom += remain_mom; - } - assert (now_mom == end_mom); -} - -void -Mudela_staff::output_mudela_rest_remain (Mudela_stream& mudela_stream_r, Rational mom) -{ - if (Duration_convert::no_quantify_b_s) - { - Duration dur = Duration_convert::mom2_dur (mom); - mudela_stream_r << "r" << dur.str () << " "; - // assert (mom == dur.mom ()); - assert (mom == dur.length ()); - return; - } - - Duration dur = Duration_convert::mom2standardised_dur (mom); - if (dur.type_i_>-10) - mudela_stream_r << "r" << dur.str () << " "; -} -#endif - - -void -Mudela_staff::process () -{ - /* - group items into voices - */ - - assert (mudela_score_l_g); - mudela_key_l_ = mudela_score_l_g->mudela_key_l_; - mudela_time_signature_l_ = mudela_score_l_g->mudela_time_signature_l_; - mudela_tempo_l_ = mudela_score_l_g->mudela_tempo_l_; - - Cons_list items; - for (Cons* i = mudela_item_p_list_.head_; i; i = i->next_) - items.append (new Cons (i->car_, 0)); - - while (items.size_i ()) - eat_voice (items); -} diff --git a/midi2ly/mudela-stream.cc b/midi2ly/mudela-stream.cc index d8c67bcf24..e69de29bb2 100644 --- a/midi2ly/mudela-stream.cc +++ b/midi2ly/mudela-stream.cc @@ -1,192 +0,0 @@ -// -// mudela-stream.cc -// -// source file of the LilyPond music typesetter -// -// (c) 1997--1998, 1998 Jan Nieuwenhuizen - -#include -#include -#include -#include "midi2ly-global.hh" -#include "mudela-item.hh" -#include "mudela-stream.hh" -#include "string-convert.hh" - -extern String filename_str_g; - -static int const INDENT_i = 8; - -Mudela_stream::Mudela_stream (String filename_str) -{ - filename_str_ = filename_str; - pending_indent_i_ = 0; - os_p_ = 0; - indent_i_ = 0; - comment_mode_b_ = false; - column_i_ = 0; - wrap_column_i_ = 68; - open(); - header(); -} - -Mudela_stream::~Mudela_stream () -{ - delete os_p_; - if (indent_i_) - warning (_f ("lily indent level: %d", indent_i_)); -} - -Mudela_stream& -Mudela_stream::operator << (char c) -{ - *this << to_str (c); - return *this; -} - -Mudela_stream& -Mudela_stream::operator << (String s) -{ - static String word_sep_str = "{} \t\n"; - while (s.length_i()) - { - int i = s.index_any_i (word_sep_str) + 1; - if (!i) - i = s.length_i(); - String word = s.left_str (i); - s = s.cut_str (i, s.length_i()); - output_wrapped (word); - } - return *this; -} - -Mudela_stream& -Mudela_stream::operator << (Mudela_item& mudela_item_r) -{ - mudela_item_r.output (*this); - *os_p_ << flush; - return *this; -} - -void -Mudela_stream::handle_pending_indent() -{ - *os_p_ << String_convert::char_str ('\t', pending_indent_i_); - column_i_ += pending_indent_i_ * INDENT_i; - pending_indent_i_ = 0; -} - -void -Mudela_stream::header() -{ - /* Maybe better not to translate these? */ - *os_p_ << _ ("% Creator: "); - if (no_timestamps_b_g) - *os_p_ << "GNU LilyPond\n"; - else - *os_p_ << midi2ly_version_str() << '\n'; - *os_p_ << _ ("% Automatically generated"); - if (no_timestamps_b_g) - *os_p_ << ".\n"; - else - { - *os_p_ << _ (", at "); - time_t t (time (0)); - *os_p_ << ctime (&t) << "%\n"; - } - *os_p_ << _ ("% from input file: "); - // *os_p_ << midi_parser_l_g->filename_str_; - // ugh - *os_p_ << filename_str_g; - *os_p_ << "\n\n"; - // ugh - *os_p_ << "\\version \"1.3.76\";\n"; -} - -void -Mudela_stream::open() -{ - os_p_ = new ofstream (filename_str_.ch_C ()); - if (!*os_p_) - error (_f ("can't open file: `%s'", filename_str_)); -} - -void -Mudela_stream::output (String str) -{ - for (int i = 0; i < str.length_i(); i++) - { - char c = str[ i ]; - switch (c) - { - case '{' : - case '<' : - handle_pending_indent(); - if (column_i_ == indent_i_ * INDENT_i) - output ("\t"); - indent_i_++; - *os_p_ << c; - column_i_++; - break; - case '}' : - case '>' : - assert (indent_i_); - indent_i_--; - if (pending_indent_i_) - pending_indent_i_--; - handle_pending_indent(); - *os_p_ << c; - column_i_++; - break; - case '%' : - handle_pending_indent(); - comment_mode_b_ = true; - *os_p_ << c; - column_i_++; - break; - case '\t' : - handle_pending_indent(); - *os_p_ << c; - column_i_ += INDENT_i; - break; - case '\n' : - *os_p_ << endl; - pending_indent_i_ = indent_i_; - column_i_ = 0; - comment_mode_b_ = false; - break; - default : - handle_pending_indent(); - *os_p_ << c; - column_i_++; - break; - } - } -} - -void -Mudela_stream::output_wrapped (String str) -{ - // enough room left -> doit - if (column_i_ + str.length_i() <= wrap_column_i_) - { - output (str); - return; - } - - // we're at BOL already; this will never fit -> doit - if (column_i_ == indent_i_ * INDENT_i) - { - output (str); - return; - } - - // ok, let's wrap - // preserve comment mode - if (comment_mode_b_) - output (String ("\n%")); - else - output (String ("\n")); - - output (str); -} diff --git a/midi2ly/mudela-voice.cc b/midi2ly/mudela-voice.cc index c0236be33b..e69de29bb2 100644 --- a/midi2ly/mudela-voice.cc +++ b/midi2ly/mudela-voice.cc @@ -1,105 +0,0 @@ -// -// mudela-voice.cc -- implement Mudela_voice -// -// copyright 1997 Jan Nieuwenhuizen - -#include "string-convert.hh" -#include "midi2ly-global.hh" -#include "mudela-column.hh" -#include "mudela-item.hh" -#include "mudela-staff.hh" -#include "mudela-stream.hh" -#include "mudela-voice.hh" -#include "mudela-score.hh" - -extern Mudela_score* mudela_score_l_g; - -Mudela_voice::Mudela_voice (Mudela_staff* mudela_staff_l) -{ - mudela_staff_l_ = mudela_staff_l; - last_item_l_ =0; - last_note_l_ =0; -} - -void -Mudela_voice::add_item (Mudela_item* mudela_item_l) -{ - last_item_l_ = mudela_item_l; - if (Mudela_note* n = dynamic_cast (mudela_item_l)) - { - last_note_l_ = n; - } - mudela_item_l_list_.append (new Cons (mudela_item_l, 0)); -} - -/** - analyse pitches to determine clef. - */ -String -Mudela_voice::get_clef () const -{ - Mudela_note * n =0; - - for (Cons *cp = mudela_item_l_list_.head_; !n && cp; cp = cp->next_) - { - n = dynamic_cast (cp->car_); - } - - if (!n) - return ""; - - int p = n->pitch_i_; - - if (p < 56) - return "\\clef \"bass\";\n"; - else if (p > 67) - return "\\clef \"treble\";\n"; - else - return ""; -} - -static int const FAIRLY_LONG_VOICE_i = 6; - -void -Mudela_voice::output (Mudela_stream& mudela_stream_r) -{ - mudela_stream_r << "{ "; - if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i) - mudela_stream_r << '\n'; - - - mudela_stream_r << get_clef () << '\n'; - - int current_bar_i = 0; - Rational bar_mom = mudela_staff_l_->mudela_time_signature_l_->bar_mom (); - - for (Cons* i = mudela_item_l_list_.head_; i; i = i->next_) - { - Rational at_mom = i->car_->mudela_column_l_->at_mom (); - int bar_i = (int) (at_mom / bar_mom) + 1; - if (bar_i > current_bar_i) - { - if (current_bar_i) - { - if (at_mom == Rational (bar_i - 1) * bar_mom) - mudela_stream_r << "|"; - mudela_stream_r << "\n% "; - mudela_stream_r << String_convert::i2dec_str (bar_i, 0, ' '); - mudela_stream_r << '\n'; - } - LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; - current_bar_i = bar_i; - } - - mudela_stream_r << *i->car_; - if (Mudela_key* k = dynamic_cast (i->car_)) - mudela_staff_l_->mudela_key_l_ = mudela_score_l_g->mudela_key_l_ = k; - } - - if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i) - mudela_stream_r << '\n'; - - mudela_stream_r << "} "; -} - - diff --git a/mutopia/E.Satie/gnossienne-4.ly b/mutopia/E.Satie/gnossienne-4.ly index 7d9de3631e..e69de29bb2 100644 --- a/mutopia/E.Satie/gnossienne-4.ly +++ b/mutopia/E.Satie/gnossienne-4.ly @@ -1,144 +0,0 @@ -\header { - filename = "gnossienne-4.ly"; - title = "Gnossienne"; - subtitle = "4"; - composer = "Erik Satie (1866-1925)"; - enteredby = "jcn"; - copyright = "Public Domain"; -} - -%{ - Tested Features: cross staff auto beams and slurs, grace notes, no bars -%} - -\version "1.3.117"; - -global = \notes { - \key a \minor; - \time 6/4; - \skip 1.*34; - \bar "|."; -} - -melody = \notes\relative c''{ - \clef violin; - \property Voice.verticalDirection = #1 - \property Voice.graceFraction = #(make-moment 1 4) - r2 r r - r2 r r - r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - es8 \grace b( ))c r4 r2 r - r2 r r - r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - es8 \grace b( ))c r4 r2 r - r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis - )d4 \grace fis8()gis4 ~ gis8 r r4 r2 - r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis - )d4 \grace fis8()gis4 ~ gis8 r r4 r2 - \grace a8()f4 ~ f8 r r2 r - r2 r4 a8( b c d c b \grace b8()e \grace a,())g r4 r2 r - r2 r4 a8( b c d c b a b c d c b a b c d c b - \grace b8()e \grace a,())g r4 r2 r - a2( \grace e'8()f4 ~ )f8 r r2 - r2 r r - fis,4( \grace dis8<)cis4 ais> r2 r - \grace b'8()a \grace b()a r4 r2 r - r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e - es8 \grace b())c r4 r2 r - d,4( \grace fis8()gis4 ~ )gis8 r r4 r2 - f4 ~ f8 r r2 r - f'8( g a b a g f g a b a g - \grace f8()g \grace d)e r4 r2 r - f8( g a b a g f g a b a g - \grace f8()g8 \grace d())e r4 r2 r - a,2( \grace e'8() f4 ~ )f8 r r2 - r2 r r - fis,4( \grace dis8<)cis4 ais> r2 r - ~ -} - -basloopje = \notes\relative c{ - d,8( a' d f a d f d a f d )a -} - -accompany = \notes \relative c { - % snapnie, hoevaak relative c heeft ze nodig? - \basloopje - \basloopje - \basloopje - \transpose bes \basloopje - \transpose bes \basloopje - \basloopje - \transpose bes \basloopje - \transpose bes \basloopje - \transpose a \basloopje - \transpose bes \basloopje - \transpose a \basloopje - \basloopje - \basloopje - % huh? d' - \transpose d' \basloopje - \basloopje - \basloopje - \transpose d' \basloopje - \basloopje - \basloopje - \transpose e' \basloopje - \basloopje - \basloopje - \transpose bes \basloopje - \transpose a \basloopje - \basloopje - \basloopje - \transpose d' \basloopje - \basloopje - \transpose d' \basloopje - \basloopje - \basloopje - \transpose e' \basloopje - < e1*6/4 b' e> ~ < e b' e> -} - -\score{ - \notes \context PianoStaff < - \context Staff=up < - \global - \context Voice=foo { - \stemUp - \property Voice.Script \override #'direction = #1 - - \melody - } - > - \context Staff=down < - \global - \clef bass; - \autochange Staff \context Voice \accompany - > - > - - \paper { - gourlay_maxmeasures = 4.; - indent = 8.\mm; - textheight = 295.\mm; - - % ugly is beautiful - slur_beautiful = 5.0; - - \translator{ - \StaffContext - % don't auto-generate bars: not a good idea: -> no breakpoints - % barAuto = #f - defaultBarType = #"" - \remove "Time_signature_engraver"; - - slurVerticalDirection = #1 - verticalDirection = #-1 - autoBeamSettings \override #'(end * * * *) = #(make-moment 1 2) - } - } - \midi { - \tempo 4 = 54; - } -} - diff --git a/mutopia/J.S.Bach/GNUmakefile b/mutopia/J.S.Bach/GNUmakefile index bb33ed42dd..ebf1c3432c 100644 --- a/mutopia/J.S.Bach/GNUmakefile +++ b/mutopia/J.S.Bach/GNUmakefile @@ -2,7 +2,7 @@ depth = ../.. -SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas Duette +SUBDIRS = Petites-Preludes Cembalo-Partitas Duette EXTRA_DIST_FILES= diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile b/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile index 9a412fa114..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile @@ -1,15 +0,0 @@ -# mutopia/J.S.Bach/Solo-Cello-Suites/Makefile - -depth = ../../.. - -EXTRA_DIST_FILES= - -examples=scsii-cello -LOCALSTEPMAKE_TEMPLATES=mutopia - -include $(depth)/make/stepmake.make - -tarball=solo-cello-suite-ii -mutopia-examples=scsii-cello scsii-viola -mutopia-letter=$(mutopia-examples:%=out-letter/%.ps.gz) - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly index 0784c3fda0..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly @@ -1,40 +0,0 @@ - - -\version "1.3.117"; - -\include "allemande-urtext.ly"; - -allemandeCelloGlobal = \notes{ - \time 4/4; - \key f \major; - \clef bass; - \repeat "volta" 2 { - \partial 16; - s16 - s1*11 | - s2 s4 s8. - } \repeat "volta" 2 { - s16 - s1*11 - s16*15 - } -} - -allemandeCelloScripts = \notes{ -} - -allemandeCelloStaff = \context Staff < - \allemande - \allemandeCelloGlobal - \allemandeCelloScripts -> - -\score{ - \allemandeCelloStaff - \paper{ } - \midi{ \tempo 4 = 45; } - \header{ piece = "Allemande"; - opus = ""; - - } -} diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly index 679501b975..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly @@ -1,103 +0,0 @@ -% allemande-urtext.ly -% belongs together with -cello.ly and -viola.ly -% (who is going to make a -violin.ly?) - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet (see viola_scripts). -%} - -allemandeA = \context Staff \notes \relative c { - \context Voice=i - \stemUp - a'16 | - a8 bes16()a \stemBoth - g()f e()d d()cis d()e a,8 bes16()g | - f( a )d f, e8 cis' \stemUp d8. e16 \stemBoth f g a bes! | - %3 - \stemUp c8 d16()es \stemBoth d()c bes()a c()bes a()g d'8. f,16 | - e( g )bes d c()bes a()g bes()a g()f - < f8. a> | - % urg fix - b f( e )d e cis' d cis \stemUp d8. e16 \stemBoth - f( e d)e | - %6 - d( c b )c b( a gis)a gis8-\prall fis16()e e' c( a )g | - \stemUp e' a, f d d f d b \stemBoth - gis( b e )gis b d c b | - %8 - c( a f )e d( f e )d gis8.-\trill()a16 b d e, d | - % urg - c e a d \stemUp b8.-\trill a16 a8 s4 s8 \stemBoth | - %10 - d,!16 gis( a b a gis fis )e \stemUp e8 f16()e \stemBoth - d()c b()a | - \stemUp d8 e16()f \stemBoth e d c b - \stemUp d'16()b c()a \stemBoth e8 gis | - a,8. cis16 e g! f! e f a d gis, [ a8. ] - %13 - e16 \stemUp e8. f16 \stemBoth - g!()e f()a cis,( d )e bes a8.-\trill()g16 | - f a'(f)d g b,()cis a' g(f e)d fis d()es c( | - %15 - )bes g'(a, )g fis a d c' bes(fis)g bes d()a bes()g | - es(d)es g c()a bes()g d c d g bes()fis g()es | - %17 - c(bes)c bes' a(c)es g, \stemUp fis8-\trill g16 a \stemBoth - d,8 es16 c | - bes d g bes, d,8 fis' \stemUp g8. a16 \stemBoth bes d g, f | - %19 - \stemUp e8.-\trill f16 \stemBoth g e c bes - a()f' g,()f e g'( a )bes | - bes( a g )f - a()e f()d bes d(f)a d()a bes()g | - %21 - a,()g'cis()d e()g, a()e f()d bes()d gis, f' e d | - d( cis b )a - c(a)fis d' c a( b )d - f!(d )gis, d' | - %23 - cis(e g!)bes e()a, bes()g f()cis d()gis, a8 cis! | - % knee - \stemUp d,16 \stemBoth d''(c!)a bes!(g)e cis' d a f d d,8. - \bar "|."; -} - -allemandeB = \notes \relative c { - \context Voice=ii - \stemDown - s16 | - % s8 s2. | - s8 s2. | - s2 s16 s4 | - s8 s2. | - s1 | - %5 - s2 d8. s16 s4 | - s1 | - f!16 s16*3 b, s16*3 s2 | - s1 | - \slurDown - s4 e [dis8 ~ dis32 e( fis gis] [a b c d! c b c )a] | - \slurBoth - %10 - s2 s8 s4 | - s8 s4 s8 s4 | - s2 s4 s8. - s16 - s8 s2. | - %15 - s1*3 | - s2 c,8 s8 s4 | - s2 g8. s16 s4 | - bes8. -% } -} - -allemande = \context Staff \notes< - \allemandeA - \allemandeB -> - - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly index c6ac0d371d..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly @@ -1,39 +0,0 @@ - -\version "1.3.117"; - -\include "allemande-urtext.ly"; - -allemandeViolaGlobal = \notes{ - \time 4/4; - \key f \major; - \clef alto; - \repeat "volta" 2 { - \partial 16; - s16 - s1*11 | - s2 s4 s8. - } \repeat "volta" 2 { - s16 - s1*11 - s16*15 - } -} - -allemandeViolaScripts = \notes{ -} - -allemandeViolaStaff = \context Staff < - \notes \transpose c'' \allemande - \allemandeViolaGlobal - \allemandeViolaScripts -> - -\score{ - \allemandeViolaStaff - \paper{ } - \midi{ \tempo 4 = 45; } - \header{ piece = "Allemande"; - opus = ""; - } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly index f563e3f735..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly @@ -1,39 +0,0 @@ - -\version "1.3.117"; - -\include "courante-urtext.ly"; - -couranteCelloGlobal = \notes{ - \time 3/4; - \key f \major; - \clef bass; - \repeat "volta" 2 { - \partial 16; - s16 - s2.*15 - s2 s8. - } \repeat "volta" 2 { - s16 - s2.*15 - s16*11 - } -} - -couranteCelloScripts = \notes{ -} - -couranteCelloStaff = \context Staff < - \courante - \couranteCelloGlobal - \couranteCelloScripts -> - -\score{ - \couranteCelloStaff - \paper {} - \midi{ \tempo 4 = 55; } - \header{ piece = "Courante"; - opus = ""; - } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly index 09a67d6225..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly @@ -1,92 +0,0 @@ -% courante-urtext.ly -% belongs together with -cello.ly and -viola.ly -% (who is going to make a -violin.ly?) - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet (see viola_scripts). -%} - -couranteA = \context Staff \notes \relative c { - \context Voice=i - d'16 | - d a f a d, f g a bes a bes g | - \stemUp s4 \stemBoth g16 f g e | - % urg, a good case for mean-distance-beam-dir-algorithm! - f d e c! bes(a)bes a' g f e d | - %4 - cis e a,(b cis d e f )g bes-- a e | - f a d,( e f g a bes )c bes-- d c | - \stemUp ~ < c16 f,> bes a g \stemBoth f()es d()es | - %7 - d bes(a)bes d bes e! bes f' bes, g' bes, | - e, g c d e f g a bes a bes g | - a f(e)f a f bes f c' f, d' f, | - %10 - cis( e )a b cis d e f g()f g()e | - d,( a' )f' e d()c d()c b()a b()a | - gis( a )b e, f()e f()d e()c d()b | - %13 - c a'( b c b a gis)a d, a' e a | - f a( b c b a gis)a f a e a | - dis, a'( b c b a gis)a e a e gis | - a e cis e a, cis e gis [ a8. ] - e'16 - %17 - e cis a cis e, f g a bes()g cis()g | - \stemUp d'4 ~ d16 a d e f d a c! \stemBoth | - b16 f(d)f g, d' f g b f d' f, | - %20 - e g c, d e f g a bes! d c g | - \stemUp a s16*3 s4 s4 - d, ~ d16 e! f g \stemBoth a bes c d | - %23 - e, bes a g a f' g,()f c g' f' e | - f a bes a g f e f g e f d | - cis g' b, g' a, g' b, g' cis, g' a, g' | - %26 - f d f a d a d e f a, f d | - g, d' g a bes g' a, f' g, e' f, d' | - cis(d)e cis a cis bes cis a cis g cis | - %29 - f, d'(e f e d cis)d g, d' a d | - bes d e f e d cis d bes d a d | - gis, d'(e f e d cis)d a d a cis | - d a f a d, f a, d - d,8. - \bar "|."; -} - -couranteB = \notes \relative c { - \context Voice=ii - \stemDown - s16 | - s2. | - %2 - cis4 ~ cis16 d e f s4 | - s2.*3 | - %6 - a,4 s2 - s2.*9 - % 16 - s2 s8. - s16 - s2. - %18 - f'4 s s | - s2.*2 - %21 - \slurUp - f16 c'(bes a g f es d )es c' f, es | - \slurBoth - bes4 s s - s2.*9 - s2 s8. -} - -courante = \context Staff \notes< - \couranteA - \couranteB -> - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly index dd7a0392d6..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly @@ -1,42 +0,0 @@ - - - -\version "1.3.117"; - -\include "courante-urtext.ly"; - -couranteViolaGlobal = \notes{ - \time 3/4; - \key f \major; - \clef alto; - \repeat "volta" 2 { - \partial 16; - s16 - s2.*15 - s2 s8. - } \repeat "volta" 2 { - s16 - s2.*15 - s16*11 - } -} - -couranteViolaScripts = \notes{ -} - -couranteViolaStaff = \context Staff < - \notes \transpose c'' \courante - \couranteViolaGlobal - \couranteViolaScripts -> - -\score{ - \couranteViolaStaff - \paper{ } - \midi{ \tempo 4 = 55; } - \header{ - opus= "" ; - piece ="Courante"; - } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly index 6b937b7895..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly @@ -1,51 +0,0 @@ - - - -\version "1.3.117"; - -\include "gigue-urtext.ly"; - -gigueCelloGlobal = \notes{ - \time 3/8; - \key f \major; - \clef bass; - \repeat "volta" 2 { - \partial 8; - s8 - s4.*31 - s4 - %\partial 4; - } \repeat "volta" 2 { - % urg - %s16 \partial 8; s16 - s8 - s4.*43 - s4 - %\partial 4; - } -} - -gigueCelloScripts = \notes{ -} - -gigueCelloStaff = \context Staff < - \gigue - \gigueCelloGlobal - \gigueCelloScripts -> - -\score{ - \gigueCelloStaff - \paper{ - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4) - } - } - \midi{ \tempo 4 = 60; } - \header{ - opus= "" ; -piece = "Gigue"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly index 8ca129d245..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly @@ -1,106 +0,0 @@ -% gigue-urtext.ly -% belongs together with -cello.ly and -viola.ly -% (who is going to make a -violin.ly?) - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet (see viola_scripts). -%} - -% -% this must be redone a bit: -% -% * slurs/ties in two different threads (like beams): urtext, and additionals -% - -gigueNotes = \context Staff \notes \relative c { - \context Voice=i - a'8 | - d,4 bes'8 | cis,4 g'8 | f16 e f g a8 | - d,4 d'8 | e,16(f)g8 bes | c,16(d)e8 c' | a16 g a bes c a | - %8 - f4-\trill a8 | b,()g' cis, | d f16( c bes )a | g8()es' a, | - bes d16( a g )f | e!8()cis' bes' a g16( f e)d | - %15 - \stemUp e(f g e f)d \stemBoth e8()a, c'! | - \stemUp c16(d es c d)a bes8 r bes | - bes16(c d bes c)g a8 r a | - %21 - b16()c d()b c()a | d()e f()d e()c | b()c d()b c()a | e'4 gis,8 | - a16()b c()a d()b | - a()b c()a d()b | - %27 - a()b c()a d()b | - a()b c()a d()b | - f'8 e16()d c()b \stemBoth | - e,, e''(d)c b()gis | a f(e)d e()cis | a4 - %33 - c'!8 | - f,4 d'8 | e,4 bes'8 | a16 g a bes c8 | f,4 a8 | - d,16(e)f d(c)b | g' a g f e d | - %39 - e(d)e f(g)e | c4 e8 | fis16(g)a c, bes a | - bes(d)g bes, a g | fis(a)c es d c | bes(a)bes d g bes | - %45 - as(g)as fis g es' | d,8 g fis | g16 es(d)c d()bes | g4 bes'8 - % what about this? - \stemUp\stemDown e,!16(f)g e f d\stemBoth - c(d e) c d bes | a(bes)c a bes g | f4 a'8 - % what about this? - \stemUp\stemDown d,16(e)f d e c\stemBoth bes(c)d bes c a - g16(a)bes g a f | e4 g'8 - %57 - a,16(b cis d)e g-. | f(g a cis )d f, | e(f g a)bes d,-. | - cis(d)e a, bes g - \stemUp - d'()e f()d g()e | - %62 - d()e f()d g()e | - d()e f()d g()e | - d()e f()d g()e | - \stemBoth - cis bes'(a g f)e | f, a' g f e cis | - %67 - d bes a g a f | d a' d e f d | - \stemUp es()f g()es f()d | g()a bes()g a()f es()f g()es f()d | - %72 - cis'4 \stemBoth d16()c | bes(a g f e)d | cis(b a g f)e | d f a d f a | - d4 - \bar "|."; -} - -gigueB = \context Staff \notes \relative c { - \context Voice=ii - \stemDown - s8 - s4.*14 - a4. | s d | d8 g, d' | e4. | f8 f, f' | - %21 - d d d d d d d d d | - % one could type r here... - d4 s8 | s s | d s s | e s s | f s s | gis s4 | - s4. s s4 - %33 - s8 - s4.*16 - \stemUp bes4 s8 - s4. s s - a8 s4 \stemDown - s4.*7 - s s g s s a s s bes s s - s4.*4 - g8 g g g g g g g g - %72 - -} - -gigueA = \context Voice \notes< - \gigueNotes -> - -gigue = \notes< - \gigueA - \gigueB -> - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly index d8efcf4288..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly @@ -1,49 +0,0 @@ - - -\version "1.3.117"; - -\include "gigue-urtext.ly"; - -gigueViolaGlobal = \notes{ - \time 3/8; - \key f \major; - \clef alto; - \repeat "volta" 2 { - \partial 8; - s8 - s4.*31 - s4 - \partial 4; - } \repeat "volta" 2 { - % urg - s16 \partial 8; s16 - s4.*43 - s4 - \partial 4; - } -} - -gigueViolaScripts = \notes{ -} - -gigueViolaStaff = \context Staff < - \notes \transpose c'' \gigue - \gigueViolaGlobal - \gigueViolaScripts -> - -\score{ - \gigueViolaStaff - \paper{ - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4) - } - } - \midi{ \tempo 4 = 60; } - \header{ - opus= "" ; - piece ="Gigue"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly index 537082799a..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly @@ -1,41 +0,0 @@ -%{ -Header for Solo Cello Suite no. 2. - -This is the 2nd cello suite by Bach, in versions for both cello and -viola. It was coded by JCN following a Baerenreiter -urtext. Optionally you can add or remove slurs etc. to taste. - -The setup of the files is slightly complicated, because sharing of -information is taken to the extreme. - -%} - -\header{ - title = "Solo Cello Suites"; - subtitle = "Suite II"; - opus = "BWV 1008"; - composer = "Johann Sebastian Bach (1685-1750)"; - enteredby = "JCN"; - instrument = \instrument; - - % mutopia headers. - mutopiatitle = "Solo Cello Suites, Suite II"; - mutopiacomposer = "J.S.Bach (1685-1750)"; - mutopiaopus = "BWV1008"; - mutopiainstrument = \intrument; - date = "1710s, 1720s"; - source = "Baerenreiter urtext"; - style = "Baroque"; - copyright = "Public Domain"; - maintainer = "Jan Nieuwenhuizen"; - maintainer_email = "janneke@gnu.org"; - lastupdated = "2001/Jan/31"; - mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small - \\\\This music is part of the Mutopia project, - \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset - and placed in the public domain by " + \maintainer + - ".\\\\Unrestricted modification and redistribution is permitted - and encouraged---copy this music and share it.}"; - tagline = \mutopiapublicdomain; - footer = "Mutopia-2001/01/31-2"; -} diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly index 087edfd4ea..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly @@ -1,105 +0,0 @@ - - - -\version "1.3.117"; - -\include "menuetto-urtext.ly"; - -menuettoICelloGlobal = \notes{ - \context Voice=i - \time 3/4; - \key f \major; - \clef bass; - \repeat "volta" 2 { - \skip 2.*8; - } - \repeat "volta" 2 { - \skip 2.*1; - %\slurDotted - \skip 2.*14; - \emptyText - s2._"Fine" - } -} - -menuettoICelloScripts = \notes{ - \context Voice=i - s2. - s8^"~"^1_2_4 s8 s4 s^4 - s4^0_1 s_4 s - s2.*5 - s2^3 s4 - s4 s8_1 s s4 - s2. - s2 s8^4 s - s2. - s8 s^2 s^4 - s_2 s s s_0 s_4 s_1 - s2.*2 - s4^3_1 - s^1_3 s4 - s2. - s4_2 s2 - s8^2_3 s s s^1 s4^1 -} - -menuettoICelloStaff = \context Staff < - \menuettoI - \menuettoICelloGlobal -% \menuettoICelloScripts -> - -\score{ - \menuettoICelloStaff - \paper{ - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - } - } - \midi{ \tempo 4 = 110; } - \header{ - opus= "" ; - piece ="Menuetto I"; } -} - -menuettoIiCelloGlobal = \notes{ - \context Voice=i - \time 3/4; - \key d \major; - \clef bass; - \repeat "volta" 2 { - \skip 2.*8; - } - \repeat "volta" 2 { - \skip 2.*1; - %\slurDotted - \skip 2.*14; - \emptyText - s2._"Menuetto I da Capo" - } - -} - -menuettoIiCelloStaff = \context Staff < - \menuettoIi - \menuettoIiCelloGlobal -% \menuettoIiCelloScripts -> - -\score{ - \menuettoIiCelloStaff - \paper{ - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - - } - } - \midi{ \tempo 4 = 130; } - \header{ - piece = "Menuetto II"; - opus = ""; - } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly index 33b8dc2f10..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly @@ -1,153 +0,0 @@ -% menuetto-urtext.ly -% belongs together with -cello.ly and -viola.ly -% (who is going to make a -violin.ly?) - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet (see viola_scripts). -%} - -menuettoIA = \context Staff \notes \relative c { - \context Voice=i - bes'4 | - bes8 a bes g a4 | - g f8 e | - f8( e )d cis b a | - bes'!4 | - bes8 a bes g c!4 | - %7 - | - | - d8 e16 f | - e8 d cis e a, g | - a4 d cis | - g'8 f e f d c | - %13 - bes2 c4 | - a8 g a f | - bes8 a g a | - f8 e f a g bes | - bes4 | - c8 bes c a fis4^\trill | - %19 -% dispute -% < d,8 bes'(> )a | - bes8 a | - c8 bes a bes g bes | - d4 cis d | - g,8 f g e f4 | - g,8 g' <{e4.^\trill d8 } a4.> ~ | - | -} - -menuettoIB = \context Staff \notes \relative c { - \context Voice = ii - \stemDown - \skip 2.*1; | - \skip 8*5; | - \skip 2.*1; | - a,8 \skip 8*5; | - \skip 2.*1; | - e'8 \skip 8*5; | - \stemBoth - s2.*2 | - s2. - g8 \skip 8*5; | - f2 e4 - d8 \skip 8*5; | - g4 () f e - f8 \skip 8*5; | - \skip 2.*3; | - es8 \skip 8*3; d4 | - \skip 4*2; d4 | - \skip 8*5; | -% dispute -% g2 f4 | - g4 \skip 4*1; f4 | - cis8 \skip 8*3; d4 | - s2.*2 - \bar "|."; -} - -% UGH, fix this like in sarabande -menuettoIAVoiceUrg = \notes{ - \context Voice = i - \skip 2.*1; \stemUp - \skip 2.*1; \stemBoth - \skip 2.*1; \stemUp - \skip 2.*1; \stemBoth - \skip 2.*1; \stemUp - \skip 2.*1; \stemBoth - \skip 2.*3; \stemUp - \skip 2.*1; \stemUp - \skip 2.*3; - \skip 4*2; \stemBoth - \skip 4*2; \stemUp - \skip2.*1; \stemUp - \skip 4*2; \stemBoth - \skip2.*1; \stemUp - \skip 2.*1; \stemBoth - \skip 2*1; \stemUp - \skip 4*1; - \skip 2.*4; \stemBoth - \skip 2.*1; -} - -menuettoIAVoiceUrgUrg = \notes< - \menuettoIAVoiceUrg - \menuettoIA -> - -menuettoIBVoiceUrg = \notes{ - \context Voice=ii - \stemDown - % urg urg, huh? - \skip 2.*8; \stemDown -} - -menuettoIBVoiceUrgUrg = \notes< - \menuettoIBVoiceUrg - \menuettoIB -> - -menuettoI = \context Staff \notes< - \repeat "volta" 2 { \menuettoIAVoiceUrgUrg } - \repeat "volta" 2 { \menuettoIBVoiceUrgUrg } -> - -menuettoIi = \context Staff\notes \relative c { - \context Voice=i - fis4^\trill d8 e fis g | - a4 fis, a' | - g,8 b e4 g | - d8( cis )b cis a g | - % ugh, forcing knee - % Lily's not yet smart enough to decide for herself. - \stemUp fis \stemBoth d''( cis b a )g | - b( a g fis e )d | - %7 - cis d g4 fis8( g16 )a | - <\stemDown a,2. \stemUp e'> | - \stemBoth - cis4^\prall e8( d cis )b | - cis4 g, cis' | - fis,8()a d4 fis | - b,8()a g()fis g b | - %13 - e, d'( cis )b cis()ais | - d, b'( a! g fis )e | - g( fis e d cis )d | - b( cis d e fis )g | - a( g fis g a )b | - c4 dis,, c'' | - %19 - b8()a c( b a )g | - fis() g a()fis g()e | - cis4^\trill a8 b cis d | - e( fis g )b a4 | - g8()fis e()d e()cis | - d2. - \bar "|."; -} - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly index 990842621a..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly @@ -1,102 +0,0 @@ - - - -\version "1.3.117"; - -\include "menuetto-urtext.ly"; - -menuettoIViolaGlobal = \notes{ - \context Voice=i - \time 3/4; - \key f \major; - \clef alto; - \repeat "volta" 2 { - \skip 2.*8; - \clef violin; - \skip 2.*1; - } \repeat "volta" 2 { - %\slurDotted - \skip 2.*3; - \clef alto; - \skip 2.*11; - \emptyText - s2._"Fine" - } -} - -menuettoIViolaScripts = \notes{ - \context Voice=i - s2. - s8^"~"^1_2_4 s8*5 - s2.*5 - s4 s-\upbow s-\downbow - s2.-\upbow - s2.*5 - s2 s4-\upbow - s4-\downbow s2 - s2.*1 - s2^0 s4 - s2.*1 - s4-\downbow s4-\upbow -} - -menuettoIViolaStaff = \context Staff < - \notes \transpose c'' \menuettoI - \menuettoIViolaGlobal -% \menuettoIViolaScripts -> - -\score{ - \menuettoIViolaStaff - \paper{ - gourlay_maxmeasures = 7.0; - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - - } - } - \midi{ \tempo 4 = 110; } - \header{ - opus= "" ; - piece ="Menuetto I"; - } -} - -menuettoIiViolaGlobal = \notes{ - \context Voice=i - \time 3/4; - \key d \major; - \clef alto; - \repeat "volta" 2 { - \skip 2.*8; - } \repeat "volta" 2 { - \skip 2.*1; - %\slurDotted - \skip 2.*14; - \emptyText - s2._"Menuetto I da Capo" - } -} - -menuettoIiViolaStaff = \context Staff < - \notes \transpose c'' \menuettoIi - \menuettoIiViolaGlobal -% \menuettoIiViolaScripts -> - -\score{ - \menuettoIiViolaStaff - \paper{ - \translator{ - \VoiceContext - autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4) - - } - } - \midi{ \tempo 4 = 130; } - \header{ - opus= "" ; - piece ="Menuetto II"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly index d85d5a703a..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly @@ -1,33 +0,0 @@ - - - -\version "1.3.117"; - -\include "prelude-urtext.ly"; - -preludeCelloGlobal = \notes{ - \time 3/4; - \key f \major; - \clef bass; - \skip 2.*63; - \bar "|."; -} - -preludeCelloScripts = \notes{ -} - -preludeCelloStaff = \context Staff < - \prelude - \preludeCelloGlobal - \preludeCelloScripts -> - -\score{ - \preludeCelloStaff - \paper{ } - \midi{ \tempo 4 = 40; } - \header{ - opus= "" ; - piece ="Pr\\'elude"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly index 701327fce3..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly @@ -1,197 +0,0 @@ -% prelude-urtext.ly -% belongs together with -cello.ly and -viola.ly -% who is going to make a -violin.ly? - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet see viola_scripts . -%} - -preludeNotes = \notes \relative c { - \context Voice=i - d8 f a4 ~ a16 f e d | - cis e g a bes4 ~ bes16 a g f | - e g bes cis e8. bes16 a16 g f e | - f g a f d8 c! bes a | - %5 - bes16 d f a d8. c16 bes a g f | - e g bes d c a bes g f e g bes, | - a c e g c8. bes16 a g f e | - d f a c bes g a f e f a f | - %9 - g, bes d f bes8. a16 g f e g | - a, c e g c a e g f a d, es | - d a bes d g bes a c bes g d' f, | - %12 - e b c e g d e c bes g e' bes | - f8 a c4 ~ c16 bes a g | - fis a bes c d, c' bes a fis' es d c | - bes a g bes d4 ~ d16 c bes a | - %16 - gis b c d e, d' c b gis' f e d | - c b a c f e f gis a f d c | - b d gis b d8. c16 b a gis a | - %19 - c, e a c e8. c16 b a gis a | - d, f a d f8. e16 d c b d | - e, d' c b a c b a d, b' a gis | - %22 - c, a' g! f cis g' f e d f e d | - gis, d' e f b f e d gis, d' c b | - a b c e a b c a e c a g! | - % 25 - % B"arenreiter and Chester say "c bes c" - fis a c d es8. d16 c bes c a' | - bes, a bes d g, es' f g a, g' f es | - d c d f bes, g' a bes cis, bes' a g | - % 28 - f e f a d, bes' c! d e,! d' c bes | - a g a c f, d' e f g, f' e d | - cis g f e a, e' f g cis bes! a g | - %31 - f g a cis d a g f a f e d | - gis d e f a, f' e d gis f! e d | - cis b cis e a e cis e a, g'! f e | - %34 - f e f a d a f a d, c'! bes a | - g f g cis e cis g cis a, g' f e | - d a' d e f d a f d c'! bes a | - %37 - g a bes d, es f g a bes g es' g, | - f g a cis, d e! f g a f d' f, | - e f g bes, a b cis d e bes g' bes, | - %40 - cis,8 a' g'4 ~ g16 bes a g | - f e d e f d a' f d' a f d | - gis,8 f' d'4 ~ d16 f e d | - cis b a b cis a d a e' a, f' a, | - %44 - g' e cis e a, cis e f g f g e | - f d cis d a cis d e f e f d | - e cis b cis a b cis d e d e cis | - %47 - d b a b f gis b cis d cis d b | - \stemUp \stemBoth r r | - bes16 g fis g es g d g es g bes d, | - cis-- e! g a bes8. a16 g fis g e' | - %51 - f,! d' bes g a f e g f d cis e | - d bes a g fis-- a c! es d c bes a | - bes g fis g es g d g es g bes d, | - %54 - \stemUp g'8. f16 - e!16 d cis b a g f e \stemBoth | - d-- a' d e f e d c! bes! a g f | - e-- a cis e g f e d cis b a g | - f a d f a d, f a d bes! c! a | - g, d' g a bes g fis g es' g, d' g, | - \stemUp | | | | -} - -preludeB = \notes \relative c { - \context Voice=ii - \stemDown - s2.*47 - %48 - g4 s2 | - s2.*5 - %54 - s2 | - s2.*4 - a'2. a a a -} - - -figB = \notes{ s16( s s )s } -figC = \notes{ s16( s ) s s } -figD = \notes{ s16 s( s )s } -figE = \notes{ s16( s s s s s s )s } -figF = \notes{ s8.()s16 } - -% of course, i just type fig1, and add the \ and the silly $ later -preludeSlurs = \notes{ - \context Voice=i - s4 s4 \figD | - \figB s4 \figD | - \figB s4 \figD | - \figB s8( s s )s | - %5 - \figD s2 | - s2. | - s2 \figB | - s2 \figB | - s2 \figB | - %10 - \figD \figD \figB | - \figD \figD s4 | - \figD s2 | - s4 s4 \figD | - \figD \figD \figD | - %15 - s4 s s16 s s8 | - \figD \figD s4 | - s2. | - \figB s4 \figB | - s2 \figB | - %20 - \figB s4 \figB | - s4 \figD \figD | - \figD \figD \figD | - s2 \figB | - s2. | - %25 - \figD s4 \figB | - \figC \figD \figD | - \figC \figD \figD | - \figC \figD s4 | - \figC \figD \figD | - %30 - \figD \figD \figB | - \figC \figD \figD | - s2. | - s4 \figD \figD | - \figC \figD \figD | - %35 - \figC s2 | - s2. | - s2. | - s2. | - s2. | - %40 - s4 s4 \figD | - \figB s2 | - s2 \figD | - \figC s2 | - s2. | - %45 - s2. | - s4 \figC s4 | - \figD \figC s4 | - s2. | - \figD s2 | - %50 - \figD s4 \figC | - s2. | - s4 \figD s4 | - s2 \figC | -% s8()s \figE | -% s8.()s16 \figE | - \figF \figE | - %55 - \figD \figE | - \figD \figE | - \figD \figD s4 | - s4 \figD s4 | -} - -preludeA = \notes< - \preludeNotes - \preludeSlurs -> - -prelude = \context Staff \notes< - \preludeA - \preludeB -> - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly index cf17a8bb71..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly @@ -1,33 +0,0 @@ - - - -\version "1.3.117"; - -\include "prelude-urtext.ly"; - -preludeViolaGlobal = \notes{ - \time 3/4; - \key f \major; - \clef alto; - \skip 2.*63; - \bar "|."; -} - -preludeViolaScripts = \notes{ -} - -preludeViolaStaff = \context Staff < - \notes \transpose c'' \prelude - \preludeViolaGlobal - \preludeViolaScripts -> - -\score{ - \preludeViolaStaff - \paper{ } - \midi{ \tempo 4 = 40; } - \header{ - opus= "" ; - piece ="Pr\\'elude"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly index c63c2693f8..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly @@ -1,36 +0,0 @@ - - - -\version "1.3.117"; - -\include "sarabande-urtext.ly"; - -sarabandeCelloGlobal = \notes{ - \time 3/4; - \key f \major; - \clef bass; - \repeat "volta" 2 { - s2.*12 - } \repeat "volta" 2 { - s2.*16 - } -} - -sarabandeCelloScripts = \notes{ -} - -sarabandeCelloStaff = \context Staff < - \sarabande - \sarabandeCelloGlobal - \sarabandeCelloScripts -> - -\score{ - \sarabandeCelloStaff - \paper{ } - \midi{ \tempo 4 = 40; } - \header{ - opus= "" ; - piece ="Sarabande"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly index eaf25ee969..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly @@ -1,93 +0,0 @@ -% sarabande-urtext.ly -% belongs together with -cello.ly and -viola.ly -% (who is going to make a -violin.ly?) - -%{ -Well, there are still some scripts in this "urtext". -But merging melodic and scripts doen't work too well yet (see viola_scripts). -%} - -sarabandeA = \context Staff \notes \relative c { - \context Voice=i - \stemUp d8. e16 e4.-\trill d16 e | - f4. \stemBoth e8 d c | - [bes g'] f e16(f g a bes)d, | - cis4.-\trill b8 a g | - % copy bar 1, half bar 2 - \stemUp d'8. e16 f4.-\trill d16 e | - %5 - f4. \stemBoth d8 e f | - g bes16()a c()bes a()g d'8 f, | - \stemUp e4.-\trill \stemBoth d8 c bes | - %8 - \stemUp f' g16()a a4. g16()f | - g8 a16()bes bes4. c16()d | - % 11 - \stemBoth e,8 f c, g' f' e | - f4 f,2 | - \stemUp a'4 a4.-\trill bes8 | - c bes16 a \stemBoth fis8.-\trill es16 d8 c | - bes g' a, fis' es' d | - %16 - \stemUp bes4.-\trill \stemBoth a8 g f! | - e bes a f' g a | - d, as g es' f g | - cis, bes' a g16 f e!8 f16 d | - cis8 e16 a a,8. g'16 f8()e | - %21 - \stemUp d e16()f f4. e16()d | - e8 f16()g g4. a16()bes | - a8 cis16 d d,8 e16 f32 g f8-\trill e16()d | - d4 d,16 a'( b cis d e f )g | - %25 - a(b c)b c4. b16()a | - b cis d cis d4. e16()f | - \stemBoth d(cis)d f, a,8 e' d' cis | - d4 d,,2 | -} - -sarabandeB = \context Staff \notes \relative c { - \context Voice=ii - \stemDown -% dispute -% d4 a2 | -% this avoids the clash bug - d8. s16 a2 | - s8*3 | - s2.*2 - %5 -%disp -% a2 | - s16 a2 | - s8*3 | - s2. | - % 8 - s8*3 | - a4 r8 | - %10 - bes4 | - s2.*2 | - f'8 es es4. r8 | - d4 s2 | - %15 - s2. | - s8*3 | - s2.*4 | - %21 - bes4 g2 | - g4 s8 | - r r g, a4 | - s2. | - f'4 fis4. s8 | - gis4. s8 | - s2.*2 - \bar "|."; -} - - -sarabande = \context Staff \notes< - \sarabandeA - \sarabandeB -> - -\version "1.3.117"; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly index a797f92027..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly @@ -1,33 +0,0 @@ -\version "1.3.117"; - -\include "sarabande-urtext.ly"; - -sarabandeViolaGlobal = \notes{ - \time 3/4; - \key f \major; - \clef alto; - \repeat "volta" 2 { - s2.*12 - } \repeat "volta" 2 { - s2.*16 - } -} - -sarabandeViolaScripts = \notes{ -} - -sarabandeViolaStaff = \context Staff < - \notes \transpose c'' \sarabande - \sarabandeViolaGlobal - \sarabandeViolaScripts -> - -\score{ - \sarabandeViolaStaff - \paper{ } - \midi{ \tempo 4 = 40; } - \header{ - opus= "" ; - piece ="Sarabande"; } -} - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly index 12474c7766..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly @@ -1,4 +0,0 @@ -instr="cello" -instrument="Violoncello" -\include "solo-cello-suite-ii.ly" - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly index 09e45eabc8..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly @@ -1,4 +0,0 @@ -instr="viola" -instrument="Viola" -\include "solo-cello-suite-ii.ly" - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly index 04f1bf6d1f..e69de29bb2 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly @@ -1,21 +0,0 @@ -\include "header.ly" - -\paper { -linewidth = 180.\mm; -% \translator { \BarNumberingStaffContext } -} - -% \include "prelude-" + \instr + ".ly"; -i = "prelude-" + \instr + ".ly" -ii = "allemande-" + \instr + ".ly" -iii = "courante-" + \instr + ".ly" -iv = "sarabande-" + \instr + ".ly" -v = "menuetto-" + \instr + ".ly" -vi = "gigue-" + \instr + ".ly" - -\include \i -\include \ii -\include \iii -\include \iv -\include \v -\include \vi diff --git a/po/de.po b/po/de.po index 1b3186d567..6c5bc7513e 100644 --- a/po/de.po +++ b/po/de.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Lilypond 1.2.8\n" -"POT-Creation-Date: 2001-03-06 12:36+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: 1999-09-18 01:30+0200\n" "Last-Translator: Erwin Dieterich \n" "Language-Team: LANGUAGE \n" @@ -13,117 +13,137 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: ENCODING\n" -#: ly2dvi.py:67 main.cc:95 main.cc:109 +#: ly2dvi.py:86 main.cc:95 main.cc:105 msgid "this help" msgstr "Diese Hilfe" -#: ly2dvi.py:68 +#: ly2dvi.py:87 msgid "change global setting KEY to VAL" msgstr "" -#: ly2dvi.py:69 +#: ly2dvi.py:88 #, fuzzy msgid "generate PostScript output" msgstr "Degenerierte Zwangsbedingungen" -#: ly2dvi.py:70 +#: ly2dvi.py:89 msgid "keep all output, and name the directory ly2dvi.dir" msgstr "" -#: ly2dvi.py:71 +#: ly2dvi.py:90 msgid "don't run LilyPond" msgstr "" -#: ly2dvi.py:72 main.cc:104 main.cc:119 +#: ly2dvi.py:91 main.cc:115 +#, fuzzy +msgid "verbose" +msgstr "Sei geschwätzig" + +#: ly2dvi.py:92 main.cc:104 main.cc:114 msgid "print version number" msgstr "Zeige die Versionsnummer" -#: ly2dvi.py:73 main.cc:106 main.cc:121 +#: ly2dvi.py:93 main.cc:106 main.cc:116 msgid "show warranty and copyright" msgstr "Zeige Garantie und Urheberrechte" -#: ly2dvi.py:74 +#: ly2dvi.py:94 msgid "dump all final output into DIR" msgstr "" -#: ly2dvi.py:75 main.cc:113 +#: ly2dvi.py:95 main.cc:109 msgid "write Makefile dependencies for every input file" msgstr "Schreibe Makefile-Abhängigkeiten für jede Eingabedatei" -#: ly2dvi.py:101 +#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23 +msgid "warning: " +msgstr "Warnung: " + +#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17 +msgid "error: " +msgstr "Fehler: " + +#: ly2dvi.py:130 #, fuzzy msgid "Exiting ... " msgstr "Linie ... " -#: ly2dvi.py:120 +#: ly2dvi.py:149 #, fuzzy, c-format -msgid "Reading `%s'" +msgid "Reading %s..." msgstr "Uralt-Bitte: `%s'" -#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" msgstr "Kann die Datei %s nicht öffnen" -#: ly2dvi.py:187 +#: ly2dvi.py:216 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE" msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]" -#: ly2dvi.py:189 +#: ly2dvi.py:218 msgid "Generate .dvi with LaTeX for LilyPond" msgstr "" -#: ly2dvi.py:191 main.cc:119 main.cc:151 +#: ly2dvi.py:220 main.cc:119 main.cc:146 msgid "Options:" msgstr "Optionen:" -#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23 -msgid "warning: " -msgstr "Warnung: " - -#: ly2dvi.py:196 +#: ly2dvi.py:224 msgid "all output is written in the CURRENT directory" msgstr "" -#: ly2dvi.py:198 main.cc:123 main.cc:174 +#: ly2dvi.py:226 main.cc:123 main.cc:169 #, fuzzy, c-format msgid "Report bugs to %s" msgstr "Melde Fehler an" -#: ly2dvi.py:230 +#: ly2dvi.py:260 #, fuzzy, c-format msgid "Invoking `%s'" msgstr "Uralt-Bitte: `%s'" -#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17 -msgid "error: " -msgstr "Fehler: " - -#: ly2dvi.py:234 +#: ly2dvi.py:263 #, c-format msgid "command exited with value %d" msgstr "" -#: ly2dvi.py:236 +#: ly2dvi.py:265 msgid "(ignored)" msgstr "" -#: ly2dvi.py:277 +#: ly2dvi.py:301 +#, fuzzy, c-format +msgid "no such setting: %s" +msgstr "Kein solches instrument: `%s'" + +#: ly2dvi.py:309 #, c-format msgid "Analyzing `%s'" msgstr "" -#: ly2dvi.py:539 scores.cc:44 +#: ly2dvi.py:353 +#, c-format +msgid "no lilypond output found for %s" +msgstr "" + +#: ly2dvi.py:395 +#, fuzzy, c-format +msgid "invalid value: %s" +msgstr "Ungültiger Buchstabe `%c'" + +#: ly2dvi.py:602 scores.cc:44 #, fuzzy, c-format msgid "dependencies output to %s..." msgstr "Ausgabe auf Papier auf %s..." -#: ly2dvi.py:540 -#, c-format -msgid "%s file left in `%s'" -msgstr "" +#: ly2dvi.py:603 +#, fuzzy, c-format +msgid "%s output to %s..." +msgstr "MIDI-Ausgabe nach %s..." #: data-file.cc:54 msgid "EOF in a string" @@ -232,12 +252,12 @@ msgstr "Kann die Schrift %s nicht finden, lade die Standardschrift." msgid "can't find default font: `%s'" msgstr "Kann Schrift `%s' nicht finden" -#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137 +#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137 #, c-format msgid "(search path: `%s')" msgstr "(Suchpfad: `%s')" -#: all-font-metrics.cc:173 parser.yy:1663 +#: all-font-metrics.cc:173 parser.yy:1681 msgid "Giving up" msgstr "" @@ -317,7 +337,7 @@ msgstr "Unerlaubte Subtraktion: nicht Teil eines Akkords: %s" msgid "invalid inversion pitch: not part of chord: %s" msgstr "Unerlaubter Baßton: gehört nicht zum Akkord: %s" -#: chord-tremolo-engraver.cc:141 +#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162 #, fuzzy msgid "unterminated chord tremolo" msgstr "Unbeendeter Bindestrich" @@ -327,7 +347,7 @@ msgstr "Unbeendeter Bindestrich" msgid "no one to print a tremolos" msgstr "Keiner darf eine Wiederholungsklammer drucken" -#: collision.cc:116 +#: collision.cc:118 msgid "Too many clashing notecolumns. Ignoring them." msgstr "Zu viele aneinanderstoßende Notenspalten. Ich ignoriere sie." @@ -360,7 +380,7 @@ msgstr "Habe schon einen Balken" msgid "already have a decrescendo" msgstr "Habe schon einen Balken" -#: dynamic-engraver.cc:307 +#: dynamic-engraver.cc:318 #, fuzzy msgid "unterminated (de)crescendo" msgstr "Nichtbeendetes Crescendo" @@ -378,7 +398,7 @@ msgstr "" msgid "no one to print a repeat brace" msgstr "Keiner darf eine Wiederholungsklammer drucken" -#: font-interface.cc:220 +#: font-interface.cc:237 msgid "couldn't find any font satisfying " msgstr "" @@ -414,7 +434,7 @@ msgstr "Unbeendeter Bindestrich" msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request." msgstr "" -#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24 +#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24 #: scores.cc:136 scores.cc:142 #, c-format msgid "can't find file: `%s'" @@ -451,90 +471,85 @@ msgstr "" msgid "Huh? Melismatic note found to have associated lyrics." msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "EXT" msgstr "EXT" -#: main.cc:108 +#: main.cc:104 #, fuzzy msgid "use output format EXT (scm, ps, tex or as)" msgstr "Benutze das Ausgabeformat EXT" -#: main.cc:110 +#: main.cc:106 #, fuzzy msgid "FIELD" msgstr "DATEI" -#: main.cc:110 +#: main.cc:106 msgid "write header field to BASENAME.FIELD" msgstr "" -#: main.cc:111 main.cc:114 +#: main.cc:107 main.cc:110 msgid "DIR" msgstr "DIR" -#: main.cc:111 +#: main.cc:107 msgid "add DIR to search path" msgstr "Hänge DIR an den Suchpfad an" -#: main.cc:98 main.cc:112 +#: main.cc:98 main.cc:108 msgid "FILE" msgstr "DATEI" -#: main.cc:112 +#: main.cc:108 msgid "use FILE as init file" msgstr "Verwende FILE als Initialisierungsdatei" -#: main.cc:114 +#: main.cc:110 msgid "prepend DIR to dependencies" msgstr "" -#: main.cc:115 +#: main.cc:111 #, fuzzy msgid "produce MIDI output only" msgstr "Nur Midiausgabe" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "NAME" msgstr "BASENAME" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "write output to NAME" msgstr "Schreibe die Ausgabe in BASENAME[-x].Erweiterung" -#: main.cc:117 +#: main.cc:113 msgid "inhibit file output naming and exporting" msgstr "Unterdrücke die automatische Benennung von Ausgabedateien und Export" -#: main.cc:103 main.cc:118 -msgid "don't timestamp the output" -msgstr "Keine Datumsangabe auf der Ausgabe" - -#: main.cc:120 -#, fuzzy -msgid "verbose" -msgstr "Sei geschwätzig" +#: main.cc:117 +msgid "EXPR" +msgstr "" -#: main.cc:122 -msgid "write midi ouput in formatted ascii" +#: main.cc:117 +msgid "evalute EXPR as Scheme after .scm init is read" msgstr "" #. #. No version number or newline here. It confuses help2man #. -#: main.cc:139 +#: main.cc:134 #, c-format msgid "Usage: %s [OPTION]... [FILE]..." msgstr "Benutzung: %s [OPTIONEN] ... [DATEI] ..." -#: main.cc:141 +#: main.cc:136 #, fuzzy msgid "Typeset music and or play MIDI from FILE" msgstr "Setze Musik oder spiele MIDI von DATEI" -#: main.cc:145 +#: main.cc:140 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" @@ -544,11 +559,11 @@ msgstr "" "Notenblätter erzeugen. Dazu verwendet es eine eigene Beschreibungssprache.\n" "lilyPond ist Teil des GNU-Projekts\n" -#: main.cc:155 +#: main.cc:150 msgid "This binary was compiled with the following options:" msgstr "Diese Programm wurde mit den folgenden Optionen übersetzt:" -#: main.cc:55 main.cc:182 +#: main.cc:55 main.cc:177 #, c-format msgid "" "This is free software. It is covered by the GNU General Public License,\n" @@ -561,17 +576,17 @@ msgstr "" "einhalten. Wenn Sie das Programm mit `%s --warranty starten, bekommen\n" "Sie mehr Informationen.\n" -#: main.cc:62 main.cc:189 main.cc:201 +#: main.cc:62 main.cc:184 main.cc:196 #, c-format msgid "Copyright (c) %s by" msgstr "Urheberrechte (Copyright) (c) %s bei" -#: main.cc:199 +#: main.cc:194 #, fuzzy msgid "GNU LilyPond -- The music typesetter" msgstr "GNU LilyPond -- Der Notensatz des GNU-Projekts" -#: main.cc:71 main.cc:207 +#: main.cc:71 main.cc:202 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" @@ -619,29 +634,37 @@ msgstr "unsinnige Tonh msgid "Transposition by %s makes accidental larger than two" msgstr "Transponieren um %s macht Vorzecihen größer als zwei" -#: music.cc:222 +#: music.cc:224 msgid "ly_get_mus_property (): Not a Music" msgstr "" -#: music.cc:236 +#: music.cc:238 msgid "ly_set_mus_property (): Not a symbol" msgstr "" -#: music.cc:248 +#: music.cc:250 msgid "ly_set_mus_property (): not of type Music" msgstr "" +#: music.cc:264 +msgid "ly_make_music (): Not a string" +msgstr "" + +#: music.cc:284 +msgid "ly_music_name (): Not a music expression" +msgstr "" + #: music-output-def.cc:115 #, fuzzy, c-format msgid "can't find `%s' context" msgstr "Kann Partiturkontext nicht finden" -#: my-lily-lexer.cc:137 +#: my-lily-lexer.cc:138 #, fuzzy, c-format msgid "Identifier name is a keyword: `%s'" msgstr "name ist ein Schlüsselbegriff (keyword) (`%s')" -#: my-lily-lexer.cc:157 +#: my-lily-lexer.cc:158 #, c-format msgid "error at EOF: %s" msgstr "Fehler am Dateiende(EOF): %s" @@ -650,7 +673,7 @@ msgstr "Fehler am Dateiende(EOF): %s" msgid "Parsing..." msgstr "Verarbeite..." -#: my-lily-parser.cc:55 +#: my-lily-parser.cc:57 #, fuzzy msgid "Braces don't match" msgstr "Klammern passen nicht zusammen" @@ -665,11 +688,11 @@ msgstr "Uralt-Bitte: `%s'" msgid "paper output to %s..." msgstr "Ausgabe auf Papier auf %s..." -#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", bei " -#: paper-outputter.cc:245 +#: paper-outputter.cc:232 #, fuzzy, c-format msgid "writing header field %s to %s..." msgstr "Schreibe Datei mit Abhängigkeiten: `%s'..." @@ -678,7 +701,7 @@ msgstr "Schreibe Datei mit Abh msgid "Preprocessing elements..." msgstr "Verarbeite Element vor..." -#: paper-score.cc:113 +#: paper-score.cc:114 #, fuzzy msgid "Outputting Score, defined at: " msgstr "Gebe Partitur aus, definiert bei: " @@ -709,6 +732,16 @@ msgstr "" msgid "none of these in my family: `%s'" msgstr "" +#: percent-repeat-engraver.cc:108 +#, fuzzy +msgid "Don't know yet how to handle this percent repeat." +msgstr "Weiß nicht, wie ich eine fehlende Tonart behandeln soll" + +#: percent-repeat-iterator.cc:53 +#, fuzzy +msgid "no one to print a percent" +msgstr "Keiner darf eine Wiederholungsklammer drucken" + #: performance.cc:51 msgid "Track ... " msgstr "Stück ... " @@ -717,12 +750,12 @@ msgstr "St msgid "Creator: " msgstr "Erstellt von: " -#: performance.cc:116 +#: performance.cc:109 #, c-format msgid "from musical definition: %s" msgstr "von der musiaklischen Definition: %s" -#: performance.cc:171 +#: performance.cc:164 #, c-format msgid "MIDI output to %s..." msgstr "MIDI-Ausgabe nach %s..." @@ -789,7 +822,7 @@ msgstr "Habe Fehler gefunden, /* die Partitur wird nicht verarbeitet */" msgid "elapsed time: %.2f seconds" msgstr "verstrichene Zeit %.2f Sekunden" -#: score-engraver.cc:177 +#: score-engraver.cc:183 #, fuzzy, c-format msgid "unbound spanner `%s'" msgstr "Unbeschränkter Abstand `%s'" @@ -828,7 +861,9 @@ msgstr "Bindebogen msgid "unterminated slur" msgstr "Unbeendeter Bindebogen" -#: slur-engraver.cc:142 +#. How to shut up this warning, when Voice_devnull_engraver has +#. eaten start request? +#: slur-engraver.cc:144 #, fuzzy msgid "can't find start of slur" msgstr "Kann nicht beide Enden von %s finden" @@ -868,21 +903,23 @@ msgstr "Unbeendete Linienfortf msgid "can't find ascii character: %d" msgstr "Kann ASCII-Zeichen `%d' nicht finden" -#: tfm-reader.cc:105 -#, c-format -msgid "TFM header of `%s' has only %u word(s)" +#: tfm-reader.cc:106 +#, fuzzy, c-format +msgid "TFM header of `%s' has only %u word (s)" msgstr "TFM header von `%s' hat nur %u Wort(e)" -#: tfm-reader.cc:139 +#: tfm-reader.cc:140 #, fuzzy, c-format msgid "%s: TFM file has %u parameters, which is more than the %u I can handle" msgstr "%s: TFM-Datei hat %u Parameter. Das ist mehr als die" -#: tie-engraver.cc:211 tie-performer.cc:173 +#. How to shut up this warning, when no notes appeared because +#. they were suicided by Thread_devnull_engraver? +#: tie-engraver.cc:215 tie-performer.cc:173 msgid "No ties were created!" msgstr "Es wurden keine Haltebögen erzeugt!" -#: tie-engraver.cc:230 +#: tie-engraver.cc:234 msgid "lonely tie" msgstr "Einsamer Haltebogen" @@ -901,21 +938,21 @@ msgstr " msgid "unknown translator: `%s'" msgstr "unbekannter Übersetzer `%s'" -#: translator-def.cc:96 +#: translator-def.cc:99 msgid "Program has no such type" msgstr "" -#: translator-def.cc:102 +#: translator-def.cc:105 #, fuzzy, c-format msgid "Already contains: `%s'" msgstr "Enthält schon ein `%s'" -#: translator-def.cc:103 +#: translator-def.cc:106 #, fuzzy, c-format msgid "Not adding translator: `%s'" msgstr "unbekannter Übersetzer `%s'" -#: translator-def.cc:215 +#: translator-def.cc:224 #, fuzzy, c-format msgid "can't find: `%s'" msgstr "Kann `%s' nicht finden" @@ -930,19 +967,19 @@ msgstr "Kann ein `%s', genannt `%s' weder finden noch erzeugen" msgid "can't find or create: `%s'" msgstr "Kann ein `%s' weder finden noch erzeugen" -#: translator-group.cc:403 +#: translator-group.cc:414 #, c-format msgid "" "Can't find property type-check for `%s'. Perhaps you made a typing error?" msgstr "" -#: translator-group.cc:417 +#: translator-group.cc:428 #, c-format msgid "Type check for `%s' failed; value `%s' must be of type `%s'" msgstr "" #. programming_error? -#: translator-group.cc:436 +#: translator-group.cc:447 msgid "ly-get-trans-property: expecting a Translator_group argument" msgstr "" @@ -963,119 +1000,191 @@ msgstr "" msgid "Oldest supported input version: %s" msgstr "Älteste noch unterstütze Version der Eingabe: %s" -#: parser.yy:471 +#: parser.yy:473 msgid "Wrong type for property value" msgstr "Falsche Type für Besitz-Wert" -#: parser.yy:666 +#: parser.yy:672 msgid "More alternatives than repeats. Junking excess alternatives." msgstr "" -#: parser.yy:730 +#: parser.yy:736 msgid "Second argument must be a symbol" msgstr "" -#: parser.yy:735 +#: parser.yy:741 msgid "First argument must be a procedure taking 1 argument" msgstr "" -#: parser.yy:1211 +#: parser.yy:1236 msgid "Expecting string as script definition" msgstr "" -#: parser.yy:1221 +#: parser.yy:1246 msgid "Can't specify direction for this request" msgstr "" -#: parser.yy:1353 +#: parser.yy:1371 msgid "Expecting musical-pitch value" msgstr "" -#: parser.yy:1364 +#: parser.yy:1382 #, fuzzy msgid "Must have duration object" msgstr "Setze kürzeste Dauer (?)" -#: parser.yy:1373 parser.yy:1381 parser.yy:1661 +#: parser.yy:1391 parser.yy:1399 parser.yy:1679 #, fuzzy msgid "Have to be in Lyric mode for lyrics" msgstr "Um Text zu verarbeiten, muß ich im Text-(Lyrics)-Modus sein" -#: parser.yy:1546 parser.yy:1575 +#: parser.yy:1564 parser.yy:1593 #, c-format msgid "not a duration: %d" msgstr "Keine Dauer: %d" -#: parser.yy:1584 +#: parser.yy:1602 #, fuzzy msgid "Have to be in Note mode for notes" msgstr "Für Noten muß ich im Noten-(Note)-Modus sein" -#: parser.yy:1680 +#: parser.yy:1698 #, fuzzy msgid "Have to be in Chord mode for chords" msgstr "Für Akkorde muß ich im Akkord-(Chord)-Modus sein" -#: parser.yy:1842 parser.yy:1860 +#: parser.yy:1860 parser.yy:1878 msgid "need integer number arg" msgstr "" -#: parser.yy:1846 +#: parser.yy:1864 msgid "Must be positive integer" msgstr "" -#: lexer.ll:165 +#: lexer.ll:166 msgid "EOF found inside a comment" msgstr "Während eines Kommentar war die Datei zu Ende (EOF gefunden)" -#: lexer.ll:179 +#: lexer.ll:180 msgid "\\maininput disallowed outside init files" msgstr "" -#: lexer.ll:203 +#: lexer.ll:204 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "Unbekannter Identifier: `%s'" #. backup rule -#: lexer.ll:208 +#: lexer.ll:209 #, fuzzy msgid "Missing end quote" msgstr "Endnote fehlt" #. backup rule -#: lexer.ll:230 lexer.ll:234 +#: lexer.ll:231 lexer.ll:235 msgid "white expected" msgstr "Erwarte Weiß" -#: lexer.ll:243 +#: lexer.ll:244 #, fuzzy msgid "Can't evaluate Scheme in safe mode" msgstr "Kann Scheme nicht interpretieren, wenn ich im sicheren Modus bin" -#: lexer.ll:335 +#: lexer.ll:336 msgid "Brace found at end of lyric. Did you forget a space?" msgstr "" -#: lexer.ll:439 +#: lexer.ll:440 #, c-format msgid "invalid character: `%c'" msgstr "Ungültiger Buchstabe `%c'" -#: lexer.ll:520 +#: lexer.ll:521 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "Unbekannte Sonder-Zeichenkette" -#: lexer.ll:602 +#: lexer.ll:603 #, fuzzy, c-format msgid "incorrect lilypond version: %s (%s, %s)" -msgstr "Falsche Version von Mudela: (s /%s, %s)" +msgstr "Falsche Version von Lilypond: %s (%s, %s)" -#: lexer.ll:603 +#: lexer.ll:604 msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "#32 in Vierteln: %d" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Lily-Ausgabe nach %s..." + +#: lilypond-score.cc:119 +#, fuzzy, c-format +msgid "track %d:" +msgstr "Spur " + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "Verarbeite..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "Erzeuge Stimmen..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "Spur " + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "Ich filtere das Tempo NICHT..." + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "ich quantifiziere die Spalten NICHT..." + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "Quantifiziere Spalten..." + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "Erledige Spalten..." + +#: lilypond-staff.cc:209 +#, fuzzy +msgid "% MIDI copyright:" +msgstr "% Midi Urheberrecht:" + +#: lilypond-staff.cc:210 +#, fuzzy +msgid "% MIDI instrument:" +msgstr "% Instrument:" + +#: lilypond-stream.cc:37 +#, c-format +msgid "lily indent level: %d" +msgstr "lily Einrücklevel: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "% erstellt von: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% Automatisch generiert" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% aus Eingabedatei: " + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "Schreibe genaue Dauer, z.B.: a4*385/384" @@ -1124,6 +1233,10 @@ msgstr "DUR" msgid "set smallest duration" msgstr "Setze kürzeste Dauer (?)" +#: main.cc:103 +msgid "don't timestamp the output" +msgstr "Keine Datumsangabe auf der Ausgabe" + #: main.cc:105 msgid "be verbose" msgstr "Sei geschwätzig" @@ -1139,8 +1252,8 @@ msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]" #: main.cc:116 #, fuzzy -msgid "Translate MIDI-file to mudela" -msgstr "Übersetze MIDI in mudela" +msgid "Translate MIDI-file to lilypond" +msgstr "Übersetze MIDI in Lilypond" #: main.cc:130 #, c-format @@ -1220,78 +1333,6 @@ msgstr "Erwarte MIDI-St msgid "invalid track length" msgstr "Unzulässige Länge für ein Stück" -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "#32 in Vierteln: %d" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Lily-Ausgabe nach %s..." - -#: mudela-score.cc:119 -#, fuzzy, c-format -msgid "track %d:" -msgstr "Spur " - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "Verarbeite..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "Erzeuge Stimmen..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "Spur " - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "Ich filtere das Tempo NICHT..." - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "ich quantifiziere die Spalten NICHT..." - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "Quantifiziere Spalten..." - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "Erledige Spalten..." - -#: mudela-staff.cc:209 -#, fuzzy -msgid "% MIDI copyright:" -msgstr "% Midi Urheberrecht:" - -#: mudela-staff.cc:210 -#, fuzzy -msgid "% MIDI instrument:" -msgstr "% Instrument:" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "lily Einrücklevel: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "% erstellt von: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% Automatisch generiert" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% aus Eingabedatei: " - #, fuzzy #~ msgid "Dependency file left in `%s'" #~ msgstr "Schreibe Datei mit Abhängigkeiten: `%s'..." @@ -1374,10 +1415,6 @@ msgstr "% aus Eingabedatei: " #~ msgid "No key name, assuming `C'" #~ msgstr "Keine Tonart: ich nehme `C' an" -#, fuzzy -#~ msgid "Don't know how handle empty keys" -#~ msgstr "Weiß nicht, wie ich eine fehlende Tonart behandeln soll" - #, fuzzy #~ msgid "out of tune:" #~ msgstr "Verstimmt" diff --git a/po/fr.po b/po/fr.po index 421acc6ad0..71bc705d07 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,122 +6,141 @@ msgid "" msgstr "" "Project-Id-Version: lilypond 1.3.18\n" -"POT-Creation-Date: 2001-03-06 12:36+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: 1999-12-28 00:32 +1\n" "Last-Translator: Laurent Martelli \n" "Language-Team: \n" "MIME-Version: 1.0\n" -#: ly2dvi.py:67 main.cc:95 main.cc:109 +#: ly2dvi.py:86 main.cc:95 main.cc:105 msgid "this help" msgstr "cette aide" -#: ly2dvi.py:68 +#: ly2dvi.py:87 msgid "change global setting KEY to VAL" msgstr "" -#: ly2dvi.py:69 +#: ly2dvi.py:88 msgid "generate PostScript output" msgstr "" -#: ly2dvi.py:70 +#: ly2dvi.py:89 msgid "keep all output, and name the directory ly2dvi.dir" msgstr "" -#: ly2dvi.py:71 +#: ly2dvi.py:90 msgid "don't run LilyPond" msgstr "" -#: ly2dvi.py:72 main.cc:104 main.cc:119 +#: ly2dvi.py:91 main.cc:115 +msgid "verbose" +msgstr "" + +#: ly2dvi.py:92 main.cc:104 main.cc:114 msgid "print version number" msgstr "afficher le numéro de version" -#: ly2dvi.py:73 main.cc:106 main.cc:121 +#: ly2dvi.py:93 main.cc:106 main.cc:116 msgid "show warranty and copyright" msgstr "" -#: ly2dvi.py:74 +#: ly2dvi.py:94 msgid "dump all final output into DIR" msgstr "" -#: ly2dvi.py:75 main.cc:113 +#: ly2dvi.py:95 main.cc:109 msgid "write Makefile dependencies for every input file" msgstr "" -#: ly2dvi.py:101 +#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23 +msgid "warning: " +msgstr "avertissement: " + +#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17 +msgid "error: " +msgstr "erreur: " + +#: ly2dvi.py:130 #, fuzzy msgid "Exiting ... " msgstr "Ligne ..." -#: ly2dvi.py:120 -#, c-format -msgid "Reading `%s'" -msgstr "" +#: ly2dvi.py:149 +#, fuzzy, c-format +msgid "Reading %s..." +msgstr "Création des voix..." -#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" msgstr "impossible d'ouvrir le fichier: `%s'" -#: ly2dvi.py:187 +#: ly2dvi.py:216 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE" msgstr "Usage: %s [OPTION... [FICHIER]" -#: ly2dvi.py:189 +#: ly2dvi.py:218 msgid "Generate .dvi with LaTeX for LilyPond" msgstr "" -#: ly2dvi.py:191 main.cc:119 main.cc:151 +#: ly2dvi.py:220 main.cc:119 main.cc:146 msgid "Options:" msgstr "Options: " -#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23 -msgid "warning: " -msgstr "avertissement: " - -#: ly2dvi.py:196 +#: ly2dvi.py:224 msgid "all output is written in the CURRENT directory" msgstr "" -#: ly2dvi.py:198 main.cc:123 main.cc:174 +#: ly2dvi.py:226 main.cc:123 main.cc:169 #, fuzzy, c-format msgid "Report bugs to %s" msgstr "Rapporter les bugs à" -#: ly2dvi.py:230 +#: ly2dvi.py:260 #, c-format msgid "Invoking `%s'" msgstr "" -#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17 -msgid "error: " -msgstr "erreur: " - -#: ly2dvi.py:234 +#: ly2dvi.py:263 #, c-format msgid "command exited with value %d" msgstr "" -#: ly2dvi.py:236 +#: ly2dvi.py:265 msgid "(ignored)" msgstr "" -#: ly2dvi.py:277 +#: ly2dvi.py:301 +#, fuzzy, c-format +msgid "no such setting: %s" +msgstr "Pas d'instrument tel: `%s'" + +#: ly2dvi.py:309 #, c-format msgid "Analyzing `%s'" msgstr "" -#: ly2dvi.py:539 scores.cc:44 +#: ly2dvi.py:353 +#, c-format +msgid "no lilypond output found for %s" +msgstr "" + +#: ly2dvi.py:395 +#, fuzzy, c-format +msgid "invalid value: %s" +msgstr "caractères illégal: `%c'" + +#: ly2dvi.py:602 scores.cc:44 #, fuzzy, c-format msgid "dependencies output to %s..." msgstr "Sortie papier vers %s..." -#: ly2dvi.py:540 -#, c-format -msgid "%s file left in `%s'" -msgstr "" +#: ly2dvi.py:603 +#, fuzzy, c-format +msgid "%s output to %s..." +msgstr "Sortie de Lily vers %s..." #: data-file.cc:54 #, fuzzy @@ -231,12 +250,12 @@ msgstr "Impossible de trouver la police `%s', chargement la police par d msgid "can't find default font: `%s'" msgstr "Impossible de trouver la fonte par défaut `%s', abandon." -#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137 +#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137 #, fuzzy, c-format msgid "(search path: `%s')" msgstr "chemin de recherche= %s" -#: all-font-metrics.cc:173 parser.yy:1663 +#: all-font-metrics.cc:173 parser.yy:1681 msgid "Giving up" msgstr "" @@ -316,7 +335,7 @@ msgstr "soustraction invalide: ne fait pas partie de l'accord: %s" msgid "invalid inversion pitch: not part of chord: %s" msgstr "renversement invalide: ne fait pas partie de l'accord: %s" -#: chord-tremolo-engraver.cc:141 +#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162 msgid "unterminated chord tremolo" msgstr "" @@ -324,7 +343,7 @@ msgstr "" msgid "no one to print a tremolos" msgstr "" -#: collision.cc:116 +#: collision.cc:118 #, fuzzy msgid "Too many clashing notecolumns. Ignoring them." msgstr "Trop de colonnes de notes superposées. Je les ignore." @@ -358,7 +377,7 @@ msgstr "Il y a d msgid "already have a decrescendo" msgstr "Il y a déjà une barre" -#: dynamic-engraver.cc:307 +#: dynamic-engraver.cc:318 #, fuzzy msgid "unterminated (de)crescendo" msgstr "crescendo non terminé" @@ -375,7 +394,7 @@ msgstr "" msgid "no one to print a repeat brace" msgstr "" -#: font-interface.cc:220 +#: font-interface.cc:237 msgid "couldn't find any font satisfying " msgstr "" @@ -409,7 +428,7 @@ msgstr "" msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request." msgstr "" -#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24 +#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24 #: scores.cc:136 scores.cc:142 #, c-format msgid "can't find file: `%s'" @@ -446,87 +465,83 @@ msgstr "" msgid "Huh? Melismatic note found to have associated lyrics." msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "EXT" msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "use output format EXT (scm, ps, tex or as)" msgstr "" -#: main.cc:110 +#: main.cc:106 #, fuzzy msgid "FIELD" msgstr "FICHIER" -#: main.cc:110 +#: main.cc:106 msgid "write header field to BASENAME.FIELD" msgstr "" -#: main.cc:111 main.cc:114 +#: main.cc:107 main.cc:110 msgid "DIR" msgstr "REP" -#: main.cc:111 +#: main.cc:107 #, fuzzy msgid "add DIR to search path" msgstr "ajoute REP au chemin de recherche" -#: main.cc:98 main.cc:112 +#: main.cc:98 main.cc:108 msgid "FILE" msgstr "FICHIER" -#: main.cc:112 +#: main.cc:108 #, fuzzy msgid "use FILE as init file" msgstr "utilise FICHIER comme fichier d'initialisation" -#: main.cc:114 +#: main.cc:110 msgid "prepend DIR to dependencies" msgstr "" -#: main.cc:115 +#: main.cc:111 #, fuzzy msgid "produce MIDI output only" msgstr "produit seulement la sortie MIDI" -#: main.cc:116 +#: main.cc:112 msgid "NAME" msgstr "" -#: main.cc:116 +#: main.cc:112 msgid "write output to NAME" msgstr "" -#: main.cc:117 +#: main.cc:113 msgid "inhibit file output naming and exporting" msgstr "" -#: main.cc:103 main.cc:118 -msgid "don't timestamp the output" -msgstr "" - -#: main.cc:120 -msgid "verbose" +#: main.cc:117 +msgid "EXPR" msgstr "" -#: main.cc:122 -msgid "write midi ouput in formatted ascii" +#: main.cc:117 +msgid "evalute EXPR as Scheme after .scm init is read" msgstr "" #. #. No version number or newline here. It confuses help2man #. -#: main.cc:139 +#: main.cc:134 #, c-format msgid "Usage: %s [OPTION]... [FILE]..." msgstr "Usage: %s [OPTION]... [FICHIER]..." -#: main.cc:141 +#: main.cc:136 msgid "Typeset music and or play MIDI from FILE" msgstr "" -#: main.cc:145 +#: main.cc:140 #, fuzzy msgid "" "LilyPond is a music typesetter. It produces beautiful sheet music\n" @@ -537,12 +552,12 @@ msgstr "" "paritions à partir de description de gaut niveau en entrée. Lilypond\n" "fait partie du projet GNU.\n" -#: main.cc:155 +#: main.cc:150 #, fuzzy msgid "This binary was compiled with the following options:" msgstr "Cet exécutable a été compilé avec les options suivantes:" -#: main.cc:55 main.cc:182 +#: main.cc:55 main.cc:177 #, c-format msgid "" "This is free software. It is covered by the GNU General Public License,\n" @@ -550,17 +565,17 @@ msgid "" "certain conditions. Invoke as `%s --warranty' for more information.\n" msgstr "" -#: main.cc:62 main.cc:189 main.cc:201 +#: main.cc:62 main.cc:184 main.cc:196 #, c-format msgid "Copyright (c) %s by" msgstr "Copyright (c) %s par" -#: main.cc:199 +#: main.cc:194 #, fuzzy msgid "GNU LilyPond -- The music typesetter" msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU" -#: main.cc:71 main.cc:207 +#: main.cc:71 main.cc:202 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" @@ -595,29 +610,37 @@ msgstr "" msgid "Transposition by %s makes accidental larger than two" msgstr "" -#: music.cc:222 +#: music.cc:224 msgid "ly_get_mus_property (): Not a Music" msgstr "" -#: music.cc:236 +#: music.cc:238 msgid "ly_set_mus_property (): Not a symbol" msgstr "" -#: music.cc:248 +#: music.cc:250 msgid "ly_set_mus_property (): not of type Music" msgstr "" +#: music.cc:264 +msgid "ly_make_music (): Not a string" +msgstr "" + +#: music.cc:284 +msgid "ly_music_name (): Not a music expression" +msgstr "" + #: music-output-def.cc:115 #, fuzzy, c-format msgid "can't find `%s' context" msgstr "ne peut pas trouver `%s'" -#: my-lily-lexer.cc:137 +#: my-lily-lexer.cc:138 #, c-format msgid "Identifier name is a keyword: `%s'" msgstr "" -#: my-lily-lexer.cc:157 +#: my-lily-lexer.cc:158 #, c-format msgid "error at EOF: %s" msgstr "" @@ -626,7 +649,7 @@ msgstr "" msgid "Parsing..." msgstr "Analyse..." -#: my-lily-parser.cc:55 +#: my-lily-parser.cc:57 msgid "Braces don't match" msgstr "" @@ -640,11 +663,11 @@ msgstr "" msgid "paper output to %s..." msgstr "Sortie papier vers %s..." -#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", à " -#: paper-outputter.cc:245 +#: paper-outputter.cc:232 #, fuzzy, c-format msgid "writing header field %s to %s..." msgstr "impossible d'ouvrir le fichier: `%s'" @@ -653,7 +676,7 @@ msgstr "impossible d'ouvrir le fichier: `%s'" msgid "Preprocessing elements..." msgstr "" -#: paper-score.cc:113 +#: paper-score.cc:114 msgid "Outputting Score, defined at: " msgstr "" @@ -683,6 +706,15 @@ msgstr "" msgid "none of these in my family: `%s'" msgstr "" +#: percent-repeat-engraver.cc:108 +#, fuzzy +msgid "Don't know yet how to handle this percent repeat." +msgstr "ne sait pas traiter les clés vides" + +#: percent-repeat-iterator.cc:53 +msgid "no one to print a percent" +msgstr "" + #: performance.cc:51 #, fuzzy msgid "Track ... " @@ -692,12 +724,12 @@ msgstr "Piste ... " msgid "Creator: " msgstr "Auteur: " -#: performance.cc:116 +#: performance.cc:109 #, c-format msgid "from musical definition: %s" msgstr "" -#: performance.cc:171 +#: performance.cc:164 #, c-format msgid "MIDI output to %s..." msgstr "" @@ -760,7 +792,7 @@ msgstr "" msgid "elapsed time: %.2f seconds" msgstr "temps ecoulé: %.2f secondes" -#: score-engraver.cc:177 +#: score-engraver.cc:183 #, fuzzy, c-format msgid "unbound spanner `%s'" msgstr "traducteur inconnu `%s'" @@ -796,7 +828,9 @@ msgstr "" msgid "unterminated slur" msgstr "" -#: slur-engraver.cc:142 +#. How to shut up this warning, when Voice_devnull_engraver has +#. eaten start request? +#: slur-engraver.cc:144 #, fuzzy msgid "can't find start of slur" msgstr "impossible de trouver le caractères numéro %d" @@ -835,21 +869,23 @@ msgstr "Barre non termin msgid "can't find ascii character: %d" msgstr "ne peut pas trouver le caractère ascii `%d'" -#: tfm-reader.cc:105 +#: tfm-reader.cc:106 #, c-format -msgid "TFM header of `%s' has only %u word(s)" +msgid "TFM header of `%s' has only %u word (s)" msgstr "" -#: tfm-reader.cc:139 +#: tfm-reader.cc:140 #, c-format msgid "%s: TFM file has %u parameters, which is more than the %u I can handle" msgstr "" -#: tie-engraver.cc:211 tie-performer.cc:173 +#. How to shut up this warning, when no notes appeared because +#. they were suicided by Thread_devnull_engraver? +#: tie-engraver.cc:215 tie-performer.cc:173 msgid "No ties were created!" msgstr "Aucune liaison n'a été crée" -#: tie-engraver.cc:230 +#: tie-engraver.cc:234 msgid "lonely tie" msgstr "liaison solitaire" @@ -867,21 +903,21 @@ msgstr "" msgid "unknown translator: `%s'" msgstr "traducteur inconnu `%s'" -#: translator-def.cc:96 +#: translator-def.cc:99 msgid "Program has no such type" msgstr "" -#: translator-def.cc:102 +#: translator-def.cc:105 #, fuzzy, c-format msgid "Already contains: `%s'" msgstr "Contient déjà un `%s'" -#: translator-def.cc:103 +#: translator-def.cc:106 #, fuzzy, c-format msgid "Not adding translator: `%s'" msgstr "traducteur inconnu `%s'" -#: translator-def.cc:215 +#: translator-def.cc:224 #, fuzzy, c-format msgid "can't find: `%s'" msgstr "ne peut pas trouver `%s'" @@ -896,19 +932,19 @@ msgstr "ne peut pas trouver ou cr msgid "can't find or create: `%s'" msgstr "ne peut pas trouver ou créer `%s'" -#: translator-group.cc:403 +#: translator-group.cc:414 #, c-format msgid "" "Can't find property type-check for `%s'. Perhaps you made a typing error?" msgstr "" -#: translator-group.cc:417 +#: translator-group.cc:428 #, c-format msgid "Type check for `%s' failed; value `%s' must be of type `%s'" msgstr "" #. programming_error? -#: translator-group.cc:436 +#: translator-group.cc:447 msgid "ly-get-trans-property: expecting a Translator_group argument" msgstr "" @@ -929,117 +965,188 @@ msgstr "" msgid "Oldest supported input version: %s" msgstr "Plus ancienne version supportée: %s" -#: parser.yy:471 +#: parser.yy:473 msgid "Wrong type for property value" msgstr "Mauvais type pour la valeur de la propriété" -#: parser.yy:666 +#: parser.yy:672 msgid "More alternatives than repeats. Junking excess alternatives." msgstr "" -#: parser.yy:730 +#: parser.yy:736 msgid "Second argument must be a symbol" msgstr "" -#: parser.yy:735 +#: parser.yy:741 msgid "First argument must be a procedure taking 1 argument" msgstr "" -#: parser.yy:1211 +#: parser.yy:1236 msgid "Expecting string as script definition" msgstr "" -#: parser.yy:1221 +#: parser.yy:1246 msgid "Can't specify direction for this request" msgstr "" -#: parser.yy:1353 +#: parser.yy:1371 msgid "Expecting musical-pitch value" msgstr "" -#: parser.yy:1364 +#: parser.yy:1382 #, fuzzy msgid "Must have duration object" msgstr "Positionne la plus petite durée (?)" -#: parser.yy:1373 parser.yy:1381 parser.yy:1661 +#: parser.yy:1391 parser.yy:1399 parser.yy:1679 #, fuzzy msgid "Have to be in Lyric mode for lyrics" msgstr "il fayt être en mode Parole pour les paroles" -#: parser.yy:1546 parser.yy:1575 +#: parser.yy:1564 parser.yy:1593 #, c-format msgid "not a duration: %d" msgstr "pas une durée: %d" -#: parser.yy:1584 +#: parser.yy:1602 #, fuzzy msgid "Have to be in Note mode for notes" msgstr "il faut être en mode Note pour les notes" -#: parser.yy:1680 +#: parser.yy:1698 #, fuzzy msgid "Have to be in Chord mode for chords" msgstr "il faut être en mode Accord pour les accords" -#: parser.yy:1842 parser.yy:1860 +#: parser.yy:1860 parser.yy:1878 msgid "need integer number arg" msgstr "" -#: parser.yy:1846 +#: parser.yy:1864 msgid "Must be positive integer" msgstr "" -#: lexer.ll:165 +#: lexer.ll:166 msgid "EOF found inside a comment" msgstr "EOF trouvé dans un commentaire" -#: lexer.ll:179 +#: lexer.ll:180 msgid "\\maininput disallowed outside init files" msgstr "" -#: lexer.ll:203 +#: lexer.ll:204 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "indentifiant non défini: `%s'" #. backup rule -#: lexer.ll:208 +#: lexer.ll:209 msgid "Missing end quote" msgstr "" #. backup rule -#: lexer.ll:230 lexer.ll:234 +#: lexer.ll:231 lexer.ll:235 msgid "white expected" msgstr "blanche attendue" -#: lexer.ll:243 +#: lexer.ll:244 msgid "Can't evaluate Scheme in safe mode" msgstr "" -#: lexer.ll:335 +#: lexer.ll:336 msgid "Brace found at end of lyric. Did you forget a space?" msgstr "" -#: lexer.ll:439 +#: lexer.ll:440 #, fuzzy, c-format msgid "invalid character: `%c'" msgstr "caractères illégal: `%c'" -#: lexer.ll:520 +#: lexer.ll:521 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "chaîne d'échappement inconnue: `\\%s'" -#: lexer.ll:602 +#: lexer.ll:603 #, fuzzy, c-format msgid "incorrect lilypond version: %s (%s, %s)" msgstr "version de mudela incorrecte: %s (%s, %s)" -#: lexer.ll:603 +#: lexer.ll:604 msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Sortie de Lily vers %s..." + +#: lilypond-score.cc:119 +#, fuzzy, c-format +msgid "track %d:" +msgstr "piste " + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "Traitement..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "Création des voix..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "piste " + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "PAS de filtrage du tempo..." + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "PAS de quantification des colonnes..." + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "Quantification des colonnes..." + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "" + +#: lilypond-staff.cc:209 +msgid "% MIDI copyright:" +msgstr "" + +#: lilypond-staff.cc:210 +#, fuzzy +msgid "% MIDI instrument:" +msgstr "Pas d'instrument tel: `%s'" + +#: lilypond-stream.cc:37 +#, c-format +msgid "lily indent level: %d" +msgstr "Niveau d'indentation de lily: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "% Auteur: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% Généré automatiquement" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% dal file di input: " + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "" @@ -1086,6 +1193,10 @@ msgstr "" msgid "set smallest duration" msgstr "Positionne la plus petite durée (?)" +#: main.cc:103 +msgid "don't timestamp the output" +msgstr "" + #: main.cc:105 msgid "be verbose" msgstr "" @@ -1101,7 +1212,7 @@ msgstr "Usage: %s [OPTION... [FICHIER]" #: main.cc:116 #, fuzzy -msgid "Translate MIDI-file to mudela" +msgid "Translate MIDI-file to lilypond" msgstr "Traduction du fichier MIDI en mudela" #: main.cc:130 @@ -1182,77 +1293,6 @@ msgstr "piste MIDI attendue" msgid "invalid track length" msgstr "taille de piste invalide" -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Sortie de Lily vers %s..." - -#: mudela-score.cc:119 -#, fuzzy, c-format -msgid "track %d:" -msgstr "piste " - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "Traitement..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "Création des voix..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "piste " - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "PAS de filtrage du tempo..." - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "PAS de quantification des colonnes..." - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "Quantification des colonnes..." - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "" - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "" - -#: mudela-staff.cc:210 -#, fuzzy -msgid "% MIDI instrument:" -msgstr "Pas d'instrument tel: `%s'" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "Niveau d'indentation de lily: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "% Auteur: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% Généré automatiquement" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% dal file di input: " - #, fuzzy #~ msgid "Dependency file left in `%s'" #~ msgstr "impossible d'ouvrir le fichier: `%s'" @@ -1291,10 +1331,6 @@ msgstr "% dal file di input: " #~ msgid "No key name, assuming `C'" #~ msgstr "Pas de nom de clé: Do assumé" -#, fuzzy -#~ msgid "Don't know how handle empty keys" -#~ msgstr "ne sait pas traiter les clés vides" - #, fuzzy #~ msgid "out of tune:" #~ msgstr "hors de la tonalité" diff --git a/po/it.po b/po/it.po index d13607c909..3177c6e791 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ #, fuzzy msgid "" msgstr "" -"POT-Creation-Date: 2001-03-06 12:36+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Date: 1998-05-30 00:17:12+0200\n" "From: \n" @@ -13,120 +13,139 @@ msgstr "" "--output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n" "Files: bow.cc int.cc\n" -#: ly2dvi.py:67 main.cc:95 main.cc:109 +#: ly2dvi.py:86 main.cc:95 main.cc:105 msgid "this help" msgstr "" -#: ly2dvi.py:68 +#: ly2dvi.py:87 msgid "change global setting KEY to VAL" msgstr "" -#: ly2dvi.py:69 +#: ly2dvi.py:88 #, fuzzy msgid "generate PostScript output" msgstr "vincoli degenerati" -#: ly2dvi.py:70 +#: ly2dvi.py:89 msgid "keep all output, and name the directory ly2dvi.dir" msgstr "" -#: ly2dvi.py:71 +#: ly2dvi.py:90 msgid "don't run LilyPond" msgstr "" -#: ly2dvi.py:72 main.cc:104 main.cc:119 +#: ly2dvi.py:91 main.cc:115 +msgid "verbose" +msgstr "" + +#: ly2dvi.py:92 main.cc:104 main.cc:114 msgid "print version number" msgstr "" -#: ly2dvi.py:73 main.cc:106 main.cc:121 +#: ly2dvi.py:93 main.cc:106 main.cc:116 #, fuzzy msgid "show warranty and copyright" msgstr " -w, --warranty mostra la garanzia e il copyright\n" -#: ly2dvi.py:74 +#: ly2dvi.py:94 msgid "dump all final output into DIR" msgstr "" -#: ly2dvi.py:75 main.cc:113 +#: ly2dvi.py:95 main.cc:109 #, fuzzy msgid "write Makefile dependencies for every input file" msgstr "" " -d, --dependencies scrive le dependenze del Makefile per ogni file di " "input\n" -#: ly2dvi.py:101 +#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23 +msgid "warning: " +msgstr "attenzione: " + +#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17 +msgid "error: " +msgstr "errore: " + +#: ly2dvi.py:130 msgid "Exiting ... " msgstr "" -#: ly2dvi.py:120 -#, c-format -msgid "Reading `%s'" -msgstr "" +#: ly2dvi.py:149 +#, fuzzy, c-format +msgid "Reading %s..." +msgstr "Genero le voci..." -#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" msgstr "non posso aprire il file: `%s'" -#: ly2dvi.py:187 +#: ly2dvi.py:216 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE" msgstr "Uso: %s [OPZIONE... [FILE]" -#: ly2dvi.py:189 +#: ly2dvi.py:218 msgid "Generate .dvi with LaTeX for LilyPond" msgstr "" -#: ly2dvi.py:191 main.cc:119 main.cc:151 +#: ly2dvi.py:220 main.cc:119 main.cc:146 msgid "Options:" msgstr "Opzioni: " -#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23 -msgid "warning: " -msgstr "attenzione: " - -#: ly2dvi.py:196 +#: ly2dvi.py:224 msgid "all output is written in the CURRENT directory" msgstr "" -#: ly2dvi.py:198 main.cc:123 main.cc:174 +#: ly2dvi.py:226 main.cc:123 main.cc:169 #, c-format msgid "Report bugs to %s" msgstr "" -#: ly2dvi.py:230 +#: ly2dvi.py:260 #, c-format msgid "Invoking `%s'" msgstr "" -#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17 -msgid "error: " -msgstr "errore: " - -#: ly2dvi.py:234 +#: ly2dvi.py:263 #, c-format msgid "command exited with value %d" msgstr "" -#: ly2dvi.py:236 +#: ly2dvi.py:265 msgid "(ignored)" msgstr "" -#: ly2dvi.py:277 +#: ly2dvi.py:301 +#, fuzzy, c-format +msgid "no such setting: %s" +msgstr "% strumento:" + +#: ly2dvi.py:309 #, c-format msgid "Analyzing `%s'" msgstr "" -#: ly2dvi.py:539 scores.cc:44 +#: ly2dvi.py:353 +#, c-format +msgid "no lilypond output found for %s" +msgstr "" + +#: ly2dvi.py:395 +#, fuzzy, c-format +msgid "invalid value: %s" +msgstr "carattere illegale: `%c'" + +#: ly2dvi.py:602 scores.cc:44 #, fuzzy, c-format msgid "dependencies output to %s..." msgstr "L'output stampato è inviato a %s..." -#: ly2dvi.py:540 -#, c-format -msgid "%s file left in `%s'" -msgstr "" +#: ly2dvi.py:603 +#, fuzzy, c-format +msgid "%s output to %s..." +msgstr "L'output MIDI è inviato a %s..." #: data-file.cc:54 msgid "EOF in a string" @@ -232,12 +251,12 @@ msgstr "" msgid "can't find default font: `%s'" msgstr "non trovo il file: `%s'" -#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137 +#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137 #, fuzzy, c-format msgid "(search path: `%s')" msgstr "(Il path di caricamento è `%s'" -#: all-font-metrics.cc:173 parser.yy:1663 +#: all-font-metrics.cc:173 parser.yy:1681 msgid "Giving up" msgstr "" @@ -316,7 +335,7 @@ msgstr "" msgid "invalid inversion pitch: not part of chord: %s" msgstr "" -#: chord-tremolo-engraver.cc:141 +#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162 #, fuzzy msgid "unterminated chord tremolo" msgstr "beam non terminato" @@ -325,7 +344,7 @@ msgstr "beam non terminato" msgid "no one to print a tremolos" msgstr "" -#: collision.cc:116 +#: collision.cc:118 #, fuzzy msgid "Too many clashing notecolumns. Ignoring them." msgstr "Troppe collisioni tra colonne di note. Le ignoro." @@ -359,7 +378,7 @@ msgstr "crescendo non terminato" msgid "already have a decrescendo" msgstr "crescendo non terminato" -#: dynamic-engraver.cc:307 +#: dynamic-engraver.cc:318 #, fuzzy msgid "unterminated (de)crescendo" msgstr "crescendo non terminato" @@ -376,7 +395,7 @@ msgstr "" msgid "no one to print a repeat brace" msgstr "" -#: font-interface.cc:220 +#: font-interface.cc:237 msgid "couldn't find any font satisfying " msgstr "" @@ -411,7 +430,7 @@ msgstr "beam non terminato" msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request." msgstr "" -#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24 +#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24 #: scores.cc:136 scores.cc:142 #, c-format msgid "can't find file: `%s'" @@ -448,104 +467,98 @@ msgstr "" msgid "Huh? Melismatic note found to have associated lyrics." msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "EXT" msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "use output format EXT (scm, ps, tex or as)" msgstr "" -#: main.cc:110 +#: main.cc:106 msgid "FIELD" msgstr "" -#: main.cc:110 +#: main.cc:106 msgid "write header field to BASENAME.FIELD" msgstr "" -#: main.cc:111 main.cc:114 +#: main.cc:107 main.cc:110 msgid "DIR" msgstr "" -#: main.cc:111 +#: main.cc:107 #, fuzzy msgid "add DIR to search path" msgstr " -I, --include=DIR aggiunge DIR ai path di ricerca\n" -#: main.cc:98 main.cc:112 +#: main.cc:98 main.cc:108 msgid "FILE" msgstr "" -#: main.cc:112 +#: main.cc:108 #, fuzzy msgid "use FILE as init file" msgstr " -i, --init=NOMEFILE usa NOMEFILE come file iniziale\n" -#: main.cc:114 +#: main.cc:110 msgid "prepend DIR to dependencies" msgstr "" -#: main.cc:115 +#: main.cc:111 #, fuzzy msgid "produce MIDI output only" msgstr " -M, --no-paper produce solo output midi\n" -#: main.cc:116 +#: main.cc:112 msgid "NAME" msgstr "" -#: main.cc:116 +#: main.cc:112 msgid "write output to NAME" msgstr "" -#: main.cc:117 +#: main.cc:113 #, fuzzy msgid "inhibit file output naming and exporting" msgstr "" " -s, --safe inibisce la rinomina dei file di output e " "l'esportazione di macro di TeX\n" -#: main.cc:103 main.cc:118 -#, fuzzy -msgid "don't timestamp the output" -msgstr "" -" -T, --no-timestamps non inserisce marcatori temporali nell'output\n" - -#: main.cc:120 -msgid "verbose" +#: main.cc:117 +msgid "EXPR" msgstr "" -#: main.cc:122 -msgid "write midi ouput in formatted ascii" +#: main.cc:117 +msgid "evalute EXPR as Scheme after .scm init is read" msgstr "" #. #. No version number or newline here. It confuses help2man #. -#: main.cc:139 +#: main.cc:134 #, c-format msgid "Usage: %s [OPTION]... [FILE]..." msgstr "Uso: %s [OPZIONE]... [FILE]..." -#: main.cc:141 +#: main.cc:136 #, fuzzy msgid "Typeset music and or play MIDI from FILE" msgstr "Stampa partitura oppure suona una song MIDI da FILE o " -#: main.cc:145 +#: main.cc:140 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 "" -#: main.cc:155 +#: main.cc:150 #, fuzzy msgid "This binary was compiled with the following options:" msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:" -#: main.cc:55 main.cc:182 +#: main.cc:55 main.cc:177 #, c-format msgid "" "This is free software. It is covered by the GNU General Public License,\n" @@ -553,17 +566,17 @@ msgid "" "certain conditions. Invoke as `%s --warranty' for more information.\n" msgstr "" -#: main.cc:62 main.cc:189 main.cc:201 +#: main.cc:62 main.cc:184 main.cc:196 #, c-format msgid "Copyright (c) %s by" msgstr "Copyright (c) %s di" -#: main.cc:199 +#: main.cc:194 #, fuzzy msgid "GNU LilyPond -- The music typesetter" msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU" -#: main.cc:71 main.cc:207 +#: main.cc:71 main.cc:202 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" @@ -613,29 +626,37 @@ msgstr "indicazione altezza priva di senso" msgid "Transposition by %s makes accidental larger than two" msgstr "la trasposizine di %s rende le alterazioni più che doppie" -#: music.cc:222 +#: music.cc:224 msgid "ly_get_mus_property (): Not a Music" msgstr "" -#: music.cc:236 +#: music.cc:238 msgid "ly_set_mus_property (): Not a symbol" msgstr "" -#: music.cc:248 +#: music.cc:250 msgid "ly_set_mus_property (): not of type Music" msgstr "" +#: music.cc:264 +msgid "ly_make_music (): Not a string" +msgstr "" + +#: music.cc:284 +msgid "ly_music_name (): Not a music expression" +msgstr "" + #: music-output-def.cc:115 #, fuzzy, c-format msgid "can't find `%s' context" msgstr "non trovo `%s'" -#: my-lily-lexer.cc:137 +#: my-lily-lexer.cc:138 #, fuzzy, c-format msgid "Identifier name is a keyword: `%s'" msgstr "Il nome dell'identificatore è una parola chiave (`%s')" -#: my-lily-lexer.cc:157 +#: my-lily-lexer.cc:158 #, c-format msgid "error at EOF: %s" msgstr "errore alla fine del file: %s" @@ -644,7 +665,7 @@ msgstr "errore alla fine del file: %s" msgid "Parsing..." msgstr "Analisi..." -#: my-lily-parser.cc:55 +#: my-lily-parser.cc:57 #, fuzzy msgid "Braces don't match" msgstr "le bretelle no si accoppiano" @@ -659,11 +680,11 @@ msgstr "Cosa? Non msgid "paper output to %s..." msgstr "L'output stampato è inviato a %s..." -#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", a " -#: paper-outputter.cc:245 +#: paper-outputter.cc:232 #, fuzzy, c-format msgid "writing header field %s to %s..." msgstr "scrivo il file delle dipendenze: `%s'..." @@ -672,7 +693,7 @@ msgstr "scrivo il file delle dipendenze: `%s'..." msgid "Preprocessing elements..." msgstr "Pre-elaborazione..." -#: paper-score.cc:113 +#: paper-score.cc:114 #, fuzzy msgid "Outputting Score, defined at: " msgstr "emetto lo Score, definito a: " @@ -703,6 +724,15 @@ msgstr "" msgid "none of these in my family: `%s'" msgstr "" +#: percent-repeat-engraver.cc:108 +#, fuzzy +msgid "Don't know yet how to handle this percent repeat." +msgstr "non so manipolare tasti vuoti" + +#: percent-repeat-iterator.cc:53 +msgid "no one to print a percent" +msgstr "" + #: performance.cc:51 #, fuzzy msgid "Track ... " @@ -712,12 +742,12 @@ msgstr "traccia " msgid "Creator: " msgstr "Autore: " -#: performance.cc:116 +#: performance.cc:109 #, c-format msgid "from musical definition: %s" msgstr "della definizione musicale: %s" -#: performance.cc:171 +#: performance.cc:164 #, c-format msgid "MIDI output to %s..." msgstr "L'output MIDI è inviato a %s..." @@ -783,7 +813,7 @@ msgstr "ho trovato un errore, /*non sto elaborando lo spartito*/" msgid "elapsed time: %.2f seconds" msgstr "durata: %.2f secondi" -#: score-engraver.cc:177 +#: score-engraver.cc:183 #, fuzzy, c-format msgid "unbound spanner `%s'" msgstr "Spanner non legato `%s'" @@ -822,7 +852,9 @@ msgstr "Metto uno slur sulla pausa." msgid "unterminated slur" msgstr "slur non terminato" -#: slur-engraver.cc:142 +#. How to shut up this warning, when Voice_devnull_engraver has +#. eaten start request? +#: slur-engraver.cc:144 #, fuzzy msgid "can't find start of slur" msgstr "non trovo le estremità di %s" @@ -861,21 +893,23 @@ msgstr "extender non terminato" msgid "can't find ascii character: %d" msgstr "non riesco a trovare il carattere `%s'" -#: tfm-reader.cc:105 +#: tfm-reader.cc:106 #, c-format -msgid "TFM header of `%s' has only %u word(s)" +msgid "TFM header of `%s' has only %u word (s)" msgstr "" -#: tfm-reader.cc:139 +#: tfm-reader.cc:140 #, c-format msgid "%s: TFM file has %u parameters, which is more than the %u I can handle" msgstr "" -#: tie-engraver.cc:211 tie-performer.cc:173 +#. How to shut up this warning, when no notes appeared because +#. they were suicided by Thread_devnull_engraver? +#: tie-engraver.cc:215 tie-performer.cc:173 msgid "No ties were created!" msgstr "" -#: tie-engraver.cc:230 +#: tie-engraver.cc:234 msgid "lonely tie" msgstr "" @@ -893,21 +927,21 @@ msgstr "controllo del battute fallito: %s" msgid "unknown translator: `%s'" msgstr "traduttore sconosciuto `%s'" -#: translator-def.cc:96 +#: translator-def.cc:99 msgid "Program has no such type" msgstr "" -#: translator-def.cc:102 +#: translator-def.cc:105 #, c-format msgid "Already contains: `%s'" msgstr "" -#: translator-def.cc:103 +#: translator-def.cc:106 #, fuzzy, c-format msgid "Not adding translator: `%s'" msgstr "traduttore sconosciuto `%s'" -#: translator-def.cc:215 +#: translator-def.cc:224 #, fuzzy, c-format msgid "can't find: `%s'" msgstr "non trovo `%s'" @@ -922,19 +956,19 @@ msgstr "non trovo e non posso creare '%s' chiamato '%s'" msgid "can't find or create: `%s'" msgstr "non trovo e non posso creare `%s'" -#: translator-group.cc:403 +#: translator-group.cc:414 #, c-format msgid "" "Can't find property type-check for `%s'. Perhaps you made a typing error?" msgstr "" -#: translator-group.cc:417 +#: translator-group.cc:428 #, c-format msgid "Type check for `%s' failed; value `%s' must be of type `%s'" msgstr "" #. programming_error? -#: translator-group.cc:436 +#: translator-group.cc:447 msgid "ly-get-trans-property: expecting a Translator_group argument" msgstr "" @@ -955,118 +989,189 @@ msgstr "" msgid "Oldest supported input version: %s" msgstr "" -#: parser.yy:471 +#: parser.yy:473 msgid "Wrong type for property value" msgstr "Tipo sbagliato per il valore di una proprietà" -#: parser.yy:666 +#: parser.yy:672 msgid "More alternatives than repeats. Junking excess alternatives." msgstr "" -#: parser.yy:730 +#: parser.yy:736 msgid "Second argument must be a symbol" msgstr "" -#: parser.yy:735 +#: parser.yy:741 msgid "First argument must be a procedure taking 1 argument" msgstr "" -#: parser.yy:1211 +#: parser.yy:1236 msgid "Expecting string as script definition" msgstr "" -#: parser.yy:1221 +#: parser.yy:1246 msgid "Can't specify direction for this request" msgstr "" -#: parser.yy:1353 +#: parser.yy:1371 msgid "Expecting musical-pitch value" msgstr "" -#: parser.yy:1364 +#: parser.yy:1382 #, fuzzy msgid "Must have duration object" msgstr "indicazione durata priva di senso" -#: parser.yy:1373 parser.yy:1381 parser.yy:1661 +#: parser.yy:1391 parser.yy:1399 parser.yy:1679 #, fuzzy msgid "Have to be in Lyric mode for lyrics" msgstr "bisogna essere in Lyric mode per i testi" -#: parser.yy:1546 parser.yy:1575 +#: parser.yy:1564 parser.yy:1593 #, c-format msgid "not a duration: %d" msgstr "non è una durata: %d" -#: parser.yy:1584 +#: parser.yy:1602 #, fuzzy msgid "Have to be in Note mode for notes" msgstr "bisogna essere in Note mode per le note" -#: parser.yy:1680 +#: parser.yy:1698 #, fuzzy msgid "Have to be in Chord mode for chords" msgstr "bisogna essere in Chord mode per gli accordi" -#: parser.yy:1842 parser.yy:1860 +#: parser.yy:1860 parser.yy:1878 msgid "need integer number arg" msgstr "" -#: parser.yy:1846 +#: parser.yy:1864 msgid "Must be positive integer" msgstr "" -#: lexer.ll:165 +#: lexer.ll:166 msgid "EOF found inside a comment" msgstr "ho trovato un EOF in un commento" -#: lexer.ll:179 +#: lexer.ll:180 msgid "\\maininput disallowed outside init files" msgstr "" -#: lexer.ll:203 +#: lexer.ll:204 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "indentificatore non definito: `%s'" #. backup rule -#: lexer.ll:208 +#: lexer.ll:209 #, fuzzy msgid "Missing end quote" msgstr "apice finale mancante" #. backup rule -#: lexer.ll:230 lexer.ll:234 +#: lexer.ll:231 lexer.ll:235 msgid "white expected" msgstr "aspettavo uno spazio bianco" -#: lexer.ll:243 +#: lexer.ll:244 msgid "Can't evaluate Scheme in safe mode" msgstr "" -#: lexer.ll:335 +#: lexer.ll:336 msgid "Brace found at end of lyric. Did you forget a space?" msgstr "" -#: lexer.ll:439 +#: lexer.ll:440 #, fuzzy, c-format msgid "invalid character: `%c'" msgstr "carattere illegale: `%c'" -#: lexer.ll:520 +#: lexer.ll:521 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "stringa di escape sconosciuta: `\\%s'" -#: lexer.ll:602 +#: lexer.ll:603 #, fuzzy, c-format msgid "incorrect lilypond version: %s (%s, %s)" msgstr "versione di mudela errata: %s (%s, %s)" -#: lexer.ll:603 +#: lexer.ll:604 msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "#32 in un quarto: %d" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Output di Lily in %s..." + +#: lilypond-score.cc:119 +#, fuzzy, c-format +msgid "track %d:" +msgstr "traccia " + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "Elaboro..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "Genero le voci..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "traccia " + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "NON filtro il tempo..." + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "NON quantifico le colonne..." + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "Quantifico le colonne..." + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "Sistemo le colonne..." + +#: lilypond-staff.cc:209 +msgid "% MIDI copyright:" +msgstr "" + +#: lilypond-staff.cc:210 +#, fuzzy +msgid "% MIDI instrument:" +msgstr "% strumento:" + +#: lilypond-stream.cc:37 +#, c-format +msgid "lily indent level: %d" +msgstr "livello di indentazione di lili: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "% Autore: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% Generato automaticamente" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% dal file di input: " + #: main.cc:93 #, fuzzy msgid "write exact durations, e.g.: a4*385/384" @@ -1120,6 +1225,12 @@ msgstr "" msgid "set smallest duration" msgstr "indicazione durata priva di senso" +#: main.cc:103 +#, fuzzy +msgid "don't timestamp the output" +msgstr "" +" -T, --no-timestamps non inserisce marcatori temporali nell'output\n" + #: main.cc:105 msgid "be verbose" msgstr "" @@ -1137,7 +1248,7 @@ msgstr "Uso: %s [OPZIONE... [FILE]" #: main.cc:116 #, fuzzy -msgid "Translate MIDI-file to mudela" +msgid "Translate MIDI-file to lilypond" msgstr "Traduce un file midi in mudela" #: main.cc:130 @@ -1218,77 +1329,6 @@ msgstr "mi spettavo una traccia MIDI" msgid "invalid track length" msgstr "lunghezza della traccia non valida" -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "#32 in un quarto: %d" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Output di Lily in %s..." - -#: mudela-score.cc:119 -#, fuzzy, c-format -msgid "track %d:" -msgstr "traccia " - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "Elaboro..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "Genero le voci..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "traccia " - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "NON filtro il tempo..." - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "NON quantifico le colonne..." - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "Quantifico le colonne..." - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "Sistemo le colonne..." - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "" - -#: mudela-staff.cc:210 -#, fuzzy -msgid "% MIDI instrument:" -msgstr "% strumento:" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "livello di indentazione di lili: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "% Autore: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% Generato automaticamente" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% dal file di input: " - #, fuzzy #~ msgid "Dependency file left in `%s'" #~ msgstr "scrivo il file delle dipendenze: `%s'..." @@ -1346,10 +1386,6 @@ msgstr "% dal file di input: " #~ msgid "No key name, assuming `C'" #~ msgstr "Nessuna armatura di chiave: assumo Do'" -#, fuzzy -#~ msgid "Don't know how handle empty keys" -#~ msgstr "non so manipolare tasti vuoti" - #, fuzzy #~ msgid "out of tune:" #~ msgstr "stonato" diff --git a/po/ja.po b/po/ja.po index bc8ddbec49..cca31021b3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: lilypond 1.2.17\n" -"POT-Creation-Date: 2001-03-06 12:36+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: 2000-03-29 20:50+0900\n" "Last-Translator: Daisuke Yamashita \n" "Language-Team: Japanese \n" @@ -13,117 +13,137 @@ msgstr "" "Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" -#: ly2dvi.py:67 main.cc:95 main.cc:109 +#: ly2dvi.py:86 main.cc:95 main.cc:105 msgid "this help" msgstr "¤³¤Î¥Ø¥ë¥×" -#: ly2dvi.py:68 +#: ly2dvi.py:87 msgid "change global setting KEY to VAL" msgstr "" -#: ly2dvi.py:69 +#: ly2dvi.py:88 #, fuzzy msgid "generate PostScript output" msgstr "À©¸Â¤ò´ËÏÂ" -#: ly2dvi.py:70 +#: ly2dvi.py:89 msgid "keep all output, and name the directory ly2dvi.dir" msgstr "" -#: ly2dvi.py:71 +#: ly2dvi.py:90 msgid "don't run LilyPond" msgstr "" -#: ly2dvi.py:72 main.cc:104 main.cc:119 +#: ly2dvi.py:91 main.cc:115 +#, fuzzy +msgid "verbose" +msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹" + +#: ly2dvi.py:92 main.cc:104 main.cc:114 msgid "print version number" msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨" -#: ly2dvi.py:73 main.cc:106 main.cc:121 +#: ly2dvi.py:93 main.cc:106 main.cc:116 msgid "show warranty and copyright" msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë" -#: ly2dvi.py:74 +#: ly2dvi.py:94 msgid "dump all final output into DIR" msgstr "" -#: ly2dvi.py:75 main.cc:113 +#: ly2dvi.py:95 main.cc:109 msgid "write Makefile dependencies for every input file" msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤­¹þ¤à" -#: ly2dvi.py:101 +#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23 +msgid "warning: " +msgstr "·Ù¹ð: " + +#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17 +msgid "error: " +msgstr "¥¨¥é¡¼: " + +#: ly2dvi.py:130 #, fuzzy msgid "Exiting ... " msgstr "¹Ô ..." -#: ly2dvi.py:120 +#: ly2dvi.py:149 #, fuzzy, c-format -msgid "Reading `%s'" +msgid "Reading %s..." msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'" -#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, fuzzy, c-format msgid "can't open file: `%s'" msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'" -#: ly2dvi.py:187 +#: ly2dvi.py:216 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE" msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]" -#: ly2dvi.py:189 +#: ly2dvi.py:218 msgid "Generate .dvi with LaTeX for LilyPond" msgstr "" -#: ly2dvi.py:191 main.cc:119 main.cc:151 +#: ly2dvi.py:220 main.cc:119 main.cc:146 msgid "Options:" msgstr "¥ª¥×¥·¥ç¥ó:" -#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23 -msgid "warning: " -msgstr "·Ù¹ð: " - -#: ly2dvi.py:196 +#: ly2dvi.py:224 msgid "all output is written in the CURRENT directory" msgstr "" -#: ly2dvi.py:198 main.cc:123 main.cc:174 +#: ly2dvi.py:226 main.cc:123 main.cc:169 #, c-format msgid "Report bugs to %s" msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø" -#: ly2dvi.py:230 +#: ly2dvi.py:260 #, fuzzy, c-format msgid "Invoking `%s'" msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'" -#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17 -msgid "error: " -msgstr "¥¨¥é¡¼: " - -#: ly2dvi.py:234 +#: ly2dvi.py:263 #, c-format msgid "command exited with value %d" msgstr "" -#: ly2dvi.py:236 +#: ly2dvi.py:265 msgid "(ignored)" msgstr "" -#: ly2dvi.py:277 +#: ly2dvi.py:301 +#, fuzzy, c-format +msgid "no such setting: %s" +msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'" + +#: ly2dvi.py:309 #, c-format msgid "Analyzing `%s'" msgstr "" -#: ly2dvi.py:539 scores.cc:44 +#: ly2dvi.py:353 +#, c-format +msgid "no lilypond output found for %s" +msgstr "" + +#: ly2dvi.py:395 +#, fuzzy, c-format +msgid "invalid value: %s" +msgstr "̵¸ú¤Êʸ»ú: `%c'" + +#: ly2dvi.py:602 scores.cc:44 #, fuzzy, c-format msgid "dependencies output to %s..." msgstr "%s ¤Ø paper ½ÐÎÏ..." -#: ly2dvi.py:540 -#, c-format -msgid "%s file left in `%s'" -msgstr "" +#: ly2dvi.py:603 +#, fuzzy, c-format +msgid "%s output to %s..." +msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ" #: data-file.cc:54 msgid "EOF in a string" @@ -229,12 +249,12 @@ msgstr " msgid "can't find default font: `%s'" msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'" -#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137 +#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137 #, c-format msgid "(search path: `%s')" msgstr "(¸¡º÷¥Ñ¥¹: `%s')" -#: all-font-metrics.cc:173 parser.yy:1663 +#: all-font-metrics.cc:173 parser.yy:1681 msgid "Giving up" msgstr "Äü¤á¤Þ¤·¤¿" @@ -315,7 +335,7 @@ msgstr "̵ msgid "invalid inversion pitch: not part of chord: %s" msgstr "̵¸ú¤Êž²ó¥Ô¥Ã¥Á: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s" -#: chord-tremolo-engraver.cc:141 +#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162 #, fuzzy msgid "unterminated chord tremolo" msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó" @@ -325,7 +345,7 @@ msgstr " msgid "no one to print a tremolos" msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó" -#: collision.cc:116 +#: collision.cc:118 msgid "Too many clashing notecolumns. Ignoring them." msgstr "Äà¤ê¹ç¤ï¤Ê¤¤²»É䤬¿¤¹¤®¤Þ¤¹¡£¤½¤ì¤é¤ò̵»ë¤·¤Þ¤¹¡£" @@ -357,7 +377,7 @@ msgstr " msgid "already have a decrescendo" msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹" -#: dynamic-engraver.cc:307 +#: dynamic-engraver.cc:318 #, fuzzy msgid "unterminated (de)crescendo" msgstr "½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¯¥ì¥Ã¥·¥§¥ó¥É" @@ -374,7 +394,7 @@ msgstr " msgid "no one to print a repeat brace" msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó" -#: font-interface.cc:220 +#: font-interface.cc:237 msgid "couldn't find any font satisfying " msgstr "" @@ -407,7 +427,7 @@ msgstr " msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request." msgstr "º¸Â¦¤Ë·Ò¤²¤ë¥Ï¥¤¥Õ¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ï¥¤¥Õ¥ó¤ÎÍ×µá¤ò̵»ë¤·¤Þ¤¹" -#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24 +#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24 #: scores.cc:136 scores.cc:142 #, fuzzy, c-format msgid "can't find file: `%s'" @@ -444,88 +464,83 @@ msgstr "" msgid "Huh? Melismatic note found to have associated lyrics." msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "EXT" msgstr "EXT" -#: main.cc:108 +#: main.cc:104 #, fuzzy msgid "use output format EXT (scm, ps, tex or as)" msgstr "½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È EXT ¤ò»È¤¦" -#: main.cc:110 +#: main.cc:106 #, fuzzy msgid "FIELD" msgstr "FILE" -#: main.cc:110 +#: main.cc:106 msgid "write header field to BASENAME.FIELD" msgstr "" -#: main.cc:111 main.cc:114 +#: main.cc:107 main.cc:110 msgid "DIR" msgstr "DIR" -#: main.cc:111 +#: main.cc:107 msgid "add DIR to search path" msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ" -#: main.cc:98 main.cc:112 +#: main.cc:98 main.cc:108 msgid "FILE" msgstr "FILE" -#: main.cc:112 +#: main.cc:108 msgid "use FILE as init file" msgstr "FILE ¤ò½é´ü²½¥Õ¥¡¥¤¥ë¤È¤·¤Æ»ÈÍÑ" -#: main.cc:114 +#: main.cc:110 msgid "prepend DIR to dependencies" msgstr "" -#: main.cc:115 +#: main.cc:111 msgid "produce MIDI output only" msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "NAME" msgstr "BASENAME" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "write output to NAME" msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤­¹þ¤à" -#: main.cc:117 +#: main.cc:113 msgid "inhibit file output naming and exporting" msgstr "̾Á°ÉÕ¤±¤È¥¨¥¯¥¹¥Ý¡¼¥È¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÍÞÀ©¤¹¤ë" -#: main.cc:103 main.cc:118 -msgid "don't timestamp the output" -msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤" - -#: main.cc:120 -#, fuzzy -msgid "verbose" -msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹" +#: main.cc:117 +msgid "EXPR" +msgstr "" -#: main.cc:122 -msgid "write midi ouput in formatted ascii" +#: main.cc:117 +msgid "evalute EXPR as Scheme after .scm init is read" msgstr "" #. #. No version number or newline here. It confuses help2man #. -#: main.cc:139 +#: main.cc:134 #, c-format msgid "Usage: %s [OPTION]... [FILE]..." msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]..." -#: main.cc:141 +#: main.cc:136 msgid "Typeset music and or play MIDI from FILE" msgstr "¥Õ¥¡¥¤¥ë¤Î³Ú¶Ê¤òÁÈÈǤ·¤¿¤ê¡¢MIDI ±éÁÕ¤·¤¿¤ê¤¹¤ë" -#: main.cc:145 +#: main.cc:140 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" @@ -535,11 +550,11 @@ msgstr "" "Èþ¤·¤¤ÉèÌ̤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£LilyPond ¤Ï GNU " "¥×¥í¥¸¥§¥¯¥È¤Î°ìÉô¤Ç¤¹¡£\n" -#: main.cc:155 +#: main.cc:150 msgid "This binary was compiled with the following options:" msgstr "¤³¤Î¥Ð¥¤¥Ê¥ê¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿" -#: main.cc:55 main.cc:182 +#: main.cc:55 main.cc:177 #, c-format msgid "" "This is free software. It is covered by the GNU General Public License,\n" @@ -555,17 +570,17 @@ msgstr "" "¤³¤ì¤ò²þÊѤ·¤¿¤ê¡¢Ê£À½¤òÇÛÉÛ¤·¤¿¤ê¤¹¤ë»ö¤Ï´¿·Þ¤µ¤ì¤Þ¤¹¡£\n" "`--warranty' ¥ª¥×¥·¥ç¥óÉÕ¤­¤Çµ¯Æ°¤¹¤ë¤È¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£\n" -#: main.cc:62 main.cc:189 main.cc:201 +#: main.cc:62 main.cc:184 main.cc:196 #, c-format msgid "Copyright (c) %s by" msgstr "Copyright (c) %s by" -#: main.cc:199 +#: main.cc:194 #, fuzzy msgid "GNU LilyPond -- The music typesetter" msgstr "GNU LilyPond -- The GNU Project music typesetter" -#: main.cc:71 main.cc:207 +#: main.cc:71 main.cc:202 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" @@ -630,29 +645,37 @@ msgstr " msgid "Transposition by %s makes accidental larger than two" msgstr "%s ¤ÎÊÑÄ´¤Ë¤è¤Ã¤Æ¡¢Æó¤Ä¤òĶ¤¨¤ëÇÉÀ¸²»¤¬ºî¤é¤ì¤Þ¤·¤¿" -#: music.cc:222 +#: music.cc:224 msgid "ly_get_mus_property (): Not a Music" msgstr "" -#: music.cc:236 +#: music.cc:238 msgid "ly_set_mus_property (): Not a symbol" msgstr "" -#: music.cc:248 +#: music.cc:250 msgid "ly_set_mus_property (): not of type Music" msgstr "" +#: music.cc:264 +msgid "ly_make_music (): Not a string" +msgstr "" + +#: music.cc:284 +msgid "ly_music_name (): Not a music expression" +msgstr "" + #: music-output-def.cc:115 #, fuzzy, c-format msgid "can't find `%s' context" msgstr "`%s' ¥³¥ó¥Æ¥­¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" -#: my-lily-lexer.cc:137 +#: my-lily-lexer.cc:138 #, c-format msgid "Identifier name is a keyword: `%s'" msgstr "¼±ÊÌ»Ò̾¤Ï¥­¡¼¥ï¡¼¥É¤Ç¤¹: `%s'" -#: my-lily-lexer.cc:157 +#: my-lily-lexer.cc:158 #, c-format msgid "error at EOF: %s" msgstr "EOF ¤Î¤È¤³¤í¤Ç¥¨¥é¡¼: %s" @@ -661,7 +684,7 @@ msgstr "EOF msgid "Parsing..." msgstr "¹½Ê¸²òÀÏÃæ..." -#: my-lily-parser.cc:55 +#: my-lily-parser.cc:57 msgid "Braces don't match" msgstr "¥Ö¥ì¡¼¥¹¤¬°ìÃפ·¤Þ¤»¤ó" @@ -675,11 +698,11 @@ msgstr " msgid "paper output to %s..." msgstr "%s ¤Ø paper ½ÐÎÏ..." -#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", at " -#: paper-outputter.cc:245 +#: paper-outputter.cc:232 #, fuzzy, c-format msgid "writing header field %s to %s..." msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß: `%s'..." @@ -688,7 +711,7 @@ msgstr " msgid "Preprocessing elements..." msgstr "Í×ÁǤòÁ°½èÍýÃæ..." -#: paper-score.cc:113 +#: paper-score.cc:114 msgid "Outputting Score, defined at: " msgstr "ÉèÌ̤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤³¤ÇÄêµÁ: " @@ -717,6 +740,16 @@ msgstr " msgid "none of these in my family: `%s'" msgstr "¥Õ¥¡¥ß¥ê¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" +#: percent-repeat-engraver.cc:108 +#, fuzzy +msgid "Don't know yet how to handle this percent repeat." +msgstr "¶õ¤Î¥­¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó" + +#: percent-repeat-iterator.cc:53 +#, fuzzy +msgid "no one to print a percent" +msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó" + #: performance.cc:51 msgid "Track ... " msgstr "¥È¥é¥Ã¥¯ ..." @@ -725,12 +758,12 @@ msgstr " msgid "Creator: " msgstr "ºî¶Ê¼Ô: " -#: performance.cc:116 +#: performance.cc:109 #, c-format msgid "from musical definition: %s" msgstr "²»³ÚŪÄêµÁ¤è¤ê: %s" -#: performance.cc:171 +#: performance.cc:164 #, c-format msgid "MIDI output to %s..." msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ" @@ -793,7 +826,7 @@ msgstr " msgid "elapsed time: %.2f seconds" msgstr "·Ð²á»þ´Ö: %.2f ÉÃ" -#: score-engraver.cc:177 +#: score-engraver.cc:183 #, c-format msgid "unbound spanner `%s'" msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥¹¥Ñ¥Ê `%s'" @@ -830,7 +863,9 @@ msgstr " msgid "unterminated slur" msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼" -#: slur-engraver.cc:142 +#. How to shut up this warning, when Voice_devnull_engraver has +#. eaten start request? +#: slur-engraver.cc:144 #, fuzzy msgid "can't find start of slur" msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" @@ -868,21 +903,23 @@ msgstr " msgid "can't find ascii character: %d" msgstr "ascii ʸ»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%d'" -#: tfm-reader.cc:105 -#, c-format -msgid "TFM header of `%s' has only %u word(s)" +#: tfm-reader.cc:106 +#, fuzzy, c-format +msgid "TFM header of `%s' has only %u word (s)" msgstr "`%s' ¤Î TFM ¥Ø¥Ã¥À¤Ë %u ¸ì¤·¤«¤¢¤ê¤Þ¤»¤ó" -#: tfm-reader.cc:139 +#: 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 ¥Õ¥¡¥¤¥ë¤Ï %u ¸Ä¤Î¥Ñ¥é¥á¥¿¤¬¤¢¤ê¤Þ¤¹¤¬¡¢%u °Ê¾å¤Ï°·¤¨¤Þ¤»¤ó" -#: tie-engraver.cc:211 tie-performer.cc:173 +#. How to shut up this warning, when no notes appeared because +#. they were suicided by Thread_devnull_engraver? +#: tie-engraver.cc:215 tie-performer.cc:173 msgid "No ties were created!" msgstr "ºî¤é¤ì¤¿¥¿¥¤¤¬¤¢¤ê¤Þ¤»¤ó!" -#: tie-engraver.cc:230 +#: tie-engraver.cc:234 msgid "lonely tie" msgstr "°ì¤Ä¤À¤±¤Î¥¿¥¤" @@ -900,21 +937,21 @@ msgstr " msgid "unknown translator: `%s'" msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'" -#: translator-def.cc:96 +#: translator-def.cc:99 msgid "Program has no such type" msgstr "¥×¥í¥°¥é¥à¤Ë¤Ï¤½¤ÎÍͤʥ¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó" -#: translator-def.cc:102 +#: translator-def.cc:105 #, c-format msgid "Already contains: `%s'" msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'" -#: translator-def.cc:103 +#: translator-def.cc:106 #, fuzzy, c-format msgid "Not adding translator: `%s'" msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'" -#: translator-def.cc:215 +#: translator-def.cc:224 #, fuzzy, c-format msgid "can't find: `%s'" msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'" @@ -929,19 +966,19 @@ msgstr "`%2$s' msgid "can't find or create: `%s'" msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'" -#: translator-group.cc:403 +#: translator-group.cc:414 #, c-format msgid "" "Can't find property type-check for `%s'. Perhaps you made a typing error?" msgstr "" -#: translator-group.cc:417 +#: translator-group.cc:428 #, c-format msgid "Type check for `%s' failed; value `%s' must be of type `%s'" msgstr "" #. programming_error? -#: translator-group.cc:436 +#: translator-group.cc:447 msgid "ly-get-trans-property: expecting a Translator_group argument" msgstr "" @@ -962,114 +999,184 @@ msgstr "" msgid "Oldest supported input version: %s" msgstr "°ìÈָŤ¤ÆþÎϲÄǽ¥Ð¡¼¥¸¥ç¥ó: %s" -#: parser.yy:471 +#: parser.yy:473 msgid "Wrong type for property value" msgstr "°À­ÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" -#: parser.yy:666 +#: parser.yy:672 msgid "More alternatives than repeats. Junking excess alternatives." msgstr "·«¤êÊÖ¤·¤è¤ê¤âÁªÂò»è¤¬Â¿¤¤¡£Ä¶²áʬ¤ò¼Î¤Æ¤Þ¤¹¡£" -#: parser.yy:730 +#: parser.yy:736 msgid "Second argument must be a symbol" msgstr "" -#: parser.yy:735 +#: parser.yy:741 msgid "First argument must be a procedure taking 1 argument" msgstr "" -#: parser.yy:1211 +#: parser.yy:1236 msgid "Expecting string as script definition" msgstr "" -#: parser.yy:1221 +#: parser.yy:1246 msgid "Can't specify direction for this request" msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" -#: parser.yy:1353 +#: parser.yy:1371 msgid "Expecting musical-pitch value" msgstr "" -#: parser.yy:1364 +#: parser.yy:1382 #, fuzzy msgid "Must have duration object" msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹" -#: parser.yy:1373 parser.yy:1381 parser.yy:1661 +#: parser.yy:1391 parser.yy:1399 parser.yy:1679 msgid "Have to be in Lyric mode for lyrics" msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤" -#: parser.yy:1546 parser.yy:1575 +#: parser.yy:1564 parser.yy:1593 #, c-format msgid "not a duration: %d" msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d" -#: parser.yy:1584 +#: parser.yy:1602 msgid "Have to be in Note mode for notes" msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤" -#: parser.yy:1680 +#: parser.yy:1698 msgid "Have to be in Chord mode for chords" msgstr "¥³¡¼¥É¤Ï Chord ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤" -#: parser.yy:1842 parser.yy:1860 +#: parser.yy:1860 parser.yy:1878 msgid "need integer number arg" msgstr "" -#: parser.yy:1846 +#: parser.yy:1864 msgid "Must be positive integer" msgstr "" -#: lexer.ll:165 +#: lexer.ll:166 msgid "EOF found inside a comment" msgstr "¥³¥á¥ó¥ÈÆâ¤Ë EOF ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿" -#: lexer.ll:179 +#: lexer.ll:180 msgid "\\maininput disallowed outside init files" msgstr "½é´ü²½¥Õ¥¡¥¤¥ë¤Î³°¤Ç¤Ï \\maininput ¤òµ­½Ò¤Ç¤­¤Þ¤»¤ó" -#: lexer.ll:203 +#: lexer.ll:204 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "̤ÄêµÁ¤Î¼±ÊÌ»Ò: `%s'" #. backup rule -#: lexer.ll:208 +#: lexer.ll:209 msgid "Missing end quote" msgstr "½ªÎ»¥¯¥ª¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó" #. backup rule -#: lexer.ll:230 lexer.ll:234 +#: lexer.ll:231 lexer.ll:235 msgid "white expected" msgstr "¶õÇò¤¬É¬ÍפǤ¹" -#: lexer.ll:243 +#: lexer.ll:244 msgid "Can't evaluate Scheme in safe mode" msgstr "°ÂÁ´¥â¡¼¥É¤Ç¤Ï Scheme ¤Îɾ²Á¤ò¤Ç¤­¤Þ¤»¤ó" -#: lexer.ll:335 +#: lexer.ll:336 msgid "Brace found at end of lyric. Did you forget a space?" msgstr "" -#: lexer.ll:439 +#: lexer.ll:440 #, c-format msgid "invalid character: `%c'" msgstr "̵¸ú¤Êʸ»ú: `%c'" -#: lexer.ll:520 +#: lexer.ll:521 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'" -#: lexer.ll:602 +#: lexer.ll:603 #, fuzzy, c-format msgid "incorrect lilypond version: %s (%s, %s)" msgstr "´Ö°ã¤Ã¤¿ mudela ¥Ð¡¼¥¸¥ç¥ó: %s (%s, %s)" -#: lexer.ll:603 +#: lexer.ll:604 msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..." + +#: lilypond-score.cc:119 +#, c-format +msgid "track %d:" +msgstr "¥È¥é¥Ã¥¯ %d:" + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "½èÍýÃæ..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "²»À¼¤òºîÀ®Ãæ..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "¥È¥é¥Ã¥¯ " + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..." + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..." + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..." + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..." + +#: 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 "lily indent level: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "%s Creator: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% Automatically generated" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% from input file: " + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "Àµ³Î¤Ê²»Ä¹¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£Îã: a4*385/384" @@ -1115,6 +1222,10 @@ msgstr "DUR" msgid "set smallest duration" msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹" +#: main.cc:103 +msgid "don't timestamp the output" +msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤" + #: main.cc:105 msgid "be verbose" msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹" @@ -1129,7 +1240,8 @@ msgid "Usage: %s [OPTION]... [FILE]" msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]" #: main.cc:116 -msgid "Translate MIDI-file to mudela" +#, fuzzy +msgid "Translate MIDI-file to lilypond" msgstr "MIDI ¥Õ¥¡¥¤¥ë¤ò mudela ¤ËÊÑ´¹¤·¤Þ¤¹" #: main.cc:130 @@ -1207,76 +1319,6 @@ msgstr "MIDI msgid "invalid track length" msgstr "̵¸ú¤Ê¥È¥é¥Ã¥¯Ä¹¤Ç¤¹" -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..." - -#: mudela-score.cc:119 -#, c-format -msgid "track %d:" -msgstr "¥È¥é¥Ã¥¯ %d:" - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "½èÍýÃæ..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "²»À¼¤òºîÀ®Ãæ..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "¥È¥é¥Ã¥¯ " - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..." - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..." - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..." - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..." - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "% MIDI copyright:" - -#: mudela-staff.cc:210 -msgid "% MIDI instrument:" -msgstr "% MIDI instrument:" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "lily indent level: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "%s Creator: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% Automatically generated" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% from input file: " - #, fuzzy #~ msgid "Dependency file left in `%s'" #~ msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß: `%s'..." @@ -1421,9 +1463,6 @@ msgstr "% from input file: " #~ msgid "No key name, assuming `C'" #~ msgstr "¥­¡¼Ì¾¤¬¤¢¤ê¤Þ¤»¤ó¡¢`C' ¤ò»î¤ß¤Þ¤¹" -#~ msgid "Don't know how handle empty keys" -#~ msgstr "¶õ¤Î¥­¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó" - #~ msgid "Don't have that many octaves (%s)" #~ msgstr "¤½¤ó¤Ê¤ËÂô»³¤Î¥ª¥¯¥¿¡¼¥Ö (%s) ¤ò»È¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤" diff --git a/po/lilypond.pot b/po/lilypond.pot index f1360089e1..ac3781601d 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-03-20 23:05+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -71,7 +71,7 @@ msgstr "" msgid "Reading %s..." msgstr "" -#: ly2dvi.py:153 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" @@ -634,7 +634,7 @@ msgstr "" msgid "paper output to %s..." msgstr "" -#: mudela-stream.cc:93 paper-outputter.cc:85 performance.cc:95 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr "" @@ -1033,6 +1033,76 @@ msgstr "" msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "" + +#: lilypond-score.cc:119 +#, c-format +msgid "track %d:" +msgstr "" + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "" + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "" + +#: lilypond-score.cc:168 +msgid "track " +msgstr "" + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "" + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "" + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "" + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "" + +#: lilypond-staff.cc:209 +msgid "% MIDI copyright:" +msgstr "" + +#: lilypond-staff.cc:210 +msgid "% MIDI instrument:" +msgstr "" + +#: lilypond-stream.cc:37 +#, c-format +msgid "lily indent level: %d" +msgstr "" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "" + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "" + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "" @@ -1095,7 +1165,7 @@ msgid "Usage: %s [OPTION]... [FILE]" msgstr "" #: main.cc:116 -msgid "Translate MIDI-file to mudela" +msgid "Translate MIDI-file to lilypond" msgstr "" #: main.cc:130 @@ -1171,73 +1241,3 @@ msgstr "" #: midi-track-parser.cc:353 msgid "invalid track length" msgstr "" - -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "" - -#: mudela-score.cc:119 -#, c-format -msgid "track %d:" -msgstr "" - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "" - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "" - -#: mudela-score.cc:168 -msgid "track " -msgstr "" - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "" - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "" - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "" - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "" - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "" - -#: mudela-staff.cc:210 -msgid "% MIDI instrument:" -msgstr "" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "" - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "" diff --git a/po/nl.po b/po/nl.po index 88669bfe39..c61c02fa1e 100644 --- a/po/nl.po +++ b/po/nl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: lilypond 1.3.59\n" -"POT-Creation-Date: 2001-03-20 23:05+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: 2000-06-09 02:23+0200\n" "Last-Translator: Jan Nieuwenhuizen \n" "Language-Team: Dutch \n" @@ -20,8 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Date: 1998-05-26 11:26:28+0200\n" "From: \n" -"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po " -"--add-comments --keyword=_\n" +"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n" "Files: bow.cc int.cc\n" #: ly2dvi.py:86 main.cc:95 main.cc:105 @@ -81,7 +80,7 @@ msgstr "Be msgid "Reading %s..." msgstr "Inlezen %s..." -#: ly2dvi.py:153 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" @@ -670,7 +669,7 @@ msgstr "Schroot verzoek: `%s'" msgid "paper output to %s..." msgstr "papier uitvoer naar %s..." -#: mudela-stream.cc:93 paper-outputter.cc:85 performance.cc:95 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", bij " @@ -1074,6 +1073,76 @@ msgstr "verkeerde lilypond versie: %s (%s, %s)" msgid "Consider converting the input with the convert-ly script" msgstr "Overweeg de invoer te converteren met het convert-ly script" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "#32 in kwart: %d" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Lelie uitvoer naar %s..." + +#: lilypond-score.cc:119 +#, c-format +msgid "track %d:" +msgstr "spoor %d:" + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "Verwerken..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "Scheppen van stemmen..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "spoor " + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "NIET Filteren van tempo..." + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "NIET Kwantificeren van kolommen..." + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "Kwantificeren van kolommen..." + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "Zetten van kolommen..." + +#: 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 "lelie inspring diepte: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "% Schepper: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% Automatisch gegenereerd" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% van invoerbestand: " + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "schrijf exacte duren, bijv.: a4*385/384" @@ -1136,8 +1205,8 @@ msgid "Usage: %s [OPTION]... [FILE]" msgstr "Gebruik: %s [OPTIE]... [BESTAND]" #: main.cc:116 -msgid "Translate MIDI-file to mudela" -msgstr "Vertaal MIDI-bestand naar mudela" +msgid "Translate MIDI-file to lilypond" +msgstr "Vertaal MIDI-bestand naar lilypond" #: main.cc:130 #, c-format @@ -1212,73 +1281,3 @@ msgstr "MIDI spoor verwacht" #: midi-track-parser.cc:353 msgid "invalid track length" msgstr "ongeldige spoorlengte" - -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "#32 in kwart: %d" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Lelie uitvoer naar %s..." - -#: mudela-score.cc:119 -#, c-format -msgid "track %d:" -msgstr "spoor %d:" - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "Verwerken..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "Scheppen van stemmen..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "spoor " - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "NIET Filteren van tempo..." - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "NIET Kwantificeren van kolommen..." - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "Kwantificeren van kolommen..." - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "Zetten van kolommen..." - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "% MIDI copyright:" - -#: mudela-staff.cc:210 -msgid "% MIDI instrument:" -msgstr "% MIDI instrument:" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "lelie inspring diepte: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "% Schepper: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% Automatisch gegenereerd" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% van invoerbestand: " diff --git a/po/ru.po b/po/ru.po index c3e560a74d..084e6304ff 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-03-06 12:36+0100\n" +"POT-Creation-Date: 2001-03-21 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: August S.Sigov \n" "Language-Team: Russian \n" @@ -14,115 +14,135 @@ msgstr "" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: ENCODING\n" -#: ly2dvi.py:67 main.cc:95 main.cc:109 +#: ly2dvi.py:86 main.cc:95 main.cc:105 msgid "this help" msgstr "ÜÔÁ ÓÐÒÁ×ËÁ" -#: ly2dvi.py:68 +#: ly2dvi.py:87 msgid "change global setting KEY to VAL" msgstr "" -#: ly2dvi.py:69 +#: ly2dvi.py:88 msgid "generate PostScript output" msgstr "" -#: ly2dvi.py:70 +#: ly2dvi.py:89 msgid "keep all output, and name the directory ly2dvi.dir" msgstr "" -#: ly2dvi.py:71 +#: ly2dvi.py:90 msgid "don't run LilyPond" msgstr "" -#: ly2dvi.py:72 main.cc:104 main.cc:119 +#: ly2dvi.py:91 main.cc:115 +#, fuzzy +msgid "verbose" +msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ" + +#: ly2dvi.py:92 main.cc:104 main.cc:114 msgid "print version number" msgstr "×Ù×ÏÄÉÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ" -#: ly2dvi.py:73 main.cc:106 main.cc:121 +#: ly2dvi.py:93 main.cc:106 main.cc:116 msgid "show warranty and copyright" msgstr "ÐÏËÁÚÁÔØ ÇÁÒÁÎÔÉÀ É copyright" -#: ly2dvi.py:74 +#: ly2dvi.py:94 msgid "dump all final output into DIR" msgstr "" -#: ly2dvi.py:75 main.cc:113 +#: ly2dvi.py:95 main.cc:109 msgid "write Makefile dependencies for every input file" msgstr "ÚÁÐÉÓÙ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ Makefile ÄÌÑ ËÁÖÄÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ" -#: ly2dvi.py:101 +#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23 +msgid "warning: " +msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: " + +#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17 +msgid "error: " +msgstr "ÏÛÉÂËÁ: " + +#: ly2dvi.py:130 msgid "Exiting ... " msgstr "" -#: ly2dvi.py:120 +#: ly2dvi.py:149 #, fuzzy, c-format -msgid "Reading `%s'" +msgid "Reading %s..." msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'" -#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111 +#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23 #, c-format msgid "can't open file: `%s'" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ: `%s'" -#: ly2dvi.py:187 +#: ly2dvi.py:216 #, fuzzy, c-format msgid "Usage: %s [OPTION]... FILE" msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]" -#: ly2dvi.py:189 +#: ly2dvi.py:218 msgid "Generate .dvi with LaTeX for LilyPond" msgstr "" -#: ly2dvi.py:191 main.cc:119 main.cc:151 +#: ly2dvi.py:220 main.cc:119 main.cc:146 msgid "Options:" msgstr "ïÐÃÉÉ:" -#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23 -msgid "warning: " -msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: " - -#: ly2dvi.py:196 +#: ly2dvi.py:224 msgid "all output is written in the CURRENT directory" msgstr "" -#: ly2dvi.py:198 main.cc:123 main.cc:174 +#: ly2dvi.py:226 main.cc:123 main.cc:169 #, c-format msgid "Report bugs to %s" msgstr "óÏÏÂÝÁÊÔÅ Ï ÏÛÉÂËÁÈ ÐÏ %s" -#: ly2dvi.py:230 +#: ly2dvi.py:260 #, fuzzy, c-format msgid "Invoking `%s'" msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'" -#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17 -msgid "error: " -msgstr "ÏÛÉÂËÁ: " - -#: ly2dvi.py:234 +#: ly2dvi.py:263 #, c-format msgid "command exited with value %d" msgstr "" -#: ly2dvi.py:236 +#: ly2dvi.py:265 msgid "(ignored)" msgstr "" -#: ly2dvi.py:277 +#: ly2dvi.py:301 +#, fuzzy, c-format +msgid "no such setting: %s" +msgstr "ÎÅÔ ÔÁËÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ: `%s'" + +#: ly2dvi.py:309 #, c-format msgid "Analyzing `%s'" msgstr "" -#: ly2dvi.py:539 scores.cc:44 +#: ly2dvi.py:353 +#, c-format +msgid "no lilypond output found for %s" +msgstr "" + +#: ly2dvi.py:395 +#, fuzzy, c-format +msgid "invalid value: %s" +msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'" + +#: ly2dvi.py:602 scores.cc:44 #, fuzzy, c-format msgid "dependencies output to %s..." msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..." -#: ly2dvi.py:540 -#, c-format -msgid "%s file left in `%s'" -msgstr "" +#: ly2dvi.py:603 +#, fuzzy, c-format +msgid "%s output to %s..." +msgstr "×Ù×ÏÄ MIDI × %s..." #: data-file.cc:54 msgid "EOF in a string" @@ -226,12 +246,12 @@ msgstr " msgid "can't find default font: `%s'" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ ÐÏ ÕÍÏÌÞÁÎÉÀ: `%s'" -#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137 +#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137 #, c-format msgid "(search path: `%s')" msgstr "(ÐÕÔØ ÐÏÉÓËÁ: `%s')" -#: all-font-metrics.cc:173 parser.yy:1663 +#: all-font-metrics.cc:173 parser.yy:1681 msgid "Giving up" msgstr "óÄÁÀÓØ" @@ -306,7 +326,7 @@ msgstr " msgid "invalid inversion pitch: not part of chord: %s" msgstr "" -#: chord-tremolo-engraver.cc:141 +#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162 msgid "unterminated chord tremolo" msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÔÒÅÍÏÌÏ ÁËËÏÒÄÁ" @@ -315,7 +335,7 @@ msgstr " msgid "no one to print a tremolos" msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ" -#: collision.cc:116 +#: collision.cc:118 msgid "Too many clashing notecolumns. Ignoring them." msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÅÒÅÓÅËÁÀÝÉÈÓÑ ÓÔÏÌÂÃÏ× ÎÏÔ. éÇÎÏÒÉÒÕÀ." @@ -343,7 +363,7 @@ msgstr " msgid "already have a decrescendo" msgstr "ÄÅËÒÅÝÅÎÄÏ ÕÖÅ ÅÓÔØ" -#: dynamic-engraver.cc:307 +#: dynamic-engraver.cc:318 msgid "unterminated (de)crescendo" msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ (ÄÅ)ËÒÅÝÅÎÄÏ" @@ -359,7 +379,7 @@ msgstr " msgid "no one to print a repeat brace" msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ" -#: font-interface.cc:220 +#: font-interface.cc:237 msgid "couldn't find any font satisfying " msgstr "" @@ -392,7 +412,7 @@ msgstr " msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request." msgstr "îÅ Ë ÞÅÍÕ ÐÒÉÓÏÅÄÉÎÉÔØ ÐÅÒÅÎÏÓ ÓÌÅ×Á. éÇÎÏÒÉÒÕÀ ÚÁÐÒÏÓ ÐÅÒÅÎÏÓÁ." -#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24 +#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24 #: scores.cc:136 scores.cc:142 #, c-format msgid "can't find file: `%s'" @@ -429,88 +449,83 @@ msgstr "" msgid "Huh? Melismatic note found to have associated lyrics." msgstr "" -#: main.cc:108 +#: main.cc:104 msgid "EXT" msgstr "òáóû" -#: main.cc:108 +#: main.cc:104 #, fuzzy msgid "use output format EXT (scm, ps, tex or as)" msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔ òáóû" -#: main.cc:110 +#: main.cc:106 #, fuzzy msgid "FIELD" msgstr "æáêì" -#: main.cc:110 +#: main.cc:106 msgid "write header field to BASENAME.FIELD" msgstr "" -#: main.cc:111 main.cc:114 +#: main.cc:107 main.cc:110 msgid "DIR" msgstr "ëáô" -#: main.cc:111 +#: main.cc:107 msgid "add DIR to search path" msgstr "ÄÏÂÁ×ÉÔØ ëáô Ë ÐÕÔÉ ÐÏÉÓËÁ" -#: main.cc:98 main.cc:112 +#: main.cc:98 main.cc:108 msgid "FILE" msgstr "æáêì" -#: main.cc:112 +#: main.cc:108 msgid "use FILE as init file" msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ æáêì ËÁË ÆÁÊÌ ÉÎÉÃÉÁÌÉÚÁÃÉÉ" -#: main.cc:114 +#: main.cc:110 msgid "prepend DIR to dependencies" msgstr "" -#: main.cc:115 +#: main.cc:111 msgid "produce MIDI output only" msgstr "ÐÒÏÉÚ×ÏÄÉÔØ ×Ù×ÏÄ ÔÏÌØËÏ MIDI" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "NAME" msgstr "ïóîï÷á" -#: main.cc:116 +#: main.cc:112 #, fuzzy msgid "write output to NAME" msgstr "ÚÁÐÉÓÙ×ÁÔØ ×Ù×ÏÄ × ïóîï÷á[-x].ÒÁÓÛÉÒÅÎÉÅ" -#: main.cc:117 +#: main.cc:113 msgid "inhibit file output naming and exporting" msgstr "ÓËÒÙÔØ ÉÍÅÎÏ×ÁÎÉÅ É ÜËÓÐÏÒÔ ×Ù×ÏÄÁ × ÆÁÊÌ" -#: main.cc:103 main.cc:118 -msgid "don't timestamp the output" -msgstr "ÎÅ ÏÔÍÅÞÁÔØ ÄÁÔÕ É ×ÒÅÍÑ ×Ù×ÏÄÁ" - -#: main.cc:120 -#, fuzzy -msgid "verbose" -msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ" +#: main.cc:117 +msgid "EXPR" +msgstr "" -#: main.cc:122 -msgid "write midi ouput in formatted ascii" +#: main.cc:117 +msgid "evalute EXPR as Scheme after .scm init is read" msgstr "" #. #. No version number or newline here. It confuses help2man #. -#: main.cc:139 +#: main.cc:134 #, c-format msgid "Usage: %s [OPTION]... [FILE]..." msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]..." -#: main.cc:141 +#: main.cc:136 msgid "Typeset music and or play MIDI from FILE" msgstr "îÁÂÉÒÁÔØ ÍÕÚÙËÕ É/ÉÌÉ ÐÒÏÉÇÒÙ×ÁÔØ MIDI ÉÚ æáêìÁ" -#: main.cc:145 +#: main.cc:140 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" @@ -520,11 +535,11 @@ msgstr "" "ÎÁ ÂÕÍÁÇÅ, ÉÓÐÏÌØÚÕÑ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÊ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÎÁ ××ÏÄÅ. Lilypond\n" "Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ðÒÏÅËÔÁ GNU.\n" -#: main.cc:155 +#: main.cc:150 msgid "This binary was compiled with the following options:" msgstr "üÔÏÔ ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ ÂÙÌ ÓÏÂÒÁÎ ÓÏ ÓÌÅÄÕÀÝÉÍÉ ÏÐÃÉÑÍÉ:" -#: main.cc:55 main.cc:182 +#: main.cc:55 main.cc:177 #, c-format msgid "" "This is free software. It is covered by the GNU General Public License,\n" @@ -536,17 +551,17 @@ msgstr "" "ÐÒÉ ÓÏÂÌÀÄÅÎÉÉ ÎÅËÏÔÏÒÙÈ ÕÓÌÏ×ÉÊ. ÷ÙÚÙ×ÁÊÔÅ ËÁË `%s --warranty' ÄÌÑ\n" "ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n" -#: main.cc:62 main.cc:189 main.cc:201 +#: main.cc:62 main.cc:184 main.cc:196 #, c-format msgid "Copyright (c) %s by" msgstr "÷ÓÅ ÐÒÁ×Á ÚÁÝÉÝÅÎÙ (c) %s by" -#: main.cc:199 +#: main.cc:194 #, fuzzy msgid "GNU LilyPond -- The music typesetter" msgstr "GNU LilyPond -- îÁÂÏÒÝÉË ÍÕÚÙËÉ ðÒÏÅËÔÁ GNU" -#: main.cc:71 main.cc:207 +#: main.cc:71 main.cc:202 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" @@ -581,29 +596,37 @@ msgstr " msgid "Transposition by %s makes accidental larger than two" msgstr "" -#: music.cc:222 +#: music.cc:224 msgid "ly_get_mus_property (): Not a Music" msgstr "" -#: music.cc:236 +#: music.cc:238 msgid "ly_set_mus_property (): Not a symbol" msgstr "" -#: music.cc:248 +#: music.cc:250 msgid "ly_set_mus_property (): not of type Music" msgstr "" +#: music.cc:264 +msgid "ly_make_music (): Not a string" +msgstr "" + +#: music.cc:284 +msgid "ly_music_name (): Not a music expression" +msgstr "" + #: music-output-def.cc:115 #, c-format msgid "can't find `%s' context" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ËÏÎÔÅËÓÔ `%s'" -#: my-lily-lexer.cc:137 +#: my-lily-lexer.cc:138 #, c-format msgid "Identifier name is a keyword: `%s'" msgstr "éÍÑ ËÏÍÁÎÄÙ Ñ×ÌÑÅÔÓÑ ËÌÀÞÅ×ÙÍ ÓÌÏ×ÏÍ: `%s'" -#: my-lily-lexer.cc:157 +#: my-lily-lexer.cc:158 #, c-format msgid "error at EOF: %s" msgstr "ÏÛÍÂËÁ × ËÏÎÃÅ ÆÁÊÌÁ: %s" @@ -612,7 +635,7 @@ msgstr " msgid "Parsing..." msgstr "òÁÚÂÉÒÁÀ..." -#: my-lily-parser.cc:55 +#: my-lily-parser.cc:57 msgid "Braces don't match" msgstr "æÉÇÕÒÎÙÅ ÓËÏÂËÉ ÎÅ ÓÏ×ÐÁÄÁÀÔ" @@ -626,11 +649,11 @@ msgstr " msgid "paper output to %s..." msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..." -#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102 +#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95 msgid ", at " msgstr ", ×" -#: paper-outputter.cc:245 +#: paper-outputter.cc:232 #, fuzzy, c-format msgid "writing header field %s to %s..." msgstr "úÁÐÉÓÙ×ÁÀ ÆÁÊÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ: `%s'..." @@ -639,7 +662,7 @@ msgstr " msgid "Preprocessing elements..." msgstr "ðÒÅÄ×ÁÒÉÔÅÌØÎÏ ÏÂÒÁÂÁÔÙ×ÁÀ ÜÌÅÍÅÎÔÙ..." -#: paper-score.cc:113 +#: paper-score.cc:114 msgid "Outputting Score, defined at: " msgstr "" @@ -668,6 +691,16 @@ msgstr " msgid "none of these in my family: `%s'" msgstr "ÏÎÉ ÍÎÅ ÎÅ ÒÏÄÓÔ×ÅÎÎÉËÉ" +#: percent-repeat-engraver.cc:108 +#, fuzzy +msgid "Don't know yet how to handle this percent repeat." +msgstr "îÅ ÚÎÁÀ, ÞÔÏ ÄÅÌÁÔØ Ó ÐÕÓÔÙÍÉ ËÌÀÞÁÍÉ" + +#: percent-repeat-iterator.cc:53 +#, fuzzy +msgid "no one to print a percent" +msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ" + #: performance.cc:51 msgid "Track ... " msgstr "äÏÒÏÖËÁ ..." @@ -676,12 +709,12 @@ msgstr " msgid "Creator: " msgstr "óÏÚÄÁÔÅÌØ: " -#: performance.cc:116 +#: performance.cc:109 #, c-format msgid "from musical definition: %s" msgstr "ÉÚ ÍÕÚÙËÁÌØÎÏÊ ÎÏÔÁÃÉÉ %s" -#: performance.cc:171 +#: performance.cc:164 #, c-format msgid "MIDI output to %s..." msgstr "×Ù×ÏÄ MIDI × %s..." @@ -744,7 +777,7 @@ msgstr " msgid "elapsed time: %.2f seconds" msgstr "ÚÁÔÒÁÞÅÎÎÏÅ ×ÒÅÍÑ: %.2f ÓÅËÕÎÄ" -#: score-engraver.cc:177 +#: score-engraver.cc:183 #, c-format msgid "unbound spanner `%s'" msgstr "" @@ -781,7 +814,9 @@ msgstr " msgid "unterminated slur" msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÁÑ ÌÉÇÁ" -#: slur-engraver.cc:142 +#. How to shut up this warning, when Voice_devnull_engraver has +#. eaten start request? +#: slur-engraver.cc:144 #, fuzzy msgid "can't find start of slur" msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ" @@ -819,21 +854,23 @@ msgstr " msgid "can't find ascii character: %d" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÓÉÍ×ÏÌ ASCII: `%d'" -#: tfm-reader.cc:105 +#: tfm-reader.cc:106 #, c-format -msgid "TFM header of `%s' has only %u word(s)" +msgid "TFM header of `%s' has only %u word (s)" msgstr "" -#: tfm-reader.cc:139 +#: tfm-reader.cc:140 #, c-format msgid "%s: TFM file has %u parameters, which is more than the %u I can handle" msgstr "" -#: tie-engraver.cc:211 tie-performer.cc:173 +#. How to shut up this warning, when no notes appeared because +#. they were suicided by Thread_devnull_engraver? +#: tie-engraver.cc:215 tie-performer.cc:173 msgid "No ties were created!" msgstr "" -#: tie-engraver.cc:230 +#: tie-engraver.cc:234 msgid "lonely tie" msgstr "" @@ -851,21 +888,21 @@ msgstr "" msgid "unknown translator: `%s'" msgstr "" -#: translator-def.cc:96 +#: translator-def.cc:99 msgid "Program has no such type" msgstr "" -#: translator-def.cc:102 +#: translator-def.cc:105 #, c-format msgid "Already contains: `%s'" msgstr "õÖÅ ÓÏÄÅÒÖÉÔ: `%s'" -#: translator-def.cc:103 +#: translator-def.cc:106 #, c-format msgid "Not adding translator: `%s'" msgstr "" -#: translator-def.cc:215 +#: translator-def.cc:224 #, c-format msgid "can't find: `%s'" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ: `%s'" @@ -880,19 +917,19 @@ msgstr "" msgid "can't find or create: `%s'" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÉÌÉ ÓÏÚÄÁÔØ: `%s'" -#: translator-group.cc:403 +#: translator-group.cc:414 #, c-format msgid "" "Can't find property type-check for `%s'. Perhaps you made a typing error?" msgstr "" -#: translator-group.cc:417 +#: translator-group.cc:428 #, c-format msgid "Type check for `%s' failed; value `%s' must be of type `%s'" msgstr "" #. programming_error? -#: translator-group.cc:436 +#: translator-group.cc:447 msgid "ly-get-trans-property: expecting a Translator_group argument" msgstr "" @@ -913,114 +950,184 @@ msgstr "" msgid "Oldest supported input version: %s" msgstr "" -#: parser.yy:471 +#: parser.yy:473 msgid "Wrong type for property value" msgstr "" -#: parser.yy:666 +#: parser.yy:672 msgid "More alternatives than repeats. Junking excess alternatives." msgstr "" -#: parser.yy:730 +#: parser.yy:736 msgid "Second argument must be a symbol" msgstr "÷ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÓÉÍ×ÏÌÏÍ" -#: parser.yy:735 +#: parser.yy:741 msgid "First argument must be a procedure taking 1 argument" msgstr "" -#: parser.yy:1211 +#: parser.yy:1236 msgid "Expecting string as script definition" msgstr "" -#: parser.yy:1221 +#: parser.yy:1246 msgid "Can't specify direction for this request" msgstr "îÅ ÍÏÇÕ ÕËÁÚÁÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÄÌÑ ÜÔÏÇÏ ÚÁÐÒÏÓÁ" -#: parser.yy:1353 +#: parser.yy:1371 msgid "Expecting musical-pitch value" msgstr "" -#: parser.yy:1364 +#: parser.yy:1382 #, fuzzy msgid "Must have duration object" msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ" -#: parser.yy:1373 parser.yy:1381 parser.yy:1661 +#: parser.yy:1391 parser.yy:1399 parser.yy:1679 msgid "Have to be in Lyric mode for lyrics" msgstr "äÏÌÖÅÎ ÂÙÔØ × ìÉÒÉÞÅÓËÏÍ ÒÅÖÉÍÅ ÄÌÑ ÌÉÒÉËÉ" -#: parser.yy:1546 parser.yy:1575 +#: parser.yy:1564 parser.yy:1593 #, c-format msgid "not a duration: %d" msgstr "ÎÅ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ: %d" -#: parser.yy:1584 +#: parser.yy:1602 msgid "Have to be in Note mode for notes" msgstr "äÏÌÖÅÎ ÂÙÔØ × îÏÔÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÎÏÔ" -#: parser.yy:1680 +#: parser.yy:1698 msgid "Have to be in Chord mode for chords" msgstr "äÏÌÖÅÎ ÂÙÔØ × áËËÏÒÄÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÁËËÏÒÄÏ×" -#: parser.yy:1842 parser.yy:1860 +#: parser.yy:1860 parser.yy:1878 msgid "need integer number arg" msgstr "" -#: parser.yy:1846 +#: parser.yy:1864 msgid "Must be positive integer" msgstr "" -#: lexer.ll:165 +#: lexer.ll:166 msgid "EOF found inside a comment" msgstr "ëÏÎÅà ÆÁÊÌÁ ×ÎÕÔÒÉ ËÏÍÍÅÎÔÁÒÉÑ" -#: lexer.ll:179 +#: lexer.ll:180 msgid "\\maininput disallowed outside init files" msgstr "" -#: lexer.ll:203 +#: lexer.ll:204 #, fuzzy, c-format msgid "wrong or undefined identifier: `%s'" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÍÅÔËÁ/ËÏÍÁÎÄÁ: `%s'" #. backup rule -#: lexer.ll:208 +#: lexer.ll:209 msgid "Missing end quote" msgstr "ïÔÓÕÔÓ×ÕÅÔ ÚÁËÌÀÞÉÔÅÌØÎÁÑ ËÁ×ÙÞËÁ" #. backup rule -#: lexer.ll:230 lexer.ll:234 +#: lexer.ll:231 lexer.ll:235 msgid "white expected" msgstr "× ÔÏ ×ÒÅÍÑ ËÁË ÏÖÉÄÁÌÏÓØ" -#: lexer.ll:243 +#: lexer.ll:244 msgid "Can't evaluate Scheme in safe mode" msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÑÔØ ËÏÄ ÓÈÅÍÙ × ÂÅÚÏÐÁÓÎÏÍ ÒÅÖÉÍÅ" -#: lexer.ll:335 +#: lexer.ll:336 msgid "Brace found at end of lyric. Did you forget a space?" msgstr "" -#: lexer.ll:439 +#: lexer.ll:440 #, c-format msgid "invalid character: `%c'" msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'" -#: lexer.ll:520 +#: lexer.ll:521 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `\\%s'" -#: lexer.ll:602 +#: lexer.ll:603 #, fuzzy, c-format msgid "incorrect lilypond version: %s (%s, %s)" msgstr "ÎÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ mudela: %s (%s, %s)" -#: lexer.ll:603 +#: lexer.ll:604 msgid "Consider converting the input with the convert-ly script" msgstr "" +#: lilypond-item.cc:161 +#, c-format +msgid "#32 in quarter: %d" +msgstr "#32 × ÞÅÔ×ÅÒÔÎÏÊ: %d" + +#: lilypond-score.cc:108 +#, c-format +msgid "Lily output to %s..." +msgstr "Lily ×ÙÈÏÄ × %s..." + +#: lilypond-score.cc:119 +#, c-format +msgid "track %d:" +msgstr "ÄÏÒÏÖËÁ %d:" + +#: lilypond-score.cc:155 +msgid "Processing..." +msgstr "ïÂÒÁÂÁÔÙ×ÁÀ..." + +#: lilypond-score.cc:164 +msgid "Creating voices..." +msgstr "óÏÚÄÁÀ ÇÏÌÏÓÁ..." + +#: lilypond-score.cc:168 +msgid "track " +msgstr "ÄÏÒÏÖËÁ" + +#: lilypond-score.cc:177 +msgid "NOT Filtering tempo..." +msgstr "" + +#: lilypond-score.cc:186 +msgid "NOT Quantifying columns..." +msgstr "" + +#: lilypond-score.cc:190 +msgid "Quantifying columns..." +msgstr "" + +#: lilypond-score.cc:223 +msgid "Settling columns..." +msgstr "" + +#: lilypond-staff.cc:209 +msgid "% MIDI copyright:" +msgstr "% MIDI copyright:" + +#: lilypond-staff.cc:210 +msgid "% MIDI instrument:" +msgstr "% MIDI ÉÎÓÔÒÕÍÅÎÔ:" + +#: lilypond-stream.cc:37 +#, c-format +msgid "lily indent level: %d" +msgstr "ÕÒÏ×ÅÎØ ÏÔÓÔÕÐÏ× lily: %d" + +#. Maybe better not to translate these? +#: lilypond-stream.cc:83 +msgid "% Creator: " +msgstr "% óÏÚÄÁÔÅÌØ: " + +#: lilypond-stream.cc:88 +msgid "% Automatically generated" +msgstr "% á×ÔÏÍÁÔÉÞÅÓËÉ ÓÇÅÎÅÒÉÒÏ×ÁÎÏ" + +#: lilypond-stream.cc:97 +#, c-format +msgid "% from input file: " +msgstr "% ÉÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ: " + #: main.cc:93 msgid "write exact durations, e.g.: a4*385/384" msgstr "" @@ -1066,6 +1173,10 @@ msgstr " msgid "set smallest duration" msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ" +#: main.cc:103 +msgid "don't timestamp the output" +msgstr "ÎÅ ÏÔÍÅÞÁÔØ ÄÁÔÕ É ×ÒÅÍÑ ×Ù×ÏÄÁ" + #: main.cc:105 msgid "be verbose" msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ" @@ -1080,7 +1191,8 @@ msgid "Usage: %s [OPTION]... [FILE]" msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]" #: main.cc:116 -msgid "Translate MIDI-file to mudela" +#, fuzzy +msgid "Translate MIDI-file to lilypond" msgstr "ôÒÁÎÓÌÉÒÏ×ÁÔØ MIDI-ÆÁÊÌ × mudela" #: main.cc:130 @@ -1157,76 +1269,6 @@ msgstr " msgid "invalid track length" msgstr "ÎÅ×ÅÒÎÁÑ ÄÌÉÎÁ ÄÏÒÏÖËÉ" -#: mudela-item.cc:161 -#, c-format -msgid "#32 in quarter: %d" -msgstr "#32 × ÞÅÔ×ÅÒÔÎÏÊ: %d" - -#: mudela-score.cc:108 -#, c-format -msgid "Lily output to %s..." -msgstr "Lily ×ÙÈÏÄ × %s..." - -#: mudela-score.cc:119 -#, c-format -msgid "track %d:" -msgstr "ÄÏÒÏÖËÁ %d:" - -#: mudela-score.cc:155 -msgid "Processing..." -msgstr "ïÂÒÁÂÁÔÙ×ÁÀ..." - -#: mudela-score.cc:164 -msgid "Creating voices..." -msgstr "óÏÚÄÁÀ ÇÏÌÏÓÁ..." - -#: mudela-score.cc:168 -msgid "track " -msgstr "ÄÏÒÏÖËÁ" - -#: mudela-score.cc:177 -msgid "NOT Filtering tempo..." -msgstr "" - -#: mudela-score.cc:186 -msgid "NOT Quantifying columns..." -msgstr "" - -#: mudela-score.cc:190 -msgid "Quantifying columns..." -msgstr "" - -#: mudela-score.cc:223 -msgid "Settling columns..." -msgstr "" - -#: mudela-staff.cc:209 -msgid "% MIDI copyright:" -msgstr "% MIDI copyright:" - -#: mudela-staff.cc:210 -msgid "% MIDI instrument:" -msgstr "% MIDI ÉÎÓÔÒÕÍÅÎÔ:" - -#: mudela-stream.cc:37 -#, c-format -msgid "lily indent level: %d" -msgstr "ÕÒÏ×ÅÎØ ÏÔÓÔÕÐÏ× lily: %d" - -#. Maybe better not to translate these? -#: mudela-stream.cc:83 -msgid "% Creator: " -msgstr "% óÏÚÄÁÔÅÌØ: " - -#: mudela-stream.cc:88 -msgid "% Automatically generated" -msgstr "% á×ÔÏÍÁÔÉÞÅÓËÉ ÓÇÅÎÅÒÉÒÏ×ÁÎÏ" - -#: mudela-stream.cc:97 -#, c-format -msgid "% from input file: " -msgstr "% ÉÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ: " - #, fuzzy #~ msgid "Dependency file left in `%s'" #~ msgstr "úÁÐÉÓÙ×ÁÀ ÆÁÊÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ: `%s'..." @@ -1286,9 +1328,6 @@ msgstr "% #~ msgid "No key name, assuming `C'" #~ msgstr "îÅÔ ÎÁÚ×ÁÎÉÑ ËÌÀÞÁ, ÐÏÄÒÁÚÕÍÅ×ÁÀ `C'" -#~ msgid "Don't know how handle empty keys" -#~ msgstr "îÅ ÚÎÁÀ, ÞÔÏ ÄÅÌÁÔØ Ó ÐÕÓÔÙÍÉ ËÌÀÞÁÍÉ" - #~ msgid "out of tune:" #~ msgstr "×ÎÅ ÔÏÎÁÌØÎÏÓÔÉ:" diff --git a/ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile b/ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile new file mode 100644 index 0000000000..68762739da --- /dev/null +++ b/ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile @@ -0,0 +1,5 @@ +zipped = true +mutopia-name = Coriolan + depth = ../../../../.. + include $(depth)/ports/ports.make + diff --git a/ports/mutopia/BeethovenLv/O62/GNUmakefile b/ports/mutopia/BeethovenLv/O62/GNUmakefile new file mode 100644 index 0000000000..0197f03abc --- /dev/null +++ b/ports/mutopia/BeethovenLv/O62/GNUmakefile @@ -0,0 +1,3 @@ + depth = ../../../.. + include $(depth)/ports/ports.make + diff --git a/scm/basic-properties.scm b/scm/basic-properties.scm index 9c809fb6d3..e76878cf5f 100644 --- a/scm/basic-properties.scm +++ b/scm/basic-properties.scm @@ -21,6 +21,7 @@ ; ; How should a bar line behave at a break? ; +;; Why prepend `default-' to every scm identifier? (define (default-break-barline glyph dir) (let ((result (assoc glyph '((":|:" . (":|" . "|:")) diff --git a/scm/c++.scm b/scm/c++.scm index 045002d357..793d287a5f 100644 --- a/scm/c++.scm +++ b/scm/c++.scm @@ -86,11 +86,11 @@ (uniqued-alist (cdr alist) (cons (car alist) acc))))) +;; used in denneboom.ly +(define (cons-map f x) + (cons (f (car x)) (f (cdr x)))) -;;(define (cons-map f x) -;; (cons (f (car x)) (f (cdr x)))) - - +;; used where? ;;(define (reduce operator list) ;; (if (null? (cdr list)) (car list) ;; (operator (car list) (reduce operator (cdr list))))) diff --git a/scm/lily.scm b/scm/lily.scm index 3019ca7bdd..f2b11acc73 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -31,6 +31,9 @@ (string-append (number->string line) " " file) ) +;; cpp hack to get useful error message +(define ifdef "First run this through cpp.") +(define ifndef "First run this through cpp.") (define default-script-alist '()) (define font-name-alist '()) diff --git a/scripts/as2text.scm b/scripts/as2text.scm index 4efa72737c..b3d127a8ce 100644 --- a/scripts/as2text.scm +++ b/scripts/as2text.scm @@ -378,10 +378,10 @@ Options: (begin (set! fonts (cons (cons "default" (generate-default-font)) fonts)) (display "\n" (current-error-port)) - (if (and (defined? 'mudelapaperlinewidth) - (> (string->number mudelapaperlinewidth) 0)) + (if (and (defined? 'lilypondpaperlinewidth) + (> (string->number lilypondpaperlinewidth) 0)) (set! canvas-width - (inexact->exact (string->number mudelapaperlinewidth)))))) + (inexact->exact (string->number lilypondpaperlinewidth)))))) (set! canvas-height height) (set! canvas (make-array " " canvas-height canvas-width))) diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index 0ba8cb886b..9e0f7e43c9 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -114,11 +114,19 @@ def show_rules (file): ############################ +if 1: + def conv(str): + if re.search ('\\\\multi', str): + sys.stderr.write ('\nNot smart enough to convert \\multi') + return str + + conversions.append (((0,1,9), conv, '\\header { key = concat + with + operator }')) + if 1: # need new a namespace def conv (str): if re.search ('\\\\octave', str): sys.stderr.write ('\nNot smart enough to convert \\octave') - raise FatalConversionError() + # raise FatalConversionError() return str @@ -130,7 +138,8 @@ if 1: # need new a namespace def conv (str): str = re.sub ('\\\\textstyle([^;]+);', '\\\\property Lyrics . textstyle = \\1', str) - str = re.sub ('\\\\key([^;]+);', '\\\\accidentals \\1;', str) + # harmful to current .lys + # str = re.sub ('\\\\key([^;]+);', '\\\\accidentals \\1;', str) return str @@ -179,10 +188,7 @@ if 1: if 1: def conv(str): - str = re.sub ('\\\\melodic', '\\\\notes',str) - if re.search ('\\\\header', str): - sys.stderr.write ('\nNot smart enough to convert \\multi constructs') - + str = re.sub ('\\\\melodic([^a-zA-Z])', '\\\\notes\\1',str) return str conversions.append (((1,0,3), conv, '\\melodic -> \\notes')) @@ -198,7 +204,7 @@ if 1: if 1: def conv(str): str = re.sub ('ChoireStaff', 'ChoirStaff',str) - str = re.sub ('\\output', 'output = ',str) + str = re.sub ('\\\\output', 'output = ',str) return str @@ -208,7 +214,7 @@ if 1: def conv(str): if re.search ('[a-zA-Z]+ = *\\translator',str): sys.stderr.write ('\nNot smart enough to change \\translator syntax') - raise FatalConversionError() + # raise FatalConversionError() return str conversions.append (((1,0,6), conv, 'foo = \\translator {\\type .. } ->\\translator {\\type ..; foo; }')) @@ -263,7 +269,10 @@ if 1: if 1: def conv(str): + str = re.sub ('\\\\type([^\n]*engraver)','\\\\TYPE\\1', str) + str = re.sub ('\\\\type([^\n]*performer)','\\\\TYPE\\1', str) str = re.sub ('\\\\type','\\\\context', str) + str = re.sub ('\\\\TYPE','\\\\type', str) str = re.sub ('textstyle','textStyle', str) return str @@ -275,7 +284,7 @@ if 1: def conv(str): if re.search ('\\\\repeat',str): sys.stderr.write ('\nNot smart enough to convert \\repeat') - raise FatalConversionError() + # raise FatalConversionError() return str conversions.append (((1,0,18), conv, @@ -418,6 +427,18 @@ if 1: conversions.append (((1,3,18), conv, 'staffLineLeading -> staffSpace')) + +if 1: + def conv(str): + if re.search ('\\\\repetitions',str): + sys.stderr.write ('\nNot smart enough to convert \\repetitions') + # raise FatalConversionError() + return str + + conversions.append (((1,3,23), conv, + '\\\\repetitions feature dropped')) + + if 1: def conv (str): str = re.sub ('textEmptyDimension *= *##t', @@ -477,6 +498,16 @@ if 1: conversions.append (((1,3,49), conv, 'noteHeadStyle value: string -> symbol')) +if 1: + def conv (str): + if re.search ('\\\\keysignature', str): + sys.stderr.write ('\nNot smart enough to convert to new tremolo format') + return str + + + conversions.append (((1,3,58), conv, + 'noteHeadStyle value: string -> symbol')) + if 1: def conv (str): str = re.sub (r"""\\key *([a-z]+) *;""", r"""\\key \1 \major;""",str); @@ -508,12 +539,13 @@ if 1: str = re.sub ('basicLocalKeyProperties' ,"Accidentals", str) - str = re.sub ('basicMarkProperties' ,"Accidentals", str) + str = re.sub ('basicMarkProperties' ,"Accidentals", str) str = re.sub ('basic([A-Za-z_]+)Properties', '\\1', str) + str = re.sub ('Repeat_engraver' ,'Volta_engraver', str) return str - conversions.append (((1,3,92), conv, 'basicXXXProperties -> XXX')) + conversions.append (((1,3,92), conv, 'basicXXXProperties -> XXX, Repeat_engraver -> Volta_engraver')) if 1: def conv (str): @@ -545,11 +577,20 @@ if 1: str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\stemUp\\\\slurUp\\\\tieUp', str) str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\stemDown\\\\slurDown\\\\tieDown', str) str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\stemBoth\\\\slurBoth\\\\tieBoth', str) + + str = re.sub ('verticalDirection[^=]*= *#?"?(1|(\\\\up))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #1', str) + str = re.sub ('verticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #-1', str) + str = re.sub ('verticalDirection[^=]*= *#?"?(0|(\\\\center))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #0', str) str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\\\1Up', str) str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\\\1Down', str) str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\\\1Both', str) + # (lacks capitalisation slur -> Slur) + str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\1 \\\\override #\'direction = #1', str) + str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\1 \\override #\'direction = #-1', str) + str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\1 \\\\override #\'direction = #0', str) + ## dynamic.. str = re.sub ('\\\\property *[^ .]*[.]?dynamicDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\dynamicUp', str) str = re.sub ('\\\\property *[^ .]*[.]?dyn[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\dynamicDown', str) @@ -597,7 +638,7 @@ if 1: str = re.sub ('#\'style *= #*"([^"])"', '#\'style = #\'\\1', str) - str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?horizontalNoteShift"? *= *"?#?([0-9]+)"?', '\\\\property \\1.NoteColumn \\\\override #\'horizontal-shift = #\\2', str) + str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?horizontalNoteShift"? *= *"?#?([-0-9]+)"?', '\\\\property \\1.NoteColumn \\\\override #\'horizontal-shift = #\\2', str) # ugh str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?flagStyle"? *= *""', '\\\\property \\1.Stem \\\\override #\'flag-style = ##f', str) @@ -767,8 +808,8 @@ def do_conversion (infile, from_version, outfile, to_version): # esp. as current conversion rules are soo incomplete if re.search (lilypond_version_re_str, str): str = re.sub (lilypond_version_re_str,'\\'+new_ver , str) - else: - str = new_ver + '\n' + str + #else: + # str = new_ver + '\n' + str outfile.write(str) diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index e731503e24..9a4d5a05c0 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -469,7 +469,7 @@ def do_files (fs, extra): f.close () # todo: nonstopmode - system ('latex %s' % latex_file) + system ('latex \\\\nonstopmode \\\\input %s' % latex_file) return latex_file + '.dvi' def generate_postscript (dvi_name, extra): diff --git a/tex/mudela-book.tex b/tex/mudela-book.tex index 41431b1329..e69de29bb2 100644 --- a/tex/mudela-book.tex +++ b/tex/mudela-book.tex @@ -1,35 +0,0 @@ - -\def\file#1{\verb+#1+} - -% ugh: trick to get examples not generate par -% these are for 16pt -\def\lilypondpaperlinewidth{-28.452756}% -\def\lilypondpaperindent{28.452756}% -\def\lilypondpaperrulethickness{0.400000}% -\def\lilypondpaperbarsize{16.000000}% -\def\lilypondpaperinterline{4.000000}% -\def\lilypondpapernotewidth{5.930000}% -\def\lilypondpaperwholewidth{8.640000}% -\def\lilypondpaperunitspace{22.000000}% -\def\lilypondpaperbasicspace{4.000000}% -\def\lilypondpapergeometric{0.000000}% -\def\lilypondpaperarithmetic_basicspace{2.000000}% -\def\lilypondpaperarithmetic_multiplier{4.800000}% -\def\lilypondpaperinterbeam{3.140000}% -\def\lilypondpapergourlay_energybound{100000.000000}% -\def\lilypondpapergourlay_maxmeasures{14.000000}% -% huh? -% \def\exampleheight{2\lilypondpaperbarsize pt} -\def\exampleheight{2cm} - -% ful of pars, needs the above -\input lilyponddefs - -% generates par -\def\interscoreline{} -% generates par -%\musixsixteendefs -%\def\musixsixteendefs{} -\def\nolilyfooter{} -%urg: missing \begin{document}? -%0ef\noindent{} diff --git a/tex/p.tex b/tex/p.tex index d66fca3996..e69de29bb2 100644 --- a/tex/p.tex +++ b/tex/p.tex @@ -1,39 +0,0 @@ -% pedal.tex - -\hsize = 296mm -\vsize = 210mm - -% fix chord.cc::banter_str before removing these -\def\fetdef#1#2{% - \def#1{\hbox{\char#2}}} - -\fetdef\pedalasterisk{101} -\fetdef\pedaldash{102} -\fetdef\pedaldot{103} -\fetdef\pedalP{104} -\fetdef\pedald{105} -\fetdef\pedale{106} - -%\font\fetatwentysixfontt=feta26 scaled \magstep 4 -%\font\fetatwentysixfontt=feta26 scaled 18842 -\font\fetatwentysixfontt=feta26 scaled 2407 -\magnification \magstep 4 - -\def\fetafont{\fetatwentysixfontt} - -\baselineskip 12mm - -\vbox{ -\kern 20mm - -\hbox{ -\fetatwentysixfontt -\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot} -\kern 50mm -\pedalasterisk -} -} - -\end - -%\endinput diff --git a/tex/test-pedal.tex b/tex/test-pedal.tex new file mode 100644 index 0000000000..d66fca3996 --- /dev/null +++ b/tex/test-pedal.tex @@ -0,0 +1,39 @@ +% pedal.tex + +\hsize = 296mm +\vsize = 210mm + +% fix chord.cc::banter_str before removing these +\def\fetdef#1#2{% + \def#1{\hbox{\char#2}}} + +\fetdef\pedalasterisk{101} +\fetdef\pedaldash{102} +\fetdef\pedaldot{103} +\fetdef\pedalP{104} +\fetdef\pedald{105} +\fetdef\pedale{106} + +%\font\fetatwentysixfontt=feta26 scaled \magstep 4 +%\font\fetatwentysixfontt=feta26 scaled 18842 +\font\fetatwentysixfontt=feta26 scaled 2407 +\magnification \magstep 4 + +\def\fetafont{\fetatwentysixfontt} + +\baselineskip 12mm + +\vbox{ +\kern 20mm + +\hbox{ +\fetatwentysixfontt +\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot} +\kern 50mm +\pedalasterisk +} +} + +\end + +%\endinput -- cgit v1.2.3