Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Samstag, 7. März 2015, 11:18
-
Hallo,
Es hat mir keine Ruhe gelassen.\version "2.16.2"
\relative c'' {
{R1 R} <<{R1 r4}
\new CueVoice {\clef bass \autoBeamOff c,,8 g' g g as g16 f g4 g8 g}
\addlyrics {wa -- rum spricht der äl -- te -- re Mann lei -- ser }>>
\clef treble b16\pp c b8 r4 r R1 R }
Jetzt ist zu sehen, wohin ich will.
Warum geht es nach den Stichnoten nicht weiter?
Gruß
chf
-
Hm.
In den <<...>> hast du zwei parallele 'Ströme'. Der erste lautet {R1 r4 r2.}, dauert also genau zwei Takte. Danach geht es auch tatsächlich weiter. Wo liegt das Problem?
Falls dein Problem ist, dass du nach den beiden Achteln mit den Silben "leiser" sofort weitermachen will, sollte dein erster Strom nur ein voller Takt und eine Viertelpause lang sein. Die oben rot markierte Pause muss also aus den <<...>>-Klammern verschwinden. Aber vielleicht verstehe ich auch dein Problem nicht richtig?
Es wäre übrigens besser gewesen, du hättest dies als Antwort auf deinen ersten Beitrag geschrieben; nun haben wir zwei Threads, über deren Unterschied wir uns nicht im Klaren sind...
--ingmar
-
nun haben wir zwei Threads, über deren Unterschied wir uns nicht im Klaren sind...
Hallo ingmar,
wo siehst du r2.?
Ich habe R1 r4 - es muss tatsächlich auf 2 weitergehen.
Ursprünglich wollte ich beim ersten Thread weitermachen, habe aber befürchtet, der wäre wegen Unzulänglichkeit schon abgehakt...
Es gibt keinen Unterschied im Anliegen - ich habe nur versucht, ein Beispiel nachzuschieben.
Auch meine weiteren Experimente bringen mich nicht zum Ziel. Ich kriege den Text nicht drunter.
Christa
-
ach Mist, da muss mir beim Kopieren was schiefgelaufen sein... nun hab ichs alles noch komplizierter gemacht, als es eh schon war.
Ich bitte um Entschuldigung!
--ingmar
-
Inzwischen habe ich weiter probiert. Jetzt stimmen wenigstens die Noten, und der Code ist näher an der Vorgabe.
Es kann doch nur eine Kleinigkeit sein, an der es fehlt?
\version "2.16.2"
stimmeNotes = \relative c {
\clef bass
\autoBeamOff R1*2 c8 g' g g as g16 f g4 g8 g
}
\addQuote "stimme" { \stimmeNotes }
lyr = \lyricmode {wa -- rum spricht der äl -- te -- re Mann lei -- ser}
\addQuote "lyr" {\lyr }
mndNotes = \relative c'' {
\clef treble
R1 R
\new CueVoice { \set instrumentCueName = "stimme" }
<<\cueDuringWithClef #"stimme" #DOWN "bass" { R1 r4}
\cueLyr #"lyr" {R1 r4}>>
\clef treble b16\pp c b8 r4 r R1 R }
}
\new Staff {
\mndNotes
}
-
Es sieht aus, als wäre mir nicht zu helfen? Soll ich das glauben?
Gruß
chf
-
Geht nicht gibts nicht.... :)
So genau habe ich aber noch nicht verstanden, was du willst...
Geht das hier in deine Richtung?
\version "2.16.0"
smallerFontsize = { \set fontSize = #-6 }
\addQuote stimme \new Voice = "cue" \relative c { c8 g' g g as g16 f g4 g8 g }
\score {
\new Staff = "cuelyricdemo"
<<
\new Voice
\relative c'' {
\cueDuringWithClef #"stimme" #1 "bass" { R1 r4 }
b16\pp c b8 r4 r
}
\new Lyrics = "cueLyrics"
\lyricsto "cue" {
\smallerFontsize
Wa -- rum spricht der äl -- te -- re Mann lei -- ser
}
>>
}
LG
-
Jetzt ist zu sehen, wohin ich will.
Nö
Warum geht es nach den Stichnoten nicht weiter?
Weil Du nichts anderes geschrieben hast.
Es sieht aus, als wäre mir nicht zu helfen? Soll ich das glauben?
Ohne aussagekräftigen, kurzen, compilierbaren Code?
Sowie ohne eine sinnvolle Frage?
Nein.
[...]
Mit http://lsr.di.unimi.it/LSR/Item?id=347 komme ich nicht weiter....
[...]
Dann stell eine Frage dazu. Vielleicht kann ich sie beantworten, schließlich habe ich dieses snippet ja geschrieben.
Ich zumindest habe nicht die leiseste Ahnung, was das Problem oder das Ziel ist oder sein soll.
-Harm
-
Hallo trulli und harm,
danke für euere Reaktion.
Das Bild von trulli ist, was ich will.
Und, harm, ich weiß, dass an meinem Beispiel was nicht stimmt.
Ich habe sehr viele solche "Baustellen" in meinem Stück. Muss ich die Zitate alle (mit einem Zusatz zur Unterscheidung) voranstellen? Und wie
binde ich sie dann alle in die Stimme ein? Hier habe ich eine totale Blockade.
Entschuldigt bitte - ich kann es nicht besser erklären...
Ich kann natürlich die ganze Sache zweistimmig schreiben, aber das sollte nicht sein...
Christa
-
Ich poste mal was ich habe. Ich denke, es braucht ein paar Erläuterungen.
Da hab ich allerdings momentan keine Zeit zu. Zumindest hast Du jetzt aber einen Code an der Hand mit dem Du experimentieren kannst.
%% http://lilypond.1069038.n5.nabble.com/Cue-notes-with-lyrics-tt171864.html#none
\version "2.19.16"
\layout {
\context {
\Score
\accepts "CueLyrics"
quotedCueEventTypes =
#'(note-event rest-event tie-event
beam-event tuplet-span-event
dynamic-event slur-event lyric-event skip-event)
}
%% maybe other contexts have to accept "CueLyrics" as well!
\context {
\ChoirStaff
\accepts "CueLyrics"
}
\context{
\Lyrics
\name CueLyrics
\alias Lyrics
fontSize = #-6
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((basic-distance . 3)
(minimum-distance . 2)
(padding . 0.8)
(stretchability . 10))
}
}
cueLyr =
#(define-music-function
(parser location what main-music) (string? ly:music?)
(_i "Insert contents of quote @var{what} corresponding to @var{main-music},
in CueLyrics oriented by @var{dir}.")
(make-music 'QuoteMusic
'element main-music
'quoted-context-type 'CueLyrics
'quoted-context-id "cue-lyr"
'quoted-music-name what
))
%%%%%%%%%%%%%%%%%%
%% EXAMPLE
%%%%%%%%%%%%%%%%%%
song =
\relative c {
\clef bass
\time 2/4
\key c \major
c8 d e f g4 g
a8 a a a g2
a8 a a a g2
f8 f f f e4 e
g8 f e d c2
\bar "|."
}
\addQuote "song" \song
song-text =
\lyricmode {
Al -- le mei -- ne Ent -- chen
schwim -- men auf dem See
schwim -- men auf dem See
Köpf -- chen in das Was -- ser
Schwänz -- chen in die Höh'.
}
%% the drawback:
%% quotable lyrics _needs_ durations!!
song-text-with-dur =
\lyricmode {
Al8 -- le mei -- ne Ent4 -- chen
schwim8 -- men auf dem See2
schwim8 -- men auf dem See2
Köpf8 -- chen in das Was4 -- ser
Schwänz8 -- chen in die Höh'2
}
\addQuote "lyr" \song-text-with-dur
beet =
\relative c'' {
\time 2/4
\key c \minor
r8 g g g
ees2
<<
\cueDuringWithClef #"song" #1 "bass" { R2 R2 }
\cueLyr #"lyr" { \skip2 \skip2 }
>>
r8 g g g
ees2
<<
\cueDuringWithClef #"song" #1 "bass" { R2 R2 }
\cueLyr #"lyr" { \skip2 \skip2 }
>>
r8 g g g
ees2
}
<<
\new Staff \new Voice = "lied" \song
\new Lyrics \lyricsto "lied" \song-text
\new Staff \beet
>>
-Harm
-
Hallo Harm,
danke - ich probiere...
-
@Trulli: Deinen Vorschlag vom 16. März habe ich vor ein paar Tagen ausprobiert. Da ist mir eine blöde Falle aufgefallen:
Das \lyricsto "cue" spricht nicht die von Dir erstellte \new Voice = "cue" an, sondern eine vom System erstellte gleichen Namens. Das müßte reproduzierbar sein, wenn Du in Deinem Code die Namen änderst :
\new Voice = "anders" alleine läßt alles unverändert,
mit zusätzlichem \lyricsto "anders" funktioniert es nicht mehr.
So war's mindestens bei mir. Leider sehr ärgerlich, wenn man mehr als eine Referenz in der gleichen \score hat.
Ich bin jedenfalls wieder zu meinem alten Hack gegangen, die Stichnoten nicht zu zitieren, sondern von Hand einzugeben. Häßlich, aber funktioniert.
-
Ich bin jedenfalls wieder zu meinem alten Hack gegangen, die Stichnoten nicht zu zitieren, sondern von Hand einzugeben. Häßlich, aber funktioniert.
Hallo pott,
poste doch hier mal deine Lösung als Ergänzung des Threads.
\lyricsto "cue" spricht \new voice "cue" an (sonst wäre der Text nicht passgenau zu den Noten). Aber du hast Recht, dass man die Bezeichnungen ändern kann. Außer \lyricsto "cue" braucht man sogar gar keine Bezeichnungen angeben.
LG
-
poste doch hier mal deine Lösung als Ergänzung des Threads.
Mache ich gleich.
\lyricsto "cue" spricht \new voice "cue" an (sonst wäre der Text nicht passgenau zu den Noten). Aber du hast Recht, dass man die Bezeichnungen ändern kann. Außer \lyricsto "cue" braucht man sogar gar keine Bezeichnungen angeben.
Ich wollte Dich darauf aufmerksam machen, daß Deine Lösung nicht so funktioniert wie gedacht. Unter 2.18.0 bleibt der folgende Code ohne Text, und Lilypond beschwert sich, daß die Stimme "anders" nicht gefunden wird:
\version "2.16.0"
smallerFontsize = { \set fontSize = #-6 }
\addQuote stimme \new Voice = "anders" \relative c { c8 g' g g as g16 f g4 g8 g }
\score {
\new Staff = "cuelyricdemo"
<<
\new Voice
\relative c'' {
\cueDuringWithClef #"stimme" #1 "bass" { R1 r4 }
b16\pp c b8 r4 r
}
\new Lyrics = "cueLyrics"
\lyricsto "anders" {
\smallerFontsize
Wa -- rum spricht der äl -- te -- re Mann lei -- ser
}
>>
}
Das wird bereits repariert, wenn man nur \lyricsto "anders" durch \lyricsto "cue" ersetzt.
Daraus schließe ich, daß die Stimme "cue" von Lilypond automatisch erstellt und benannt wird.
-
So, nun meine Lösung:
\version "2.18.0"
smaller = {
\set fontSize = #-2
\override Stem #'length-fraction = #0.8
\override Beam #'beam-thickness = #0.384
\override Beam #'length-fraction = #0.8
}
% ----------------------------------------------------------------------------
theMusic = \relative c' {
\tag #'nocue { R1*2 }
\tag #'withcue {
R1
<<
\new Voice = "rests" { \voiceOne R1 }
\new Voice = "cue1" { \voiceTwo \smaller
\relative g' { s4 a8^\markup{ "Sopran" } g f4 e } }
>>
\oneVoice
}
c4 d e f
}
% ----------------------------------------------------------------------------
\new Staff <<
\new Voice = "MyVoice" {
<<
\set Score.skipBars = ##t
\keepWithTag #'withcue \theMusic
>>
}
\context Lyrics = cueLyrics \lyricsto "cue1" {
\smaller klei -- ne Hil -- fe,
}
>>
Die Tag-Geschichte benutze ich, weil ich in der Partitur natürlich keine Stichnoten haben möchte. Dann binde ich die Noten mit \keepWithTag #'nocue ein.
Nachteil ist offensichtlich, daß die Stichnoten noch einmal von Hand eingegeben und extra korrigiert werden müssen, obwohl sie schon einmal in der Datei stehen.