lilypond-devel
[Top][All Lists]
Advanced

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

Re: Deprecation of instrumentCueName and instrument switch stuffs


From: Kieren MacMillan
Subject: Re: Deprecation of instrumentCueName and instrument switch stuffs
Date: Thu, 15 Dec 2022 09:18:52 -0500

Hi Jean,

> Yeah, we're discussing two things that have been deprecated
> together but are separate. One is \addInstrumentDefinition
> + \instrumentSwitch, which sounds like it helps with switching
> instruments but is actually both completely generic and
> close to useless, the other is instrumentCueName +
> Instrument_switch_engraver + InstrumentSwitch.

It certainly would be nice to have only things that are relevant, specific, 
useful, and consistent!

>> Next thing to settle: How best to handle multi-instrumental players’ music.
> (I didn't try to understand that part of the discussion yet.)

You’ll see the problem in the snippet below (n.b. requires OLL to compile): the 
key signatures (included in a separate variable that is simultaneous-ed in with 
the note variable when the score is built) are not being transposed according 
to the instrument that begins to play at that exact moment [see first score]; 
but if the key change is delayed, the key signatures are transposed properly 
[see second score].

There’s probably a really simple fix in the auto-transpose framework code that 
will eliminate this issue, but it’s definitely above my current pay grade!

Cheers,
Kieren.

%%%  SNIPPET BEGINS
\version "2.19.15"
\language "english"

\include "oll-core/package.ily"
\loadModule snippets.editorial-tools.auto-transpose

% some music to insert into example
bach = { bf' a' c'' b' }

% add two transposing instrument-definitions
clarinet_Eb = {
  \transposition ef'
  \clef "treble"
  \set Staff.shortInstrumentName = "Es-Kl"
  \set Staff.instrumentCueName = "Es-Kl"
  \set Staff.midiInstrument = "clarinet"
}
clarinet_Bb = {
  \transposition bf
  \clef "treble"
  \set Staff.shortInstrumentName = "Kl"
  \set Staff.instrumentCueName = "Kl"
  \set Staff.midiInstrument = "clarinet"
}


%%%  the 'intuitive’ score code doesn’t work:

global = {
  \key f \major
  s1
  \key g \major
  s1
  \key c \major
  s1
}

theNotes = {
  \bach
  \clarinet_Bb
  \bach
  \clarinet_Eb
  \bach
}

\score {
  \new Staff \with { \autoTranspose }
  \new Voice << \global \theNotes >>
}


%%%  but it may just be an issue of timing?

global = {
  \key f \major
  s1*2
  \key g \major
  s1*2
  \key c \major
  s1*2
}

theNotes = {
  \bach
  \clarinet_Bb s1
  \bach
  \clarinet_Eb s1
  \bach
}

\score {
  \new Staff \with { \autoTranspose }
  \new Voice << \global \theNotes >>
}
%%%  SNIPPET ENDS


reply via email to

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