lilypond-user
[Top][All Lists]
Advanced

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

Re: How to get irrational tuplets inside a regular meter like 9/8


From: Carl Sorensen
Subject: Re: How to get irrational tuplets inside a regular meter like 9/8
Date: Wed, 9 Nov 2016 00:49:53 +0000
User-agent: Microsoft-MacOutlook/14.6.9.160926


On 11/8/16 4:02 PM, "mclaren" <address@hidden> wrote:

>Whatever Lilypond is doing internally, there's some arbitrary limit to the
>numbers it uses. Time signatures above some large value cause a crash. Too
>many tuplets of too many different kinds causes Lilypond to crash.
>
>There's no reason for that. None whatever. A competent programmer would
>not
>impose some arbitrary limit on internal number values, other than floating
>point overflow, or 64-bit integer limits. It seems safe to say that a
>64-bit
>integer is going to allow any time signature a user might conceivably
>need.
>Instead, when you get to time signature above a few thousand, Lilypond
>crashes and gives an error.

Well, currently LilyPond uses 64-bit integers for the numerator and
denominator of the Rational type.  So at least the design decision appears
to be 64-bit integers.

>
>That's stupid, because adding broken tuplets inside a measure quickly
>increases the time signature. A quick Fermi estimate shows that if you use
>prime number tuplets, you're going to get a time signature roughly on the
>order of whatever prime number you're using factorial times a few
>thousand.
>Since 10 factor is more than a mllion, using tuplets from (say) 3 through
>23
>is going to give you a time signature in the ballpark of
>23*19*17*13*11*7*5*3 times several thousand.  That value is ~
>111,546,435*10,000, or slightly over a trillion. Anyone who knows anything
>about how broken tuplets work will recognize instantly that when you've
>got
>7 or 8 or 10 prime numbers, finding the lowest common denominator is going
>to produce large numbers very quickly. That's 3rd grade arithmetic. Didn't
>the programmers who worked on Lilypond's internal ever pass 3rd grade
>arithmetic?

I guess not.  I only have a PhD in Materials Science and a BS in Physics.
SO I never passed 3rd grade arithmetic.  I'm sorry.  Perhaps you should
show us how LilyPond should be programmed.

>
>Reality check: programmers are ont in the business of telling composers
>how
>they should compose.

Reality check: nobody programming on LilyPond is in business.  We're all
doing it on a volunteer basis.

When you pay for LilyPond, then you have some basis for demanding
something.  Other than that, you are getting whatever value you get simply
off the generosity of others.

If someone offers you a free prime rib, it's pretty rude to complain it's
not filet mignon.

As a matter of fact, if someone offers you a free hamburger, it's pretty
rude to complain it's not a cheeseburger.

>Programmers should be in the business of getting the
>computer to represent the kinds of notatoins that musicians use. Musicians
>use broken tuplets nowadays. Lots of composers use lots of broken tuplets.
>Setting up Lilypond so that it crashes if you use too many broken tuplets
>in
>a measure is ridiculous. It's on the level of setting up Lilypond to crash
>if the user tries to enter a time signature other than 4/4, or note values
>smaller than a sixteenth note.

If you look at the founding documents for LilyPond, you will see that
LilyPond was not created to be a tool for representing New Complexity
scores.  In fact, the essay says:

"LilyPond is inspired by traditional manual engravings published by
European music publishers in and towards the end of the first half of the
twentieth century, including Bärenreiter, Duhem, Durand, Hofmeister,
Peters, and Schott. This is sometimes regarded as the peak of traditional
musical engraving practice. As we have studied these editions we have
learned a great deal about what goes into a well-engraved score, and the
aspects that we wanted to imitate in LilyPond.":

LilyPond's target is traditional musical engraving.  Anything else is
gravy.

It's getting a bit old hearing from you that the volunteer LilyPond
development team should be your slaves, to produce code that meets your
imperious demands, and satisfies your expectations.

One of the things I love about working on LilyPond is that it is
open-source, so if there's something I want, I can add it.  And then it's
available to others.

If you want the ability to use huge time signatures with broken tuplets,
nobody is stopping you from implementing it in LilyPond.  And if you came
and asked how it might be done, I think you'd get people offering help.

But when you come in and call us all stupid, it certainly destroys my
motivation for helping you.  The way you have insulted me and, more
importantly, my friends, who have spent thousands of hours creating a
wonderful tool makes me unwilling to even look at the problems you've
identified.  After all, there are plenty of other issues that are mor
significant for my use of LilyPond and that will help people who are
friendly, kind, and helpful.

I don't know why your emails take the tone that they do.  I'm not saying
you need to do anything different; you are free to behave as you choose
to.  But I have decided to take one shot at informing you that your
behavior decreases the likelihood that I will work on the problems that
are bothering you.

If you want to join the community in the spirit of LilyPond, welcome.  If
you just want to rant about how stupid we all are, I'd rather not hear any
more from you.

Sincerely,

Carl Sorensen




reply via email to

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