Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
Fragen und Probleme aller Art / BUG? Notenkopf rutscht unter das Vorzeichen
« Letzter Beitrag von Arnold am Heute um 10:19 »
Hallo,

ist dieses Problem, welches ich in 2.18.2 und 2.19.81 beobachte, schon bekannt?
Zumindest habe ich es nicht bei den Issues entdeckt.

Ein Notenkopf zu Anfang einer Zeile kann unter die Vorzeichen rutschen - vor allem wenn darüber eine StaffGroup ohne Vorzeichen (z. Bsp. wegen transponierender Instrumente) steht:

\score {
  <<
    \new StaffGroup <<
      \new Staff \with { instrumentName = "Horn I in E" } {
        e'1 \break e' \bar "|."
      }
      \new Staff \with { instrumentName = "Horn II in E" } {
        g1 \break c' \bar "|."
      }
    >>
    \new Staff \with { instrumentName = "Baßklarinette in B" } {
      \key fis \major
      fis1 \break cis1 \bar "|."
    }
  >>
  \layout { indent = 40 \mm }
}

Arnold
2
Hallo,

ist dieses Problem, welches ich in 2.18.2 und 2.19.81 beobachte, schon bekannt?
Zumindest habe ich es nicht bei den Issues entdeckt.

Ein Schlüsselwechsel am Ende einer Notenzeile verkürzt Bindebögen am Ende anderer Notenzeilen:
\score {
  <<
    \new Staff {
      \repeat unfold 38 { c''8 \noBreak }
      c''8( d''
      \break
      e''1)
      \bar "|."
    }
    \new Staff {
      \repeat unfold 5 g'1
      \clef bass
      c1
      \bar "|."
    }
  >>
}

Arnold.
3
Fragen und Probleme aller Art / BUG? \cueClefUnset verliert die Klammer
« Letzter Beitrag von Arnold am Heute um 10:11 »
Hallo,

ist dieses Problem, welches ich in 2.18.2 und 2.19.81 beobachte, schon bekannt?
Zumindest habe ich es nicht bei den Issues entdeckt.

Am Ende eines Abschnitts mit CueClef fehlt die eckige bzw. runde Klammer bei der Oktavierung.
\score {
  {
    \clef "bass^[8]"
    g'1
    \cueClef treble
    g'1
    \cueClefUnset
    g'1
    \bar "||"
    \clef "treble^(8)"
    g'''1
    \cueClef bass
    g,1
    \cueClefUnset
    g'''1
    \bar "|."
  }
}

Arnold.
4
Fragen und Probleme aller Art / Antw:Marschbuch-page-breaking
« Letzter Beitrag von Arnold am Heute um 09:31 »
Hallo,

ich bin erst kürzlich darauf gestoßen, daß es auch mit weniger Aufwand geht:

\layout {
  \context { \Score
    \override NonMusicalPaperColumn.page-break-permission = ##f
  }
}

Damit bleibt jeder »score« auf einer Seite.

In abgeänderter Form eingesetzt, kann man beim »page-turn-breaking« nachhelfen, daß am Schluß nur eine und nicht zwei Seiten belegt werden.

Arnold.
5
Hallo Ingmar,

zumindest im gegebenen Beispiel funktioniert ein reset von `last-seen` nach jedem \book:

#(define last-seen 1)

\book { ... }

#(set! last-seen 1)

\book { ... }


HTH,
  Harm
6
Fragen und Probleme aller Art / Antw:Cross staff stems [GELÖST]
« Letzter Beitrag von Swetom2011 am Gestern um 17:57 »
Alles in Ordnung.  Problem gelöst.

Danke
Tommy
7
Bei Werken mit vielen kurzen Sätzen ist es durchaus üblich, die Probebuchstaben durchlaufend zu vergeben, also nicht in jedem Satz wieder neu bei "A" anzufangen. LilyPond sieht das leider nicht vor - aber Kollege Harm hatte dankenswerterweise im alten Forum eine Lösung dafür angeboten.

Wie sich nun zeigt, bedenkt diese Lösung nicht den Fall mehrerer \books in einem einzigen File – in diesem Fall macht das Weiterführen der Probebuchstaben typischerweise keinen Sinn. Beispiel: Ich will die dreißig Einzelstimmen einer Orchesterpartitur nicht aus dreißig verschiedenen Files erzeugen, sondern aus einem einzigen und schreibe daher dreißig "Books" in mein File. Da wäre es natürlich wenig zielführend, wenn die Violine I die Probebuchstaben A bis K verwendet und die Violine II dann L bis V.

Minimalbeispiel:
\version "2.19.64"

#(define last-seen 1)

