...
 
Commits (148)
This diff is collapsed.
This diff is collapsed.
INSTALL for Frescobaldi
=======================
You can run Frescobaldi without installing. Just unpack and then run:
python3 frescobaldi
The Frescobaldi package is based on distutils. No build process is needed as
Frescobaldi is fully written in the interpreted Python language. To install in
the default location:
sudo python3 setup.py install
To run Frescobaldi, then simply type
frescobaldi
If you want to install into /usr instead of /usr/local:
python3 setup.py install --prefix=/usr
If you have a Debian-based system such as Ubuntu, and you get the error
message "ImportError: No module named frescobaldi_app.main", try:
python3 setup.py install --install-layout=deb
See the distutils documentation for more install options.
NOTE: Since 2.18, Frescobaldi depends on the python-ly module, which needs to
be installed separately (see below). Previously, this Python module
(named 'ly') was part of Frescobaldi. When installing Frescobaldi, be
sure that old remnants of previous Frescobaldi installations are removed,
otherwise Frescobaldi will use the old 'ly' module instead, resulting in
various error messages.
Dependencies
============
Frescobaldi is written in Python and depends on Qt >= 5.4 and PyQt >= 5.4, and
uses the python-poppler-qt5 binding to Poppler for the built-in PDF preview.
For MIDI the PortMidi library is used, either via importing 'pypm',
'pyportmidi._pyportmidi', or, if that is not available, loading the pygame.pypm
module from pygame; or, as a last resort, embedding the PortMidi C-library via
ctypes. MIDI is optional.
Required:
Python (>= 3.2):
http://www.python.org/
Qt5 (>= 5.4):
http://qt.io/
PyQt5 (>= 5.4):
http://www.riverbankcomputing.co.uk/software/pyqt/
python-ly (>= 0.9.4):
https://pypi.python.org/pypi/python-ly
Poppler:
http://poppler.freedesktop.org/
python-poppler-qt5:
https://github.com/wbsoft/python-poppler-qt5
Optional but recommended:
PortMidi:
http://portmedia.sourceforge.net/portmidi/
Suggested:
LilyPond:
http://www.lilypond.org/
Of course, PyQt5, python-poppler-qt5, python-ly, and pypm or pyportmidi need
to be installed for the same Python version as Frescobaldi itself.
LilyPond is not a dependency of Frescobaldi, but of course you'll need to
install one or more versions of LilyPond to make sensible use of Frescobaldi!
"Freeze" installer
==================
The freeze.py script can create a self-contained Windows-installer, bundling all
of Python, PyQt5, popplerqt5 and pypm (from pygame) when used on MS Windows.
To use the script you need cx_Freeze and Inno Setup.
Mac OS X application bundle
===========================
The macosx/mac-app.py script can build an application bundle on Mac OS X.
To see the usage notes, run:
python macosx/mac-app.py -h
The application bundle will be created inside a 'dist' folder in the current
working directory.
The script can build both a non-standalone system-dependent launcher and an
**almost** standalone self-contained application bundle (the script will print
instructions on the further steps needed to get a **fully** standalone
self-contained application bundle).
To use the script you need argparse (included in Python >= 2.7) and py2app.
A macosx/build-dmg.sh script is provided to build the **fully** standalone
application bundle and wrap it in a distributable DMG disk image along with
the README, ChangeLog and COPYING files.
The script assumes a specific system configuration (for details run the script
with the '-h' option), but can be easily adapted to other configurations.
For Linux distribution packagers
================================
See the secion Dependencies for the dependencies that need to be installed.
Be sure that all python packages belong to the same Python version Frescobaldi
uses.
Frescobaldi contains some files by default which are also available in other
packages often used in Linux distributions. It is possible to remove those
files after installing/packaging and make Frescobaldi depend on the package
containing those files. This makes the filesystem less cluttered, and copyright
files simpler.
Icons:
You can remove the frescobaldi_app/icons/Tango directory, and make Frescobaldi
depend on the tango-icon-theme package instead.
Hyphenation dictionaries:
You can remove the hyph_*.dic files from frescobaldi_app/hyphdicts, and make
Frescobaldi depend on a package that installs hyphenation dictionaries in
/usr/share/hyphen/ (or another dictionary listed by default in frescobaldi_app/
hyphendialog.py). Do not remove the hyphdicts directory entirely.
include README* COPYING THANKS INSTALL TODO ChangeLog
include frescobaldi.desktop
include frescobaldi.1
include frescobaldi.png
include *.py
recursive-include frescobaldi_app README*
recursive-include frescobaldi_app *.png *.svg *.ico index.theme
recursive-include frescobaldi_app *.ly *.ily Makefile
recursive-include frescobaldi_app *.pot *.po *.mo
recursive-include frescobaldi_app *.dic
recursive-include frescobaldi_app *.js
recursive-include frescobaldi_app *.md
recursive-include macosx *.svg *.icns *.py *.strings *.sh *.png *.json *.diff
recursive-include windows *.bmp *.py
global-exclude *~
Metadata-Version: 1.1
Name: frescobaldi
Version: 3.0.0
Summary: LilyPond Music Editor
Home-page: http://www.frescobaldi.org/
Author: Wilbert Berendsen
Author-email: info@frescobaldi.org
License: GPL
Description: Frescobaldi is an advanced text editor to edit LilyPond sheet music files. Features include an integrated PDF preview and a powerful Score Wizard.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: Chinese (Traditional)
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: Galician
Classifier: Natural Language :: German
Classifier: Natural Language :: Italian
Classifier: Natural Language :: Polish
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Turkish
Classifier: Natural Language :: Ukranian
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Text Editors
This diff is collapsed.
README for developers and translators
=====================================
Frescobaldi is translated using GNU Gettext.
The translations (in PO files) and the template file ('frescobaldi.pot') live in
the frescobaldi_app/po directory. The 'update-pot.py' script creates a POT file
from all the Python source files. This script must be run if new translatable
strings are added to Frescobaldi.
For developers:
===============
All translatable strings should be wrapped in a _( ... ) construct.
You can use this function with one up to four arguments:
_("String")
Simply returns a translation for the given string.
_("Context", "String")
Returns a translation for the string in the given context.
_("Singular text", "Plural text", count)
Returns a suitable translation (singular/plural) depending on the count.
_("Context", "Singular text", "Plural text", count)
Returns singular or plural translation within the given context.
The context makes it possible to have different translations for the same source
message.
E.g. _("The music view, noun", "View") can return something like "Weergave",
while _("Command to view the music, verb", "View") should return "Weergeven".
Additionally, when you write a comment starting with L10N (short for localisation),
just before the line containing the string to be translated, it will be included
as a comment in the POT file.
If translatable strings need arguments, you should use named variables, e.g:
_("About {appname}").format(appname = ...)
For translators:
================
You should create or update a PO file for your language.
If you want to translate Frescobaldi to your current locale, simply enter:
$ cd frescobaldi_app/po/
$ msginit -i frescobaldi.pot
otherwise specify the desired language with:
$ msginit -i frescobaldi.pot -l xx_CC
where 'xx_CC' is e.g. 'nl_NL' (or simply 'nl').
Now you can edit the xx.po file with a tool like Lokalize. If done, you can send
the translated po file to the Frescobaldi author if you like, to contribute it
to the Frescobaldi project.
Variables between brackets in the messages like "Viewing page {number} of {total}"
should not be translated but exactly copied to the translation.
If you finished editing the PO file, you can simply run 'make' in the po directory.
This will run the 'msgfmt' program to create a MO file that Frescobaldi can read.
Additionally the MO file will be checked for wrong variable names in translated
messages.
README for Frescobaldi
======================
Homepage: http://www.frescobaldi.org/
Main author: Wilbert Berendsen
Frescobaldi is a LilyPond sheet music text editor. It aims to be powerful, yet
lightweight and easy to use. Frescobaldi is Free Software, freely available
under the General Public License.
Features:
- Powerful text editor with syntax highlighting and automatic completion
- Music view with advanced two-way Point & Click
- Midi player to proof-listen LilyPond-generated MIDI files
- Midi capturing to enter music
- Powerful Score Wizard to quickly setup a music score
- Snippet Manager to store and apply text snippets, templates or scripts
- Use multiple versions of LilyPond, automatically selects the correct version
- Built-in LilyPond documentation browser and built-in help
- Configurable document outline view to navigate large LilyPond scores easily
- Smart layout-control functions like coloring specific objects in the PDF
- Import ABC, Midi and MusicXML using the LilyPond-provided tools
- Experimental export to MusicXML
- Modern user interface with configurable colors, fonts and keyboard shortcuts
- Translated into: Dutch, English, French, German, Italian, Swedish, Czech,
Russian, Spanish, Galician, Turkish, Polish, Brazilian and Ukrainian.
Music functions:
- Transpose music
- Change music from relative to absolute and vice versa
- Change the language used for note names
- Change the rhythm (double, halve, add/remove dots, copy, paste) etc
- Hyphenate lyrics using word-processor hyphenation dictionaries
- Add spanners, dynamics, articulation easily using the Quick Insert panel
- Update LilyPond syntax using convert-ly, with display of differences
Frescobaldi is designed to run on all major operating systems (Linux, Mac OS X
and MS Windows). It is named after Girolamo Frescobaldi (1583-1643), an Italian
composer of keyboard music in the late Renaissance and early Baroque period.
Here is an idea of the basic Frescobaldi workflow:
- Start Frescobaldi
- Open a .ly file or create one using *File->New* from template or
*Tools->Setup new Score...* and fill in some music
- Press Ctrl+M to run LilyPond
- If the LilyPond output shows errors, press Ctrl+E to jump to the first error
- If you see other mistakes in the music, click the notes to move the text
cursor there
- Fix the errors or mistakes in the text
- Press Ctrl+M again to update the music view
- When a piece is finished, press Ctrl+Shift+P once to run LilyPond with point
and click turned off (this results in a much smaller PDF file).
Frescobaldi is written in Python and uses PyQt for its user interface.
See the INSTALL file for other requirements and installation instructions.
Without the help of other people, Frescobaldi would not have been possible.
Thanks go to all the users, contributors and bug reporters of Frescobaldi!
Thanks go to the Python and Qt4 developers for providing excellent tools to
develop Frescobaldi with.
And thanks to the LilyPond developers for creating an amazing music engraver!
See frescobaldi_app/userguide/credits.md for the full list of contributors.
See also https://github.com/wbsoft/frescobaldi/graphs/contributors
Contents of this TODO file:
- Frescobaldi paradigm
- TODO and wishes for Frescobaldi 2.x
- ROADMAP for Frescobaldi 3.0
- 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 wishes for Frescobaldi 2.x
===================================
- LilyPond context help
- wizard to download and unpack LilyPond documentation and/or LilyPond itself
- 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
- 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.
- tool to separate out things from music and attach them to invisible rests (s)
in a separate expression
- check or even auto-insert bar checks
- editing via Music View:
* relevant context menu on right-clicking object
* drag an object to e.g. create an \override #'extra-offset command
- Table of Contents support in qpopplerview
stub: qpopplerview/toc.py
ROADMAP for Frescobaldi 3.0
===========================
At a certain point, master will become Frescobaldi 3 and Frescobaldi 2 will
get it's own branch "v2"
1. Use Python 3 (Frescobaldi 2.0 should also run with Python 3)
2. Require and make use of PyQt5 and Qt5 (recompile/update poppler-qt4)
3. SVG music view and editor
Make a new music view that displays the SVG output of LilyPond and allows
for very fine-grained editing, both via altering the LilyPond source but
also editing and saving the SVG file manually to provide a final PDF
rendering. Probably using QGraphicsWebView.
Other ideas/wishes
==================
- support for Git/Hg/Svn diff/revert/commit
- 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/)
- define and extend API for script snippets
- 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.
frescobaldi for Debian
----------------------
Sergey Poltavskiy's cyrillic name is Сергей Полтавский, but the transliterated
name was included in the manpage to ensure that his name appears on all setups
/ encodings.
Installing lilypond-doc will allow you to use a local copy of the LilyPond
documentation instead of the online documentation. You may need to set the
LilyPond documentation path in the Frescobaldi configuration dialogue (under
the configuration menu). At the moment of this writing, it is:
/usr/share/doc/lilypond/html/Documentation/
In order to use lyric hyphenation, please install your languages' appropriate
hyphenation packages, e.g. hyphen-fr for French, hyphen-ca for Catalan, etc. To
see available hyphenation packages, search for packages providing
'hyphen-hyphenation-patterns'.
-- Ryan Kavanagh <rak@debian.org> Sat, 10 Mar 2012 10:10:35 -0500
frescobaldi for Debian
----------------------
The following files were deleted in the upstream tarball to avoid both taking
up unneeded space due to file duplication and a copyright headache:
* frescobaldi_app/hyphdict
* frescobaldi_app/icons/Tango
This is reproducible through the debian/cleanup.sh shell script.
-- Ryan Kavanagh <rak@debian.org> Tue, 13 Mar 2012 09:35:01 -0400
Fast forward to 2014, uscan now supports the repacking the upstream
tarball excluding files listed in the File-Excluded field in the
debian/copyright file. For example:
XZ_OPT=-e uscan --repack --compression xz
It is recommended to run "debian/rules get-orig-source" to
automatically download the latest Frescobaldi upstream tarball
and repack it.
The debian/cleanup.sh shell script is henceforth obsolete.
-- Anthony Fok <foka@debian.org> Sun, 21 Dec 2014 04:46:11 -0700
This diff is collapsed.
#!/bin/sh
cat <<EOF
The script $0 is obsolete as of December 2014.
Please use "debian/rules get-orig-source" instead.
See debian/README.source for more information.
EOF
exit 0
rm -fr frescobaldi_app/icons/Tango
find frescobaldi_app/hyphdicts -name '*.txt*' -exec rm -f {} \;
find frescobaldi_app/hyphdicts -name '*.dic' -exec rm -f {} \;
Source: frescobaldi
Section: editors
Priority: optional
Maintainer: Python Applications Packaging Team <python-apps-team@lists.alioth.debian.org>
Uploaders: Ryan Kavanagh <rak@debian.org>,
Anthony Fok <foka@debian.org>
Build-Depends: debhelper (>= 9),
dh-python,
python3 (>= 3.2),
python3-distutils,
python3-ly
Standards-Version: 4.1.4
Vcs-Git: https://salsa.debian.org/python-team/applications/frescobaldi.git
Vcs-Browser: https://salsa.debian.org/python-team/applications/frescobaldi
Homepage: http://www.frescobaldi.org/
Package: frescobaldi
Architecture: all
Depends: ${misc:Depends},
${python3:Depends},
python3-ly,
python3-poppler-qt5 (>= 0.24.2-3),
python3-pypm | libportmidi0 | python3-pygame,
python3-pyqt5,
python3-pyqt5.qtsvg,
python3-pyqt5.qtwebkit,
tango-icon-theme
Recommends: lilypond
Suggests: lilypond-doc, hyphen-hyphenation-patterns
Enhances: lilypond
Description: LilyPond sheet music text editor
Frescobaldi is a LilyPond sheet music editor. It aims to be powerful,
yet lightweight and easy to use. Frescobaldi is Free Software, freely
available under the GNU General Public License.
.
Features:
.
* Powerful text editor with syntax highlighting and automatic completion
* Music view with advanced Point & Click
* MIDI player to proof-listen LilyPond-generated MIDI files
* MIDI capturing to enter music
* Powerful Score Wizard to quickly setup a music score
* Snippet Manager to store and apply text snippets, templates or scripts
* Use multiple versions of LilyPond, automatically selects the correct version
* Built-in LilyPond documentation browser and built-in Frescobaldi User Guide
* Smart layout-control functions like coloring specific objects in the PDF
* MusicXML, MIDI and ABC import
* Modern user interface with configurable colors, fonts and keyboard shortcuts
* Translated into Dutch, English, French, German, Italian, Czech, Russian,
Spanish, Galician, Turkish, Polish, Brazillian Portuguese and Ukrainian.
.
Music functions:
.
* Transpose music
* Change music from relative to absolute and vice versa
* Change the language used for note names
* Change the rhythm (double, halve, add/remove dots, copy, paste) etc.
* Hyphenate lyrics using word-processor hyphenation dictionaries
* Add spanners, dynamics, articulation easily using the Quick Insert panel
* Update LilyPond syntax using convert-ly, with display of differences
.
In order to use lyric hyphenation, please install your languages' appropriate
hyphenation packages, e.g. hyphen-fr for French, hyphen-ca for Catalan, etc.
.
Frescobaldi is designed to run on all major operating systems (Linux, macOS
and MS Windows). It is named after Girolamo Frescobaldi (1583-1643), an
Italian composer of keyboard music in the late Renaissance and early Baroque
period.
This diff is collapsed.
This diff is collapsed.
README.md
.\" Copyright (C) 2008–2013 Ryan Kavanagh <rak@debian.org>
.TH FRESCOBALDI 1 "May 2013" "LilyPond Music Editor"
.SH NAME
frescobaldi
\- LilyPond Music Editor
.SH SYNOPSIS
frescobaldi [options] files
.SH DESCRIPTION
LilyPond Music Editor
.SH OPTIONS
.SS
.SS Arguments:
.TP
.B files
LilyPond files to open, may also be textedit URLs
.SS Options:
.TP
.B \-v, \-\-version
Show version information
.TP
.B \-h, \-\-help
Show help about options and exit
.TP
.B \-e ENC, \-\-encoding=ENC
Encoding to use
.TP
.B \-l NUM, \-\-line=NUM
Line number to go to, starting at 1
.TP
.B \-c NUM, \-\-column=NUM
Column to go to, starting at 0
.TP
.B \-\-start <session>
Session to start (`none' for empty session)
.TP
.B \-n, \-\-new
Always start a new instance
.SH SEE ALSO
Frescobaldi features a user manual accessible via the
.BR "User Guide"
entry in the
.BR "Help"
menu.
.SH AUTHORS
\fBfrescobaldi\fR is written and is copyrighted by:
Copyright \[co] 2008\(en2013 Wilbert Berendsen
<info\@wilbertberendsen.nl>
On Debian systems, the full list of contributors and copyright
holders may be found at
.BR "`/usr/share/doc/frescobaldi/copyright'" .
This man page was written by Ryan Kavanagh <rak\@debian.org> for the Debian
project, but may be used by others. Both this manpage and \fBfrescobaldi\fR are
released under the GNU General Public License, version 2 or (at your option) any
later version.
data/frescobaldi.desktop
debian/frescobaldi.1