Home

Awesome

Build Status of openLilyLib on Travis:
Build Status

What's this?

A place to store and collaborate on LilyPond tools - snippets, templates, extensions. Why we don't just put this stuff in Lilypond Snippet Repository? There are two reasons:

Deprecation Warning!

The former openlilylib/openlilylib repository has been renamed to openlilylib/snippets. The real repository and its issue tracker has been moved to https://github.com/openlilylib/snippets.

This repository is only a copy that is identical per 2015/11/13. Its only purpose is not to break existing clones. Please update your remote to git@github.com:openlilylib/snippets.git or https://github.com/openlilylib/snippets.git as soon as possible.

If you have forked this repository please check where your fork refers to and where pull requests would eventually be opened against.

Contents

Every category has a README.md file inside with more details, but if you're not sure which category to choose, don't worry! It's not that important.

<!--- Later on, we may divide the snippets into 2 (or more) "quality levels": - official ones, showing Recommended LilyPond Practice, - drafts, hacks etc. that were just written by someone and may be useful, but may also not be. The policy would be to allow anyone to add anything to the "hacks", but adding/changing official ones (or moving a draft to official ones) would require some confirmation from someone else (not necessarily a full review, but at least a quick look). Update: actually, the status field probably already does this. -->

Using this repository

You can view the files in your browser by clicking on their names, and simply copy & paste the code into your editor. You can also download the whole repository in a ZIP archive. This is recommended for casual use. For regular users, we recommend using Git to clone the whole repository to your computer. If you need help with Git, contact us.

Most snippets are divided into an .ily file with function definitions and a .ly file showing a usage example. To use the functions provided by the snippet, simply \include the .ily file into your score.

You can make the root directory of the repository available to LilyPond, e.g. by using the -I or --include= command line option (or, if you use Frescobaldi, add the path in LilyPond preferences).
Then you will be able to \include the snippets with a path relative to the repository root directory - for example, \include "debugging-layout/display-grob-anchors/definitions.ily" will allow you to use \printAnchors function defined in the snippet. Frescobaldi also supports autocompletion if you have added the repository in the preferences. So typing \include "debu will already give you the appropriate completion suggestion.

Contributing

What's eligible?

Everything that's useful and isn't totally obvious (rule of thumb: anything over 20 lines of code is probably worth including). You can even contribute work in progress and update it later.

How to contribute

The easiest way to contribute is using GitHub's web interface.

  1. Create an account on GitHub, log into it.
  2. Go to this repository's GitHub page.
  3. To add a new file, click on [this button] (http://raw.github.com/openlilylib/snippets/master/meta/adding-new-file-github-interface.png). To modify a file, click its name and then click Edit.
  4. Write what you have changed (form at the bottom) and click Commit.
  5. Don't forget to click Send pull request. (more info...)

Using more powerful tools for contributing is described here.

Guidelines

Note: detailed guidelines are in [meta/contributing.md] (meta/contributing.md)(optional reading).

Contact

Have trouble contributing? Let us know!
info@openlilylib.org
janek.lilypond@gmail.com