• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Gelöst: Notenpositionierung / Gregorianik in moderner Notation

Begonnen von Joei, Donnerstag, 19. Februar 2015, 19:59

Vorheriges Thema - Nächstes Thema

Joei

Moin,

ich scheitere gerade an der Modifikation von Notenabständen:

IST:


SOLL:


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

trulli

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

Joei

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

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

Joei

I hoped that the force-hshift property would do the magic - but if I understand it correctly this only works for colliding notes... :(

Pierre

#5
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

Joei

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

Pierre