lilypond-user
[Top][All Lists]
Advanced

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

Your Friendly Neighborhood LSR


From: Valentin Villenave
Subject: Your Friendly Neighborhood LSR
Date: Tue, 27 Nov 2007 14:13:33 +0100

Hello everybody,

I'm sure you all know about the LilyPond Snippet Repository, this
wonderful place where anyone can share his ideas, examples, tips and
tricks about LilyPond. Nevertheless, let me tell you more about it.

A lot more, in fact (as you may notice, this mail is a bit long...).

I'm currently the main LSR editor; it's a relatively quiet job (but
I'm counting on you folks to give me some more work in the next weeks
and months). Basically, I review the snippets, correct them, expand
them if needed, organize and tag them before approve them. Most of the
time, I have nothing to do but check the "approved" box so anyone can
see it.

http://lsr.dsi.unimi.it/LSR/html/whatsthis.html

But what /is/ a snippet?

A snippet is made of four things.

- a title (it has to be short and clear: most of the time it's better
to make a full continuative sentence like "Adding fingerings to your
score")

- a longer description, in plain text or HTML.
    --> HTML is generally better since it allows basic formatting, and
a much nicer result.
    --> The description has to be clear, and preferably include all
the important stuff for better indexation in the database: for
example, feel free to explicitely mention the command demonstrated in
your snippet (e.g. "You can add clusters using the \makeClusters
command".)
    --> Feel free to define and explain the musical terms you use: not
everyone is supposed to know what an "accordion Discant" is, or a
"piobaireachd"...

- the snippet itself.
    --> First rule of LSR is: do not add a \version line.
    --> Second rule of LSR is: do NOT add a \version line. The LSR is
always running a *stable* LilyPond version. If you have built your
snippet with a different version... see below.
    --> The better your code looks, the more useful it can be.
Remember to use proper indentation, add comments every now and then,
etc.

http://lsr.dsi.unimi.it/LSR/html/contributing.html

I'm aware you already know all that, but I thought it was worth a reminder.

Now for the really interesting part. As you might have noticed, LSR is
deeply evolving.

With almost 250 snippets (there were a lot more, but I had to remove
some duplicates), it has become a major LilyPond resource -- by the
way, as you may have noticed, the new user documentation (codename
GDP) will be built around the LSR, with an advanced integration of
some snippets.

To provide easier snippets ordering, browsing and searching, we (well,
mostly Sebastiano) have implemented a whole new system: instead of
putting your snippets in one single directory, you can now mark them
with one or more *tags*.

Yes, I did say "tags"; welcome to all web2.0 geeks, welcome to the
Youtube generation; you've dreamt of it, now it finally has happened.

This is actually the only idea I've ever had since I'm here (at least,
the only one that was adopted), so I'm particularly happy with it, and
I hope most of you guys will be too.

How does it work?

Very simply: when you post a snippet, you'll see several drop-down
menus; just use the frst one to select your first tag, the second one
if you need to add another tag, etc.

To prevent typo errors, you cannot invent new tags by yourself; in
such a case you'll have to suggest a tag publicly on the list, or
privately to one of the editors.

Now, let's talk about the way tags were chosen.

- First of all, you will see many tags beginning with a capital
letter. These are directly inspired from the documentation sections.
Such tags are more or less mandatory.

Here's the full list of Capitalized tags:

Pitches
Rhythms
Expressive marks
Repeats
Simultaneous notes
Staff notation
Educational use
Text
Vocal music
Chords
Piano music
Percussion
Guitar
Strings
Bagpipe
Ancient notation
Syntax, files, expressions
Titles
Midi
Paper, layoutTag
Breaks
Spacing
Contexts, engravers
Tweaks, overrides

- Next, you will find a few CamelCase tags (like WikiWords). These
indicate common subjects, that one can find in very different snippets
(actually, these tags may remind you of the former Documentation).
They are much less important than Capitalized tags, but might still be
useful.

Here's the list of CamelCaseTags:

SchemeLanguage
SymbolsAndGlyphs
ConnectingNotes
SpecificNotation
AutomaticNotation
ContemporaryNotation


- The last tags in the menu are lowercase tags. These are not really
meant to be added by the users, but you're welcome to play with them.
I usually add these "special" tags as tag #6 or #5, to clearly
separate them from important topic-related tags #0, #1, #2 etc.

Here's the list of lowercase_tags:

really_simple
really_cool
real_music
docs
workaround
version-specific
correction

  -->the "really_simple" tag is pretty self-explanatory; you're
welcome to contribute very basic snippets such as "how to ad a g", as
long as it hasn't been added yet.

  -->the "really_cool" tag is... just cool. This is the useless tag
where we all can point out what really amazes us in LilyPond (might be
useful someday for propaganda purposes). Personally, I tagged as
really cool such items as "Adding the current date to a score",
"Automatic spacing behaviour" or "Drawing skyline outline"... And i'm
looking forward to, someday, mark "Printing music in Braille" (Ralph,
where are you?) This is a matter of personal taste, of course. If you
find anything else "really_cool", be my guest :-)

  -->the "real_music" tag is meant for non-minimal examples. It has
been suggested that the GDP includes some "inspirational headwords"
(tm G.Percival&T.Baca Incorporated); the LSR can as well. For example,
I was very happy to mark the "Combining pedal notes with clef changes"
example.

  -->the "docs" tag is very special: adding this tag to a snippet
means that the tagged snippet will automatically be added to the
relevant section of the Documentation. I always want to add this tag
everywhere, but I have to warn you that if it's irrelevant sooner or
later Graham will remove it, so you might as well save him some work
:)

  -->the "workaround" tag indicates... workarounds.

  -->the "version-specific" tag is meant to mark snippets that only
work with LilyPond development version, or with an older version. This
is the ONLY case where you are allowed to break the first and second
rules of the LSR (see above). But beware: the LSR is running the
current *stable* LilyPond version; if you're demonstrating some new
feature, new syntax or whatever, you'll have to comment part of the
code, if not all of the code! In the same way, this tag helps me
finding outdated snippets.

  -->finally, the "correction" tag. If you notice some error or
possible improvement in a snippet that has been posted by someone
else, you won't be able to edit it directly (we're doing serious stuff
here, this isn't Wikipedia, come on :) However, you do have the
possibility to post a whole new snippet, as a corrected version of the
previous one. If you do so, please mark your new snippet as
"correction"; this way, I'll find it very fast, delete the former one,
replace it with yours and remove the "correction" tag.


OK, I think that's all.

Now -- assuming that you've read me so far -- I'd be glad to welcome
your questions, suggestions, criticism etc. Graham just told me that
contributors could sometimes have great ideas (yeah, that surprised me
too --not what he said, but *him* saying that...), so I'm just fishing
for ideas here.

I am currently tagging the whole LSR, so:

-- you can see examples of tagged snippets you you check out the first
snippets in the list https://lsr.dsi.unimi.it/list.php?type=snippet
(Titles that begin with an A, B, C etc.)

-- please don't wait for three months before having a great idea or
before realizing my current organization is pure nonsense. The sooner
you answer this message, the more your ideas are likely to be
accepted.

And remember: USE the LSR!

Regards,
Valentin

PS. Oh, and btw please don't seriously consider feeding the "Wikipedia" troll :)




reply via email to

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