Hi Kieren,

I'm somewhat late to the party, and hadn't looked to thoroughly at your example code, either, but I'd like to nevertheless share my take on one specific point:
3. Compare the voicing of m3 in the SATB and SA voicings: mm1-2 are different, 
but m3 is the same. How can I do this kind of thing with the least amount of 
code duplication? I don’t believe quoted music can be transposed directly 
(i.e., you need to create a second, pre-transposed, quotation); I can’t see how 
to inject a transposition (e.g., using the Edition-Engraver) into a specific 
part of a score/variable; I really don’t want to have to break every variable 
into multiple subvariables to handle every difference between voicings (nor do 
I want to have complete duplicates, one per voicing!); etc.

For quite a long time now I'm relying heavily on openlilylib's auto-transpose module. In my experience it does play nicely together with the edition-engraver. One caveat is its abuse of the \transposition command, which might throw things off if you need midi output. But I don't do midi, so I wouldn't know...

Attached is a silly little example I whacked together to make sure I wasn't going to tell some nonsense.

All the best,
Martin

--
Wer mit dem gestern hier Vorgestellten hinreichend Erhellendes erfahren hat und 
auf den Geschmack gekommen ist, kann heute in den Wellenlängen des unserem Auge 
zugänglichen Bereiches der Elektromagnetischen Strahlung Pythagoräische Tripel 
suchen und einem Farbberater als Warteraumtapezierung vorschlagen.
\version "2.25.12"

\include "oll-core/package.ily"

\loadModule oll-misc.pitch.auto-transpose
\loadPackage notation-fonts
\loadPackage edition-engraver

\addEdition test

\consistToContexts #edition-engraver Score.Staff.Voice

\editionMod test 6 0/4 trans.pose.Voice \transposition bes

\layout {
  \context {
    \Score
    \editionID ##f trans
    %edition-engraver-log = ##t
  }
  \context {
    \Voice
    %edition-engraver-log = ##t
  }
}

\new Staff \with {
  \editionID pose
  \autoTranspose
} {
  \repeat unfold 10 {
    c'1
  }
  \fine
}

Reply via email to