tst-engraver =
#(lambda (context)
  (make-engraver
    (listeners
      ((mark-event engraver event)
       (if (null? (ly:event-property event 'label))
           (begin
             (ly:event-set-property! event 'label last-seen)
             (set! last-seen (1+ last-seen))))))))

MusikEins = \repeat unfold 30 \relative { c'4 d e f g e2 }
MarksEins =\repeat unfold 12 { s1 *4 \mark \default }

MusikZwei = \repeat unfold 30 \relative { c''2 b4 a g2 f4 }
MarksZwei =\repeat unfold 12 { s1 *4 \mark \default }

MusikDrei =\repeat unfold 30 \relative { g'4 a2 g4 f2 e8 f }
MarksDrei =\repeat unfold 12 { s1 *4 \mark \default }

\book {
   \score {
\header { piece = "Erster Satz" }
\new Staff <<
\MusikEins
\MarksEins
>>
\layout {
\context { \Score \consists \tst-engraver }
}
}

\score {
\header { piece = "Zweiter Satz" }
\new Staff <<
\MusikZwei
\MarksZwei
>>
\layout {
\context { \Score \consists \tst-engraver }
}
}}

\book {
   \score {
\header { piece = "Ganz anderes Buch, ganz anderes Stück" }
\new Staff <<
\MusikDrei
\MarksDrei
>>
\layout {
\context { \Score \consists \tst-engraver }
}
}}

(Hinweis für den, der es in Frescobaldi ausprobieren will: Du solltest das *.ly-File bewusst sichern, bevor du es aus dem Editorfenster kompilierst, um anschließend das zweite erzeugte File im selben Ordner finden zu können.)

Man mag die Anforderung für etwas esoterisch halten, bei mir ist sie aber genau so als Problem aufgetaucht.


Gruß, danke!
--ingmar
8
Fragen und Probleme aller Art / re: Abhängig davon, ob eine Variable definiert ist,...
« Letzter Beitrag von ingmar am Sonntag, 17. Juni 2018, 19:20 »
Danke! Bei einigen davon hätte ich ja selber draufkommen können.. : - (

Nachher ist man immer klüger.

Gruß,
--ingmar
9
Hallo Ingmar,

eine solche lokale Variable rufe innerhalb von #{ #} mit #mymargin oder $mymargin auf.
#mymargin ruft es direkt, $mymargin eine Kopie. Hier ist der Unterschied belanglos, aber falls das Argument Musik ist, so bevorzuge $.
Ansonsten kann es passieren, daß das Musik-Argument destruktiv verändert wird und nicht mehr im Original zur Verfügung steht.

Im Übrigen
(1)
\mymargin würde eine toplevel Variable aufrufen können, keine lokale.
(2)
#(mymargin)
Durch die Klammern versucht der scheme-interpreter die procedure `mymargin` auszuführen. Eine solche procedure gibt es aber nicht.
(3)
#(eval mymargin)
Hier ist die procedure `eval`, die versucht `mymargin` innerhalb einer nicht gegebenen "Umgebung" zu evaluieren.
Deshalb der error:
Wrong number of arguments to #<primitive-procedure eval>
#(eval mymargin (current-module)) würde funktionieren, aber warum der Umstand...
Eine Zahl evaluiert zu nichts anderem als eben dieser Zahl
(4)
#(ly:parser-lookup (mymargin))
Funktioniert nicht wegen der Klammern, siehe oben.
ly:parser-lookup erwartet ein symbol (den Namen dessen was Du im parser nachschauen möchtest)
(ly:parser-lookup 'mymargin) wäre zwar korrekte Syntax, scheitert aber da `mymargin` eine lokale Variable ist, die der parser gar nicht zu sehen bekommt, afaict.


Gruß,
  Harm

10
Fragen und Probleme aller Art / Scheme-Variable in einem Key-Value-Paar
« Letzter Beitrag von ingmar am Sonntag, 17. Juni 2018, 10:57 »
Eine Frage ist aber noch offen! An manchen Stellen in LilyPond müssen einfach Key/Value-Paare stehen, beispielsweise innerhalb von \paper. Unabhängig einmal von der (für mich gelösten) Frage der Evaluierung von Variablennamen stellt sich hier noch die Frage nach der richtigen Syntax, wenn wir uns innerhalb eines durch Scheme erzeugten #{...#}-Blocks befinden und die in Scheme vorhandene Variable auswerten wollen.

Hier mehrere Versuche – je eine auskommentierte Zeile, die beim Entkommentieren aus verschiedenen, aber wohl ähnlichen Gründen fehlschlägt:

\version "2.19.64"

mypaper = #(define-scheme-function (mymargin) (integer?) #{
\paper {
% top-margin = \mymargin
% top-margin = #(mymargin)
% top-margin = #(eval mymargin)
% top-margin = #(ly:parser-lookup (mymargin))
}
#})

\mypaper 30
\score {
\relative { c' e d f e g f a g1\fermata }
}

Es sollte eigentlich nicht schwer sein, aber ich komm nicht drauf! Wie kann man das angehen, und welchen Denkfehler mache ich?


Danke, Gruß,
--ingmar
Seiten: [1] 2 3 ... 10