-*-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.
+m
Most of the items are marked in the code as well
-Grep for TODO and ugh/ugr/urg.
-
-.* BUGS
-. * sane strategy for extensions (assume .ly):
-02:22:24 appel ~/usr/src/lilypond$ lilypond foo
-GNU LilyPond 1.1.54.
-[/home/fred/usr/src/lilypond/scm/lily.scm]
-warning: can't find file: `init'
-. * indent = 0.0 with linewidth=-1.0
-. * music ending in grace notes.
-. * PostScript
-. * half notes in pfa
-. * didot / big point.
-. * check EGCS version
-. * input/test/stem-spacing.ly: 12/4 touches first note
-. * \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.
-. * dots & rest collisions?
-. * behavior of "that the obvious solution
-\lyrics { foo1*4 __ _ }" is unintuitive.
-. * Lyrics and scripts collide.
-. * 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?
-. * grace_align_item -> stackingdir = left, weird placement.
-. * grace before triplet, see standchen
-. * tuplets that are written as "number : note", for example
- "3 : [image of a half note here]". possible?
+Grep -i for TODO, FIXME and ugh/ugr/urg.
+
+.* TODO
+. * use hash tabs iso. alist_ for elt property?
+. * agressive type-checking for SCM stuff.
+. * use "staff-space" and "half-space" iso interline,
+ staff_line_leading () etc.
+. * why does Voice.beamQuantisation = #'none not work?
+ overriding in ly/params.ly works fine
+
+. * 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.
+. * eradicate all VIRTUAL_COPY_CONS () macros ; use indexed creation,
+ eg.
+
+ ctor_dict["Score_element"]->clone_func (orig);
+ ctor_dict["Score_element"]->create_func ();
+. * acc at tied note after linebreak.
+. * fix font-naming and selecting
+. * sparse ties.
+. * 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
+. * fix or replace feta-accordion.mf
+. * script engraver
+. * bracket pdf hack
+. * 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.
+
+- I would like to be able to influence the sloping of xtuplet brackets
+
+- for one of my test scores containing a modern edition of an early
+17'th century composition I have a leading measure containing the
+orginal clefs and note values of the original composition. I use the
+a"harmonic" and "diamond" note head styles for that measure and would
+like to have the stems of these notes _centered_ on the notehead as in
+the mensural music notation.
+
+- 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
+
+. * make all Feta (including dynamics) available to the user in
+ textual scripts. Examples: "D.S. al \coda", "\mf espress.".
+. * Write script that uses --find-old-relative to do auto relativization.
+. * Junk shared cruft (duration, moment) in lib/
-. * filenames : junk lily.x
-
-. * 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?
.* Cleanups needed
-. * \$ and $ identifier syntax in examples.
-. * bracket ps code.
+. * \$ and $ identifier syntax in examples.
+. * Junk ghost positioning objects eg, Script leans on Staffside
+ leans on Staff.
. * Key_engraver, Local_key_item
. * Think of comprehensive solution for "if (grace_b == self_grace_b_)"
-. * Y dimension units: staffspace vs. Point
-. * Beam
-. * Stem
+. * String[String.length] doesn't trap.
. * Rhythmic_column and interaction stem/rhythmic_column/note_head/dots.
-. * Slur
. * Duration
. * clef engraver
. * parser
+. * Lookup::text -> needs to be TeX independent.
+. * junk Music_iterator::first_b_
+. * Bezier
-.* TODO before 1.2
-. * rename midi2ly, abc2ly mup2ly
-. * Grace_slur_engraver.
-. * Break_req handling is silly (break_forbid () + \break fucks up.)
-. * Morally pure LilyPond.
-. * Remove non-free software links.
-. * Remove meta article LilyPond.
-. * break priority setting from SCM.
-. * hangOnClef with non-breakable clefs.
-. * Abstraction for engravers:
-. * make "in-between" engraver (Tie, Extender)
-. * make wide_spanner_engraver (line_group_spanner, staff_symbol)
-. * do scaled fonts generally
-. * make dependencies () a virtual function.
-. * store req -> element, element -> element causes for warnings
-. * include examples in RPM.
-. * fix partial measures in meaningful way.
-. * relative mode for mi2mu
-. * uniformise recent feta contributions.
-. * bigger and fatter 4/4 C
-. * sort out directory stuff.
-. * --prefix option?
-. * -I option per filetype?
-. * kpathsea?
+.* ACCIDENTALS
+. * half-sharps, half-flats
+. * adaptive accidental spacing.
+. * accidentals closer to note head
+
+
+.* Beams
+. * [c8. c16 c16 c16] in 6/8 timesig.
+. * Rewrite Stem, Beam (hairy)
+. * general shaving on Beam and Stem
+. * use plet grouping
+. * beams over bars
+. * Rests and beams don't work too well together. Example:
+ [ r8 g''16 des'] [r8 c16 a]
+. * 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}
+> >
+. * sort out breve shapes.
+. * \time forces keysig?
+
+.* 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.
+
+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.
+. * tie-direction
+. * repeats and partial measures.
+. * rhythmic staff & accidentals.
+. * use melismaBusy in Lyric context to typeset melismata correctly.
. * 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 {}
-. * scm-ify \property values.
-. * move class Lookup {} into scm
. * msgfmt -o check?
-. * add new glyphs to font.ly
-. * formatting of input stuff.
-. * broken scripts:
- lbheel = \script { "bheel" 0 0 -1 0 0 }
- rbheel = \script { "bheel" 0 0 1 0 0 }
- lbtoe = \script { "btoe" 0 0 -1 0 0 }
- rbtoe = \script { "btoe" 0 0 1 0 0 }
- lfheel = \script { "fheel" 0 0 -1 0 0 }
- rfheel = \script { "fheel" 0 0 1 0 0 }
- lftoe = \script { "ftoe" 0 0 -1 0 0 }
- rftoe = \script { "ftoe" 0 0 1 0 0 }
-. * deps for ly2dvi
+. * collision of lyrics with span_bars. See star-spangled.
+. * It is impossible to typeset two textual scripts that are stacked
+ on top of eachother 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
+ share the same engraver in order to be get correct vertical
+ position but than they cannot have different style.
+ In my opinion, all scripts that share the same staff, should
+ be stacked vertically, avoiding collisions with the notes
+ in all voices.
-. * decide wether to junk _ in lyrics.
+. * Matanya's tips:
+. * don't shorten stems/staffs closer to each other.
+. * to space the staffs/staffgroups contained in the score.
+. * heavier beams?
-.* STUFF
+. * 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?
+. * make dependencies () a virtual function.
+. * deprecate hangOnClef.
+. * Abstraction for engravers:
+. * 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
beginning of each new line. This would make it easier to follow songs with a
large number of stanzas.
-2. Hyphens between syllables. At the moment there appears to be no easy way
-to position a hyphen mid-way between the syllables it breaks.
-
3. Notes centred above/below lyrics rather than left-aligned.
4. It would be very nice to be able to build some kind of phrasing into the
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.
+. * formatting of input stuff.
+. * deps for ly2dvi
. * TODO: merge atom & molecule; make tree from molecule.
. * 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)
+. * fix partial measures in meaningful way.
+. * uniformise recent feta contributions.
+. * bigger and fatter 4/4 C
+. * relative mode for midi2ly
. * junking \skip req in lyrics
-. * mi2mu empty staffs.
+. * midi2ly empty staffs.
. * use Fourier transformation for rhythmic quantisation.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
+. * turn slope-damping on/off
+. * sort out directory stuff.
+. * --prefix option?
+. * -I option per filetype?
+. * kpathsea?
. * fix vertical alignment and stafflines
. * 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
. * 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
-. * measure -> bar
-. * abbreviation-beam -> (measured/unmeasured) tremolo
. * partial -> anacrouse
-. * robustify Beam (in case of no stems, 32nd notes)
. * 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
-. * dots & rest collisions.
-. * the warning about the negative slur/tie length appears twice
-which is irritating.
. * 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)
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
+. * Array<Axis [2] > axeses;
+
+ for (int i=0; i < loose_elems.size (); i++)
+ {
+ Score_element* elt = loose_elems[i];
+ /*
+ with which axes do we have to meddle?
+ */
+ int j =0;
+ Axis as [2];
+ for (int a = X_AXIS; a < NO_AXES; ++a)
+ if (elt->parent_l (Axis (a)) == this)
+ as[j++] = Axis (a);
+ if (j == 1)
+ as[j++] = as[0];
+
+ axeses.push (as);
+ }
+
. * 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?)
+. * MetaPost: should not generate setgray for unfill
+
+. * mf-to-table -> add space 'before ; in AFM output. (-> check AFM
+spec. Is this a bug in afm2tfm?)
. * check out GCC signatures?
. * glibc 2.0:
f = fopen ("/dev/null", "r")
assert (feof (f))
+. * tetex: mfplain.mem -> INSTALL
+. * mfplain.ini not in tetex 0.9 -> INSTALL
+
-. * tetex: mfplain.mem
-. * timesig: sometimes bottom digit too high: Xdvi doesn't handle
- newly created fonts correctly.
-.* 3RD PARTY PROJECTS:
-. * make GCC warn about ctor that leaves member vars uninitialised.
-. * GNU patch
-. * 'double-fix' mode: ignore identical fix, rather than suggest
- to revert patch direction when (more or less? exactly) the same
- thing is fixed
.* 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.
+. * dump \header into easily parsable format.
. * a musical dictionary. See Documentation/vocabulary-*, other
languages:
. * german
. * dutch
. * swedish
- .. ?
. * chords
. * guitar chords (fret diagrams)
. * Debug logs:
. * derive lily_stream, Dstream, texstream from ostream?
. * indentable stream as baseclass for TeX stream, lily stream, Dstream.
-. * use dstream feature in mi2mu
+. * use dstream feature in midi2ly
. * integrate IO checking into stream class
. * input converters
. * NIFF?
-. * ABC?
-. * SMDL?
+. * musedata
. * add to MIDI output:
. * sharp / flat on trills (in MIDI ??)
-. * tempo change
. * ornaments (and trills?)
. * slurs
. * accents
. * 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.
-. * c4 4 4 4 for c4 c4 c4 c4?
. * <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.
(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)
+
+