Giter VIP home page Giter VIP logo

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:

  • Some things cannot be placed in LSR (multi-file extensions, special scripts).
  • LSR doesn't have tools for collaboration and version control.

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 [email protected]: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

  • custom-music-fonts - alternative fonts for LilyPond, that can be used instead of default Feta.
  • debugging-layout - tools that visualize LilyPond's layout decisions (e.g. directions),
  • general-tools - stuff for working on and with LilyPond itself,
  • input-shorthands - music functions and other tools that make writing LilyPond code easier,
  • notation-snippets - LilyPond code that produces some particular notation,
  • simple-examples - snippets that are just explaining or demonstrating things from the documentation,
  • specific-solutions - hacks that aren't generic, just solve a very specific problem,
  • stylesheets - a place for collections of user-designed layout settings ("house styles"),
  • templates - examples showing how to structure LilyPond code.

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.

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).

  • Your snippet must compile (even if it's work-in-progress) and it must contain a \version statement.
  • Please use a template from [meta/snippet-templates] (meta/snippet-templates) as your starting point:
    • simple snippets that just demonstrate built-in LilyPond features should use the one-file template.
    • snippets defining custom commands, functions, engravers etc. that can be useful on their own should use the "includable" template.
  • If possible, please format your code using Frescobaldi's Format tool.
  • When you make changes in your snippets, please contribute updates to the repository! :-)

Contact

Have trouble contributing? Let us know!
[email protected]
[email protected]

openlilylib's Projects

analysis icon analysis

Graphical highlighting of musical analysis with GNU LilyPond

bezier icon bezier

Tools for working with bezier curves in LilyPond

breaks icon breaks

A utitlity package to maintain break sets

contemporary icon contemporary

Toolkit for producing extended contemporary notation with GNU LilyPond

grob-tools icon grob-tools

Tools to simplify working with grobs (mainly in grob callbacks)

ji icon ji

Encoding and Displaying Just Intonation with LilyPond

lo-ly icon lo-ly

LibreOffice-LilyPond extension

oll-core icon oll-core

Library Infrastructure for LilyPond add-ons

oll-misc icon oll-misc

Miscellaneous tools and functions for LilyPond

page-layout icon page-layout

Functions to enhance and simplify working with page layout in LilyPond

scholarly icon scholarly

ScholarLY, a library for annotating LilyPond scores

snippets icon snippets

A place to store useful pieces of LilyPond code - custom functions, engravers, hacks, templates, examples etc.

templates icon templates

Templates and predefined instruments for LilyPond

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.