-*-outline-layout:(2 (-1 -1 0 :) 0);outline-stylish-prefixes:nil -*-
+
* GNU LilyPond TODO
-Features you cannot find in the doco as working, should be
+Features you cannot find in the documentation as working, should be
mentioned here. This is an assorted collection of stuff that will be
-done, might be done, or is an idea that I want to think about
-
+done, might be done, or is an idea that we want to think about.
Most of the items are marked in the code as well
-Grep for TODO and ugh/ugr/urg.
-
-.* TODO before 1.2
-. * rename 'staff_line_leading' (who is being lead where?) to
-staff_space, interline; (or other meaningful name) and use throughout
-lily
-
-[-> leading are the lead strips between the sticks (lines) of
-typeface. ie. leading is vertical space --hwn]
-. * Rewrite \rhythm to be during interpreting.
-. * move \version check to lexer.ll
-. * junk delayed spanner breaking.
-. * core dump on broken (de)crescendo
-. * align left edge of broken (de)cresc/slur/tie/tuplet/volta
-. * check dangling_scm_sym working.
-. * spacing of accidentals
-. * key restorations & repeats
+Grep -i for TODO, FIXME and ugh/ugr/urg.
+
+.* TODO
+. * use hash tabs iso. alist_ for elt property?
+. * unhardcode stuff in bezier-bow: all sizes other than 20pt are
+ broken
+. * control paper-size/-file from commandline ?
+ lilypond --paper=paper16 foo.ly
+ lilypond --paper=paper20 foo.ly
+ lilypond --paper=paper-as9 foo.ly
+. * entangle ly/* paper-params papersize stuff
+. * fix tremolos.
+. * change ) c4 to c4-)
+. * automated marks.
+. * There should be no pagebreak below the title of the movement!!
+. * tempo:
+
+> - Tempo Indications:
+> * \tempo 4 = 60 should be printed
+> * There should be commands like \alloegro that also do something
+> sensible in midi.
+>
+. * - It should be possible to have Bar numbers on every bar.
+
+. * dynamics:
+> * Notes should be spaced out for crescendos (had to use c^" ")
+> * something like c-.->\ff looks ugly. The dynamc indication should
+> appear left of the marks
+>
. *
-So how do I do what I want to do?
+There's insufficient leading between lines of lyrics, so risers like
+`l' and 'b' collide with the bottom of the line above.
+
+Also the lines are unevenly spaced.
+
+. * write comments in the source code
+. * internationalize GUILE msgs.
+. * roy rankin:
+1> The volta brackets are on top of the lyrics. This problem existed in
+ 1.2.x which I corrected by giving the brackets a vertical size. I
+ have not had the time to check what is going on in 1.3.
+
+2> Part names are being written on top of the staff and not in the
+ left margin.
+
+3> The tag at the end is spaced out clear across the page. (new problem
+ in 1.3.27)
+
+I also get the following error messages from ly2dvi.
+. * unbroken marks.
+. * chubb:
+-- Take a piece of early music, and typeset it as closely as possible to
+the original edition. This means: moveable clefs, sometimes funny or no
+time signatures, few or no bar lines, few or no ties, slurs or
+phrasemarks, ornaments implied by the structure of the music, or
+indicated by, e.g., one or more thick lines through the stem of a note
+(Purcell and Farnaby both use this extensively, but with rather
+different meanings). For Dowland's music it may also mean being able
+to rotate one or more staves (but I can do this in LaTeX).
+
+-- Add to this music a set of critical marks that:
+ * regularises clef, time and key signature.
+ * add slurs, phrase marks, articulation, etc.
+ * Halve or quarter the durations, so that minims become crotchets, say.
+ * add ornaments (mordents, trills, turns etc)
+ * add regular barlines (which sometimes will mean splitting a note
+ and adding a tie, e.g., in some of Byrd's music)
+ * Add footnotes to particular symbols, groups of notes, etc.
+ * When translating from chant notation, add a square bracket over a
+ group of notes to indicate a ligature in the original
+etc.
+ * Discretionary sharp or flat signs, for Musica Ficta
+
+-- print out both editions from the same source.
+. * write smobifying howto.
+. * put property test files in refman.
+. * alignment within @itemize
+. * interstaff stems
+. * junk dstream output.
+. * Change website to be index to documentation.
+. * \grace { c d } c1 in midi
+. * \prop slurdir in grace notes
+. * Make fingering and playing instructions Music_wrappers?
+. * script columns
+. * Must stop before this music ends:
+verse=\lyrics {
+. * input/test/grace.sly: wierd big spacing on grace notes
+. * TODO^2:
+. * make a TODO.texi, like http://www.gnu.org/software/guile/ideas.html
+. * make this file understandable for 3rd parties.
+. * \accepts -> \acceptedby
+. * context in embedded SCM errors.
+. * acc at tied note after linebreak.
+. * fontSize for time sigs and beams.
+. * fix font-naming and selecting
+. * add context information to warnings
+Paper:
+waarschuwing: Kan niet beide uiteinden van bindingsboog vinden
+MIDI:
+pa.ly:33:23: waarschuwing: Schroot verzoek: `Span_req':
+ g' a4 bes8 \grace f8(
+ )es16 d es8 r c |
+. * chord tonic: placement of accidental C#, Cb (from scm and C++)
+. * note head on stem err msg in dutch.
+. * why need to run -C mf twice?
+. * here's no difference at all in output. When either is jacked up to 7.0,
+everything works and matches up; when either is set just a bit above the
+default 5.0 (5.4 is what I was hoping to use), stems miss note heads. So
+it's some sort of a numerical (truncation/roundoff) problem.
+John
+. * fix #'margin-shape; setting indent to 0 with \shape fails
+. * Fixed size staff/system heights;
+. * ly2dvi : don't repeat opus if same.
+. * hara kiri _8 clef.
+. * junk -M ?
+. * mudela-book doco
+. * bracket pdf hack
+. * Added StaffContents and RhythmicStaffContents context, they are
+between Staff (which groups the elements), and generates the Staff
+level elements (key, clef, meter, etc). This construction makes
+\consistsend redundant
+
+. * Mondrup:
+- if I change the property minVerticalAlign in a multi staff score with
+lyrics the change affects the lyrics too. I would like the change to
+_only_ affect staves.
+- after the leading measure in the above mentioned score I want a double
+bar line fully drawn across the staves and after that keep to the
+ChoirStaff bar line types in the rest of the scores
+. * Write script that uses --find-old-relative to do auto relativization.
-In Caro Mio Ben, bar 8, there's a syllable that starts on a note, and
-ends on a pair of grace notes. Standard practice is to mark this with
-a slur starting on the main note and ending on the grace note, so a
-singer knows where to break the words.
-In bar 26, there's a \p marker that should appear below the grace
-note.
+.* Cleanups needed
+. * \$ and $ identifier syntax in examples.
+. * Key_engraver, Local_key_item
+. * Think of comprehensive solution for "if (grace_b == self_grace_b_)"
+. * String[String.length] doesn't trap.
+. * Rhythmic_column and interaction stem/rhythmic_column/note_head/dots.
+. * clef engraver
+. * parser
+. * Lookup::text -> needs to be TeX independent.
+. * junk Music_iterator::first_b_
-In bar 27, there's a crescendo that's supposed to start at the start
-of the grace notes and extend to the note after the grace notes.
+.* ACCIDENTALS
+. * half-sharps, half-flats
+. * adaptive accidental spacing.
+. * accidentals closer to note head
-How do I specify these?
-. * spanners from grace to normal ctxt
-. * Glen:
-5. Sometimes lyrics extend past the right end of the staff. I guess that
-this is a similar problem (if not another symptom of the same problem) as
-one of the spacing bugs mentioned in the TODO.
-. * 4. Lyrics and grace sections don't go too well together.
- The words are aligned with the main note, not the start of the
- grace note. This is usually wrong, but is sometimes right.
-. * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?)
-. * Rename illegal to invalid
-. * Mats:
+.* BEAMS
+. * [c8. c16 c16 c16] in 6/8 timesig.
+. * Rewrite Stem, Beam (hairy)
+. * beams over barlines
+. * autoBeamMelisma: if I explicitly beam notes in a staff with auto
+beaming disabled I would like to have these beams also to be
+melismatic.
+. * The stemLength property should affect also beamed stems.
+. * staffside spanner (crescendo!) along with staffswitch.
+. * * auto melismaBusy for beams.
+
+. * \context Staff <
+> {\voiceone''4. r8}
+> \voicetwo c,4 r4}
+> >
+. * \time forces keysig?
-- The Postscript output is still very experimental
+.* STUFF
+. * We need feta-din*.mf files for more sizes than 10.
+. * align left edge of broken tuplet-spanner (have a test case?)
+. * fix dynamics decently, ie. use kerning & ligatures.
+. * key restorations & repeats
+. * paperXX.ly \quartwidth, font setting not up to date. (Should read from AFM?)
+. *In Caro Mio Ben, bar 8, there's a syllable that starts on a note, and
+ends on a pair of grace notes. Standard practice is to mark this with
+a slur starting on the main note and ending on the grace note, so a
+singer knows where to break the words.
-- It is impossible to typeset two textual scripts that are stacked
- on top of eachother and avoids note collisions and at the same
+In bar 27, there's a crescendo that's supposed to start at the start
+of the grace notes and extend to the note after the grace notes.
+. * 4. Lyrics and grace sections don't go too well together.
+ The words are aligned with the main note, not the start of the
+ grace note. This is usually wrong, but is sometimes right.
+. * rhythmic staff & accidentals.
+. * use melismaBusy in Lyric context to typeset melismata correctly.
+. * ly2dvi/lilypond logfile.
+. * hang Item on Spanner
+. * do --safe for PS output?
+. * msgfmt -o check?
+. * collision of lyrics with span_bars. See star-spangled.
+. * It is impossible to typeset two textual scripts that are stacked
+ on top of each other and avoids note collisions and at the same
time are typeset with different textStyle. I tried to move around
the text_engraver and other engravers between Voice and Thread
but the granularity is not fine enough, the scripts have to
be stacked vertically, avoiding collisions with the notes
in all voices.
-- I'd like to change the \repetitions command to Jan's suggested
- syntax: \repeat "repeatsymbol" 2 {...}, but I'm not sure that
- I understand the implementation of repeats well enough.
-
-- The paper11/13/26 files have to be updated.
-. * Grace_slur_engraver.
-. * (gulp-file-to-str) for LilyPond
-. * input/star-spangled-banner.ly: fold for lyrics?
-. * don't create $srcdir/share/
-. * Break_req handling is silly (break_forbid () + \break fucks up.)
-. * hangOnClef with non-breakable clefs.
-. * account for accidentals in spacing.
-. * collision of lyrics with span_bars. See star-spangled.
-. * fix partial measures in meaningful way.
-. * relative mode for midi2ly
-. *
-Crescendi/diminuendi that cross a line break lose their vertical
-position and all end up above the top staff line, see the
-following example.
-
-----------------
-\score{
- \context StaffGroup <
- \context Staff=s1 \notes\relative c'{
- c d e f |
- g f e d | \break %% If this break is removed, it works fine
- c d e f |}
- \context Staff=s2 \notes\relative c'{
- c \< d e f |
- g f e d |
- c d e \! f |}
- >
-}
-. * uniformise recent feta contributions.
-. * bigger and fatter 4/4 C
-. * sort out directory stuff.
-. * --prefix option?
-. * -I option per filetype?
-. * kpathsea?
-. * ly2dvi/lilypond logfile.
-. * fractional chord durs.
-. * hang Item on Spanner
-. * do --safe for PS output?
-. * convert-mudela --output
-. * Staff_margin (with a partial measure.)
-. * fix convert-mudela manpage
-. * decimal point in \paper {}
-. * msgfmt -o check?
-. * add new glyphs to font.ly
-. * formatting of input stuff.
-. * deps for ly2dvi
-. * indent = 0.0 with linewidth=-1.0
-. * collisions & accidentals.
-. * music ending in grace notes.
-. * PostScript
-. * half notes in pfa
-. * didot / big point.
-. * \shape 1st dim skipped?
-. * turn slope-damping on/off
-. * We need feta-din*.mf files for more sizes than 10.
-. * fix dynamics decently, ie. use kerning & ligatures.
-. * behavior of "that the obvious solution
-\lyrics { foo1*4 __ _ }" is unintuitive.
-. * Lyrics and scripts collide.
-. * filenames : junk lily.x
-
-.* Cleanups needed
-. * \$ and $ identifier syntax in examples.
-. * Junk ghost positioning objects eg, Script leans on Staffside
- leans on Staff.
-
-. * bracket ps code.
-. * Key_engraver, Local_key_item
-. * Think of comprehensive solution for "if (grace_b == self_grace_b_)"
-. * Y dimension units: staffspace vs. Point
-. * Beam
-. * Stem
-. * Rhythmic_column and interaction stem/rhythmic_column/note_head/dots.
-. * Duration
-. * clef engraver
-. * parser
-. * Bezier
-
-.* BUGS
-. * [c8. c16 c16 c16] in 6/8 timesig.
-. *
-> \context Staff <
-> {\voiceone c''4. r8}
-> {\voicetwo c,4 r4}
-> >
-
-.* STUFF
-. * break priority setting from SCM.
. * Matanya's tips:
. * don't shorten stems/staffs closer to each other.
-. * accidentals closer to note head
. * to space the staffs/staffgroups contained in the score.
. * heavier beams?
-
-. * tuplets that are written as "number : note", for example
- "3 : [image of a half note here]". possible?
-. * a note with a circle after it, meaning:
-
- note + circle = note + 1/4 of its length
-
- the circle is like a dot that's not filled in. for example, on
- page three, the c-sharp on the second line should be a quarter with
- a circle, not a quarter tied to a sixteenth. is this at all
- possible with lily?
-. * scm-ify \property values.
-. * make dependencies () a virtual function.
. * Abstraction for engravers:
-. * make "in-between" engraver (Tie, Extender)
+. * make "in-between" engraver (Tie)
. * make wide_spanner_engraver (line_group_spanner, staff_symbol)
. * store req -> element, element -> element causes for warnings
-. * compulsory hshift
-. *
-My wish list for lyrics. I dream of a time when I will have enough time to
+. * My wish list for lyrics. I dream of a time when I will have enough time to
become familiar enough with the source code to be able to implement some of
these myself, but I don't know when that will be, so I thought I'd "publish"
my suggestions in case someone else is in a position to give them some
6. It would be nice to be able to put vertical brackets either side of a
repeated section with different words for each repeat.
-
. * Give # lines in linebreaking.
. * arrows on slurs.
. * rewrite context defs using Scheme
+. * junk TeX specifics from internal code.
. * \selectmusic to cut pieces from music.
-. * TODO: merge atom & molecule; make tree from molecule.
+. * formatting of input stuff.
+. * deps for ly2dvi
. * Align_element::padding ?
-. * typo checks on property names?
. * use streambufs and iostream
- to provide IO handling for TeX stream, mudela stream, data-file.
+to provide IO handling for TeX stream, mudela stream, data-file.
. * seriously buffer TeX output (do profile of writing .5 mb TeX file.)
-. * strip EXEs before installing
-. * zip target for binary windows dist (JBR)
+. * uniformise recent feta contributions.
+. * bigger and fatter 4/4 C
+. * relative mode for midi2ly
. * junking \skip req in lyrics
. * midi2ly empty staffs.
. * use Fourier transformation for rhythmic quantisation.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
-. * fix vertical alignment and stafflines
+. * turn slope-damping on/off
+. * sort out directory stuff.
+. * --prefix option?
+. * -I option per filetype?
+. * kpathsea?
. * declaring Performers
-. * *.yo: fix pod manpage layout legacy
. * text-items clash with stems/beams
. * --include, -I option for ly2dvi (pass on to lily)
. * fix placement of beam-less abbrev
-. * \meter 3/4;
- <{\voiceone cis4. cis8 cis4 | cis4 cis cis | r1 }
- {\voicetwo cis,4 r r | r2. | r1 }> |
- }
. * Musical_pitch (analogous to Duration and Rhythmic_req)
think about, analogous to pitch:
* { a4 a16 } c <-- duration of c?
* < a4 b8 > c <-- duration of c?
. * \tempo 4. = 90;
-. * make sure all ex's have a mudela-version
. * do rest-collisions for Multi_measure_rests as well.
. * split error/warning in error/warning/non_fatal_error
-. * add a Duration_convert member to Duration_iter to set parameters.
- Junk global duration settings.
-. * en-,discouraged linebreaking:
-. * handle DISALLOW < penalty > FORCE
. * discourage breaking of slurs
. * fix variable define/lookup parser global<->paper
. * fix title/instrument placements; see input/test/title.ly
. * <\voiceone c4. \voicetwo c4>
-. * add full cello suites to web site (kom op, Maarten!)
+. * I'd like to change the \repetitions command to Jan's suggested
+ syntax: \repeat "repeatsymbol" 2 {...}, but I'm not sure that
+ I understand the implementation of repeats well enough.
. * add mudela-book-doc source to webstie.
-. * Rethink Time_description
-\cadenza , \meter, should all be \properties
. * fix singleStaffBracket
-. * rename
-. * abbreviation-beam -> (measured/unmeasured) tremolo
-. * partial -> anacrouse
. * move paper vars into engraver properties
-. * check for groff / troff/ nroff et
+. * add new glyphs to font.ly
. * more intelligent file searching
. * disable spaces in TeX stuff
. * handle ^C for tmp/file creation.
. * make LilyPond RPM fully relocatable
-. * better hshift (dots, distance, head dependent)
+. * didot / big point.
. * clefs (AG): The "8" should appear closer to the actual clef,
touching it.
. * put errorlevel in Input class
. * junk nesting slurs
-. * distinguish between unset and empty properties.
+
.* FONT
. * the bracket is ugly (wings are too parabolic, should be more circular)
+. * fix accordion turning paths.
. * versioning for Feta
. * rewrite dynamic signs. They're kind of spaghetti now.
. * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
. * work out sizes of character fonts.
. * more symbols
. * piano pedals: Ped/*
-. * maxima notehead
. * coda signs: Segno, O+
. * glissando, arpeggio
. * lengthened trill
do_one_file(String,String) [scores.cc:124]
Reading 4 bytes from 0xefffeca8 on the stack.
Address 0xefffeca8 is 728 bytes below frame pointer in function
-. * GNU diff 2.7: diff -rN does not see a new directory with empty file
. * patch: don't touch timestamp if all patches fail.
-. * mf-to-table -> add space before ; in AFM output. (-> check AFM
- spec. Is this a bug in afm2tfm?)
-. * check out GCC signatures?
+. * MetaPost: should not generate setgray for unfill
. * glibc 2.0:
f = fopen ("/dev/null", "r")
assert (feof (f))
-. * tetex: mfplain.mem
-. * timesig: sometimes bottom digit too high: Xdvi doesn't handle
- newly created fonts correctly.
-
.* PROJECTS
. * Scripts:
. * stack scripts in chords:
. * stack parameterised scripts for fingering and footing:
. * convert-mudela:
-. * automatically add a \version if not present.
. * better parsing
. * make smarter
. * convert-mudela -e empty.ly
. * use properties for:
. * default tempo.
-. * cadenza mode?
. * page handling:
. * PS output
. * \header
. * output header info to MIDI too.
-
-. * a musical dictionary. See Documentation/vocabulary-*, other
-languages:
-. * explanations
-. * italian
-. * german
-. * dutch
-. * swedish
- .. ?
+. * dump \header into easily parsable format.
. * chords
. * guitar chords (fret diagrams)
. * input converters
. * NIFF?
-. * ABC?
-. * SMDL?
+. * musedata
. * add to MIDI output:
. * sharp / flat on trills (in MIDI ??)
. * slurs
. * accents
. * dynamics
-> Would it be hard to add support for proper dynamics in MIDI output? I
-> would really like to have this feature...
-
-Concretely spoken, for dynamics you have to write a performer
-(Dynamics_performer), that will take the input requests. If I
-understand correctly, every MIDI note played must have its dynamic
-strength set separately. That means the the Dynamics_performer must
-set the strength of every Audio_note it finds. This means that one
-has to modify existing Audio items. The best way of doing this is
-with a broadcast/acknowledge process.
-
-So the best way of handling this, is
-
- 1 supporting dynamic settings in Audio_note
-
- 2 Write a Dynamics_performer that will modify
- any notes it finds to set appropriate strengths.
-
-I'd say that the work involved is not hard, but you have to be fluent
-with C++ and need some insight into the working of Notation Contexts
-and friends. I guess I could do it in a day or so, but if you are not
-so fluent with the inner workings of LilyPond, it could take you some
-more time (A few more days?).
-
-Please note, that I am *not* going to code this myself: my days are
-valuable, and I think I have more interesting things to do than fixing
-the MIDI output (I don't even have a soundcard). But I *do* want to help
-you or other people with implementing this, so if you need help, don't
-hesitate to ask.
. * account for rhythmic position in measure
. * etc.
-. * Output class, handles : (smallish)
-. * help text /(c) notice?
-. * version line
-. * warning /errors/progress
-. * abort on error/warning; exit status
-. * quiet/ignore-version options
-. * logfile output
+. * logfile output?
. * PS
. * speed up PS code.
. * PS lines to .eps files
. * write custom prolog
-
-. * SGML input
-
-. * Documentation
-. * remove links to non-free SW.
-. * internal documentation
-. * a general paper.
-. * \properties
-. * left/rightbeamcount
-. * various other new properties.
-. * introduction?
-. * info?
-. * LaTeX?
-. * more manpages?
-. * Doc (C) stuff of sheet music
-. * a better format? SGML? TeX? Info?
-. * a better tutorial
+. * fix ps font switching
. * more spanners (smallish)
. * Glissando
. * trill
-. * Rewrite Stem, Beam (hairy)
-. * general shaving on Beam and Stem
-. * use plet grouping
-. * beams over bars
-
-. * lines:
-. * Ledger lines, should be separate item: Ledger_lines
-. * set different line sizes / thicknesses
-. * beam stem showthrough, inter beam sizes (french vs german style)
-
-. * Collisions
-. * left/right note balls should be handled by Collision:
- < \multi 2; { \stem 1; <b c> } { <f as b> } >
-
. * Keys:
. * merge key{item} & localkey{item}?
-. * spacing, national styles?
+. * spacing
. * Support for TAB
. * redo Notehead to allow digits as heads
. * should adjust stemlength for flag number.
. * breaking:
-. * caching breakpoints
-. * saving them
. * specify number of lines
.* INPUTLANGUAGE
. * \translator -> ?
. * fix \partial
. * \bla {} vs \bla ;
-. * mix engraver hacking with music ?
. * \once\property KEY = VAL
. * input property
-. * abstract grammar.
. * Figure out semicolons.
. * <c f a>4 ?
-. * Viola mode?
-
- @c c g e g
- for
- c g es g,
-
- @A c g e g
- for
- cis gis e gis
. * configure pitch_byte
. * rest name configurable
.* SMALLISH PROJECTS
-. * fix confusing naming in Engraver vs Engraver_group_engraver (context)
-
-. * A range for context errors (eg. mark both { and }. )
-
. * lyric in staff (sharpsharp in staff, text below)
. * write Dynamic_line (to group dynamics horizontally)
-. * use Real for all y positions.
-
-. * half-sharps, half-flats
-
-. * adaptive accidental spacing.
-
. * handle EOF graciously in error messages.
. * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
% --|--- --|---
(where "to" is a tiny bow)
-. * auxilliary file for caching info.
. * Text_crescendo
.* IDEAS
. * Output data structures of Mudela in XML/SGML.
. * create libmudela, or liblily_frontend
. * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
-. * Spacing_request for manually adjusting spacing
-. * caching breakpoints
-. * used fixedpoint arithmetic for min. energy.
* OUTLINE SETUP
.* .EMACS
(require 'allout)
(outline-init 't)
+