lilypond-user
[Top][All Lists]
Advanced

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

Re: Solution to 7 over sqr(71) time against integer polyrhythms


From: mclaren
Subject: Re: Solution to 7 over sqr(71) time against integer polyrhythms
Date: Thu, 17 Nov 2016 19:21:14 -0700 (MST)

It's easy to show that Kieren is being deceptive with his example. Here's how
he did it: Kieren used a Lilypond function to suppress printing of the
actual tuplet number, then used another Lilypond function to substitute a
text string with no connection to the actual tuplet number instead of the
real tuplet number. Meanwhile, the actual tuplets he used were small enough
to avoid Lilypond's internal calculation limit.

I've reproduced Kieren's example in this score, and for extra fun I've added
completely preposterous tuplet numbers in the ratio 16252638738:998272829.
Notice that Lilypond C*A*N*N*O*T actually handle a tuplet ratio like
16252638738:998272829 as nested tuplets. If you enter that ratio value in
the form of \tuplet 16252638738/998272829 for three or more nested tuplets,
Lilypond blows up and hangs. For more than 5 nested tuplets of ratio 100:99,
Lilypond also blows up and hangs.

<http://lilypond.1069038.n5.nabble.com/file/n196805/EXAMPLE_152-fake_100_to_99_tuplets.gif>
 

This is a crude form of trolling by Kieren. Here's the Lilypond code to do
it, and it's really not useful or productive. Kieren spent more time than I
want to waste clearing space around the numbers so the tuplet numbers don't
overlap, but that's not hard and would require only a little more work. I
wasted about a minute of my valuable time reproducing Kieren's Lilypond
example to show how his sleight-of-hand trick was done, but I'm not about to
waste more time getting it to look as pretty as Kieren's output. The
important point is to show that the code does not actually generate 100:99
tuplets, so it's deceptive at a fundamental level. The actual tuplets used
are nested 4:3 tuplets, which are small enough for Lilypond to handle.
Kieren almost certainly did the same sort of thing:  
  
   \version "2.18.2"

\header {
  title = "deceptive Lilypond code that prints out the required tuplets"
  subtitle = "without actually generating those tuplets"
  tagline = ""  % removed 
} 
 
\layout{
   
    \context {
        \Score
   
        \override BarLine.transparent = ##t
        proportionalNotationDuration = #(ly:make-moment 1 20)
        tupletFullLength = ##t
    }

}
   \new Staff { \clef "treble"
   
\override TupletNumber #'text = #f
\once \override Staff.TimeSignature #'stencil = ##f  

  
{\override TupletNumber #'text =
    #(tuplet-number::non-default-tuplet-fraction-text 100 99)
 c''2[ \tuplet 4/3 {b'2 \tuplet 4/3 {a'2 \tuplet 4/3 {g'2 \tuplet 4/3 {f'2
\tuplet 4/3 {e'2 \tuplet 4/3 {f'2 \tuplet 4/3 {g'2 \tuplet 4/3 {f'2 \tuplet
4/3 {e'2]}}}}}}}}}                                                              
                                                                                
                                             
  }
}


\new Staff { \clef "treble"
   
\override TupletNumber #'text = #f
\once \override Staff.TimeSignature #'stencil = ##f  

  
{\override TupletNumber #'text =
    #(tuplet-number::non-default-tuplet-fraction-text 16252638738 
998272829)
 c''2[ \tuplet 4/3 {b'2 \tuplet 4/3 {a'2 \tuplet 4/3 {g'2 \tuplet 4/3 {f'2
\tuplet 4/3 {e'2 \tuplet 4/3 {f'2 \tuplet 4/3 {g'2 \tuplet 4/3 {f'2 \tuplet
4/3 {e'2]}}}}}}}}}                                                              
                                                                                
                                             
  }
}

As you can see, these fake tuplets print right out. But they're not real. 

This kind of trolling by Kieren (and others) is not useful.  Yes, you can
bend and twist Lilypond into printing out tuplet numbers that bear no
relation to the actual tuplets generated by Lilypond...but that's not what
was asked for. Any reasonable person understands that the point of this
entire example is actually to get Lilypond to generate those tuplets so that
Lilypond can produce the MIDI for a Nancarrow-typle 1% acceleration, meaning
nested tuplets in the ratio 100:99, and then Lilypond can print out the
actual score and not a fake score done by inserting numbers on the page that
are never actually used in the music. 

Claiming that nested tuplets beyond 4:3 or 11:10 is a ridiculous request or
that it's not musically useful is ludicrous. Aside from Conlon Nancarrow,
many other composers have created music like this with continuous small
accelerations or decelerations over dozens or hundreds of notes (listen to
"Canon X"), and some have spent their entire careers doing it. To claim that
what some of the most respected contemporary composers have done is
"ridiculous" or "not musically useful" doesn't pass the straight-face test.
Conlon Nancarrow's lifetime body of work?  "Not musically useful"?  Come on. 

The deceptive Lilypond code shown above that prints those fake tuplets is
truly contemptible because it doesn't address the real issue.  The real
issue is that Lilypond doesn't allow nested tuplets beyond very small values
of tuplets (like 4:3, 7:5, etc.) for reasons having to do with internal
integer limits on calculations in Lilypond.  Now, that truly is ridiculous.
We're dealing with modern computers with 4 or 8 or 16 gigs of RAM or more,
multi-core CPUs with full floating point units in hardware, and hard drives
with terabytes of storage. And you're telling me all this computing power is
incapable of calculating an approximation to .99^10 or .99^20 or .99^50? 
You're telling me that that approximation of .99^50 can't be turned into an
integer with some negligible error in the approximation? Please.  

As always in America, people spend most of their time and energy demonizing
the person who points out a problem, rather than fixing that problem. This
is standard, typical, usual and quotidian in 21st century America.  When
Wells Fargo employees pointed out recently that Wells Fargo was generating
fake accounts to steal from their depositors, the solution was to fire the
employees who spoke out. 

And we wonder why America is doing nothing to stop global warming...



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Solution-to-7-over-sqr-71-time-against-integer-polyrhythms-tp196671p196805.html
Sent from the User mailing list archive at Nabble.com.



reply via email to

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