Hello there,
concerning incipits: at the moment I use an workaround-solution for this
that is also based on an adapted version of the snippet in the snippet
repo. I made up an "incipit template" file which contains the incipit“s
global settings and defines the contents of the single incipit lines
(instrument, ancient clef, pitch, text etc). This file I include into my
music file (both attached). Then it is enough to call \incipit and
\fooInstrumentIncipit in my music file in the \score block to generate
the incipit for the voice you want it to have. The width of the incipit
bar is controlled by the incipit-width parameter in the \layout block.
This workaround at least helps to keep the actual score file more simple
and separates the incipit content from the rest. Of course, it is no
perfect solution, but normally it works with some tweaking.
Concerning incipits in general:
> That being said, I'm sure it would be nice to have this music-function
> distributed within LilyPond, I do, however, wonder if it is
> standardized enough. (Neil just rejected a patch of my mine, and
> rightly so, because it used a stencil override and therefore could not
> be tweaked by the user.)
>
Yes, incipits ARE a standard requirement for modern critical and
source-based editions! If lilypond offered an convenient way to create
incipits and use common editorial markings (such as are dotted or
bracketed slurs, bracketed or small-printed accidentals, footnotes or
comments...), this would hopefully encourage more professional editions
and musicologists to use lilypond.
In the documentation there are some things TBC in the section "working
with ancient music", not only concerning incipits but also editorial
markings. It would be great to have some more information there, at
least some hint or workaround. Is there any group out there that is
maybe working on this?
Greetings,
Margarethe
%Incipit allgemeines
incipit =
#(define-music-function (parser location incipit-music) (ly:music?)
#{
\once \override Staff.InstrumentName #'self-alignment-X = #RIGHT
\once \override Staff.InstrumentName #'self-alignment-Y = #UP
\once \override Staff.InstrumentName #'Y-offset = #4
\once \override Staff.InstrumentName #'padding = #0.1
\once \override Staff.InstrumentName #'stencil =
#(lambda (grob)
(let* ((instrument-name (ly:grob-property grob 'long-text))
(layout (ly:output-def-clone (ly:grob-layout grob)))
(music (make-music 'SequentialMusic
'elements (list (make-music 'ContextSpeccedMusic
'context-type 'Staff
'element (make-music 'PropertySet
'symbol 'instrumentName
'value instrument-name))
$incipit-music)))
(score (ly:make-score music))
(mm (ly:output-def-lookup layout 'mm))
(indent (ly:output-def-lookup layout 'indent))
(width (ly:output-def-lookup layout 'incipit-width))
(incipit-width (if (number? width)
(* width mm)
(* indent 0.5))))
(ly:output-def-set-variable! layout 'indent (- indent incipit-width))
(ly:output-def-set-variable! layout 'line-width indent)
(ly:output-def-set-variable! layout 'ragged-right #f)
(ly:output-def-set-variable! layout 'ragged-last #f)
(ly:output-def-set-variable! layout 'system-count 1)
(ly:score-add-output-def! score layout)
(ly:grob-set-property! grob 'long-text
(markup #:score score))
(ly:system-start-text::print grob)))
#})
%Incipits of single voices
%CHOIR
sopranoIncipit = <<
\new Voice = "sopranoIncipit" <<
\repeat unfold 1 { s8 \noBreak }
{
\clef soprano
%\key f \major
%\time 2/2
}
>>
>>
altoIncipit = <<
\new Voice = "altoIncipit" <<
\repeat unfold 1 { c2 \noBreak }
{
\clef alto
%\key f \major
%\time
}
>>
\new Lyrics \lyricsto altoIncipit { IV- }
>>
tenoreIncipit = <<
\new Voice = "tenoreIncipit" <<
\repeat unfold 1 { c8 \noBreak }
{
\clef tenor
%\key f \major
%\time 2/2
}
>>
\new Lyrics \lyricsto tenoreIncipit { IV- }
>>
bassoIncipit = <<
\new Voice = "bassoIncipit" <<
\repeat unfold 1 { d8 \noBreak }
{
\clef bass
%\key
%\time
%% incipit
}
>>
\new Lyrics \lyricsto bassoIncipit { IV- }
>>
%INCIPITS ORCHESTER
violinoprimoIncipit =
\new Voice = "violinoprimoIncipit" <<
\repeat unfold 1 { s8 \noBreak }
{
\clef soprano
%\key f \major
%\time 2/2
}
>>
violinosecondoIncipit =
\new Voice = "violinosecondoIncipit" <<
\repeat unfold 1 { s8 \noBreak }
{
\clef soprano
%\key f \major
%\time 2/2
}
>>
violaIncipit =
\new Voice = "violaIncipit" <<
\repeat unfold 1 { s2 \noBreak }
{
\clef alto
%\key f \major
%\time
}
>>
continuoIncipit =
\new Voice = "continuoIncipit" <<
\repeat unfold 1 { s8 \noBreak }
{
\clef bass
%add \key
%\time
}
>>
\version "2.12.3"
\include "incipit-template.ly"
global = {
\key g \major
\time 4/4
}
sopranoNotes = {
\transpose c' c'' {
\clef treble
d'2. d'4
}
}
sopranoLyrics = \lyricmode {
Ju -- bi --
}
altoNotes = {
\transpose c' c'' {
\clef alto
% two measures
r2 g2.
}
}
altoLyrics = \lyricmode {
% two measures
Ju --
}
tenoreNotes = {
\transpose c' c' {
\once \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 3)
\clef tenor
R1 |
}
}
tenoreLyrics = \lyricmode {
% two measures
Ju -- bi
}
bassoNotes = {
\transpose c' c' {
\clef bass
R1
}
}
bassoLyrics = \lyricmode {
Ju -- bi-
}
violinoprimoNotes = {
\clef treble
d4
}
violinosecondoNotes = {
\clef treble
d4
}
violaNotes = {
\clef alto
d4
}
continuoNotes = {
\clef bass
d4
}
\score {
<<
\new StaffGroup = choirStaff <<
\new Voice = "sopranoNotes" <<
\global
\set Staff.instrumentName = #"Soprano"
\incipit \sopranoIncipit
\sopranoNotes
>>
\new Lyrics = "sopranoLyrics" \lyricsto sopranoNotes { \sopranoLyrics }
\new Voice = "altoNotes" <<
\global
\set Staff.instrumentName = #"Alto"
\incipit \altoIncipit
\violaNotes
>>
\new Lyrics = "altoLyrics" \lyricsto altoNotes { \altoLyrics }
\new Voice = "tenoreNotes" <<
\global
\set Staff.instrumentName = #"Tenore"
\incipit \tenoreIncipit
\tenoreNotes
>>
\new Lyrics = "tenoreLyrics"
\lyricsto tenoreNotes { \tenoreLyrics }
\new Voice = "bassoNotes" <<
\global
\set Staff.instrumentName = #"Basso"
\incipit \bassoIncipit
\bassoNotes
>>
\new Lyrics = "bassoLyrics"
\lyricsto bassoNotes { \bassoLyrics }
>>
%%Orchester
\new Staff = "violinoprimoNotes" << \global
\set Staff.instrumentName = #"Violino primo"
\incipit \violinoprimoIncipit \violinoprimoNotes
>>
\new Staff = "violinosecondoNotes" << \global
\set Staff.instrumentName = #"Violino secondo"
\incipit \violinosecondoIncipit \violinosecondoNotes
>>
\new Staff = "violaNotes" << \global
\set Staff.instrumentName = #"Viola"
\incipit \violaIncipit \violaNotes
>>
\new Staff = "continuoNotes" << \global
\set Staff.instrumentName = #"Basso Continuo"
\incipit \continuoIncipit \continuoNotes
>>
>>
\layout {
\context {
}
indent = 4\cm
incipit-width = 2\cm
}
}_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user