Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
Gesang / Antw:Liedtext passt sich nicht der Notenlänge an
« Letzter Beitrag von harm6 am Gestern um 18:11 »
Du verwendest "assigned lyrics", das \lyricsto-Ding.
Allerdings sind Beams dann per default ein Anzeiger für ein melisma, also nur eine Silbe am Anfang des Beam.

Hol doch die Beams aus den melismaBusyProperties heraus, dann kannst Du meist auch auf \autoBeamOff sowie manuelle Beams verzichten. Führt zu:

\version "2.19.83"

\header
 {
  title = "Weihnachtsklänge"
  subtitle = ""
  poet = " "
  meter = ""
  composer = "gesetzt von Theodor Ritter "
  arranger = " "
  tagline = ##f
 }

\layout
 {
  indent = #0
  \context {
  \Score
  melismaBusyProperties =
     #'(melismaBusy
        slurMelismaBusy
        tieMelismaBusy
        ;beamMelismaBusy
        completionBusy)
  }
 }

melodie_eins = \relative c'
 {
  \time 4/4
  \key f\major
   f2 r \bar "||"
% Kling Glöckchen
   \time 2/4
   c4 a8 bes | c16 d c d c4 |
   \bar "|."
 }

melodie_zwei = \relative c'
 {
  \key f\major
   c8 c' c c c c c c |
% Kling Glöckehn
   a4 f8 g | a16 bes a bes a4 |
   \bar "|."
 }

melodie_drei = \relative c'
 {
  \key f\major
  \autoBeamOff
     << { <f' a,>2 c8 c c c  } \\ { f,2 r } >> | % Takt 18
% Kling Glöckchen
    << { f,8 <f'' c a> f,, q } \\ { f4 f } >> | % Takt 19
    << { f8 <f'' c a> f,, q } \\ { f4 f } >> | % Takt 20
   \bar "|."
 }

text = \lyricmode
 {
  \set stanza = ""
    Nacht.
    Kling, Glöck -- chen, klin -- ge -- lin -- ge
 }

\new GrandStaff
 <<
    \new Voice = "Lied" { \melodie_eins }
    \new Lyrics \lyricsto "Lied" { \text }
    \new Voice = "Lied" { \melodie_zwei }
    \new Voice = "Lied" { \melodie_drei }
 >>

HTH,
  Harm

P.S. Benutze bitte code-tags um code zu posten, den #-Button
2
Gesang / Liedtext passt sich nicht der Notenlänge an
« Letzter Beitrag von gufrie am Gestern um 12:41 »
Ich habe ein Problem beim setzen von Text zu den Noten. Bisher habe ich das immer hinbekommen. Aber diesmal nicht.
Es handelt sich um einen 3-stimmigen Satz. Der erste Teil ist im 4/4 Takt, da passt auch der Text zu der Notenlänge. Dann aber im zweiten Lied wechselt der Takt auf 2/4. Da passen dann die Texte nicht mehr. Auch nicht, wenn die Notenlänge an die einzelnen Silben anhänge. Was mache ich da wohl falsch?
Hier ein Auszug:

\version "2.19.83"

\header
 {
  title = "Weihnachtsklänge"
  subtitle = ""
  poet = " "
  meter = ""
  composer = "gesetzt von Theodor Ritter "
  arranger = " "
  tagline = ##f
 }

\layout
 {
  indent = #0
 }

melodie_eins = \relative c'
 {
  \time 4/4
  \key f\major
  \autoBeamOff
   f2 r \bar "||"
% Kling Glöckchen
   \time 2/4
   c4 a8 [bes] | c16 [d] c [d] c4 |
   \bar "|."
 }

melodie_zwei = \relative c'
 {
  \key f\major
  \autoBeamOff
   c8 [c' c c] c ^[c c c] |
% Kling Glöckehn
   a4 f8 [g] | a16 [bes] a [bes] a4 |
   \bar "|."
 }

melodie_drei = \relative c'
 {
  \key f\major
  \autoBeamOff
     << { <f' a,>2 c8 c c c  } \\ { f,2 r } >> | % Takt 18
% Kling Glöckchen
    << { f,8 [<f'' c a>] f,, q } \\ { f4 f } >> | % Takt 19
    << { f8 [<f'' c a>] f,, q } \\ { f4 f } >> | % Takt 20
   \bar "|."
 }

text = \lyricmode
 {
  \set stanza = ""
    Nacht.
%    Kling, Glöck -- chen, klin -- ge
    Kling,4 Glöck8 -- chen, klin16 -- ge
 }

\new GrandStaff
 <<
    \new Voice = "Lied" { \melodie_eins }
    \new Lyrics \lyricsto "Lied" { \text }
    \new Voice = "Lied" { \melodie_zwei }
    \new Voice = "Lied" { \melodie_drei }
 >>
3
Gitarre/Laute / Antw:Tirando Apoyando
« Letzter Beitrag von Hilflos-im-Code am Donnerstag, 21. Oktober 2021, 14:32 »
Auch vielen Dank. So was wie die zweite Lösung habe ich nach dem Posten auch versucht. Aber ich wusste nicht wie ich ein Markup in \tweak digit-names schreibe.
4
Fragen und Probleme aller Art / Antw:Schlüssel verschieben
« Letzter Beitrag von Hilflos-im-Code am Donnerstag, 21. Oktober 2021, 14:28 »
Danke. Funktioniert wunderbar.

Die Situation ist bei einem ein kurzen Codaschnipsel entstanden. Wenn der Schnipsel noch in die letzte Zeile soll, dann braucht man einen Leertakt. Kann/soll er in eine extra Zeile, also Zeilenumbruch muss man nicht mit \stop-startStaff arbeiten, weil man dann keine Lücke in der Notenzeile braucht.
5
Fragen und Probleme aller Art / Antw:Schlüssel verschieben
« Letzter Beitrag von harm6 am Donnerstag, 21. Oktober 2021, 11:03 »
Das Problem entsteht weil
\once \override Staff.BarLine.break-visibility = ##(#f #f #f)
den stencil nicht aber das grob selbst unterdrückt.
Also gelten nach wie vor die spacing-Werte vom Clef zur BarLine zur Note. Hier zuviel.
\stop/startStaff produziert die Lücke im StaffSymbol. Sie endet direkt vorm Taktstrich bzw den Elementen der BreakAlignGroup die noch vor der BarLine stehen. Hier resultiert das in zu wenig Platz vorm neuen NotenSchlüssel.

Um zu einem besseren Ergebis zu kommen ändere die Reihenfolge in der die Elemente der BreakAlignGroup gedruckt werden (via BreakAlignment.break-align-orders).
Dann funktionieren die defaults wieder und es sind imho keine weiteren Anpassungen nötig.

Solange \startStaff nicht auf einen Zeilenumbruch fällt:

\version "2.23.0"
\language "deutsch"


  \clef "treble_8"
  \time  2/4   
  c'8 h8 s8 \appoggiatura d'8 c'8 
  \stopStaff 
  s2   
  \startStaff
     
  \override Staff.Clef.full-size-change = ##t
  \once \override Score.BreakAlignment.break-align-orders =
    #(make-vector 3 '(left-edge
                      cue-end-clef
                      ambitus
                      breathing-sign
                      staff-bar
                      clef
                      cue-clef
                      key-cancellation
                      key-signature
                      time-signature
                      custos))
       
  \set Staff.forceClef = ##t
 
  \bar ""
       
  \time 2/4   
  c'8 d'8  d'16( c'32 d') c'16 d'
  \bar "|."
}

