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: mclaren
Subject: Re: How to get irrational tuplets inside a regular meter like 9/8
Date: Tue, 8 Nov 2016 16:02:23 -0700 (MST)

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.

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?

The point is that whatever Lilypond is doing internally, on a computer with
64 bit integers, there is absolutely no reason whatsoever to arbitrarily
limit Lilypond to some small internal value such that the program crashes
when you try to enter a time signature above a few thousand. That's
ridiculous. 

Moreover, there's a good solid practical reason why musicians might want to
use large time signatures. Lots of different broken tuplets inside a measure
require a large time signature. There's absolutely no reason not to allow
one.

Naturally, the varoius people on this forum will try to claim that "no one
would ever want to do that" or "musicians should not be using lots of broken
tuplets in a measure."

Reality check: programmers are ont in the business of telling composers how
they should compose. 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. 



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/How-to-get-irrational-tuplets-inside-a-regular-meter-like-9-8-tp196323p196358.html
Sent from the User mailing list archive at Nabble.com.



reply via email to

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