Frescobaldi LilyPond Editor

Related tags

Audio frescobaldi
Overview

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.

Installation instructions for the program and MIDI support as well as other information can be found in the Wiki. Other requirements and installation instructions may also be found in the INSTALL file.

Issues
  • Store and retrieve state(s) from viewers in preferences

    Store and retrieve state(s) from viewers in preferences

    This came up in #732. It's not clear yet whether we need a "Viewers" Preferences page, but in any case I think some stuff should be saved/restored using the QSettings interface. Among them should be the visibility of a viewer's toolbar and the "synchronize with cursor" option. As the latter is already saved we should look into that for a start.

    opened by uliska 90
  • [manuscript dev] multiple instances of viewers.ViewdocChooser

    [manuscript dev] multiple instances of viewers.ViewdocChooser

    When debugging something else I found out that multiple instances of viewers.ViewdocChooser (the QComboBox for the manuscript files) were created.

    The instances are created when calling createWidget in ViewdocChooserAction. createWidget is called when the action is added to a widget. And that is done by the toolbar which it should but also by QMenu objects which I believe is a problem. I think this must be happening in the context menu, but couldn't find where directly.

    opened by PeterBjuhr 84
  • Improve

    Improve "Show available fonts" dialog

    Closes #420 Closes #1077

    This PR is not ready to be merged but I would like to get some feedback. I want more functionality, but actually the code would be a significant improvement already now.

    [EDIT:] I've removed the "WIP" from the title and consider the PR ready by now.

    The output of the LilyPond=>Show Available Fonts... command is practically unusable when more than a few fonts are available on a system. It is totally overwhelming, and the structure is hard to understand. Therefore I wanted to have an improved presentation of the data.

    In its initial state the PR doesn't simply print out the LilyPond output but parses it to a number of dictionaries. The most important one is the families dictionary with entries for each font family. For now an ordered and structured list is printed to the same log window as was previously in that dialog. The "filter" line edit is still non-functional.

    image

    To be done:

    • Replace the log widget with a custom widget. What I think would be appropriate is a list-style widget where initially only the font families are listed. Only upon "opening" an entry will additional information be loaded and displayed (and these can then be pretty detailed).
    • Implement the filter edit. When some text is typed into that line edit all fonts not matching the pattern should be suppressed by making their parent widget invisible.
    • Add an export/print/save function

    The code could be merged without these additional features, after removing the non-functional filter edit.

    opened by uliska 74
  • Wish: session-specific LilyPond include paths list

    Wish: session-specific LilyPond include paths list

    Different projects often need different LilyPond include paths. To avoid manually changing the include paths list every time I switch project, I'd like to have session-specific include paths lists (in the session management window).

    There should also be a toggle in the session management window to control whether the general include paths list should be used for the session. It should be enabled by default for new sessions. (Of course when in "No Session" the behaviour could not be configurable, so the general list would always be enabled.)

    If the general list is enabled for a session, the paths in it should be appended after the session-specific list.

    wish 
    opened by dliessi 45
  • Suggestion: Add option to convert to relative mode after MusicXML import

    Suggestion: Add option to convert to relative mode after MusicXML import

    We have this new dialog to wrap MusicXML.

    It leaves out some of the less important command line options, which is a good idea.

    But I think it would be a good idea to also offer options that aren't part of musicxml2ly itself, e.g. converting notes to \relative mode. And, thinking of it: offering the option of target language (checkbox plus combobox) would be nice too. If there are tasks that a given user might apply to each imported score it would be nice to have them as automatical options too.

    I don't think adding more sophisticated options to that import dialog is a problem .

    PS: Do you already call 'format' on successful import?

    opened by uliska 45
  • proposed project restructuring

    proposed project restructuring

    I am very happy that now multiple codevelopers help bringing Frescobaldi forward. Also it is desired that python-ly becomes visible and is further developed on its own. To reflect this, and to make some development paths easier, I propopse some changes to how Frescobaldi is structured:

    • make python-ly a separate package and have Frescobaldi depend on it (can be done as of 2.18)
    • (later) make qpopplerview a separate package and have Frescobaldi depend on it
    • (much later, e.g. next year, or when Frescobaldi supports Qt5 and reaches version 3.0) make a GitHub organisation (named "frescobaldi") and add python-ly and frescobaldi to that organisation.

    What do co-developers think?

    opened by wbsoft 37
  • Problems with sip 4.14.3 and PyQt 4.9.6 (was: Slow parsing in editor window)

    Problems with sip 4.14.3 and PyQt 4.9.6 (was: Slow parsing in editor window)

    Frescobaldi used to work fast! However since some time the parsing in the editor window seems to be so slowwww that it renders Frescobaldi nearly useless...

    This is what happens:

    • open a .ly file: seems to be as fast as it used to be but then the GUI "stalls" for some seconds until the actual .ly file is shown in the editor window
    • scrolling through the .ly file is pretty fast but every change, say something like commenting out a line takes a few seconds before it appears. Undoing such a change is fast again, but scrolling down some lines introduces the wait time again. For this reason I thought it may have something to do with parsing.
    • when compiling the .ly file no progress or output is shown before the compilation has finished (this used to be different )

    This happens for both the 2.0.8 release as the current git version and with the following versions of the used libraries: Python: 2.7.3 Qt: 4.8.4 PyQt4: 4.9.6 sip: 4.14.3

    Are these library versions not supported or am I overseeing some other things?

    opened by sverd 36
  • Porting to Qt5

    Porting to Qt5

    I'm working with a computer where for some reason Frescobaldi breaks by using Qt5 instead of Qt4. And I have not yet managed to change Qt version. While I'm finding a solution to the problem (I'm of course thankful for any advice!) I'm planning on taking the opportunity to learn more about the differences between Qt4 and Qt5. What I've read so far is that the porting should be fairly smooth. I've created a branch for changes in the code to adapt to Qt5: https://github.com/PeterBjuhr/frescobaldi/tree/Qt5.

    opened by PeterBjuhr 35
  • musicxml export issue

    musicxml export issue

    Here is what I get when trying the musicxml export feature. I first get the file saving dialog. After choosing a filename, I validate then get this message:

    %%% Traceback (most recent call last): File "/Applications/frescobaldi_philmassart/frescobaldi_app/file_export/init.py", line 57, in exportMusicXML writer.parse_tokens(tokeniter.all_tokens(doc)) File "/Applications/frescobaldi_philmassart/frescobaldi_app/ly/musicxml/source2musxml.py", line 56, in parse_tokens func_call(t) File "/Applications/frescobaldi_philmassart/frescobaldi_app/ly/musicxml/source2musxml.py", line 133, in Note self.mediator.new_note(token, self.pitch_mode) File "/Applications/frescobaldi_philmassart/frescobaldi_app/ly/musicxml/ly2xml_mediator.py", line 111, in new_note self.current_note = bar_note(note_name, self.duration) File "/Applications/frescobaldi_philmassart/frescobaldi_app/ly/musicxml/ly2xml_mediator.py", line 213, in init plist = notename2step(note_name) File "/Applications/frescobaldi_philmassart/frescobaldi_app/ly/musicxml/ly2xml_mediator.py", line 345, in notename2step note_num = base_list.index(note_name) ValueError: u'q' is not in list %%%

    opened by philmassart 33
  • Release 2.17

    Release 2.17

    I'd like to release 2.17 in a few days. Please mention all little things that could be done, or update translations, etc!

    opened by wbsoft 32
  • Frescobaldi 3.1.3 (Linux) throws an error when attempting to use the documentation search

    Frescobaldi 3.1.3 (Linux) throws an error when attempting to use the documentation search

    At the top of the documentation browser is a pull-down menu, which on my system has just the one entry: 2.22.1 (lilypond.org). Next to that is a search box (with the word "search" in light grey). But if I enter a character in that search box, I get a popup error:

    Traceback (most recent call last):
      File "/usr/lib/python3.10/site-packages/frescobaldi_app/widgets/lineedit.py", line 63, in _updateClearButton
        b.move(x, y)
    TypeError: arguments did not match any overloaded call:
      move(self, QPoint): argument 1 has unexpected type 'int'
      move(self, int, int): argument 2 has unexpected type 'float'
    

    This means that if I want to search the documentation from within Frescobaldi, I have to go back to the "Documentation index" (which is the home page), and use the search box there - which does work.

    It would be very convenient to use the search bar at the top of the browser, if possible!

    opened by amca01 2
  • wish: horizontal scrolling with Shift+scroll

    wish: horizontal scrolling with Shift+scroll

    It would be great to be able to scroll horizontally using Shift+scroll (whether via mouse or touchpad or other device), both in Music View/Manuscript View and in the code editor.

    opened by sincere-music 2
  • Organize/Structure Preferences window

    Organize/Structure Preferences window

    The structure of the Preferences window seems to be slightly unclear. Here are a couple of related issues:

    – The list of “tabs” on the left is named inconsistently: some categories include “Settings” or “Preferences” in their name, some don’t. I think none of them should, the user knows they’re in the Preferences window. Also, it would be clearer to write “Music View” instead of just “Music”. – The Music Viewer has its own tab, but two settings for it are also included (under their own heading) in the “Tools” tab. I think these two should be moved. – There is a section with two settings for “Printing music” in the “Music View” tab. I’m not sure that’s where one would look for it and it’s unclear whether these also apply to Printing source. I would suggest a dedicated Printing tab, even if there’s not that much in it (for now?).

    opened by sincere-music 0
  • Music view defaults in Preferences

    Music view defaults in Preferences

    The default settings for the Music viewer which may be set through the menu (Music View->Save current View settings as default) cannot be set or modified through the Preferences dialogue window. This seems unintuitive.

    I think the defaults for all of the following should be accessible there: – Zoom level/Fit Width/Fit Height/Fit Page – Single Pages/Two Pages (first page right)/Two Pages (first page left)/Raster – Horizontal/Vertical arrangement – Continuous (toggle) – Synchronize with Cursor Position (toggle)

    opened by sincere-music 1
  • Warn the user about point-and-click PDFs

    Warn the user about point-and-click PDFs

    In the lilypond-user mailing list there was a discussion recently about the security/privacy issues when sharing PDFs containing point-and-click data: https://www.mail-archive.com/[email protected]/msg147680.html

    Point-and-click PDFs contain the absolute path to the original source file. IMO it's not a big deal, but... IMO the major advantage of pushing for PDF without point-and-click is the smaller size.

    Some ideas to work around this issue:

    • A PDF button in the toolbar (as in LibreOffice) - tooltip "Create a sharable PDF" - which runs lilypond without point-and-click and opens the PDF using the system PDF viewer.
    • An Info message pop-up showing a warning - "This PDF contains absolute paths of the source files and it has big size. Don't use it to share your music, run Frescobaldi in publish mode or..." - the first time a score is compiled.
    • Add a warning in the user manual.
    opened by fedelibre 2
  • RuntimeError: wrapped C/C++ object of type QApplication has been deleted

    RuntimeError: wrapped C/C++ object of type QApplication has been deleted

    I am intermittently getting the error above on shutdown. Here is a full traceback:

    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 339, in _error
        self.error_message(error)
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 393, in error_message
        elif self._process.state() == QProcess.NotRunning:
    RuntimeError: wrapped C/C++ object of type QProcess has been deleted
    Error in sys.excepthook:
    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/app.py", line 237, in excepthook
        if QThread.currentThread() == qApp.thread():
    RuntimeError: wrapped C/C++ object of type QApplication has been deleted
    
    Original exception was:
    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 339, in _error
        self.error_message(error)
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 393, in error_message
        elif self._process.state() == QProcess.NotRunning:
    RuntimeError: wrapped C/C++ object of type QProcess has been deleted
    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 335, in _finished
        self._bye(success)
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 347, in _bye
        self.error = self._process.error()
    RuntimeError: wrapped C/C++ object of type QProcess has been deleted
    Error in sys.excepthook:
    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/app.py", line 237, in excepthook
        if QThread.currentThread() == qApp.thread():
    RuntimeError: wrapped C/C++ object of type QApplication has been deleted
    
    Original exception was:
    Traceback (most recent call last):
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 335, in _finished
        self._bye(success)
      File "/usr/share/frescobaldi/frescobaldi_app/job/__init__.py", line 347, in _bye
        self.error = self._process.error()
    RuntimeError: wrapped C/C++ object of type QProcess has been deleted
    

    I was never able to identify a particular cause.

    opened by Jean-Abou-Samra 3
  • Can't delete entire row on macOS by pressing `command+delete`

    Can't delete entire row on macOS by pressing `command+delete`

    Actually any editor on macOS are all can delete entire row by pressing command+delete, but Frescobaldi can not do this.

    macOS: macOS Big Sur 10.15.1

    macosx 
    opened by xiebruce 5
  • Migrate to PyQt6

    Migrate to PyQt6

    @wbsoft Will you port Frescobaldi codebase to PyQt6 sooner or later? Just curious to know if you have any roadmap in mind.

    https://www.riverbankcomputing.com/static/Docs/PyQt6/pyqt5_differences.html

    opened by fedelibre 0
  • PipeWire for MIDI playback

    PipeWire for MIDI playback

    PipeWire is now the default audio server in Fedora. I'm wondering if Frescobaldi could be designed to work well with it to enable MIDI playback features. I know this is a Linux only feature request.

    https://docs.pipewire.org/page_midi.html

    Someone started working on the python bindings:

    • https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1654
    • https://gitlab.com/matpi/pipewire-py
    opened by fedelibre 0
  • Feature request: On screen piano keyboard

    Feature request: On screen piano keyboard

    It would be nice to add an on-screen piano keyboard, similar to the one in musescore. It would be a good alternative to using midi input on laptops that have a touchscreen.

    opened by xsrvmy 0
Releases(v3.1.3)
Owner
Frescobaldi
The Frescobaldi sheet music text editor
Frescobaldi
Repository of scores typeset using Lilypond & Ripple

Ciconia's Score Repository This repository contains my edition of works by Bach and other baroque composers typeset using Lilypond and Ripple. Process

Sharon Rosner 17 Aug 15, 2021
Baroque music scores, typeset with GNU LilyPond

nénuvar - baroque music scores typeset with GNU LilyPond Available scores: J.B. Lully * La Revente des habits (ballet, LWV05) * Amour malade (ballet

Nicolas Sceaux 37 Dec 16, 2021
Beautiful LilyPond scores under free licenses

A project to collect and maintain beautiful LilyPond music scores, and to document LilyPond engraving styles, Scheme programs and templates. You can

Wilbert Berendsen 40 Jan 16, 2022
Use Lilypond like a boss!

The lyp package index lyp - The Lilypond Swiss Army Knife lyp is an open-source tool that takes the pain out of working with Lilypond. Use packages: I

noteflakes 66 Sep 23, 2021
A place to store useful pieces of LilyPond code - custom functions, engravers, hacks, templates, examples etc.

openLilyLib/snippets What's this? What is openLilyLib/snippets? There are two answers to this: it's a repository of LilyPond snippets, and it's part o

openlilylib 103 Jan 9, 2022
Lilypond music preprocessor

Ripple - DRY for Lilypond Ripple is a small program that helps you generate scores and parts without repeating yourself, performing complex includes o

Sharon Rosner 21 Mar 24, 2020
LilyPond mini-score engraving and sharing service for musicians.

Tunefl LilyPond mini-score engraving and sharing service for musicians. The live Tunefl service is at tunefl.com. More sleep lost by tiredpixel. Insta

Nic Williams 22 Jun 22, 2020
Audio Editor

Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Developed by a group o

Audacity 7k Jan 20, 2022
Music typeset with the Lilypond system

Intro (from long ago) This repo contains sheet music typeset with the Lilypond typesetter. The music chosen is in favour of cello music (mostly chambe

Enthusiastic about  the Cello 102 Jan 11, 2022
Repository of scores typeset using Lilypond & Ripple

Ciconia's Score Repository This repository contains my edition of works by Bach and other baroque composers typeset using Lilypond and Ripple. Process

Sharon Rosner 17 Aug 15, 2021
Baroque music scores, typeset with GNU LilyPond

nénuvar - baroque music scores typeset with GNU LilyPond Available scores: J.B. Lully * La Revente des habits (ballet, LWV05) * Amour malade (ballet

Nicolas Sceaux 37 Dec 16, 2021
Beautiful LilyPond scores under free licenses

A project to collect and maintain beautiful LilyPond music scores, and to document LilyPond engraving styles, Scheme programs and templates. You can

Wilbert Berendsen 40 Jan 16, 2022
Use Lilypond like a boss!

The lyp package index lyp - The Lilypond Swiss Army Knife lyp is an open-source tool that takes the pain out of working with Lilypond. Use packages: I

noteflakes 66 Sep 23, 2021
A place to store useful pieces of LilyPond code - custom functions, engravers, hacks, templates, examples etc.

openLilyLib/snippets What's this? What is openLilyLib/snippets? There are two answers to this: it's a repository of LilyPond snippets, and it's part o

openlilylib 103 Jan 9, 2022
Lilypond music preprocessor

Ripple - DRY for Lilypond Ripple is a small program that helps you generate scores and parts without repeating yourself, performing complex includes o

Sharon Rosner 21 Mar 24, 2020
LilyPond mini-score engraving and sharing service for musicians.

Tunefl LilyPond mini-score engraving and sharing service for musicians. The live Tunefl service is at tunefl.com. More sleep lost by tiredpixel. Insta

Nic Williams 22 Jun 22, 2020
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality v

OpenShot Studios, LLC 2.6k Jan 17, 2022
A markdown editor for developers on Mac, Windows and Linux.

We've launched desktop and mobile app of the new Boost Note now. Boost Note for Teams We've developed a collaborative workspace app called "Boost Hub"

BoostIO 17.4k Jan 1, 2022
The last Markdown editor, ever.

Dillinger The Last Markdown Editor, Ever Dillinger is a cloud-enabled, mobile-ready, offline-storage compatible, AngularJS-powered HTML5 Markdown edit

Joe McCann 7.3k Jan 20, 2022
online markdown editor/viewer

Markdown Edit This is a online markdown editor/viewer. This help you to edit markdown document with the power of web technology. Quick Start Try on De

Takeharu.Oshida 197 Jan 13, 2022
📔 A simple Markdown note-taking editor

MiniNote A simple, self-hosted Markdown note-taking app built with Vue 3, and Express. Check out the hosted demo! ⚙️ Requirements NodeJS >= 12.19.0 LT

Ferdinand Mütsch 188 Jan 5, 2022
A web-based collaborative LaTeX editor

An open-source online real-time collaborative LaTeX editor. Key Features • Wiki • Server Pro • Contributing • Mailing List • Authors • License Key Fea

Overleaf 9.4k Jan 11, 2022
Writing is a lightweight distraction-free text editor, in the browser (Markdown and LaTeX supported).

Writing Writing is a lightweight distraction-free text editor, in the browser. Live version: Writing. Installation Just open index.html and that's it!

null 950 Jan 2, 2022
Etherpad: A modern really-real-time collaborative document editor.

A real-time collaborative editor for the web About Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users.

The Etherpad Foundation 12.1k Jan 16, 2022
Gobby collaborative editor

Gobby: First Contact Synopsis Gobby is a free collaborative editor. This means that it provides you with the possibility to edit files simultaneously

Gobby Developers 527 Dec 28, 2021
Browser code editor awesomeness

ICEcoder Code editor awesomeness ...in your browser ICEcoder is a browser based code editor, which provides a modern approach to building websites. By

ICEcoder 1.3k Jan 14, 2022
Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote.

Laverna - note taking web app Laverna is a JavaScript note-taking web application with a Markdown editor and encryption support. It's built to be an o

Laverna - open source alternative to Evernote 8.8k Jan 17, 2022