Features you cannot find in the doco 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
Most of the items are marked in the code as well, with full explanation.
-grep for TODO and ugh/ugr
+grep for TODO and ugh/ugr/urg
+
+0.2:
+
+ * add a Duration_convert memberr to Duration_iter to set parameters.
+ Junk global duration settings.
+
+ * deps for ly2dvi
+
+ * depracate \duration
+
+ * clean up abbrev/plet/beam/abbrevbeam/duration mess in parser.
+
+ * minimum length second part broken tie
+
+ * lowest beam of (UP) beam must never be lower than second staffline
+
+ * multibar rests
+
+ * make lily output make dependencies.
+
+ * make sure that columns never touch
+ old hack at spring-spacer.cc:690 seems to be broken
+
+ * latex mutopia/los-toros-oboe-16.tex: max memsize
+
+ * fix position of bar number
+
+ * fix website.
+
+ * libtoolize flowerlib
+
+ * shared lib
+
+ * bf: abbrevbeam?
+
+ * robustify Beam (in case of no stems, 32nd notes)
+
+ * fix silly " "2*12 a4 (=4*12) sticky plet
- * check out egcs
+ * check for groff / troff/ nroff et
+
+ * use kpsepath to find all TeX dirs
+ - configure.in
+ - clean-fonts.sh
+
+ * mudela-convert.
+
+ * nicen examples:
+ - remove all \multi
+ - break-up heavily-nested score blocks
+
+ * disable spaces in TeX stuff
+ * handle ^C for tmp/file creation.
+
+ * WWW mirror/archive for the mailing lists.
+
+ * dots & rest collisions.
+
+ * add a screenshot to the website. :)
+
+ * documentation
+ - introduction?
+ - info?
+ - LaTeX?
+ - more manpages?
+
+ * naming Mozarella, Madeira, Muella?
+
+ * versioning for Feta
+
+ * the warning about the negative slur/tie length appears twice
+ which is irritating.
+
+ * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
+ in the middle:
+
+ * the tenuto script is too long and too thin
+
+ * better hshift (dots, distance, head dependent)
+
+ * stem len adjustable
+
+STUFF
+ * convert-mudela:
+ - make smarter
+ - fix convert-mudela -e *.ly ;
+ - convert-mudela -e empty.ly
+ - redo in python.
+
+ * clefs (AG): The names I'd like are of the form
+
+ [FGC]n{[_^]8} F, G or C clef, on nth line, subscripted
+ or superscripted with an 8.
+ So:
+ G, G2, treble, (== current `violin') G clef on second line.
+ F, F4, bass (== current `bass' ) F clef on fourth line
+ G_8, G2_8 G clef on 2nd line, with 8 subscript
+ G^8 G clef on 2nd line with 8 superscript
+ C1, soprano (==current `soprano') C clef on first line.
+ C2, (==current `mezzosoprano') C clef on second line
+ C3, alto (==current `alto') C clef on third line
+ C4, tenor (==current `tenor') C clef on fourth line
+ C5 (==current `baritone') C clef on fifth line)
+
+
+
* give Items/Spanners access to unbroken originals
+ * scoping for properties
+
+ { c4
+ \multi 2 < { \stemup .. } { \stemdown .. } >
+ c2
+ }
+
+ this modifies \stem for the c2
+
+ * emacs mudela-mode
+
+ - should handle block comments too.
+ - handle lexer modes (\header, \melodic, \lyric) etc.
+ - indentation
+ - notenames?
+ - fontlock: \melodic \melodic
+
+
+ * use properties for:
+ - Text_style
+ - default_octave
+ - plet?
+ - default_duration?
+ - default abbreviation
+ - Staff_sym size
+ - default tempo.
+ - font size
+ - bartypes (get rid of derived Span_bar_engravers)
+ - cadenza mode?
+ - MIDI instrument
+ - staff title
+
+ * page handling:
+ - PS output
+ - optimal pagebreaking.
+
+ * put errorlevel in Input class
+
+ * AFM for font input?
+
+
3RD PARTY BUGS:
- * ICE: spring-spacer::calcideal()
+ * tried egcs 1.0.2: failed on lily/stem.cc -> flower/include/interval.hh
+ should narrow down and send bug report
- * collision.cc: 138, g++ errors
+ * gcc 2.8.1: see ice and RESIZE_ICE
- * Rational infty(HUGE_VAL) on glibc / w32
+ * xdvi: PS in magnifying glass.
* Fix profiling. gprof bugreport?
- * read from mmap directly: bugreport to flex developers->
- yy_scan_buffer in C++..
+ * GNU diff 2.7: diff -rN does not see a new directory with empty file
- * (where are the) gcc compile warnings on linux
+ * GNU patch 2.1: <must find simple example> if patch chokes on a
+ hunk, or on allegedly unsorted hunks in a diff, it may stop
+ without a trace of failure (create .rej file, print error or
+ dump core) and just ignore any further diffs.
PROJECTS
+ * Unicode support?
+ - 16 bit Strings
+ - -u switch
+ - detect of 16/8 bit files
+ - examples to go with it.
+
* Spring_spacer:
- - write a faster Spring_spacer ( without matrices if possible )
+ - write a faster Spring_spacer (without matrices if possible)
+ - use straight LP to find minimal "fitting force"
- relate energybound to linelen unitspace fontsize etc.
- -used fixed fp
+ - used fixed point fp
* \header
- - revise lexer mode
- - write perl script for handling it into databases
+ - output header info to MIDI too.
- * emacs-mode for mudela
* Makefile stuff:
- - have make dist produce tarball in out/ directory.
- - Use Automake
- shared lib on Solaris too.
- - check libtool
- - generate stuff in out/default, out/sun5-irix etc iso out/
- and out-sun5/
* Add mudela-output to Rosegarden.
* a musical dictionary. See Documentation/vocabulary-*, other
languages:
+ - explanation
- italian
- german
- dutch
- derive lily_stream, Dstream, texstream from ostream?
- indentable stream as baseclass for TeX stream, lily stream, Dstream.
- use dstream feature in mi2mu
+ - integrate IO checking into stream class
* input converters
- NIFF?
* add to MIDI output:
- tempo change
+ - ornaments (and trills?)
- repeat
- slurs
- - dynamics etc.
+ - accents
+ - dynamics
+ - account for rhythmic position in measure
+ - etc.
* grace notes
- - adapt for multiple font sizes.
- make separate class for Grace_*_engravers
(which is at Voice_gravs level)
- make encapsulated spacing problems.
* accidentals per Voice_group
- * Convert all ref/bib stuff into BibTeX.
-
* Output class, handles : (smallish)
- help text /(c) notice?
- version line
- text
- slur start/end
+ * cautionary accidental
+
* Output an output format independent (ofi) typeset file; and
- make ofi2 TeX, MusixTex, Display PostScript, PostScript,
+ make ofi2 TeX, MusiXTex, Display PostScript, PostScript,
Ascii... interpreters. (difficult)
- - poor man's ascii output possible?
- - MusixTeX output possible? (would have to be done before break calc.)
- NIFF ?
- Common Music Notation
- PostScript output (esp. Beams, Slurs, etc)
- Move all Score_elems, into libmutype.a
-
* Documentation
- Doc Mutopia (Music To The People)
- Doc (C) stuff of sheet music
+ - a better format? SGML? TeX? Info?
- a tutorial
- * separate Score_elem settings in user-settable (properties
- .. ) and non-user-settable part. Maybe use something like X-resources:
- "Staff=oboe*dir: 0", "Staff=*.Voice_group=solo*dir: 1"
-
* TeX spanners , use texbeam.cc as an example (smallish)
- Glissando
- trill
- - bracket
* Rewrite Stem, Beam and Rhythmic_grouping (hairy)
- [c8. c32 c32]
- - interbeam height
- - doc on Rhythmic_grouping
+ - doc on Rhythmic_grouping
- general shaving on Beam and Stem
- use plet grouping
- - abbreviations [c2 c2]1/2
- separate visual from rhythmic info even more
- beams over bars
-
- * Redo font
- - rename mf fonts to avoid conflicts with musixtex
- - use own fonts/update musixtex fonts/find older (c)-less fonts
- - hack up mf sources for decent spacing info (and then
- read AFM/TFM directly, for text too)
- - use MF to generate rules.
- - rewrite : make a metafont iso font
-
- * Font support:
- - mixed fontsizes
+ * Redo fonts
+ - adapt for multiple font sizes.
* lines:
- Ledger lines, should be separate item: Ledger_lines, Ledger_lines
- set different line sizes / thicknesses
- - stem down too far right
- beam stem showthrough, inter beam sizes (french vs german style)
* Collisions
- - bring Collision::do_pre_processing to haircutter
- left/right note balls should be handled by Collision:
< \multi 2; { \stem 1; <b c> } { <f as b> } >
* breaking:
- caching breakpoints
- saving them
- - allowing users to set them.
- penalties
- specify number of lines
- - set linelength per line
* Rhythmic staff.
- * Baroque superstaff
-
-SEVERELY LACKING:
-
- * SPEED!
-
- * multibar rests
-
* markers
- * abbreviations c4=16
INPUTLANGUAGE
* bracket (bracketplets)
- * \duration 8; e*2/3
-
* configure pitch_byte
* rest name configurable
* Raw request syntax
-
SMALLISH PROJECTS
* progress when creating MIDI elts.
* A range for context errors (eg. mark both { and }. )
- * merge Atom and Symbol
-
* lyric in staff (sharpsharp in staff, text below)
* write Dynamic_line (to group dynamics horizontally)
- * write Rest_collision
-
- * use Real for y positions.
+ * use Real for all y positions.
+ - use translate_axis( .. ,Y_AXIS)
* half-sharps, half-flats
* adaptive accidental spacing.
- * unix style paths for LILYINCLUDE env
-
* handle EOF graciously in error messages.
-
+oo
* caching Item/spanner dimensions.
* centered whole rest
* midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
- * parshape
-
* Flower types:
- A decent scalar type
- String hash
< a-4 c-2 g-1 > < c-\ltoe e-\lheel >
- script-spacing
- slur parts as a script
- - stackparameterised scripts for fingering and footing:
+ - stack parameterised scripts for fingering and footing:
% toe to bheel four to five
% ^_u 4_5
* volta
-DOC
- * all errors
-
- * hacking-HOWTO
-
IDEAS
- * scoping in Lexer: do general id- assignments in mudela.
-
- ID '=' EXPR;
+ * Output data structures of Mudela in XML/SGML.
* create libmudela, or liblily_frontend
* move MIDI stuff (including Quantization) to a ANSI C libmidi library.
- * use an embedded language: Python
+ * use an embedded language: Python, Scheme
for:
- Score_elems
- Engraver
if ( t <= get_type( q ))
..
- * naming of Voice_group/Voice
-
- * benchmark band_matrices.
-
* versioning stuff (cvt mudela, mudela, etc.)
* a real convert-mudela
* use String iso Text_def for lyrics.
- * use position 0 for center of staff iso bottom.
-
* Klavarskribo?
- * return status on exit
-
* lyrics in chords still fuck up.
- *
- - rewire acknowledge_element() logic with a process_acknowledged()
- - construct Stem upon receiving Notehead. Junk Stem_req
-
-
* pushgroup/popgroup
- * whole head on ledger line
-
+ * Use hooks/dependency graphs for properties