On 11/8/16 4:02 PM, "mclaren" <metachroma...@gmail.com> 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 _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user