lilypond-user
[Top][All Lists]
Advanced

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

Re: tranpose relative to the last pitch


From: Tom van der Hoeven
Subject: Re: tranpose relative to the last pitch
Date: Fri, 13 Dec 2013 12:51:40 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

David,

I hope I am not boring you!
My wife is playing in a orchestra the alt-violin part on the violin.
In order to accommodate that the sheet music has to be rewritten with the violin key, and pitches lower than g have to be changed. I first bring the original with the alto key in the lilypond format using relative mode. I change the key and the notes under g, taking into account the notes of the first and second violin. Eventually I change some notes around.
Most of the changes are an octave, a fifth or a third.

I started with different versions in different directories.
Now I change to one version with variables, functions and tags.

-- The ultimate goal is to place {} around the pitches involved and place the appropriate function before it.

-- The function I described does that except that occasionally octave changing marks at the first pith of the argument of the function and after the function are needed. I can live with it, but I am striving to avoid that.

I hope this clarifies my last mail.
I have not yet tried your suggestion with make-relative

Thanks for your time.

Tom

David Kastrup schreef op 13-12-2013 11:57:
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.





reply via email to

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