-
=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
=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 *
=item *
-++ concat
-
-=item *
-
C<+> is merge
-=item *
-
- \transpose{ \from c \to g \melodic{ c d e } }
- \transpose{ \from c \to g melody } %!?
=item *
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.
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:
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
++ 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...
--- /dev/null
+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 <hanwen@stack.nl>
+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
+