lilypond-user
[Top][All Lists]
Advanced

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

Re: Setting relative pitch as a global declaration?


From: Alasdair McAndrew
Subject: Re: Setting relative pitch as a global declaration?
Date: Thu, 10 Feb 2022 22:59:49 +1100

Dear Christian,

Many thanks indeed - I hadn't thought of using \transpose for this purpose, although I have indeed used it for other reasons.   Several of the initial responses to my query recommended \transpose as well.  It still means though that I need a separate declaration for every score block, or for every invocation of \global_two.  In this sense, although it's a much more efficient and flexible approach, it requires the same amount of work as changing the relative pitch for each \new \Voice for part two. I was hoping there was some neat way of including the relative pitch in the global declaration of the parts (global_one and global_two in my example).  But I do like the neatness of your method and of your function.

The idea of reading through the notation manual systematically is excellent.  The issue for me is that I only really have time to explore and use Lilypond a few times a year (I get too busy the rest of the time), and my notational needs are generally fairly simple.  

Thank you again,
Alasdair

On Thu, Feb 10, 2022 at 7:27 PM Christian <christian.masser@gmail.com> wrote:
Hi Alasdair!

Two pretty easy options here as transposing a whole lot of stuff is pretty straight forward in lilypond:

You could exchange the lines like
   \new Staff << \global \global_two \global_prelude \prelude_two >>
with
   \new Staff << \transpose #FROM #TO { \global \global_two \global_prelude \prelude_two } >>
with #FROM and #TO being the respective pitches you want to transpose the music.

Or you could use a custom transpose function, that you define at the beginning, for example:
   tsp =
      #(define-music-function (parser location msc) (ly:music?)
         #{
            \transpose #FROM #TO #msc
         #}
   )
and exchange the same line from before with
   \new Staff << \tsp { \global \global_two \global_prelude \prelude_two } >>

In the first option you'd have to exchange the transposition for every movement, in the second version only at the one point in the beginning of the document.

Hope this helps,
Christian

PS: I really recommend you to work through the notation manual systematically even though you may not need most of it right now.

Am Do., 10. Feb. 2022 um 00:18 Uhr schrieb Alasdair McAndrew <amca01@gmail.com>:
Thank you all so much for your help and advice.  Given that there might have been some confusion about what I was asking, I've added below a sort of template of what I'm doing.  Note that this is a duet, and the notes for the first part (first instrument) are given as variables *_one; and for the second part (second instrument) as *_two.

The use of the "french" clef is just to check with the original - they will be changed to "\clef treble" before final typesetting.

What I want to do is to produce a version of this where the second part is taken by a bass instrument.  This will require two things: first a change of the \global_two decoration, and second a change of relative pitch in its music.

There are 8 movements, which would mean - in my example - changing the relative pitch for each variable containing music for this second part.  Given that I like to separate the notes from the movement and instrument descriptions, I was hoping that this could be done "in one go" as it were.  I was wondering if it would be possible to define one's own version of \Voice in such a way that included a relative pitch - maybe using a Scheme function.  

Anyway, I shall read all your messages with greater focus later today.  Again, many thanks.

Alasdair

--
global_one = {
  \set Staff.instrumentName = #"Recorder"
  \override Staff.InstrumentName.self-alignment-X = #RIGHT
  \set Staff.midiInstrument = #"recorder"
  \clef french
}

global_two = {
  \set Staff.instrumentName = #"Recorder"
  \override Staff.InstrumentName.self-alignment-X = #RIGHT
  \set Staff.midiInstrument = #"recorder"
  \clef french
}

global_prelude = {
  \time 4/4
  \key c \major
}

global_menuet = {
  \time 3/4
  \key c \minor
}

prelude_one = \new Voice \relative c'' {
  notes notes notes
}

prelude_two = \new Voice \relative c'' {
  notes notes notes
}

menuet_one = \new Voice \relative c'' {
  notes notes notes
}

menuet_two = \new Voice \relative c'' {
  notes notes notes
}

\score {
\new StaffGroup <<
   \new Staff << \global \global_one \global_prelude \prelude_one >>
   \new Staff << \global \global_two \global_prelude \prelude_two >>
  >>
  \layout { }
  \header{
    piece = \markup {\fontsize #2 {Prelude}}
  }
  \midi {
  \tempo 4 = 144}
}

\score {
\new StaffGroup <<
   \new Staff << \global \global_one \global_menuet \menuet_one >>
   \new Staff << \global \global_two \global_menuet \menuet_two >>
  >>
  \layout { }
  \header{
    piece = \markup {\fontsize #2 {Menuet}}
  }
  \midi {
  \tempo 4 = 144}
}

On Wed, Feb 9, 2022 at 6:16 PM Alasdair McAndrew <amca01@gmail.com> wrote:
I'm sorry about all these damn-fool queries of mine; I promise to go back
under my rock soon.  Anyway:
In the current 18th century suite I'm typesetting (for two treble
instruments without bass), there is a separate variable (containing the
notes) for each part of each movement.  Then there are global declarations
about the instruments, and the key and time-signature of each movement; and
these are all brought together in score blocks.

The one thing I don't know how to do is to declare the relative pitch
globally.  Thus, each music variable looks like

movement1_part1 = \new Voice \relative c'' { notes, notes, and more notes }

The difficulty is that I want to re-set the second part for a bass
instrument, so it might start off as

movement1_part2 = \new Voice \relative c { notes, notes, and more notes }

Currently this means changing the relative pitch for each movement
individually.  It would be much more efficient to be able to do this just
once at the beginning, with an appropriate global declaration.  Can this be
done?  Is there a way to set the relative pitch of some music in a \global
block?

(Note, I have indeed RTFM, but it's quite hard - even with the search
function - to find answers to this, or examples of such use.  Hence this
message...)

Thank you,
Alasdair
--
0432 854 858
https://numbersandshapes.net


--
Alasdair McAndrew
mob: 0432 854 858

https://numbersandshapes.net


--
Alasdair McAndrew
mob: 0432 854 858

https://numbersandshapes.net

reply via email to

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