Hi,
2011/4/13 Tom Cloyd<address@hidden>:
I want to have a PDF score with simple repeats, and a midi file in which all
repeats are taken. This is revision of a program file which has been working
perfectly, except that the midi evidence no repeats. I'm achieving all
engraved repeats using the \repeat volta 2{ music} convention.
I'm using Lilypond ver. 2.13.53. Following the Notation Reference section
3.5.4 - "Repeats in MIDI", I have changed the \score blocks in my ly file to
read:
\score {
\context Staff = "guitar" \with {
\consists "Span_arpeggio_engraver"
}
<<
%\set Staff.instrumentName="Classical Guitar" %puts name to left of line
one
\set Staff.midiInstrument="acoustic guitar (nylon)"
\set Staff.connectArpeggios = ##t
\context Voice = "melody" \melody
\context Voice = "alto" \alto
\context Voice = "bass" \bass
>>
\layout {
indent = 0.0\cm % remove indent on first staff
}
}
\score {
\unfoldRepeats
<<
%\set Staff.instrumentName="Classical Guitar" %puts name to left of line
one
\set Staff.midiInstrument="acoustic guitar (nylon)"
\set Staff.connectArpeggios = ##t
\context Voice = "melody" \melody
\context Voice = "alto" \alto
\context Voice = "bass" \bass
>>
\midi { %causes generation of midi score\
}
}
I see two possible reasons. First, you don't initialize a staff in
your midi-score. Second, you use \context while \new might be more
appropriate.
I'd also advice you to write your whole structure to a variable,
instead of writing it twice. I mean something like
structure = {
\new Staff = "guitar" \with { \consists "Span_arpeggio_engraver" }
<<
%\set Staff.instrumentName="Classical Guitar" %puts name to left of line one
\set Staff.midiInstrument="acoustic guitar (nylon)"
\set Staff.connectArpeggios = ##t
\context Voice = "melody" \melody
\context Voice = "alto" \alto
\context Voice = "bass" \bass
>>
}
% And then
\score {
\structure
\layout {
indent = 0.0\cm % remove indent on first staff
}
}
\score {
\unfoldRepeats \structure
\midi { %causes generation of midi score\
}
}
Hope this helps,
Janek