


        Contents of this TODO file:

        - Frescobaldi paradigm
        - TODO and “urgent” wishes
        - Other ideas/wishes


Frescobaldi paradigm
====================

With all the feature ideas, Frescobaldi should remain a simple and
straightforward application to use.  Which means:

- Not too much configurability. Just good defaults
- Shortcuts for the basic tasks
- Quick startup by loading modules only when the user requests a certain action
- Predictable behaviour
- Coding: separation of concerns, messages, modularity, encapsulation

See also README-development.


TODO and “urgent” wishes
========================

- LilyPond context help

- Parsing autocompletion/highlighting data must not block the GUI

- wizard to download and unpack LilyPond documentation and/or LilyPond itself

- Midi input and import. Probably using a basic sequencer, allowing changes,
  corrections and quantizing touchups before putting the LilyPond representation
  in the editor.
  * mamoch is working on Midi input like the 1.x rumor did.

- check or even auto-insert bar checks

- editing via Music View or SVG view:
  * relevant context menu on right-clicking object
  * drag an object to e.g. create an \override #'extra-offset command
  * drag an object to reattach it to a different anchor

- Table of Contents support in qpopplerview
  stub: qpopplerview/toc.py


Other ideas/wishes
==================

- play from cursor: plays music to MIDI output

- editor:
    * context menu (with help, open filename, etc)
    * if matching brace out of view, popup a small display of it (idea:
      Francisco Vila)
    * vi-mode (stub: vimode/)

- make Frescobaldi API (using pydoc) browsable via the helpbrowser.

- \displayMusic tool to show music in Scheme format (by calling LilyPond's
  \displayMusic function on a music expression).

- extended manuscript viewer:
  * `<filename>.manuscripts` file to tie a (set of) manuscript(s) to a LilyPond
    document. This may be a simple JSON file or an MEI file (for further
    scholarly edition options)
  * create regions on the manuscript(s) identifying the physical location of
    measures. Use these for synchronizing the view with the editor and the
    music view.
  * Display a given measure/region in the different manuscripts
  * Provide compiled scores matching the manuscripts' line and page breaks.

- Load .ly file specifying other encoding than UTF-8
  (this can be done from the command line but not via the user interface)

- interface for running lilypond-book

- tool to separate out things from music and attach them to invisible rests (s)
  in a separate expression
