[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Introducing the LIlypond Snippet Repository

From: Han-Wen Nienhuys
Subject: Introducing the LIlypond Snippet Repository
Date: Sun, 30 Jan 2005 16:38:02 +0100

[continuing on lp-devel]

address@hidden writes:
> *** The Lilypond Snippet Repository ***
> I would like to invite the user community of Lilypond (and developers,
> if they think it's useful) to join a project: to build a consistent
> searchable set of Lilypond snippets that solve common problems.
> In the last weeks I've realised that Lilypond has all the features of a
> programming language, and yet at the same time many of its users are not
> programmers. The idea of snippets in the manual is fantastic, but my
> problem is always location: unless I read the chapter on rehearsal marks
> (that I don't need) I won't ever be able to position a \fermata on a bar
> line.
> The other problem with snippets is that you cannot put thousands of them
> in a manual, or it becomes unreadable.
> What sets apart Lilypond snippets from standard forms of programming is
> that when we search  for a snippet, we are really searching for music (a
> score). Finding code on the web is very difficult--it takes time to
> realise something you see in an old posting is what you want.
> So, in essence, my proposal is: we (everybody) should try to contribute
> snippets that do useful things in a centralised searcheable repository.
> When I want to position a fermata on a bar line, I should be able to
> just put "fermata bar line" in the search engine and get a *list of
> score snippets* (I mean--graphics), which I can easily scan for what I'm
> searching for.
> My first tentative is here:

This is so incredibly way way cool! I fully support this initiative,
and will gladly work to make running lily on your server as flawless
as possible.

A couple of ideas:

  * Perhaps you can work together with Graham to copy snippets from
    the manual. If the LSR is a success, we can drop the more esoteric
    examples from the manual.

  * I suspect that you could import the input/{test,regression}/
    directory wholesale.

  * Also, the vast experience on the list with troubleshooting and
    tweaking lily may be put to good use here. Mats?

  * is there a way to condense the DB into an file/package, both
    for offline viewing?

    Oh, wait you mentioned that already.

  * Maybe it would be a good idea to have separate snippet DB for each
    branch (ie. a 2.4 and 2.6 database.). It is possible to run
    multiple versions of Lily alongside eachother. If you can't make
    it work, that is a serious bug, and I will gladly work with you to
    make it work

  * every time we branch a devel version, the last stable DB is copied
    over (eg. 2.7), and we let the snippets evolve along with the
    branch. Once we release 2.8, the number is changed from 2.7 to 2.8
    This probably also requires that you can create a test-run DB,

    Hmmm. Or we developers should include an offline version in the
    RPM/docs package, and run the entire collection as a release-test,
    just like we don't release until the entire doc site build without

  * If I understand you correctly, you run untrusted .ly snippets
    unattended? In that case, I hope you are running lilypond with
    --safe, preferably sandboxed/chrooted. It is possible to do

    #(system "rm -rf / ")

    and other nasty code from .ly if --safe isn't used.

> The engine uses state-of-the-art multi-index text ranking techniques
> (that's one of my research topics). Snippets are compiled in the night
> and stored in binary form in a database.

OK, just a minor concern here; are the state-of-the-art techniques
freely available: will there be any trade-secret/patent/copyright
problems in the future, or is the code available now?

Hey, if you want, we can endow you with the official LilyPond
Development Team title of SNIPPET MEISTER, and have all the official
benefits, such as groupies, free beer at the Linux Audio Conference,
etc. :-)


 Han-Wen Nienhuys   |   address@hidden   | 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]