Tom van der Hoeven <address@hidden> writes:
David Kastrup schreef:
David Kastrup <address@hidden> writes:
Tom van der Hoeven <address@hidden> writes:
Suppose I have
music = \relative c'{c b a g f e e f g a b c}
my instrument is limited so it cannot play the pitch f end below
I have to raise f e e f by a terts of an octave
Is there a function shift or can it be made such that
music = \relative c'{c b a g \terts{f e e f} g a b c}
is equivalent to
\relative c'{c b a g a g g a g a b c}
if you use :
terts = #(define-music-function (parser location ploep) (ly:music?)
#{ \transpose c e \relative c' $ploep #})
the c' after \relative should actualy be the last-pitch (in the example g)
Help will be appreciated
The current development version has a new definition of makerelative
allowing for
terts = #(define-music-function (parser location ploep) (ly:music?)
(make-relative (ploep) ploep
#{ \transpose c e $ploep #}))
Actually, looking at the pitches you ask for, you'll rather need
\modalTranspose here.
Thank you David,
I see you point. With \modalTranspose you can automatically change the
notes that are within the range of the scale.
I don't see that we are talking about the same thing. Your example was
supposed to transform f to a (a major third up) but e to g (a minor
third up). It seems like you want to stay in your mode. \transpose
does not do that.
But I change the notes based on visual inspection. In fact I colour
all notes f and lower in red, so that it catch the eye immediately.
I have no idea how that is supposed to be related to your original
request.
If I change a few successive notes I rather place no extra octave
changing marks on the first pitch. ( the first f after \terts{ )
It is clear that the pitches after \terts{..} might need extra octave
changing marks because they relate to the pith just before \terts{..}
Have you tried the code I proposed? Inserting \terts { and then some }
afterwards will then not change the octave relations at all.
So within \terts I want to know the absolute value of the g before
\terts{...}
Again, I have no idea what you want to say here.