From: fred Date: Sun, 24 Mar 2002 19:41:27 +0000 (+0000) Subject: lilypond-0.0.52 X-Git-Tag: release/1.5.59~4830 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9bdbbe7b4c4585c4a5beb27a248f83c58b1042e5;p=lilypond.git lilypond-0.0.52 --- diff --git a/Documentation/language.pod b/Documentation/language.pod index 181c4dea1f..0961c0aeaa 100644 --- a/Documentation/language.pod +++ b/Documentation/language.pod @@ -1,79 +1,22 @@ - =head1 NAME language.pod -- state of the art mudela-vapourware. -=head1 SYNOPSIS - -(damn pod) - =head1 DESCRIPTION +[this document is slowly merged into the mudela doco, as the +implementation progresses. If you want to see our previous musings, +take out an old version of lilypond] + here are some thoughts on the language. Most of the examples are in pseudo current mudela. Some stuff gratuitously taken from your mails. + =head1 NOTE I dislike vapourware. That's why I oppose to concrete plans on how to do input for features we don't know how to produce on paper -=head1 AIM - -A musical notation that is relatively easy to comprehend to both -programmers and non programmers. The final aim is to be able to -express what can be expressed in sheet music. - -=over 5 - -=item * -play pieces - -=item * -typeset the pieces - -=back - -further requirements: - -=over 5 - -=item * -Possible to edit the layout without danger of changing the -original music. (fingerings, interpretation) - -=item * -Simple music manipulations, such as transposing, creating a -score for individual instruments as well as for the conductor, -extracting short pieces from a longer one, glueing several shorter -pieces into a single score. - -=back - -Pieces could be: - - -=over 5 - -=item * -Mahlerian orchestral score - -=item * -piano pieces - -=item * -pop songs (lyrics + chords) - -=item * -gregorian chant (?) - -=item * -bach multivoice organ music. - -=item * -short excerpts to be used in musicological publications. - -=back - =head1 REQUIREMENTS =head2 Parser output @@ -139,49 +82,6 @@ it will make things easier. =item * -\keyword, bo difference notes vs. notenames, - -=item * - -{} hierachical, nest., - -=item * - -<> chords, - -=item * - -drop staff (NOT)?, - -=item * - -melody = \melodic{ } vs. \melodic melody = { } - -=item * - -lexer mode switch by types: \lyric{ }, \melodic{ }, etc., - -=item * - -octaves: low 'C C c c' c'' high; 'c' == c === "c-klein", comment: a ' -' a . Which ' for which a? Now using a!'`. - -=over 4 - -=item * - -\meter{ 2/4 }, - -=item * - -\grouping{ 2*8 3*8 }, - -=item * - -\skip{ 2: 2*8 3*32 }, - -=item * - abbrev: [c2 c2]\noplet{1/2} (wat bout [c2 c2]1/2\noplet?), =item * @@ -204,16 +104,8 @@ drop \music, =item * -++ concat - -=item * - C<+> is merge -=item * - - \transpose{ \from c \to g \melodic{ c d e } } - \transpose{ \from c \to g melody } %!? =item * @@ -253,34 +145,6 @@ can be declared? Like the score now: This will only be readable if the Mudela-user rigidly uses hungarian, which he/she won't. -=head2 Backslash - -I like it. Let's keep it in the language if we need it, it's a -universally accepted escape sequence. - -=head2 Braces - -I like the idea of <> vs. {}. Not because I think it is more clear, -but I dislike the word "music", I can't seem to find the proper word -for what "music" currently does, so I'd like to flush it. - -I would like to point that both <> and {} are indicating a -hierarchy. I think, we should continue to allow them to nest. I still -have no preference what to use for what. - -=head2 Command syntax - -Braces on commands are here now, because the {} are the only nesting -braces. We need to avoid that, since the brace is overused as it -is. We don't like lisp that much. (the key is the only commands which -really needs {} now) - -How about - - \bar "some args", "some more"; - -(note the ; ), which is a mix of perl and TeX. - Of course \key should take a \notename. In fact, I think we should program the note intervals (which are now hardcoded for midi purposes) To allow adaptation to other scales. @@ -316,75 +180,6 @@ mudela to LilyPond. That I don't mind, but it hampers portability. Suppose some commercial systems want to read mudela too. -=head2 Lexer modes - -the $ and @ were quick hacks, which suck badly. Replacing it by a -mechanism that switches the lexer automatically would be better, but -it is still error prone, and it hurts uniformity. What I would like -best is unified syntax, but this seems impossible since lyrics could -clash with notenames. If possible it would simplify the parser, the -scanner, and the explanation of the language. - -What about: - - bes c d e f % notes - 'bes- sen sap % some lyric syllables - -We can make one of the ' ` " a lyric-indication, but then we would -have to change the octave indication, eg. - - _bes % lower - ^bes % higher - -or - - +bes % higher - -bes % lower - -And I am still not sure if it would be possible now, but I think this -is worthwile to investigate. Or we could replace @ by a -quote (take your pick) sign, which is a lot more intuitive. - -The big question remaining is: do we want to add any more modes than -lyric and note? - - -[LOOSE THOUGHT] - -Even looser ideas: we can take a look at the perl wagon. It has numerous -inputmodes. What about: - - lyric << ENDLYRIC - - bes- sen- sap - - ENDLYRIC - - music << ENDMUSIC - - c d e f g - - ENDMUSIC - - -[LOOSE THOUGHT] - -If we free up $ @ from their current meaning, $ and @ could be used to -signify other things. - -=head2 Concrete solution to lyric vs. note - -I think - - "lyric" - -is a valid lyric too. This implies that any bare string is checked if -it is a note. Now it prints an error if not, but I could change it to -assume it is a STRING (and can be reduced to lyric). Heck! I could -implement this tonight. We'd lose one mode! (after checking lexer -source) the only problem is preventing puctuation and the - and _ from -clashing with script symbols. - =head2 Command placement: @@ -412,16 +207,6 @@ LilyPond, before even considering a syntax. uhh? -=head2 Numbers - -The syntax of /, * and : has to be settled, we have - - - notes (1, 2, 4, 8 etc) - - meter 2*4 - - plet 2/3 - - multiple notes: 3*4 - - abbreviations (not implemented) c4/4 or c4*4 - =head2 Filtering This is a idea of mine: we could filter some request types from @@ -468,34 +253,6 @@ Just ideas: ++ concatenation of voices + merging of voices - -=head2 C++ OOP like input. - -I don't see the big win of this. - - score sc1= melody; - sc1.staff{\verse}; - sc1.staff{<\b1 \b2>} - sc1.paper=mypaperdef; - - -We're not doing a programming language. In this syntax the parser has -to lookup what sc1 means, decide if it should copied shallow/deep, -decide if has a staff block, switch the mode after it finds that staff -takes music. May be I'm just ranting, but it looks hairy to -me. Remember that at this stage we're just filling structs. - -In a distant future there might be a need for programming (are you -listening, Philip Glass?), but I think that would be something for -Mudela version 3. And I think using m4 (or something alike) would be -just as convenient. - -=head2 Transposition - -Has to be done. How about: - - \transpose { \from c \to g \music { ... }} - =head2 Quoting Difficult. Hmm... diff --git a/TEST b/TEST deleted file mode 100644 index 0200c36ea6..0000000000 --- a/TEST +++ /dev/null @@ -1,21 +0,0 @@ -Testing for 0.1 in 3 stages: - - 1. Announce "beta testers wanted" - to linux.dev.apps, gnu.announce, mutex - - Source only dist - - GOAL: bugfixes & doco updates - - create mailing list - - 2. Announce to LilyPond list, GNU "internal" list, RoseGarden -list ?, LDA, Mutex - - Source & binary dist too, beta release to fsf? - - GOAL: distribution & portability testing - - 3. Announce to COLA, gnu.announce - - Public release diff --git a/make/lilypond.spec b/make/lilypond.spec new file mode 100644 index 0000000000..3928426799 --- /dev/null +++ b/make/lilypond.spec @@ -0,0 +1,40 @@ +Name: lilypond +Version: 0.0.52 +Release: 1 +Copyright: GPL +Group: Applications/Publishing +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.52.tar.gz +Summary: A preprocessor to make TeX typeset music. +URL: http://www.stack.nl/~hanwen/lilypond +Packager: Han-Wen Nienhuys +Icon: lelie_icon.gif +Buildroot: /tmp/lilypond_build + +%description +LilyPond is a program which converts a music-script (mudela) into +TeX output, or MIDI to produce multi-staff scores. Features include multiple +meters, clefs, keys, lyrics, versatile input-language, cadenzas +beams, slurs, triplets, multi voices. + +%prep +%setup +%build +configure --enable-checking --enable-printing --prefix=/usr --enable-optimise +make all +%install +strip bin/lilypond bin/mi2mu +make prefix="$RPM_BUILD_ROOT/usr" install +%files +%doc Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/error.text Documentation/out/examples.text Documentation/out/faq.text Documentation/out/index.text Documentation/out/language.text Documentation/out/lilygut.text Documentation/out/lilypond.text Documentation/out/mudela.text Documentation/lelie_logo.gif +/usr/bin/lilypond +/usr/bin/mi2mu +/usr/man/man1/lilypond.1 +/usr/man/man5/mudela.5 +/usr/lib/texmf/texmf/tex/lilypond/ +/usr/share/lilypond/ + +%post +texhash +%post +texhash + diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in index ed2fe175b7..c301043366 100644 --- a/make/lilypond.spec.in +++ b/make/lilypond.spec.in @@ -8,21 +8,22 @@ Summary: A preprocessor to make TeX typeset music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys Icon: lelie_icon.gif +Buildroot: /tmp/lilypond_build %description LilyPond is a program which converts a music-script (mudela) into TeX output, or MIDI to produce multi-staff scores. Features include multiple meters, clefs, keys, lyrics, versatile input-language, cadenzas -beams, slurs, triplets. +beams, slurs, triplets, multi voices. %prep %setup %build -configure --enable-checking --enable-optimise --enable-printing --prefix=/usr +configure --enable-checking --enable-printing --prefix=/usr --enable-optimise make all %install -make install -strip /usr/bin/lilypond /usr/bin/mi2mu +strip bin/lilypond bin/mi2mu +make prefix="$RPM_BUILD_ROOT/usr" install %files %doc @TEXT_DOCS@ Documentation/lelie_logo.gif /usr/bin/lilypond