[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Microrhythm
From: |
Carl Sorensen |
Subject: |
Re: Microrhythm |
Date: |
Tue, 22 May 2018 16:41:44 +0000 |
User-agent: |
Microsoft-MacOutlook/10.d.0.180513 |
On 5/21/18, 10:02 PM, "lilypond-devel on behalf of metachromatic"
<address@hidden on behalf of address@hidden> wrote:
=========
Different percentages of microrhythm will require correspondingly
larger tuplets, and, due to the bad design decision to represent
rhythms internally in Lilypond as integers, you'll soon run out of
integers to represent extremely large tuplets as the microrhythm
fraction changes. This is a fatal flaw in Lilypond's design which of
course no one has ever bothered to fix and never will lift a finger to
fix.
The solution from the point of view of the progammers is to hurl
insults at people like me who point out the design flaw. The solution
from the point of view of users is to abandon Lilypond and use a MIDI
editor to change the number of MIDI ticks in each microrhythm note,
bypassing Lilypond's limitation of integer internal representation of
durations. Standard stuff. As always, users regard programmers as a
form of damage, and route around them.
The only person in this conversation I see hurling insults is you.
LilyPond is not intended as a MIDI editor. It's reason for being is to create
printed output. The MIDI output is explicitly defined as being largely
intended to help in validating that the music is entered correctly.
If you would like LilyPond to function better as a MIDI editor, I'm sure that
patches to resolve the "fatal flaw" would be carefully considered for inclusion
in LilyPond.
BTW, it's trivial in Lilypond to get the program to print out
entirely irrational time signatures or note values with square root
(or third root, or whatever) appended. Turn the time signature off and
then enter code to get Lilypond to print the radical sign with
appropriate numbers inside, etc, while approximating irrational time
signature and/or note values with a large integer ratio. The same
problem applies, however -- Lilypond does OK if you use one or two
irrational tuplet values, like (say) 3 in the time of the square root
of 11, or the square root of 17 in the time of the cube root of 71,
but if you include more than a handful of different such irrational
values you quickly run out of integers with which to represent such
numbers internally within Lilypond, and the program barfs and says
"moment not increasing. Aborting interpretation" and halts. Since
this is a major bug, naturally it has never been addressed, and
obviously it never will be addressed by any of the Lilypond
programmers. Standard, usual, typical, and quotidian.
You may not realize it, but this paragraph shows that LilyPond does what it is
intended to do -- generate printed output, even with non-traditional music.
And non-traditional music is somewhat outside of LilyPond's core goal, which is
to automatically generate music according to best engraving practices for
common period music.
And for my personal interests in LilyPond, fixing the "major bug" of failing to
work with large irrational tuplet values and time signatures is completely
uninteresting. I'd much rather spend my limited time working on things that I
personally believe are much more significant in meeting LilyPond's key goal.
For example, my next two projects are improving single-stem tremolos and trying
to make the autobeaming algorithm match up better with the human rules for beam
generation.
I first got started in LilyPond development because I wanted fret diagrams, and
they didn't exist in LilyPond. Rather than complaining about the developers
who wouldn't implement them, I jumped in and developed fret diagrams, first as
a markup, and then as a real element of LilyPond, with contexts and engravers.
If you want to change the fundamental internal representation so that it can
work with large irrational time signatures and tuplet values, please go ahead
and do so. As long as the code your write meets LilyPond standards, I'm sure
it will eventually get accepted. And if it doesn't meet the standards, you'll
get help modifying it to make it meet the standards.
<snip>
And here's the Lilypond code for getting irrational duration rests
(square root of 3: 1 and the square root of 7:1, in this case)
approximated by the large integer ratios 1351/780 and 1307/494, which
are accurate to about 1 part in 10,000, in combination with
conventional quarter notes. You can use a simple rational
approximation program to approximate any desired irrational value,
like the square root of 71, using large integer ratios within
Lilypond. It would be nice if this process of rational approximation
could be done inside Lilypond -- it's a simple version of Euclid's
algorithm and could certainly be made into a simple scheme function.
Printing out the irrational tuplets and/or irrational time signature
is a really simple scheme function that would take some basic user
input (like "Square root of which number for tuplet?") and spit out
the appropriate values inserted in the code below. Since none of the
programmers will ever lift a finger to do it, I'll see if I can write
such a scheme function if I get time. Doesn't sound very hard (fatal
last words!).
It seems to me like 1 part in 10,000 is certainly more accurate than is needed.
But I'm an engineer, so I regularly work with approximations and am not
bothered by undetectable differences.
Why should any "LilyPond programmer" "lift a finger" to do work that you want,
instead of work that they want? Or for that matter, to do work that you want
instead of doing something other than work on LilyPond? As far as I can see,
you've offered nothing except castigation to those programmers. Have you
offered to pay somebody to make the changes you'd like? Have you asked anybody
what it would take to get them interested in attacking your problem (and it is
your problem, not theirs)? Browbeating of volunteers seldom works, in my
experience. There's an old English saying "You get more flies with honey than
vinegar". You've tried vinegar, but I haven't seen any honey.
Hoping that the relationship can be reset,
Carl
- Microrhythm, Dave Tremblay, 2018/05/14
- Re: Microrhythm, Hans Åberg, 2018/05/14
- Re: Microrhythm, Hans Åberg, 2018/05/14
- Re: Microrhythm, Torsten Hämmerle, 2018/05/19
- Re: Microrhythm, Torsten Hämmerle, 2018/05/19
- Re: Microrhythm, Hans Åberg, 2018/05/19
- Re: Microrhythm, metachromatic, 2018/05/22
- Re: Microrhythm, Hans Åberg, 2018/05/22
- Re: Microrhythm,
Carl Sorensen <=
- Re: Microrhythm, David Kastrup, 2018/05/22
- Rational, Hans Åberg, 2018/05/22
- Re: Rational, Hans Åberg, 2018/05/22
- Re: Rational, David Kastrup, 2018/05/22
- Re: Rational, Hans Åberg, 2018/05/22
- Re: Rational, David Kastrup, 2018/05/22
- Re: Rational, Hans Åberg, 2018/05/22
- Re: Rational, David Kastrup, 2018/05/22
- Re: Rational, Hans Åberg, 2018/05/22
- Re: Rational, David Kastrup, 2018/05/22