Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Joei am Donnerstag, 19. Februar 2015, 19:59
-
Moin,
ich scheitere gerade an der Modifikation von Notenabständen:
IST:
(http://www.joeigraphie.de/lily/19.02.jpg)
SOLL:
(http://www.joeigraphie.de/lily/19.02.b.jpg)
Alle andern Hürden habe ich mit gregorian.ly und "Phantomnoten" umschiffen können - aber das Halleluja
hätte ich gerne
a) gestreckter und
b) den simulierten "Pes" auf der Silbe "lu" - also die beiden recht nah beieinander stehenden Noten bekomme ich auch nicht hin.
Zusatzfrage: Wenn ich die Zeile über die gesamte Seitenbreite strecken wollte - ginge das einfach?
\version "2.18.2"
\include "gregorian.ly"
\paper {
#(set-paper-size "a4")
indent = 0\cm
}
stemOff = \hide Staff.Stem
stemOn = \undo \stemOff
phan = {\hideNotes a4 \unHideNotes}
chant = \relative c' {
\key g \major \set Score.timing = ##f \stemOff
\phan g'\breve a4 g4 \divisioMaior
\phan g\breve fis4 g4 \phan \bar "|" \break
\phan g\breve a4 g \divisioMaxima \phan g\breve \bar"" \break
g\breve fis4 g \bar "||" g4 a g fis fis \finalis
}
verba = \lyricmode {
L:
\once \override LyricText.self-alignment-X = #-1
"Gott, gedenke mein nach deiner" Gna -- de. G:
\once \override LyricText.self-alignment-X = #-1
"Herr, erhöre mich mit deiner treuen" Hil -- fe _
L:
\once \override LyricText.self-alignment-X = #-1
"Ehre sei dem Vater und dem Sohne und dem Heiligen" Gei -- ste,
G: \once \override LyricText.self-alignment-X = #-1
"wie im Anfang,"
\once \override LyricText.self-alignment-X = #-1
"so auch jetzt und alle Zeit und in Ewigkeit." A -- men.
Hal -- le -- lu -- ja.
}
\score {
\new Staff \with { \remove "Time_signature_engraver" } <<
\new Voice = "melody" \chant
\new Lyrics = "text" \lyricsto melody \verba
>>
}
Dank & Gruß,
Joei
-
Hi Joei,
mein Vorschlag:
\version "2.18.2"
\include "gregorian.ly"
\paper {
#(set-paper-size "a4")
indent = 0\cm
}
stemOff = \hide Staff.Stem
stemOn = \undo \stemOff
phan = {\hideNotes a4 \unHideNotes}
chant = \relative c' {
\key g \major \set Score.timing = ##f \stemOff
\phan g'\breve a4 g4 \divisioMaior
\phan g\breve fis4 g4 \phan \bar "|" \break
\phan g\breve a4 g \divisioMaxima \phan g\breve \bar"" \break
g\breve fis4 g \bar "||"
\override Lyrics.LyricSpace.minimum-distance = #8
g4 \phan a \phan g
\tweak X-offset #'-8 fis \phan fis \finalis
}
verba = \lyricmode {
L:
\once \override LyricText.self-alignment-X = #-1
"Gott, gedenke mein nach deiner" Gna -- de. G:
\once \override LyricText.self-alignment-X = #-1
"Herr, erhöre mich mit deiner treuen" Hil -- fe _
L:
\once \override LyricText.self-alignment-X = #-1
"Ehre sei dem Vater und dem Sohne und dem Heiligen" Gei -- ste,
G: \once \override LyricText.self-alignment-X = #-1
"wie im Anfang,"
\once \override LyricText.self-alignment-X = #-1
"so auch jetzt und alle Zeit und in Ewigkeit." A -- men.
Hal - le - lu _ - ja.
}
\score {
\new Staff \with { \remove "Time_signature_engraver" } <<
\new Voice = "melody" \chant
\new Lyrics = "text" \lyricsto melody \verba
>>
}
Bin aber kein Gesangsexperte.... bei Lily führen viele Wege zum Ziel und es gibt bestimmt noch einen eleganteren.
LG
-
Moin Trulli,
einwandfrei - abgesehen davon: für andere Sachen die ich schon an Hacks gesehen habe sieht das für mich sehr elegant
und einfach nach bestimmungsgemäßen Gebrauch aus :) - also: Herzlichen Dank!
Joei
-
mh.. schade.. in dem einen Fall hat es brauchbar funktioniert - im nächsten leider nicht mehr - daher hier das neue Problem
mit dem Versuch die obige Lösung anzuwenden:
\version "2.18.2"
\include "gregorian.ly"
\paper {
indent = 0\cm
right-margin = 5\cm
%left-margin = 5.5\cm
ragged-right = ##f
}
stemOff = \hide Staff.Stem
stemOn = \undo \stemOff
phan = {\hideNotes a4 \unHideNotes}
nah= {\once \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2)}
chant = \relative c'' {
\key d \minor
\cadenzaOn \stemOff
\phan f4 f f f \tweak X-offset #'-6 g g \phan g \tweak X-offset #'-4 f g
g^"_"\tweak X-offset #'-4 a \divisioMaior \bar""
a f g \tweak X-offset #'-4 a g f \tweak X-offset #'-7 d f \tweak X-offset #'-4 g
g \tweak X-offset #'-4 f \bar "|" \break
\phan a4 \tweak X-offset #'-4 bes a a a g \tweak X-offset #'-4 a g a g g\tweak X-offset #'-4 f
g g\tweak X-offset #'-4 a \divisioMaior \bar""
\phan a4 a f g \tweak X-offset #'-4 a g f \tweak X-offset #'-4 d f \tweak X-offset #'-4 g
g \tweak X-offset #'-4 f \bar "|" \break
\phan a4 a a a a \tweak X-offset #'-4 bes a a a g \tweak X-offset #'-4 a g \divisioMaior \bar"" \break
g g a g f g \tweak X-offset #'-4 a a \tweak X-offset #'-4 g \bar "|"
\phan f4 f f f \tweak X-offset #'-6 g g \phan g \tweak X-offset #'-4 f g
g\tweak X-offset #'-4 a \divisioMaior \bar"" \break
a f g \tweak X-offset #'-4 a g f \tweak X-offset #'-7 d f \tweak X-offset #'-4 g
g \tweak X-offset #'-4 f \finalis
}
verbaprim = \lyricmode {
K: In dei -- ne Hän -- _ de, _ Her -- _ re Gott,
_ be -- feh -- le__ _ ich mei -- _ nen__ _ Geist.__ _
K: Du__ _ hast uns er -- lö -- _ set, Herr, du treu -- _ er Gott.__ _
G: Dir be -- feh -- le__ _ ich mei -- _ nen__ _ Geist.__ _
K: Eh -- re sei dem Va -- _ ter und dem Soh -- _ ne
und dem Hei -- li -- gen Gei -- _ ste.__ _
K: In dei -- ne Hän -- _ de, _ Her -- _ re Gott,
_ be -- feh -- le__ _ ich mei -- _ nen__ _ Geist.__ _
}
verbasec = \lyricmode {
G: In dei -- ne Hän -- _ de, _ Her -- _ re Gott,
_ be -- feh -- le__ _ ich mei -- _ nen__ _ Geist.__ _
}
\score {
\new Staff \with { \remove "Time_signature_engraver" } <<
\new Voice = "melody" \chant
\new Lyrics = "text" \lyricsto melody \verbaprim
\new Lyrics = "text" \lyricsto melody \verbasec
>>
}
und sollte jmd. mir verraten können, warum das ragged-right versagt (also warum die letzte Zeile nicht gestreckt wird) wäre ich sehr dankbar. ragged-last hat das gleiche Ergebnis gebracht :(
Dank und Gruß
Joei
-
I hoped that the force-hshift property would do the magic - but if I understand it correctly this only works for colliding notes... :(
-
Hallo Joei,
Few weeks ago I started something here (which is more or less a draft) : http://lsr.di.unimi.it/LSR/Item?id=973
So it would go:
\version "2.18.2"
% => http://lilypond.1069038.n5.nabble.com/kind-of-gregorian-moving-noteheads-tc170995.html
% => http://lilypond.1069038.n5.nabble.com/Hungarian-Gregorian-tc171130.html
%% Works with other sizes:
%#(set-global-staff-size 25)
%#(set-global-staff-size 16)
%%%%% Defs to be saved as "modernGregorian.ily" %%%%%%%%%
%%%% Defining new grobs:
lst = #(define-music-function (parser location mus)
(ly:music?)
#{
\stemDown
\undo\omit Stem
\once\override Stem.length = #7
\once\override Stem.X-extent = #'(.1 . 0)
\once\override NoteHead.stem-attachment = #'(1.5 . .1)
$mus
\omit Stem
#})
mst = #(define-music-function (parser location mus)
(ly:music?)
#{
\stemUp
\undo\omit Stem
\once\override Stem.length = #4
\once\override Stem.extra-offset = #'(-.2 . 0)
\once\override NoteHead.stem-attachment = #'(-.9 . -.3)
$mus
\omit Stem
#})
sst = #(define-music-function (parser location mus)
(ly:music?)
#{
\stemUp
\undo\omit Stem
\once\override Stem.length = #3
\once\override Stem.extra-offset = #'(-.2 . 0)
\once\override NoteHead.stem-attachment = #'(-.9 . -.3)
$mus
\omit Stem
#})
tst = #(define-music-function (parser location mus)
(ly:music?)
#{
\stemUp
\undo\omit Stem
\once\override Stem.length = #2
\once\override Stem.extra-offset = #'(-.2 . 0)
\once\override NoteHead.stem-attachment = #'(-.9 . -.3)
$mus
\omit Stem
#})
%% Ornament function
orn =
-\tweak self-alignment-X #LEFT
-\tweak Y-offset #0.5
-\tweak X-offset #1
-\tweak outside-staff-priority ##f
-\markup
\raise #-.3
\scale #'(1 . .85)
\rotate #90
\musicglyph #"ties.lyric.short"
%% Left aligning lyric :
lal = \once\override LyricText.self-alignment-X = #LEFT
%% horizontal inside staff spacer
space =
#(define-music-function
(parser location anzahl)
(number?)
#{
\grace { \repeat unfold #anzahl s }
#})
% Given some music that represents lyrics, add a prefix to the first
% lyric event.
% syntax is \versus { some lyrics }
% resp. \responsum { some lyrics }
#(define (add-prefix-to-lyrics prefix music)
(let ((found? #f))
(map-some-music
(lambda (m)
(if found? m
(and (music-is-of-type? m 'lyric-event)
(begin
(set! (ly:music-property m 'text)
(string-append prefix (ly:music-property m 'text)))
(set! found? #t)
m))))
music)))
% Add unicode 2123 (versicle) as prefix to lyrics.
versus =
#(define-music-function (parser location music) (ly:music?)
(add-prefix-to-lyrics "℣. " music))
% Add unicode 211F (response) as prefix to lyrics.
responsum =
#(define-music-function (parser location music) (ly:music?)
(add-prefix-to-lyrics "℟. " music))
%% Defining notelaces (neume, melisma) and dedicated context:
gregorianContext = {
\cadenzaOn
\omit Clef
\omit TimeSignature
\omit StaffSymbol
\omit Dots
\omit Rest
\omit Flag
\omit Beam
\override SpacingSpanner.packed-spacing = ##t
\override NoteHead.stencil = #(lambda (grob)
(grob-interpret-markup grob
#{
\markup\concat {
\hspace #-.21
\musicglyph #"noteheads.s2"
\hspace #-.21
}
#}))
\override Accidental.extra-offset = #'(-.2 . 0)
\override LedgerLineSpanner.length-fraction = #.6
\override LedgerLineSpanner.minimum-length-fraction = #.6
}
neume = #(define-music-function (parser location mus)
(ly:music?)
#{
\once\override NoteHead.stencil = #(lambda (grob)
(grob-interpret-markup grob
#{
\markup\concat {
\hspace #-2
\score {
\transpose c c' { \omit Stem $mus }
\layout {
indent = 0
ragged-right = ##t
\context {
\Score
\gregorianContext
}
}
}
}
#}))
#})
melisma = #(define-music-function (parser location mus)
(ly:music?)
#{
{
\neume { $mus }
\omit Accidental
\omit Dots
#(make-music
'NoteEvent
'pitch
(ly:make-pitch -1 6 0)
'duration
(ly:make-duration 2 0 1))
}
#})
% Declare default layout
\layout {
\context {
\Score
\omit TimeSignature
}
}
%%%%%%%%%%%% end of "modernGregorian.ily" %%%%%%%%%
%\include "modernGregorian.ily"
\paper {
indent = 0\cm
right-margin = 5\cm
left-margin = 5.5\cm
ragged-right = ##f
}
chant = \relative c' {
\cadenzaOn
\clef G
\key f\major
\omit Stem
f4 f f \melisma { f g } g \melisma { g f } g \melisma { g^- a }
\once\override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"\break
\omit Staff.Clef
a f \melisma { g a } g \melisma { f d } \melisma { f g } \melisma { g^- f }
\bar "|" \break
\melisma { a b } a a a \melisma { g a } g a g \melisma { g f } g \melisma { g^- a }
\once\override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"\break
a a f \melisma { g a } g \melisma { f d } \melisma { f g } \melisma { g^- f }
\bar "|" \break
a a a a \melisma { a b } a a a \melisma { g a } g
\once\override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"\break
g g a g f \melisma { g a } \melisma { a g }
\bar "|"
f f f \melisma { f g } g \melisma { g f } g \melisma { g a }
\once\override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"\break
a f \melisma { g a } g \melisma { f d } \melisma { f g } \melisma { g f }
\bar "||"
}
verbaprim = \lyricmode {
\set stanza = \markup\italic "K:"
In dei -- ne Hän -- de, Her -- re Gott,
be -- feh -- le ich mei -- nen Geist.
\set stanza = \markup\italic "K:"
Du hast uns er -- lö -- set, Herr, du treu -- er Gott.
\set stanza = \markup\italic "G:"
Dir be -- feh -- le ich mei -- nen Geist.
\set stanza = \markup\italic "K:"
Eh -- re sei dem Va -- ter und dem Soh -- ne
und dem Hei -- li -- gen Gei -- ste.
\set stanza = \markup\italic "K:"
In dei -- ne Hän -- de, Her -- re Gott,
be -- feh -- le ich mei -- nen Geist.
}
verbasec = \lyricmode {
\set stanza = \markup\italic "G:"
In dei -- ne Hän -- de, Her -- re Gott,
be -- feh -- le ich mei -- nen Geist.
}
\score {
\new Staff <<
\new Voice = "melody" \chant
\new Lyrics = "text" \lyricsto melody \verbaprim
\new Lyrics = "text" \lyricsto melody \verbasec
>>
}
Gruß,
Pierre
-
Hi Pierre (is that Pierre C. from the gregorio-users group??),
thank you very much for your effort - now I see, why I wasn't able to figure it out by myself.
That works great for me!
Have a great day,
Joei
-
[...] is that Pierre C. from the gregorio-users group??[...]
Not at all.
'Should probably be Pierre Couderc: http://lilypond-french-users.1298960.n2.nabble.com/template/NamlServlet.jtp?macro=user_nodes&user=350152
Cheers, ;)
Pierre P.Schneider