antlists <antli...@youngman.org.uk> writes: > On 17/05/2020 00:04, David Kastrup wrote: >> antlists <antli...@youngman.org.uk> writes: >> >>> On 16/05/2020 23:19, David Kastrup wrote: >>>>> As I say, I think this function or something similar has made its way >>>>> into lilypond proper. >>> >>>> What advantage over the solution using make-relative that I posted do >>>> you see here? >>> >>> Because if I understand the OP correctly, what he wants is >>> \resetRelativeOctave, which is already a standard part of lilypond? >> What he wants is music used twice within a function not to end up in >> different octaves. > > Isn't that what \resetRelativeOctave does?
No? \resetRelativeOctave resets the current relative position to a specified _absolute_ pitch. But in the given situation, the function does not _have_ a specified absolute pitch to revert to. > So let's give a very simple example of what I think he was trying to > achieve ... > > arpeggio = { c e g c } > \new Staff { > \relative c' { > \arpeggio \resetRelativeOctave c' > \arpeggio \resetRelativeOctave c' > \arpeggio > } > } He was writing a _function_ using an expression twice. Not ad-hoc code. This function would not know what to use for c' here. > Despite being in relative mode, all the arpeggios will now start on > middle C. The OP's eXample is more complicated but as far as I can > tell this is what he's aiming at. > > Oh - and I believe > > arpeggio = { \resetRelativeOctave c' c e g c } > > would also work. I don't know for certain because I haven't had this > problem since Pennsylvania. In that case, it would make much more sense to write arpeggio = \relative c' { c e g c } since then arpeggio does not leave the current relative position lying around in some obscure location but rather does not touch it at all. -- David Kastrup