Use Lilypond like a boss!

Overview

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: Install packages to enhance your Lilypond files with additional functionality. Add specialized tweaks or even change the music font.

No hassle Lilypond installation: with lyp you can install Lilypond with a single easy command, no need to click links, or unzip and copy files around.

Even more tools for power users: watch and automatically recompile changed source files, flatten include files, and automatically install package dependencies or any required version of Lilypond.

Documentation

Contributing

Lyp is written in Ruby, and its code is available on github. To hack on it, simply clone the repository. To run the specs:

$ cd lyp
$ bundle install # needs to be run only once
$ rspec

Please feel free to submit issues and pull requests.

Issues
  • UTF_8 issues for

    UTF_8 issues for "roman-numeral" package

    After installing lilypond with lyp:

    When I made /usr/local/bin/lilypond to be the default lilypond version in Frescobaldi, it does not generate any file even after the lilypond log replied compile successful.

    When I made ~/.lyp/lilyponds/2.18.2/bin/lilypond as default version, the compiler does not recognize \require command.

    Is there a way to make Frescobaldi to compile with lyp version of lilypond?

    opened by allenloves 13
  • lyp installation not complete

    lyp installation not complete

    Hi, I'm trying to use lyp to install lilyjazz under Lubuntu 16.04 but it does not work: After installing lyp via ruby gem (neither the curl nor the wget installation worked for me, they both aborted with the error: bash: line 52: syntax error: unexpected end of file.| gem required cmake and pkg-config before I could install lyp) I am not able to install any lyp-packages. The installations always abort with the error message: Could not clone repository (please check that the package URL is correct.)

    When I copy the URL into my webbrowser the right git opens so I guess that is not the problem.

    Opposed to the General spec there is no ~/.lyp/bin folder (.lyp contains the folders ext, lilyponds, packages and a file settings.yml) on my machine also there is no file ~/.bash_profile so I guess that might cause trouble too.

    I am not a software developer so I don't know what else you need to help me so feel free to ask.

    Thanks, I like the idea of a Lilypond package manager very much

    Sven

    opened by L3br4nd 9
  • cannot  intall lilypond from lyp

    cannot intall lilypond from lyp

    Hi,

    Thanks for lyp, which seems to have very interesting features.

    I installed it, but could not install lilypond:

    $ lyp version
    Lyp 1.3.5
    
    $ lyp install lilypond
    undefined method `[]' for nil:NilClass
    
    $lyp install -V lilypond
    undefined method `[]' for nil:NilClass
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/lilypond.rb:425:in `latest_stable_version'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/lilypond.rb:468:in `detect_version_from_specifier'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/lilypond.rb:448:in `install'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/cli.rb:211:in `block in install'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/cli.rb:205:in `each'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/cli.rb:205:in `install'
    /var/lib/gems/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
    /var/lib/gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
    /var/lib/gems/2.3.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
    /var/lib/gems/2.3.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/lib/lyp/cli.rb:428:in `run'
    /var/lib/gems/2.3.0/gems/lyp-1.3.5/bin/lyp:9:in `<top (required)>'
    /usr/local/bin/lyp:22:in `load'
    /usr/local/bin/lyp:22:in `<main>'
    

    In your answer to another issue (#32), you mentionned rugged. I have it installed:

    $ sudo gem install rugged
    Building native extensions.  This could take a while...
    Successfully installed rugged-0.26.0
    Parsing documentation for rugged-0.26.0
    Done installing documentation for rugged after 1 seconds
    1 gem installed
    
    $ gem list rugged
    
    *** LOCAL GEMS ***
    
    rugged (0.26.0, 0.23.0)
    

    So what am I missing?

    Thanks.

    opened by Nyavlys 7
  • package manager x lilypond version manager

    package manager x lilypond version manager

    I don't think it is a very good idea to have one tool manage both lilypond versions and lilypond code packages. I suggest following the Single Responsibility Principle and splitting lyp in two separate tools: a lilypond version manager allowing one to install several lilypond versions easily and switch between them, and a package manager, working simply with the lilypond currently in PATH. (Regardless of it being provided by the version manager or installed as a single system-wide lilypond instance.)

    wontfix 
    opened by igneus 7
  • Cannot open lyp or lilypond on OSX 10.13.1

    Cannot open lyp or lilypond on OSX 10.13.1

    This is the error message I receive when I try to run lyp or lilypond.

    /usr/local/Cellar/ruby/2.4.2_1/lib/ruby/2.4.0/rubygems.rb:271:in find_spec_for_exe': can't find gem lyp (>= 0.a) (Gem::GemNotFoundException) from /usr/local/Cellar/ruby/2.4.2_1/lib/ruby/2.4.0/rubygems.rb:299:inactivate_bin_path' from /usr/local/bin/lyp:22:in `

    '

    opened by allenloves 6
  • Another install issue

    Another install issue

    After installing curl:

    i5 pihentagy # wget -qO- https://git.io/getlyp | bash
    Detecting latest lyp version...
    Downloading https://github.com/noteflakes/lyp/releases/download/v1.3.1/lyp-1.3.1-linux-x86_64.tar.gz
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   605    0   605    0     0   1030      0 --:--:-- --:--:-- --:--:--  1030
    100 6735k  100 6735k    0     0  1710k      0  0:00:03  0:00:03 --:--:-- 2109k
    Extracting /tmp/lyp-release-installer/release.tar.gz
    Could not find rugged-0.23.0 in any of the sources
    Run `bundle install` to install missing gems.
    
    opened by pihentagy 4
  • lyp fails on ghostscript command ~> 2.19.18

    lyp fails on ghostscript command ~> 2.19.18

    I'm getting a failure in running the final ghostscript pdf-creation command in versions 2.19.18 and above. The usual gs command works if I run the exact same thing in the terminal, but it seems to be failing with lyp. I originally thought lilypond in general was also failing, but I successfully installed and compiled this test on 2.19.80 with no problems.

    Running Arch Linux, ghostscript 9.22, lyp 1.3.5.

    shell output

    [[email protected] ly_test]$ lyp use 2.19.18
    Using Lilypond version 2.19.18
    [[email protected] ly_test]$ lyp compile test.ly
    Lyp 1.3.5
    GNU LilyPond 2.19.18
    Processing `/tmp/lyp/wrappers/test.ly'
    Parsing...
    Interpreting music...
    Preprocessing graphical objects...
    Finding the ideal number of pages...
    Fitting music on 1 page...
    Drawing systems...
    Layout output to `test.ps'...
    Converting to `./test.pdf'...
    warning: `(gs -q -dSAFER -dDEVICEWIDTHPOINTS=595.28 -dDEVICEHEIGHTPOINTS=841.89
    -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -r1200 -sDEVICE=pdfwrite
    -sOutputFile=./test.pdf -c.setpdfwrite -ftest.ps)' failed (256)
    
    fatal error: failed files: "/tmp/lyp/wrappers/test.ly"
    
    [[email protected] ly_test]$ lyp use 2.19.17
    Using Lilypond version 2.19.17
    [[email protected] ly_test]$ lyp compile test.ly
    Lyp 1.3.5
    GNU LilyPond 2.19.17
    Processing `/tmp/lyp/wrappers/test.ly'
    Parsing...
    Interpreting music...
    Preprocessing graphical objects...
    Finding the ideal number of pages...
    Fitting music on 1 page...
    Drawing systems...
    Layout output to `test.ps'...
    Converting to `./test.pdf'...
    Success: compilation successfully completed
    

    test.ly

    \score {
        \new Voice {
            c'4 d' e' f'
        }
    
        \layout { }
    }
    
    opened by andrewcsmith 4
  • Add support for modules

    Add support for modules

    In order to support more complex packages (like for example openlilylib), introduce support for sub-package modules:

    \require "[email protected]/control_points"
    

    In that case, instead of loading [email protected]/package.ly, lypack will load [email protected]/control_points.ly

    A possible problem is a case where you have a package which package.ly file includes all its files. Requiring the package in the normal way, and later requiring a specific file of the package in either a user's file or another dependency, will lead to the same file being included twice.

    opened by ciconia 3
  • Add server mode

    Add server mode

    Based on the work here: https://gist.github.com/ciconia/a786b461f7b6c2526ac0eeb42d3da8a0

    Start a server:

    # can specify a specific version of 
    $ lyp serve -u2.19.37 -d # run as daemon
    
    # can also specify port:
    $ lyp serve -p 3213
    
    # load packages on startup, in order to make compilation faster
    $lyp serve -r assert -r house-style
    

    Stop a server daemon (?):

    # lyp stop-daemon -u2.19.37
    

    Run client:

    # check if any server is up (servers are registered in the lyp config file)
    # if available (and has right version), use it
    $ lyp compile <args> myfile.ly
    

    Work left to do on server:

    1. test it!
    2. full support for command line options (as as full as possible - loglevel for example).
    opened by ciconia 3
  • lyp flatten error

    lyp flatten error

    After successfully rendering my file with lilypond angelus.ly, I cannot flatten the .ly file.

    lyp flatten angelus.ly 
    No such file or directory @ rb_sysopen - /home/pihentagy/gdrive/kotta/Ckotta/darabok/AngelusPastoribus/deutsch.ly
    
    opened by pihentagy 3
  • Issues install lyp

    Issues install lyp

    Running gem install lyp yields an error with rugged.

    current directory: /home/USER/gems/gems/rugged-0.26.0/ext/rugged
    /usr/bin/ruby2.5 -r ./siteconf20200614-13045-1lg5002.rb extconf.rb
    checking for gmake... no
    checking for make... yes
    checking for cmake... yes
    checking for pkg-config... yes
     -- cmake .. -DBUILD_CLAR=OFF -DTHREADSAFE=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE=RelWithDebInfo  
     -- /usr/bin/make
    checking for -lgit2... yes
    checking for git2.h... yes
    creating Makefile
    
    current directory: /home/USER/gems/gems/rugged-0.26.0/ext/rugged
    make "DESTDIR=" clean
    
    current directory: /home/USER/gems/gems/rugged-0.26.0/ext/rugged
    make "DESTDIR="
    compiling rugged.c
    compiling rugged_backend.c
    compiling rugged_blame.c
    In file included from /usr/include/ruby-2.5.0/ruby.h:33,
                     from rugged.h:16,
                     from rugged_blame.c:8:
    In function ‘rb_git_blame_each.part.0’,
        inlined from ‘rb_git_blame_each’ at rugged_blame.c:240:14:
    /usr/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to ‘rb_varargs_bad_length’ declared with attribute error:  argument length doesn't match
       rb_varargs_bad_length(argc, vargc)), \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro ‘rb_varargs_argc_check’
          rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
          ^~~~~~~~~~~~~~~~~~~~~
    rugged_blame.c:246:10: note: in expansion of macro ‘rb_funcall’
       return rb_funcall(self, rb_intern("to_enum"), 1, CSTR2SYM("each"), self);
              ^~~~~~~~~~
    make: *** [Makefile:243: rugged_blame.o] Error 1
    
    make failed, exit code 2
    

    Is there a way to bypass this?

    opened by aferios 0
  • A few issues...

    A few issues...

    Hello.

    Fedora 31, lyp 1.3.8 installed with the bash script. Tried to install with gem but failed.

    Installed two versions of Lilypond. One as the system branch, 2.19.84, and the one through lyp, 2.20.0. I tried to compile a file called "experiment.ly". I had two different results.

    1. The lyp-installed 2.20.0 failed to produce a pdf. The log was as follows:

    "GNU LilyPond 2.20.0 Processing /tmp/lyp/wrappers/experiment.ly' Parsing... Interpreting music...[8] Preprocessing graphical objects... Finding the ideal number of pages... Fitting music on 1 page... Drawing systems... Layout output to/tmp/lilypond-39l9t3'... Converting to experiment.pdf'... warning:(gs -q -dSAFER -dDEVICEWIDTHPOINTS=595.28 -dDEVICEHEIGHTPOINTS=841.89 -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -r1200 -sDEVICE=pdfwrite -dAutoRotatePages=/None -dPrinted=false -sOutputFile=experiment.pdf -c.setpdfwrite -f/tmp/lilypond-39l9t3)' failed (139)

    fatal error: failed files: "/tmp/lyp/wrappers/experiment.ly" "

    The good thing is that the file lilypond-39l9t3 in /tmp, which is the ps intermediate file, was ok. I converted it with gsview (it complained and never actually showed the ps file itself, but converted it to a pdf anyway. Both files could be seen with document viewer without a problem). Now, I had included a \require "bravura" in there, and the ps file was rendered correctly with bravura font. Apart from the pdf generation, all ok.

    1. When I tried the system version with the same file, it did not complain for anything. It did produce the pdf, but there was no bravura font. It was in the emmentaller font.

    The whole issue looks like an issue in the past with ghostscript that I found in the lilypond mailing list.

    Thank you

    Sami

    opened by SamiAmiris 0
  • Fix issue #69 by creating a user-specific scratch directory

    Fix issue #69 by creating a user-specific scratch directory

    I created a quick fix allowing multiple users on the same computer to user lyp.

    opened by kwetal 0
  • lyp uses same scratch directory for multiple users

    lyp uses same scratch directory for multiple users

    Using Lyp 1.3.11 on Ubuntu.

    $ lyp compile OnzeVader.ly 
    Permission denied @ rb_sysopen - /tmp/lyp/session.1227.yml
    

    Reason for the "permission denied": the scratch directory /tmp/lyp has been created earlier by another user on the same computer and gives only write access to that other user. All other users on the computer cannot run lyp because they do not have write access to the scratch directory.

    Please use a unique scratch directory for every invocation of lyp.

    opened by kwetal 0
  • cannot install lilypond from lyp

    cannot install lilypond from lyp

    fresh install on a fresh ubuntu 18.04 system. After:

    sudo apt-get install -y ruby
    sudo apt-get install -y ruby-dev
    sudo apt-get install -y cmake
    sudo apt-get install -y pkg-config
    sudo gem install lyp
    
    [email protected] ~> lyp install lilypond
    undefined method `[]' for nil:NilClass
    

    and

    [email protected] ~> lyp search -V lilypond
    
    No available versions of [email protected] found
    
    opened by baloe 2
  • Call resolver dynamically upon call to \lyp-require, \lyp-include etc

    Call resolver dynamically upon call to \lyp-require, \lyp-include etc

    See also #61.

    Currently the resolver scans any dependency declared, then checks all included files. This leads to problems when we wish to do fancier stuff, like \lyp-require #'(a b c d), or invoking the lyp API from scheme code. It also means we need to scan any possible include file before Lilypond starts to process the file.

    So, idea is to get rid of the pre-processing scanning of files, and invoke the resolver inside of lyp:require. That means:

    • The resolver is a bin script that is run from within the lyp:require scheme procedure.
    • It returns a text representation of a scheme object containing info about the package - name, version, entry-point path.
    • The resolver selects the best version that satisfies the package ref. If a different version of the package is resolved later, lyp:require should throw an error.
    • If the dependency is not found, lyp:require should throw an error.

    Plan of action:

    • Provide path to resolver bin script in the dynamically generated wrapper.
    • Infrastructure to run resolver script with the dependency reference as command line argument.
    • Receive output from resolver script, eval it into a scheme object and process it.
    • Handle errors (dependency not found, version ambiguity)
    • Profit!
    opened by ciconia 1
  • 'list lilypond' and 'search lilypond' commands lock up

    'list lilypond' and 'search lilypond' commands lock up

    lyp list lilypond and lyp search lilypond commands lockup for a few minutes on my machine, before proceeding. Tried some other commands, work fine.

    Versions:

    • lyp: 1.3.8
    • ruby: 2.4.1 via rbenv
    • OS: Mac OS 10.13.3 (High Sierra)
    opened by SashaOv 7
  • Make \pinclude etc more useful

    Make \pinclude etc more useful

    Issue #40 talked about making the lyp-provided include commands more "beautiful" but this is not really the problem with lyp-provided include commands. The problems with the current implementation are:

    • \pinclude is not differentiated enough from \include.
    • What does the "p" stand for? package?
    • In properly structured modular notation projects, files will normally be included only once. So including once should be the rule and not the exception.
    • the lyp-provided Lilypond commands (i.e. \pinclude etc) should be namespaced. It should be obvious that they come from lyp.
    • the conditional includes are actually not that useful, and they don't really get used that often. They might be useful when doing "polyfills" in order to support older versions of Lilypond
    • There's no conventional way to include a whole directory, or multiple files using a filename pattern.

    So, we change the user-facing lyp interface as follows:

    • Rename the commands:
      • \pinclude becomes lyp-load
      • \pincludeOnce becomes lyp-include
      • \require becomes lyp-require
      • all old commands are deprecated, that is, display a warning
      • conditional include commands are not given new names, they're just deprecated
    • Make lyp-load and lyp-include more useful:
      • accept multiple arguments (for loading multiple files): \lyp-include tree templates music
      • accept directory references (for loading all files in a directory): \lyp-include utils
      • accept filename patterns (for loading files matching the pattern): \lyp-include utils/*
      • accept file references without extension, look for .ly or .ily files. If both exist, throw an error, otherwise load the existing one, if none exist, throw an error
    opened by ciconia 0
  • LAAS - lilypond as a service

    LAAS - lilypond as a service

    Features:

    • A server offering a lilypond compilation service - user uploads a snippet or a complete file or a complete file archive including all dependencies, the server generates the target file.
    • Support for all applicable command line switches (i.e. relating to output).
    • Support for different version of lilypond.
    • Support for lyp packages (as long as they can be found - those on the lyp package index, or those with a URL).
    • Should be fast (as possible).
    • Should cache output files on disk (in /tmp perhaps?).

    Additional tooling:

    • Linux/MacOS - bash script for compiling from shell.
    • Windows - batch file for compiling from shell.

    What needs to be added to lyp?

    • HTTP server (on arbitrary port) and accept HTTP requests for compiling files, along with command line arguments.
    • Cache output file (hash input files and command line arguments) in /tmp.
    • Automatic installation of requested lilypond version, if not already installed.
    • Process separation to limit security exposure (use lys?)

    Another possibility is to create an external tool that will use lyp as a ruby dependency (actually an interesting use case).

    opened by ciconia 0
  • Add diff command

    Add diff command

    Original idea here:

    https://github.com/joram-berger/lydiff

    # compare two files
    $ lyp diff file1.ly file2.ly
    
    # compare two lilypond versions
    $ lyp diff -a2.9.45 -b2.9.46 myfile.ly
    

    The diff command should could provide, in addition to visual diff (using ImageMagic tools), a diff on metadata, such as number of pages, etc, or maybe just a diff of the lilypond stderr output.

    opened by ciconia 0
Releases(1.3.8)
  • 1.3.8(Feb 5, 2018)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes since the previous release:

    • Add --svg command line option (#50).
    • Improve Lilypond command line option parsing.
    • Remove non-functional --open switch.
    • Improve error reporting (print backtrace only when --verbose is specified).
    • Add --music/--music-relative command line switch for quickly entering music on the command line (#47).
    • Fix installation of non-registered github packages (#54).
    • Set default encoding to UTF-8 (#52).
    • Fix Lilypond install on Windows.
    • Accept symbol arguments for require, include commands (#49).
    • Improve docs.
    • Fix Lilypond installation link (the http://download.linuxaudio.org/lilypond links don't work anymore).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.3.8-win32.zip
    > lyp-1.3.8-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.3.8-linux-x86.tar.gz(6.23 MB)
    lyp-1.3.8-linux-x86_64.tar.gz(6.87 MB)
    lyp-1.3.8-osx.tar.gz(7.13 MB)
    lyp-1.3.8-win32.zip(7.71 MB)
  • v1.3.4(Jan 9, 2017)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Recover from trying to open broken Lilypond archives.
    • Trap INT signals.
    • Better documentation (new website).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.3.4-win32.zip
    > lyp-1.3.4-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.3.4-linux-x86.tar.gz(6.22 MB)
    lyp-1.3.4-linux-x86_64.tar.gz(6.85 MB)
    lyp-1.3.4-osx.tar.gz(7.12 MB)
    lyp-1.3.4-win32.zip(7.71 MB)
  • v1.3.3(Jan 3, 2017)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Properly suport stock include in flatten (#45).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.3.3-win32.zip
    > lyp-1.3.3-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.3.3-linux-x86.tar.gz(6.22 MB)
    lyp-1.3.3-linux-x86_64.tar.gz(6.85 MB)
    lyp-1.3.3-osx.tar.gz(7.12 MB)
    lyp-1.3.3-win32.zip(7.71 MB)
  • v1.3.2(Jan 3, 2017)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Fix stock lilypond includes, include search path (#44, #43).
    • Remove rugged dependency from traveling ruby release.
    • Fix install script to work with wget (#41).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.3.2-win32.zip
    > lyp-1.3.2-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.3.2-linux-x86.tar.gz(6.22 MB)
    lyp-1.3.2-linux-x86_64.tar.gz(6.85 MB)
    lyp-1.3.2-osx.tar.gz(7.12 MB)
    lyp-1.3.2-win32.zip(7.71 MB)
  • v1.3.1(Dec 26, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Add lyp benchmark command (#17).
    • Add shortcuts for common commands.
    • Add lyp watch command (#38).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.3.1-win32.zip
    > lyp-1.3.1-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.3.1-linux-x86.tar.gz(6.22 MB)
    lyp-1.3.1-linux-x86_64.tar.gz(6.85 MB)
    lyp-1.3.1-osx.tar.gz(7.12 MB)
    lyp-1.3.1-win32.zip(7.71 MB)
  • v1.2.1(Dec 21, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Fix lyp test --env command.

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.2.1-win32.zip
    > lyp-1.2.1-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.2.1-linux-x86.tar.gz(5.92 MB)
    lyp-1.2.1-linux-x86_64.tar.gz(6.55 MB)
    lyp-1.2.1-osx.tar.gz(6.82 MB)
    lyp-1.2.1-win32.zip(7.27 MB)
  • v1.2.0(Dec 21, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Implement lyp accelerate command for making lyp and lilypond scripts faster (#34).
    • Add lyp exec command for running arbitrary lilypond bundled scripts (#35).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.2.0-win32.zip
    > lyp-1.2.0-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.2.0-linux-x86.tar.gz(5.92 MB)
    lyp-1.2.0-linux-x86_64.tar.gz(6.55 MB)
    lyp-1.2.0-osx.tar.gz(6.82 MB)
    lyp-1.2.0-win32.zip(7.27 MB)
  • v1.1.0(Dec 4, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Improve performance by loading dependencies only when needed.
    • Implement lyp update and lyp install -u commands (#33).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.1.0-win32.zip
    > lyp-1.1.0-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.1.0-linux-x86.tar.gz(5.92 MB)
    lyp-1.1.0-linux-x86_64.tar.gz(6.55 MB)
    lyp-1.1.0-osx.tar.gz(6.82 MB)
    lyp-1.1.0-win32.zip(7.27 MB)
  • v1.0.3(Nov 30, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Refactor Lilypond option parsing.
    • Refactor version and version requirement construction.
    • Add support for finalizers in package Scheme API.
    • Fix ARGV parsing when filename includes hyphen.
    • Better documentation for Ruby extension API.
    • Better error reporting when installing packages.
    • Add appropriate \paper preamble when --snippet option is specified (#29).
    • Improve lilypond option processing by allowing a string of single-letter options, e.g. lilypond -FncO.
    • Add --force-version lilypond option for selecting lilypond version according to version statement in user file (#28).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.0.3-win32.zip
    > lyp-1.0.3-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.0.3-linux-x86.tar.gz(5.92 MB)
    lyp-1.0.3-linux-x86_64.tar.gz(6.55 MB)
    lyp-1.0.3-osx.tar.gz(6.82 MB)
    lyp-1.0.3-win32.zip(7.27 MB)
  • v1.0.0(Jun 29, 2016)

    lyp is a package manager for lilypond, letting you easily install and use multiple versions of lilypond, as well as packages of lilypond code.

    Changes in this release:

    • Fix \pcondIncludeOnce.
    • Implement flatten command (#26).

    Installing

    Install lyp using the install script (view source):

    $ curl -sSL https://git.io/getlyp | bash
    

    or with Wget:

    $ wget -qO- https://git.io/getlyp | bash
    

    Windows users can download the Windows release, then run the following commands:

    > unzip lyp-1.0.0-win32.zip
    > lyp-1.0.0-win32\bin\lyp install self
    

    Important notice: this release requires having git on your machine. Hopefully this restriction will be removed in a future release. To use lyp on a machine without git, you will need to install the lyp gem.

    Happy lilyponding!

    Source code(tar.gz)
    Source code(zip)
    lyp-1.0.0-linux-x86.tar.gz(5.92 MB)
    lyp-1.0.0-linux-x86_64.tar.gz(6.55 MB)
    lyp-1.0.0-osx.tar.gz(6.82 MB)
    lyp-1.0.0-win32.zip(7.27 MB)
Owner
noteflakes
A music publishing house specialising in performance materials for professional musicians
noteflakes
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 65 Sep 11, 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 102 Jul 10, 2021
Frescobaldi LilyPond Editor

README for Frescobaldi Homepage: http://www.frescobaldi.org/ Main author: Wilbert Berendsen Frescobaldi is a LilyPond sheet music text editor. It aims

Frescobaldi 501 Sep 21, 2021
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
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 95 Sep 15, 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 39 Aug 11, 2021
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
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
Typographic Beat-Oriented Notation for music

tbon Typographic Beat-Oriented Notation for music Tbon aims to be the fastest way to enter pitches, rhythms, meter and dynamic levels from a computer

null 11 Jan 23, 2020
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 36 Aug 29, 2021
Open source sheet music

The Mutopia Project The Mutopia Project offers sheet music based on editions in the public domain. All sheet music is written in LilyPond by volunteer

null 187 Sep 3, 2021
The git repository of the advanced drum machine

Hydrogen drum machine Hydrogen is an advanced drum machine for GNU/Linux, Mac and Windows. It's main goal is to bring professional yet simple and intu

Hydrogen 702 Sep 15, 2021
OpenSheetMusicDisplay renders sheet music in MusicXML format in your web browser based on VexFlow. OSMD is brought to you by PhonicScore.com.

OpenSheetMusicDisplay (OSMD) A MusicXML renderer for the Browser opensheetmusicdisplay.org About OSMD • Demo • Key Features • Limitations • How to Use

Open Sheet Music Display 800 Sep 15, 2021
music library manager and MusicBrainz tagger

beets Beets is the media library management system for obsessive music geeks. The purpose of beets is to get your music collection right once and for

beetbox 10.4k Sep 15, 2021
Bule-ish CD ripper

cyanrip Fully featured CD ripping program able to take out most of the tedium. Fully accurate, has advanced features most rippers don't, yet has no bl

Lynne 57 Jun 30, 2021
🎚️ Open Source Audio Matching and Mastering

Matching + Mastering = ❤️ Matchering 2.0 is a novel Containerized Web Application and Python Library for audio matching and mastering. It follows a si

Sergey Grishakov 489 Sep 14, 2021
Esoteric Programming Language

ORCΛ Orca is an esoteric programming language designed to quickly create procedural sequencers, in which every letter of the alphabet is an operation,

Hundredrabbits 3.4k Sep 14, 2021
A music composition library for Clojure and Clojurescript.

Leipzig A composition library for Clojure and Clojurescript by @ctford. Use Include it as a dependency in your project.clj, along with Overtone: [over

Chris Ford 428 Aug 15, 2021
Streaming music player that finds free music for you

Desktop music player focused on streaming from free sources Links Official website Mastodon Twitter Support channel (Matrix): #nuclear:matrix.org Disc

null 6.8k Sep 17, 2021