Autor Thema: Balkengruppen in 2.13.29 und folgende  (Gelesen 2132 mal)

Franz

  • Member
Balkengruppen in 2.13.29 und folgende
« am: Sonntag, 29. August 2010, 04:04 »
Hallo,

die Methode zur Änderung der automatischen Balkensetzung wurde in 2.13.29 geändert. Leider hilft mir die Dokumentation überhaupt nich.
Ich möchte im folgenden Beispiel immer 2 Achtelnoten unter einem Balken haben.

\version "2.13.29"

\paper {
  myStaffSize = #24
  line-width = 18\cm
}

\relative c''' {
 \time 4/4
 \key e \minor
 
 g8 e g8. fis16 e8 d c b |
 a d e16 d c e d8 c16 b a b c a |
}

In 2.12.* ging das, indem ich folgende Zeilen hinter vor die Noten gesetzt habe:

   #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
   #(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
   #(override-auto-beam-setting '(end * * * *) 3 4 'Staff)

Bis 2.13.28 mit einer anderen Methode.
Jetzt funktionieren beide Methoden nicht mehr.

Da das ganze Stück doch recht lang ist, möchte ich die Balkensetzung nicht immer wieder manuell machen müssen.
Kennt jemand einen Ausweg?

Vielen Dank schon mal im voraus.

Gruß
Franz
« Letzte Änderung: Sonntag, 29. August 2010, 04:06 von Franz »

RobUr

  • Member
Re:Balkengruppen in 2.13.29 und folgende
« Antwort #1 am: Sonntag, 29. August 2010, 06:44 »
Hallo Franz,

wenn du mit der Entwicklerversion (also zumindest nicht der letzten stabilen) arbeitest, musst du auf solche Überraschungen gefasst sein. Die Downloads sind entsprechend gekennzeichnet. Die neueste Development-Version ist ja bereits 2.13.31 (oh, schon zwei Subversionen später).

Ich finde aber auch gar nicht, dass die NR überhaupt nicht hilft. Ganz im Gegenteil bietet sie etliche Ansätze, das Verbalkungsverhalten zu beeinflussen. Ich kann jetzt nur vermuten, dass du eine Codezeile aus einem bisher funktionierenden Teil in ein neues Dokument in einen anderen Context kopiert hast. Zumindest ist die Angabe des Contexts 'Staff innerhalb der Prozedur ein Indiz dafür. Welche „andere“ Methode war es denn bis 2.13.28? Für die aktuelle Entwicklerversion schau doch bitte noch einmal nach http://lilypond.org/doc/v2.13/Documentation/notation/beams#setting-automatic-beam-behavior

Grüße, Robert

Franz

  • Member
Re:Balkengruppen in 2.13.29 und folgende
« Antwort #2 am: Sonntag, 29. August 2010, 14:59 »
Hallo Robert,

Zitat
wenn du mit der Entwicklerversion (also zumindest nicht der letzten stabilen) arbeitest, musst du auf solche Überraschungen gefasst sein. Die Downloads sind entsprechend gekennzeichnet. Die neueste Development-Version ist ja bereits 2.13.31 (oh, schon zwei Subversionen später).

ich arbeite schon lange mit den Entwicklerversionen, da diese einige Vorteile gegenüber der stabilen Version bilden. Die Leute machen verdammt gute Arbeit.
(Davon abgesehen arbeitet die 2.12. nicht korrekt, da sie auf OpenSuse-11.3 keine PDF generieren kann. Das Programm selbst zu kompilieren scheitert. Selbst die
Entwicklerversion 2.13.31 arbeitet bei mir nur, weil ich sie selbst kompiliert habe.)

Ich schicke im folgenden mal einen Quellcodeausschnitt und ein Bild der Ausgabe. Vielleicht hilft das, um das Problem zu lösen.

Danke nochmal

Gruß
Franz

\version "2.13.*"

\markup { \huge
  "Extract from an Allemande by Michel de la Barre" }
\markup \null
\markup \null
\markup \null

\markup {
"The time-signature is \"C\". Like most composers of the \"Grand Siecle\" "}

\markup { 
de la Barre took care about beamgroups. It is important for a correctly}

\markup {
interpretation of his music.}
\markup \null
\markup \null

\markup {
In older versions of Lilypond there were working methods to set the}

\markup {
automatic beam behavior. Since 2.13.29 the method changed and I can't}
 
\markup {
find a solution in the documentation.}

\markup \null
\markup \null
\markup {
  "Beam Settings worked like this until 2.13.28:" }
\markup {   \typewriter
  "\overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1)))" }

\markup \null
\markup \null
\markup {   
  "Since 2.13.29 the following code works in some cases:" }
 
\markup { \typewriter
  " \set baseMoment = #(ly:make-moment 1 8)" }
\markup { \typewriter
  " \set beatStructure = #'(2 2 2 2) " }
\markup { 
  "If I change the \\time in 2/2 it works correctly." }

\markup \null
\markup \null
\markup \null
\markup \null


\paper {
  myStaffSize = #24
  line-width = 18\cm
}

\relative c''' {
  \time 4/4
  \key e \minor
 
%   Beam Settings worked like this until 2.13.28:
%   \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1)))
 