Falls doch muß man BreakAlignment.break-align-orders ausführlicher schreiben. In diesem Fall meld' Dich nochmal.

HTH,
  Harm
6
Gitarre/Laute / Antw:Tirando Apoyando
« Letzter Beitrag von harm6 am Donnerstag, 21. Oktober 2021, 10:48 »
Das ist ein Problem der Schriftarten. Im default für StrokeFinger sind nicht alle der eingegebenen Zeichen enthalten, LilyPond sucht sich dann teils andere Schriftarten. Gedruckt wird dann ein stencil mit verschiedenen Schriftarten.

Bei einem ähnlichen Problem hatte ich mal einen Testcode geschrieben:

#(define (lists-map function ls)
  "Apply @var{function} to @var{ls} and all of it sublists.
First it recurses over the children, then the function is applied to
@var{ls}."
    (if (list? ls)
        (set! ls (map (lambda (y) (lists-map function y)) ls))
        ls)
    (function ls))

printStencilExpressionFonts = 
#(lambda (grob)
  (let* ((stil (ly:grob-property grob 'stencil))
         (stil-expr (ly:stencil-expr stil))
         (output '())
         ;; Finde font-names und speichere sie in "output"
         ;; Die Methode muß zwischen "named-glyph" und "glyph-string"
         ;; differenzieren, da LilyPond das intern anders umsetzt.
         (store-font-names
           (lambda (entry)
             (cond
                   ;; Wenn die stencil-expression irgendwo "named-glyph"
                   ;; beinhaltet, dann extrahiere die Schriftart via
                   ;; ly:font-name aus dem zweiten Eintrag der mit "named-glyph"
                   ;; anfangenden Liste.
                   ;; Erweitere output mit dem Ergebnis.
                   ((and (list? entry)
                         (eq? 'named-glyph (car entry))
                         (ly:font-metric? (cadr entry)))
                     (set! output
                           (cons (ly:font-name (cadr entry)) output)))
                   ((and (list? entry)
                   ;; Wenn die stencil-expression irgendwo "glyph-string"
                   ;; beinhaltet, dann extrahiere die Schriftart indem das
                   ;; dritte Element, der mit "glyph-string" anfangenden Liste
                   ;; ausgewählt wird, ly:font-name würde hier #f zurückgeben.
                   ;; Erweitere output mit dem Ergebnis.
                         (eq? 'glyph-string (car entry))
                         (ly:font-metric? (cadr entry)))
                     (set! output
                           (cons (caddr entry) output)))
                   ;; Ansonsten mache nichts weiter.
                   (else entry)))))
        (lists-map store-font-names stil-expr)

    (pretty-print (cons (grob::name grob) (reverse output)))))
   
printStrokeFingerFonts =
\override StrokeFinger.after-line-breaking = \printStencilExpressionFonts

\version "2.23.0"


tir = #(define-event-function (fingnum)
                (number?)
                #{
                   \tweak digit-names ##("p̅" "i̅" "m̅" "a̅" "x̅")
                  \rightHandFinger $fingnum
                #})

apo = #(define-event-function (fingnum)
                (number?)
                #{
                  \tweak digit-names ##("p̂" "î" "m̂" "â" "x̂")
                  \rightHandFinger $fingnum
                #})

{
  \printStrokeFingerFonts
  c' \tir 1 \tir 2 \tir 3 \tir 4 
  c'\apo 1 \apo 2 \apo 3 \apo 4
}

->
Zitat von: terminal
(StrokeFinger "DejaVuSerif-Italic" "C059-Italic")
(StrokeFinger "DejaVuSerif-Italic" "C059-Italic")
(StrokeFinger "DejaVuSerif-Italic" "C059-Italic")
(StrokeFinger "DejaVuSerif-Italic" "C059-Italic")
(StrokeFinger
  "TeXGyreSchola-Italic"
  "C059-Italic")
(StrokeFinger
  "TeXGyreSchola-Italic"
  "C059-Italic")
(StrokeFinger
  "TeXGyreSchola-Italic"
  "C059-Italic")
(StrokeFinger
  "TeXGyreSchola-Italic"
  "C059-Italic")

Um zu einem besseren Ergebnis zu kommen mußt Du eine Schriftart auswählen, die alle Zeichen enthält.

Bei mir funktioniert "DejaVuSans" ganz gut, bzw "DejaVuSans Italic" um kursiv zu bleiben.
{
  \override StrokeFinger.font-name = "DejaVuSans"
  \override StrokeFinger.font-name = "DejaVuSans Italic"
  \printStrokeFingerFonts
  c' \tir 1 \tir 2 \tir 3 \tir 4 
  c'\apo 1 \apo 2 \apo 3 \apo 4
}

Aber es mag andere Schriftarten geben.

Du könntest auch alle benötigten Zeichen via markup selbst herstellen. Z.B.:

\version "2.23.0"

p-apo = \markup \combine \halign #0 "p" \raise #0.3 \halign #0 "^"
i-apo = \markup \combine \halign #0 "ı" \raise #0.3 \halign #0 "^"
m-apo = \markup \combine \halign #0 "m" \raise #0.3 \halign #0 "^"
a-apo = \markup \combine \halign #0 "a" \raise #0.3 \halign #0 "^"
x-apo = \markup \combine \halign #0 "x" \raise #0.3 \halign #0 "^"

p-tir = \markup \combine \halign #0 "p" \raise #1.1 \halign #0 "_"
i-tir = \markup \combine \halign #0 "ı" \raise #1.1 \halign #0 "_"
m-tir = \markup \combine \halign #0 "m" \raise #1.1 \halign #0 "_"
a-tir = \markup \combine \halign #0 "a" \raise #1.1 \halign #0 "_"
x-tir = \markup \combine \halign #0 "x" \raise #1.1 \halign #0 "_"

tir = #(define-event-function (fingnum)
                (number?)
                #{
                  \tweak digit-names #(vector p-tir i-tir m-tir a-tir x-tir)
                  \rightHandFinger $fingnum
                #})

apo = #(define-event-function (fingnum)
                (number?)
                #{
                  \tweak digit-names #(vector p-apo i-apo m-apo a-apo x-apo)
                  \rightHandFinger $fingnum
                #})
               

{
  c' \tir 1 \tir 2 \tir 3 \tir 4 
  c'\apo 1 \apo 2 \apo 3 \apo 4
}

Textverarbeitungsprogramme verwenden ausgefeiltere Fallbacks, wenn Zeichen in einer Schriftart fehlen.
Bei Browsern weiß ich das nicht, aber ich vermute dort ein ähnliches Verhalten wie bei Textverarbeitungsprogrammen.


HTH,
  Harm
7
Gitarre/Laute / Tirando Apoyando
« Letzter Beitrag von Hilflos-im-Code am Mittwoch, 20. Oktober 2021, 16:13 »
In pädagogisch wertvollen Gitarrennoten wird hieundda kenntlich gemacht, ob man mit Tirando oder Apoyando spielt.

Ich habe ein wenig gegoogelt und ein Skript mit kombinierenden diakritische Zeichen modifiziert.
  \version "2.23.0"
 
 
  tir = #(define-event-function (fingnum)
                  (number?)
                  #{
                     \tweak digit-names ##("p̅" "i̅" "m̅" "a̅" "x̅")
                    \rightHandFinger $fingnum
                  #})
 
  apo = #(define-event-function (fingnum)
                  (number?)
                  #{
                    \tweak digit-names ##("p̂" "î" "m̂" "â" "x̂")
                    \rightHandFinger $fingnum
                  #})
 
 
  { c'\tir 1 \tir 2 \tir 3 \tir 4  c'\apo 1 \apo 2 \apo 3 \apo 4 }

Das wäre auch ganz schön, wenn diese Zeichen nicht nur teilweise richtig über den Buchstaben sitzen würden.



Der Browser stellt im Code die Dinge so dar, wie ich sie gerne hätte. Gibt es einen Trick, dass es bei Lilypond genauso aussieht.
8
Fragen und Probleme aller Art / Schlüssel verschieben
« Letzter Beitrag von Hilflos-im-Code am Mittwoch, 20. Oktober 2021, 10:58 »
\version "2.23.0"
\language "deutsch"

  {  \clef "treble_8" \time  2/4    c'8    [h8] s8 \appoggiatura d'8 c'8  \stopStaff  s2   \startStaff
     
  \override Staff.Clef.X-offset = #-1
      \once \override Staff.BarLine.break-visibility = ##(#f #f #f)
     \override Staff.Clef.full-size-change = ##t
     
      \set Staff.forceClef = ##t
       
 \time 2/4   c'8  [ d'8 ]  d'16 [ (c'32 d') c'16 d'] \bar "|." }

Ich wäre glücklich, wenn ich den Violinschlüssel so verschieben könnte, sodass
  • links vom zweiten Notenschlüssel die Notenzeile etwas überstehen würde und
  • rechts vom zweiten Notenschlüssel  der Abstand zwischen Schlüssel und Taktangabe korrekt wäre.

Auf \override Staff.Clef.Y-offset  reagiert der Notenschlüssel. Auf X nicht.
9
Spezielle Projekte / Antw:Strophe Position
« Letzter Beitrag von flashgordonx am Montag, 18. Oktober 2021, 20:37 »
Danke. Ich probiere aus.  8)
10
Spezielle Projekte / Antw:Strophe Position
« Letzter Beitrag von C_E am Montag, 18. Oktober 2021, 10:49 »
Das Wichtigste an einem Minimalbeispiel ist, dass es kompielierbar sein sollte. Das bedeutet, dass es mir möglich sein sollte, dein Codebeispiel zu kopieren und in meinen Lilypond-Editor einzufügen und eine funktionierende Partitur zu bekommen, ohne etwas hinzuzufügen.
Dein Code ist von der Länge her ideal, aber wenn ich etwas damit machen will kommt natürlich kein Ergebnis raus, weil alle Umgebungen fehlen.

Das führt dann auch dazu, dass ich dir nicht richtig helfen kann. Ich sehe, dass du dir die Vorlage aus dem Manual genommen hast, und \hspace sollte eigentlich richtig sein.

Ein Beispiel, wie man aus der Vorlage im Manual ein Minimalbeispiel machen könnte, um über \hspace zu reden:

\version "2.22.1"

melody = \relative {
  c'4 c c c | }
text = \lyricmode {
  \set stanza = "1." This is verse one. }


\score{ <<
    \new Voice = "one" { \melody }
    \new Lyrics \lyricsto "one" \text
   >>
}

\markup {
  \fill-line {
    \hspace #0.1 % moves the column off the left margin;
     \column {
      \line { \bold "2."
        \column {
          "This is verse two."
        }
      }
    }
    \hspace #0.1 % adds horizontal spacing between columns;
    \column {
      \line { \bold "4."
        \column {
          "This is verse four."
        }
      }
    }
  \hspace #0.1
  }
}

Das ist länger als dein Code, aber dieses Beispiel kann jetzt jeder bei sich zu Hause ausprobieren. Und wenn man feststellt, dass das Problem irgendwo anders liegt, kann man das Bsp noch stärker verkleinern
Seiten: [1] 2 3 ... 10