polyrhythm with multiple tempi

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

polyrhythm with multiple tempi

Kieren MacMillan
Hi all,

Please consider the following snippet:

%%%  SNIPPET BEGINS
\version "2.19.83"

\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    \remove "Metronome_mark_engraver"
  }
  \context {
    \Staff
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
    \consists "Metronome_mark_engraver"
  }
}

slower = {
  \tempo 4=80
  \scaleDurations 120/80 { \repeat unfold 12 { c'4 } }
}

faster = {
  \tempo 4=120
  \repeat unfold 16 { c'4 }
}

\score {
  <<
    \new Staff \slower
    \new Staff \faster
  >>
}
%%%  SNIPPET ENDS

The polyrhythm stretches out and lines up as expected, but I can’t seem to get the barlines to offset [despite moving the engravers I thought were required]. Corrections/hints appreciated.

Thanks,
Kieren.
________________________________

Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: polyrhythm with multiple tempi

Lukas-Fabian Moser
Hi Kieren,

Am 10.12.19 um 22:54 schrieb Kieren MacMillan:

> Hi all,
>
> Please consider the following snippet:
>
> %%%  SNIPPET BEGINS
> \version "2.19.83"
>
> \layout {
>    \context {
>      \Score
>      \remove "Timing_translator"
>      \remove "Default_bar_line_engraver"
>      \remove "Metronome_mark_engraver"
>    }
>    \context {
>      \Staff
>      \consists "Timing_translator"
>      \consists "Default_bar_line_engraver"
>      \consists "Metronome_mark_engraver"
>    }
> }
>
> slower = {
>    \tempo 4=80
>    \scaleDurations 120/80 { \repeat unfold 12 { c'4 } }
> }
>
> faster = {
>    \tempo 4=120
>    \repeat unfold 16 { c'4 }
> }
>
> \score {
>    <<
>      \new Staff \slower
>      \new Staff \faster
>    >>
> }
> %%%  SNIPPET ENDS
>
> The polyrhythm stretches out and lines up as expected, but I can’t seem to get the barlines to offset [despite moving the engravers I thought were required]. Corrections/hints appreciated.

\scaleDurations does not scale the measure length as well. Try inserting

   \set Timing.measureLength = #(ly:make-moment 12/8)

in the \slower part.

See you in Salzburg!
Lukas


Reply | Threaded
Open this post in threaded view
|

Re: polyrhythm with multiple tempi

Kieren MacMillan
Hi there,

> \scaleDurations does not scale the measure length as well. Try inserting
>   \set Timing.measureLength = #(ly:make-moment 12/8)
> in the \slower part.

That’s great! Thanks.

Note for future readers: the order of operations is important! The override must happen *after* the \time command. So the final [working] snippet is

%%%  SNIPPET BEGINS
\version "2.19.83"

\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    \remove "Metronome_mark_engraver"
  }
  \context {
    \Staff
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
    \consists "Metronome_mark_engraver"
  }
}

slower = {
  \time 4/4
  \tempo 4=90
  \set Timing.measureLength = #(ly:make-moment 12/9)
  \scaleDurations 120/90 {
    \repeat unfold 16 { c'4 }
  }
}

faster = {
  \time 4/4
  \tempo 4=120
  \repeat unfold 20 { c'4 }
}

\score {
  <<
    \new Staff \slower
    \new Staff \faster
  >>
}
%%%  SNIPPET ENDS

> See you in Salzburg!

Looking forward to it!
Kieren.
________________________________

Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: polyrhythm with multiple tempi

Stefano Troncaro
I've nothing to add to the discussion, but I felt the need to express that I am completely impressed by how easily Lilypond manages this. This is awesome!

El mié., 11 dic. 2019 a las 11:10, Kieren MacMillan (<[hidden email]>) escribió:
Hi there,

> \scaleDurations does not scale the measure length as well. Try inserting
>   \set Timing.measureLength = #(ly:make-moment 12/8)
> in the \slower part.

That’s great! Thanks.

Note for future readers: the order of operations is important! The override must happen *after* the \time command. So the final [working] snippet is

%%%  SNIPPET BEGINS
\version "2.19.83"

\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    \remove "Metronome_mark_engraver"
  }
  \context {
    \Staff
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
    \consists "Metronome_mark_engraver"
  }
}

slower = {
  \time 4/4
  \tempo 4=90
  \set Timing.measureLength = #(ly:make-moment 12/9)
  \scaleDurations 120/90 {
    \repeat unfold 16 { c'4 }
  }
}

faster = {
  \time 4/4
  \tempo 4=120
  \repeat unfold 20 { c'4 }
}

\score {
  <<
    \new Staff \slower
    \new Staff \faster
  >>
}
%%%  SNIPPET ENDS

> See you in Salzburg!

Looking forward to it!
Kieren.
________________________________

Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: polyrhythm with multiple tempi

Devin Ulibarri-2
On Wed, 2019-12-11 at 15:22 -0300, Stefano Troncaro wrote:
I've nothing to add to the discussion, but I felt the need to express that I am completely impressed by how easily Lilypond manages this. This is awesome!


Me too!

Devin