%   Since 2.13.29 the following code works in some cases:
 \set baseMoment = #(ly:make-moment 1 8)
 \set beatStructure = #'(2 2 2 2)
%  If I change the \time in 2/2 it works correctly.
 
 
 g8 e g8. fis16 e8 d c b |\noBreak
 a d e16 d c e d8 c16 b a b c a |
}

\layout {
  indent = 0\cm
}



RobUr

  • Member
Re:Balkengruppen in 2.13.29 und folgende
« Antwort #3 am: Sonntag, 29. August 2010, 23:04 »
Hallo Franz,

dieses Verbalkungsverhalten entspricht der Lilypond-Voreinstellung: wenn nur Achtel vorkommen, gruppiere jeweils 4 (in einem 4/4-Takt). Es ist als beamExceptions in scm/time-signature-settings.scm definiert. Diese „Ausnahme“ kann man nun im Dokument umdefinieren:
\set beamExceptions =
#'((end . (
((1 . 8) . (2 2 2 2)) ;; was ((1 . 8) . (4 4))
((1 . 12) . (3 3 3 3)))))

Das komplette Dokument wäre dann:
\version "2.13.31"

\markup \huge {
"Extract from an Allemande by Michel de la Barre"
}

\markup \column {
\null
\line {
"The time-signature is"
\raise #0.75 \teeny \musicglyph #"timesig.C44" "."
"Like most composers of the “Grand Siecle”"
}
"de la Barre took care about beamgroups. It is important for a correct"
"interpretation of his music."
\null
"In older versions of Lilypond there were working methods to set the"
"automatic beam behaviour. Since 2.13.29 the method changed and I can’t"
"find a solution in the documentation."
\null
"Beam Settings worked like this until 2.13.28:"
\typewriter \small
" \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1)))"
\null
"Since 2.13.29 the following code works in some cases:"
\typewriter \small
" \set baseMoment = #(ly:make-moment 1 8)"
\typewriter \small
" \set beatStructure = #'(2 2 2 2)"
\null
\line {
"If I change"
\typewriter \small "\\time"
"to 2/2 it works correctly."
}
\null
}

\relative c''' {
\time 4/4
\key e \minor

% Beam Settings worked like this until 2.13.28:
% \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1)))

% Since 2.13.29 the following code works in some cases:
%\set baseMoment = #(ly:make-moment 1 8)
%\set beatStructure = #'(2 2 2 2)
% If I change the \time in 2/2 it works correctly.

g8 e g8. fis16 e8 d c b | \noBreak
a d e16 d c e d8 c16 b a b c a |
}

\markup \column {
"Now works with:"
\typewriter \small {
" \set beamExceptions ="
" #'((end . ("
" ((1 . 8) . (2 2 2 2)) ;; was ((1 . 8) . (4 4))"
" ((1 . 12) . (3 3 3 3)))))"
}
\null
}

\relative c''' {
\time 4/4
\key e \minor

\set beamExceptions =
#'((end . (
((1 . 8) . (2 2 2 2)) ;; was ((1 . 8) . (4 4))
((1 . 12) . (3 3 3 3)))))

g8 e g8. fis16 e8 d c b | \noBreak
a d e16 d c e d8 c16 b a b c a |
}

Grüße, Robert

Franz

  • Member
Re:Balkengruppen in 2.13.29 und folgende
« Antwort #4 am: Sonntag, 29. August 2010, 23:48 »
Hallo Robert,

vielen Dank, so klappt es.
Ich habe übrigens die gleiche Lösung nach langem Suchen vor 2 Stunden auch im Internet gefunden unter
http://osdir.com/ml/bug-lilypond-gnu/2009-09/msg00081.html

So viele Klammern sieht man selten.  ;)

Gruß
Franz