lilypond-user
[Top][All Lists]
Advanced

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

Re: Beginner's questions about long repeats & MIDI files


From: Flaming Hakama by Elaine
Subject: Re: Beginner's questions about long repeats & MIDI files
Date: Fri, 14 Oct 2016 16:22:06 -0700


3.) I sometimes want to write repeats as | 1,3 | 2 | 4 |

Is there any better way than the following?

\alternative {
  {
    \set Score.repeatCommands = #'((volta "1, 3"))
    ...
  }
  {
    ...
  }
  {
    \set Score.repeatCommands = #'((volta "4") end-repeat)
    ...
  }
}

Is there a way to make this both appear correctly and play correctly
in a midi file?


Regarding the custom endings, what's wrong with this approach, such that you need a better approach?  If you are looking for a simpler way to enter it, you can write a function.

Similar to an earlier question, no, MIDI doesn't honor or respect repeats.
So, you need to add the repeated sections in a MIDI-only tag.


\version "2.19.15"

voltaCustomThreeEndings = #(define-music-function (parser location repMusicCommon repEndingA repMusicA repEndingB repMusicB repEndingC repMusicC) (ly:music? markup? ly:music? markup? ly:music? markup? ly:music?) #{
    \set Score.repeatCommands = #'(start-repeat)
    $repMusicCommon

    \set Score.repeatCommands = #(list (list 'volta repEndingA))
    $repMusicA

    \set Score.repeatCommands = #(list (list 'volta repEndingB))
    $repMusicB

    \set Score.repeatCommands = #(list (list 'volta #f) 'end-repeat (list 'volta repEndingC))
    $repMusicC

    \set Score.repeatCommands = #'((volta #f))
#})

musicCommon = { e'1 1 1 1 }
musicEndingA = { a'1 }
musicEndingB = { b'1 }
musicEndingC = { c'1 }

melody = {
    \voltaCustomThreeEndings
        \musicCommon
        "1,3" { \musicEndingA }
        "2" { \tag #'MIDI { \musicCommon } \musicEndingB }
        "4" { \tag #'MIDI { \musicCommon \musicEndingA \musicCommon } \musicEndingC }
}

\score {
    \header { piece = "PDF Version" }
    <<
        \keepWithTag #'(PDF) \melody
    >>
    \layout {}
}


\score {
    \header { piece = "MIDI Version" }
    <<
        \keepWithTag #'(MIDI) \melody
    >>
    \midi {}

    %  You can print this MIDI version to validate on paper,
    %  just ignore the repeat signs and endings.
    \layout {}
}



David Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
address@hidden
self-immolation.info
skype: flaming_hakama
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


reply via email to

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