Autor Thema: \partial Befehl richtig anwenden  (Gelesen 2479 mal)

Musiker

  • Member
\partial Befehl richtig anwenden
« am: Donnerstag, 27. September 2012, 18:11 »
Hallo zusammen!
ich habe ein Problem mit dem \partial Befehl. Immer, wenn ich ihn einsetze, gibt er mir beim Berechnen eine Warnung aus.

/../Test.ly:27:63: Warnung: versuche, \partial nach dem Beginn eines Stückes einzusetzen
Noten = \relative c'' { \partial 4 g8 g | g4 e8 c | c4 c'8 c | \partial 4 c4 | \bar "|." }

Wie kriegt man das anhand meines Beispieles sauber hin? Der erste und letzte Takt sollen 1/4 der Rest 2/4 lang sein.
Soll ich da lieber mit \skip arbeiten?



\version "2.14.2"

\include "deutsch.ly"

\layout {
indent = #0                                                                                                                   
                }


\header {
tagline = ""
title = "Test"
}

global = {
\key c \major
        \clef treble
\time 2/4

  }

Akkorde = \chords { \germanChords
\set chordChanges = ##t
\skip4 c2 d f4
  }

Noten = \relative c'' { \partial 4 g8 g | g4 e8 c | c4 c'8 c | \partial 4 c4 | \bar "|." }
     


\score { % PDF
        <<
\Akkorde
\new Staff { \global \Noten }
>>


\layout { }
}

harm6

  • Member
Re: \partial Befehl richtig anwenden
« Antwort #1 am: Donnerstag, 27. September 2012, 20:11 »
Hallo,

lese nochmal NR Auftakte
http://lilypond.org/doc/v2.14/Documentation/notation-big-page.de.html#upbeats

Dort steht

Zitat
Bekannte Probleme und Warnungen

\partial ist nur für den Anfang eines Stückes vorgesehen. Wenn der Befehl innerhalb eines Stückes verwendet wird, können seltsame Warnungen auftreten. In solchem Fall sollten Sie \set Timing.measurePosition benutzen.

Beispiel für \set Timing.measurePosition weiter oben.

\partial in der Mitte eines Stückes einzusetzen war in "2.12.3" noch die empfohlene Methode.
In 2.14.2 hat sich das nunmal geändert.

Gruß,
  Harm

Musiker

  • Member
Re: \partial Befehl richtig anwenden
« Antwort #2 am: Donnerstag, 27. September 2012, 21:14 »
OK, ich verstehe aber nicht, was ich dann als Zahlen eingeben muss. Die negativen Zahlen verwirren mich.

harm6

  • Member
Re: \partial Befehl richtig anwenden
« Antwort #3 am: Freitag, 28. September 2012, 00:06 »
Zitat von: Musiker
OK, ich verstehe aber nicht, was ich dann als Zahlen eingeben muss. Die negativen Zahlen verwirren mich.

Nun, um noch mehr aus der NR zu zitieren.

Zitat
Intern wird \partial Dauer übersetzt nach:

    \set Timing.measurePosition -Länge der Dauer

Zum Beispiel wird aus \partial 8*3:

    \set Timing.measurePosition = #(ly:make-moment -3 8)

Im Prinzip finde ich das sehr einleuchtend.

Aber zur Erklärung:
\partial 4 kann auch als \partial 4*1 geschrieben werden (also als Produkt), wobei die erste Zahl der Notenwert ist, die zweite Zahl die Anzahl dieser Notenwerte.

Wie die NR weiter ausführt wird \partial 4 (bzw \partial 4*1) intern übersetzt als -4, wobei die -4 das Ergebnis des Produkts der Argumente von \set Timing.measurePosition = #(ly:make-moment -1 4) ist.

Anderes Beispiel:

\version "2.14.2"

\relative c' {
        \partial 16*15
        c16 c c \repeat unfold 3 { c[ c c c] } |
        \set Timing.measurePosition = #(ly:make-moment -15 16)
        c16 c c \repeat unfold 3 { c[ c c c] } |
}

Zu Deinem Beispiel:
Zunächst muß ich sagen, daß ich immer zögere mit der Bearbeitung, wenn ich einen Beispielcode sehe der so lang ist wie Deiner (oder sogar noch länger).
Und wenn ich von meinem regulären Job genervt bin, dann ignorier ich sowas häufig.
Übrigens, ich bin (fast) immer genervt von meinem regulären Job. Allerdings gabs heute tatsächlich mal einen Lichtblick.
Insofern:
Ich habe Deinen Code zusammengestrichen, indem ich vieles überflüssige entfernt habe.
Tatsächlich habe ich ihn aber nicht so zusammengestrichen wie hier gefordert.

Er sieht jetzt so  aus:

\version "2.14.2"

Akkorde = \chords {
        s4 c2 f4
}

Noten = \relative c'' {
        \time 2/4
        \partial 4*1
        g8 g |
        c,4 c'8 c |
        \set Timing.measurePosition = #(ly:make-moment -1 4)
        c,4 |
        \bar "|."
}

\score { % PDF
        <<
        \Akkorde
        \new Staff \Noten
        >>
        \layout {}
}


Zwei Anmerkungen noch:
1. Ich habe in den Akkorden \skip4 durch s4 ersetzt (weniger Tipperei)
2. Bei einem Beispiel wie Deinem ist eigentlich das ganze Gefummel mit
    \set Timing.measurePosition = #(ly:make-moment -1 4)
   überflüssig. Laß einfach die letzte Taktprüfung weg. :)



Gruß,
  Harm