lilypond-devel
[Top][All Lists]
Advanced

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

Re: problematic commit


From: Valentin Villenave
Subject: Re: problematic commit
Date: Thu, 28 Oct 2010 01:43:21 +0200

On Thu, Oct 28, 2010 at 12:18 AM, Jonathan Wilkes <address@hidden> wrote:
> Actually Pd has an ever-growing set of GUI
> objects-- you can see some of them being shown
> off in the image on Pd's Wikipedia page.

Well, that was kinda my point :-D

Nah, just kidding. Pure Data looks simply gorgeous.

For a Plan-9 application.

> Well, no, I'm referring to Lilypond here.
> What I mean is that
> a) "\tempo 4=72" looks easy, but if someone
> asks how to get that tempo but have it
> display as quarter note = "ca. 72", as far as I
> know one has to have two two \tempo commands,
> one as above, and then followed with the
> "\tempo \markup" idiom.  Then you have to
> deal with why "\note" has two different arg
> types (one string and one number).

It's interesting that you mention that (since I was the one who first
tried to rethink the \tempo command a couple years ago, albeit much
less nicely than Reinhold's implementation).

I was a Sibelius power-user for, like, five years (from Sibelius 2 to
Sibelius 5). And before that, I used Encore for a few years and wrote
dozens of scores using these programs. And I do remember that the
F***ing tempo marks were an absolute nightmare in each one of them.
Mixing note-glyphs with text, giving up on any hope that the MIDI
stuff would understand the indications, and (above all) never bloody
knowing which exact Staff, which exact bar, the mark was going to be
attached to (let alone proofreading separate instrumental parts)...
(And: Yes, I do know that these objects have (supposedly) "anchor
points", etc. In theory it sounds great, but concretely it's always
somewhere between unreliable and rubbish.)

What will your average user do with these programs? Something crappy,
that remotely looks like an appropriate tempo indication. What will
your average user do with Lily?

- first off, let's print a text indication. OK; (most users won't
never go past that stage, and will live happily ever after)

c'^"Allegro"

- Oh, I need bold. OK, then I need a markup. OK;

c'^\markup \bold "Allegro"

- Oh, then I could very well put this as a proper tempo mark. OK;

\tempo \markup \bold "Allegro"

etc.

Don't get me wrong: there *is* a learning curve. However, that's the
difference with our contenders: in a Free Software /project/, the
learning curves never ends (unless you reach the
zen-master/buddha/stallman stage, I guess). Whereas a proprietary
program is but a /product/: once you've reached its limits, there's
just nothing beyond. Live with it, suck it up and stfu.

> b) There are situations where a slur starts
> above the notes, and after a line break it
> would look better going in the opposite
> direction.  I don't see that in many professional scores, so maybe this is 
> just my
> own little peculiarity, but the same problem
> holds for slurs over linebreaks where there is
> a collision or spacing issue and one wants
> to adjust the slur only after the break.

I think Graham already made my point. With Sibelius, I used to spend
roughly an hour per *system*, tweaking everything, pushing
accidentals, solving collisions, manually removing tuplet numbers,
faking stuff using invisible voices that, in turn, caused new
collisions etc. And if (heavens forbid) I ever had *one* measure to
insert or to remove, then I just add to start over (I had long lost
all hope of automatic spacing or automatic system breaks: if I ever
used auto-spacing, that was on *one* measure at a time, and even then
I had to manually tweak things afterwards).

The shape of slurs and ties was precisely one of my most excruciating
and frustrating obsessions. So, hell no, having the ability to move
stuff with your mouse is certainly not a plus. It merely allows you to
repair the stupid mistakes that the software should *not* make in the
first place.
LilyPond does make mistakes, of course. However repairing those
mistakes is quite easier than using your mouse (especially now that we
have predefined shortcuts like \stemUp and the like). And most of all,
you can rely on the fact that your tweaks will *stay* if you ever
change the page layout. LilyPond (unlike *all* graphical software I've
ever tested, even MuseScore) does NOT suddenly decide to change stuff
without your consent, just because you have added one measure
somewhere.

> I'm just curious in general how your audience
> has responded to the way in which some small
> details are tweaked in Lilypond.

Well, it does require a progressive approach.

(beware: long story long)

The audience is generally divided in two categories before we even
start: there are those who are confident that they know better, and
that their Finale/Sibelius/whatever they already have on their
computer is just unmatchable and they're wasting their time anyway.
This group is actually my main target, because the other group (those
who are genuinely eager to learn, either because they've never seen a
computer produce music scores at all or either because they find
graphical notation software unappealing, complicated or unsatisfying)
is the easy one: from the moment they'll see the first PDF appear in
front of them, they'll just be amazed and fascinated.

Those who know what a programming language looks like (let me
rephrase: those who, at least once in their lives, have seen a
webpage's source code), quickly get the picture, and then it will only
be a matter of whether they have the time and motivation to read the
docs.

To everybody else (in the potentially-hostile group), the main concern
is always: "oh, there's no way this will be as configurable as
Finale/Sibelius/whatever I have at home". They're afraid that the
software will dictate them with a paradigm (the fact that most of the
exposed syntax is in English sure doesn't help) that they won't be
able to escape. Remember: these users are *used* to having a shitty
output by default, so whenever they discover a new software their
first thought is "will I be able to fix this software's shortcomings
and flaws, like I usually do with Finale/Sib/whatever I have at home?"

This belief (this fear) quickly vanishes, in two steps: first, when
they see the default PDF output they immediately realize (unless
there's bad faith anyway) that the default paradigm is actually not
that bad. Then there are questions everywhere "How do I do this? How
can I do that? Is it possible to add this to the score? Can I replace
this with that?" etc. There comes the actual learning curve (see
above). First I show them how to add simple text, then I introduce
\markup, then I introduce markup commands. \override is not that hard
to introduce either (although, once again, the fact that EVERYTHING is
in bloody English sure does *not* help).

All in all, one afternoon is enough to let them copy classical music
on their own.
Then comes the time where I merely give them a glance at what is
actually possible with LilyPond. This part works *great* with children
(age 12 to 17, both girls and boys -- but you have to make sure that
their laptop don't have Wifi access, otherwise they're all on facebook
and are about as open-minded as zombies.)

Quite strangely, simple substitution functions (that I was quite
excited about as a beginner) doesn't interest them as much as things
like http://lsr.dsi.unimi.it/LSR/Item?id=390
This gives me a good opportunity to show them the LSR, the docs, etc.
And, of course, the mailing lists. (The "forum", as they call it,
since they very much prefer to use the Nabble interface than using an
e-mail client.) It does help quite a bit that we have a
French-speaking mailing list.

Okay, bedtime story's over. I'm starting to sound like Ken "Helios" Starks.

All-righty then.

Valentin.

PS: I actually haven't anything against PureData. You may remember
this long article I wrote in 2008, where I covered it at length:
http://news.lilynet.net/The-LilyPond-Report-10

PPS: http://cm.bell-labs.com/plan9/screenshot.html
Looks familiar? :-p



reply via email to

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