Überflüssige Klammer und fehlende Zeichen.

Begonnen von flashgordonx, Sonntag, 3. Oktober 2021, 22:24

« vorheriges - nächstes »

flashgordonx

Hallo Leute!

Laut meines Fehlerprotokols habe ich eine Überflüssige Klammer, außerdem eine Wiederholungszeichen im Takt 4 nicht erscheint. Könntet ihr mir helfen zu korrigieren?  8)

Dankeschön!

\version "2.20.0"

\header {
title = "Hört der Engel helle Lieder"
composer = "französisches Weihnachtslied (1842)"
subtitle = "Les Anges dans nos campagnes"
poet = ""
tagline = ""
}

#(set-default-paper-size "a5")
#(set-global-staff-size 19)

\pointAndClickOff

global = {
  \key f \major
  \time 4/4
}

chordNames = \chordmode {
  \global
  % Akkorde folgen hier.
 
}

melody =  {
  \global
    {   

  \repeat volta 2 %Kapu ismétlésnél ezzel az utasítással adom meg, hogy hány kapu lesz. A következő kapcsos zárójeles szakasz , 

% az ELSŐ kapu ELŐTTI részt tartalmazza.!   

{   

a'4 a' a' a'8 c'' c''4. bes'8 a'4 f' \break
a' a'8 g' a'4 a'8 c'' c'4. bes'8 a'2  \bar ":..:"

\break



\bar ".|:" c''2 \melisma  d''8 c''8  bes' a' bes'2 c''8 bes' a' g'
a'2  c''8 bes' a' g' g'4. \melismaEnd
c'8 c'2

f'4 g' a' bes'

}   

\alternative {  %nyitó zárójel

%ez a parancs és az utána lévő kapcsos zárójelbe található hangok lesznek az első kapu alatt.   

  {  %még egy nyitó!!!

        a'2 g' \bar ":|." 
}   

% A következő kapcsos zárójel már a kettes kapu alatti hangokat tartalmazza a csúkó zárójelig.   

{   a'2 g' f'2.    \bar "|."   

}  %kettes kapu lezárása   

      } %első kapu lezárása   

    } %az egész lezárása 

%Ha az utolsó 3 közül vmelyik inaktív hiányzik vhonnan egy zárójel
%        \bar "|."
 
}

verseOne = \lyricmode {
  \set stanza = "1."
Hört, der En -- gel \skip1 hel -- le Lie -- der

klin -- gen das wei -- te \skip1 Feld ent -- lang,



Glo -- ri -- a in ex -- cel -- sis De -- o De -- \skip1 o.
 
}

verseTwo = \lyricmode {
% \set stanza = "2."

und die Ber -- ge \skip1 hal -- len wi -- der

von des \skip1 Him -- mels Lob -- ge -- sang:




 
}

verseThree = \lyricmode {
  \set stanza = "3."
  % Liedtext folgt hier.
 
}

\score {
  <<
    \new ChordNames \chordNames
    \new Staff { \melody }
    \addlyrics { \verseOne }
    \addlyrics { \verseTwo }
    \addlyrics { \verseThree }
  >>
  \layout { }
 
  \midi {
    \tempo 4=100
  }
 
}
 
\markup {
  \fill-line {
    \hspace #0.1 % moves the column off the left margin;
     % can be removed if space on the page is tight
     \column {
      \line { \bold "2."
        \column {
"Hirten, warum wird gesungen?"

"Sagt mir doch eures Jubels Grund!"

"Welch ein Sieg ward denn errungen,"

"den uns die Chöre machen kund?"

"Gloria in excelsis Deo."
        }
      }
      \combine \null \vspace #0.6 % adds vertical spacing between verses
      \line { \bold ""
        \column {
 
        }
      }
    }
    \hspace #0.1 % adds horizontal spacing between columns;
    \column {
      \line { \bold "3."
        \column {
         
          "Sie verkünden uns mit Schalle,"

"dass der Erlöser nun erschien,"

"dankbar singen sie heut alle"


"an diesem Fest und grüßen ihn."

"Gloria in excelsis Deo."
        }
      }
      \combine \null \vspace #0.1 % adds vertical spacing between verses
      \line { \bold ""
        \column {
          ""
         
        }
      }
    }
  \hspace #0.1 % gives some extra space on the right margin;
  % can be removed if page space is tight
  }
}


 
  \midi {
    \tempo 4=100
  }
}

Arnold

Hallo flashgordonx,

suchst Du etwa einen Lehrer, der Deine Arbeitern korrigiert und benotet?

Der würde zuerst einmal verlangen, daß du eine korrekturfreundlichere Formatierung benutzt.

  • Rücke nach jeder geöffneten Klammer weiter ein, und beim Schließen der Klammer wieder aus, dann wirst Du aber auch selbst entdecken, daß nach den Variablendefinitionen drei Top-Level-Objekte plus eine verwaiste geschweifte Klammer folgen, und eines dieser Top-Level-Objekte macht in meinen Augen keinen Sinn - ist wohl durch ein unbedachtes »copy-and-paste« dorthin gelangt.
  • Scheibe deine Noten grundsätzlich taktweise in eine Zeile (dann zählt man schneller zum Ende des 4. Takts). Und die Angaben, die nicht zu den Noten gehören (z. Bsp. \break und \bar), werden von den Zeilen mit Noten abgesetzt (auch wenn dann die Noten eines Taktes auf mehrere Zeilen verteilt werden müssen.

  • Dein Beispiel enthält eigentlich unnötige \bar-Angaben - verwende die \bar-Angabe nur, wenn es nicht mit \repeat (und \inStaffSegno) erreichbar ist, also lieber »\repeat volta 2 { ... } \repeat volta 2 { ... } \alternative { { ... } { ... \bar "|." } }«
  • Bedenke, daß es zu einem Zeitschritt nur eine Art von Taktschrich geben kann, der aber in verschieden erscheinen kann - quasi eine Dreifaltigkeit aus »Bild in der Mitte eine Notenzeile«, »Bild am Ende einer Notenzeile« und »Bild am Anfang einer Notenzeile«.
    Also: Am Zeilenumbruch ist auch nur ein einziger (logischer) Taktstrich! Und mit \bar wählt man genaugenommen eine Taktstrich-Dreifaltigkeit aus.

Arnold

P.S. eigentlich ist es eine Vierfaltigkeit und keine Dreifaltigkeit - der Notenzeilenzwischenraum käme auch noch dazu.

amateur

Ich benutze Frescobaldi. Das zeigt mir immer an, an welcher Stelle der Fehler ist. Für mich ist es außerdem hilfreich,  \pointAndClickOn eingeschaltet zu haben. Dann kann ich von den Stellen im PDF  direkt in den Quelltext springen.

So sieht es bei mir mit ein paar Klammerkorrekturen aus:
\version "2.20.0"

\header {
  title = "Hört der Engel helle Lieder"
  composer = "französisches Weihnachtslied (1842)"
  subtitle = "Les Anges dans nos campagnes"
  poet = ""
  tagline = ""
}

#(set-default-paper-size "a5")
#(set-global-staff-size 19)

%\pointAndClickOff
\pointAndClickOn

global = {
  \key f \major
  \time 4/4
}

chordNames = \chordmode {
  \global
  % Akkorde folgen hier.

}

melody =  {
  \global
  {

    \repeat volta 2 %Kapu ismétlésnél ezzel az utasítással adom meg, hogy hány kapu lesz. A következő kapcsos zárójeles szakasz ,

    % az ELSŐ kapu ELŐTTI részt tartalmazza.!

    {

      a'4 a' a' a'8 c'' c''4. bes'8 a'4 f' \break
      a' a'8 g' a'4 a'8 c'' c'4. bes'8 a'2 %\bar ":..:"

      \break
    }

    \repeat volta 2 {
      c''2 \melisma  d''8 c''8  bes' a' bes'2 c''8 bes' a' g'
      a'2  c''8 bes' a' g' g'4. \melismaEnd
      c'8 c'2

      f'4 g' a' bes'

    }

    \alternative {
      %nyitó zárójel

      %ez a parancs és az utána lévő kapcsos zárójelbe található hangok lesznek az első kapu alatt.

      {
        %még egy nyitó!!!

        a'2 g' \bar ":|."
      }

      % A következő kapcsos zárójel már a kettes kapu alatti hangokat tartalmazza a csúkó zárójelig.

      {
        a'2 g' f'2.    \bar "|."

      }  %kettes kapu lezárása

    } %első kapu lezárása

  } %az egész lezárása

  %Ha az utolsó 3 közül vmelyik inaktív hiányzik vhonnan egy zárójel
  %        \bar "|."
}


  verseOne = \lyricmode {
    \set stanza = "1."
    Hört, der En -- gel \skip1 hel -- le Lie -- der

    klin -- gen das wei -- te \skip1 Feld ent -- lang,



    Glo -- ri -- a in ex -- cel -- sis De -- o De -- \skip1 o.

  }

  verseTwo = \lyricmode {
    % \set stanza = "2."

    und die Ber -- ge \skip1 hal -- len wi -- der

    von des \skip1 Him -- mels Lob -- ge -- sang:





  }

  verseThree = \lyricmode {
    \set stanza = "3."
    % Liedtext folgt hier.

  }

  \score {
    <<
      \new ChordNames \chordNames
      \new Staff { \melody }
      \addlyrics { \verseOne }
      \addlyrics { \verseTwo }
      \addlyrics { \verseThree }
    >>
    \layout { }

    \midi {
      \tempo 4=100
    }

  }

  \markup {
    \fill-line {
      \hspace #0.1 % moves the column off the left margin;
      % can be removed if space on the page is tight
      \column {
        \line {
          \bold "2."
          \column {
            "Hirten, warum wird gesungen?"

            "Sagt mir doch eures Jubels Grund!"

            "Welch ein Sieg ward denn errungen,"

            "den uns die Chöre machen kund?"

            "Gloria in excelsis Deo."
          }
        }
        \combine \null \vspace #0.6 % adds vertical spacing between verses
        \line {
          \bold ""
          \column {

          }
        }
      }
      \hspace #0.1 % adds horizontal spacing between columns;
      \column {
        \line {
          \bold "3."
          \column {

            "Sie verkünden uns mit Schalle,"

            "dass der Erlöser nun erschien,"

            "dankbar singen sie heut alle"


            "an diesem Fest und grüßen ihn."

            "Gloria in excelsis Deo."
          }
        }
        \combine \null \vspace #0.1 % adds vertical spacing between verses
        \line {
          \bold ""
          \column {
            ""

          }
        }
      }
      \hspace #0.1 % gives some extra space on the right margin;
      % can be removed if page space is tight
    }
  }



  \midi {
    \tempo 4=100
  }


Hilflos-im-Code

Da Du nicht verrätst, wie, wo und was der Fehlerbericht ausgegeben wird/ausgibt, ist das ziemlich schwierig.

Ich vermute aber, dass in deinem Fehlerbericht etwas in diesem Sinne auftaucht:

Zitat.../document.ly:183:1: Fehler: syntax error, unexpected '}'
183.1 bedeutet Zeile 183 erstes Zeichen. .
Da müsstest Du hingehen und nachschauen.

flashgordonx

Zitat von: Arnold am Montag,  4. Oktober 2021, 09:00
Hallo flashgordonx,

suchst Du etwa einen Lehrer, der Deine Arbeitern korrigiert und benotet?



Danke für die Antwort. Eine Wiederholunszeichen war überflüssig aber hab es nicht gemerkt. :)

Die Antwort für deine Frage: Ich suche immer eine Lösung für mein Problem. Lelypond verstehe ich nicht ganz, aber die Noten, die mit Lilly gemacht werden, sind wirklich schön. :)

flashgordonx

Zitat von: amateur am Montag,  4. Oktober 2021, 17:32
Ich benutze Frescobaldi. Das zeigt mir immer an, an welcher Stelle der Fehler ist.

Ich benutze auch und habe ich gesehen, dass ich eine überflüssige Klammer hatte, aber wusste ich nicht wo.

Pointklikk funktioniert normalerweise bei mir auch, wenn ich eine neue Dokumente erstelle. In diesem Fall nicht, weil ich immer eine alte speichere ich als 'neues Lied' und schreibe ich es durch.  :)

amateur

Du hattest am Anfang den Ausdruck \pointAndClickOff eingefügt.  ;)

flashgordonx

Zitat von: amateur am Dienstag,  5. Oktober 2021, 17:19
Du hattest am Anfang den Ausdruck \pointAndClickOff eingefügt.  ;)

Interessant. Ich habe dieses Befehl nicht gekannt. :)

Arnold

Also Flashgordonx,

die überfülüssige geschweifte Klammer steht ganz am Ende,

und der \midi-Block kurz davor hat sicher keine Auswirkungen auf das Ergebnis.
Den \midi-Block mit Tempo-Angabe setzt man meist innerhalb des \score, parallel zu (also notiert vor oder nach) \layout { }, welches z. Bsp. eine system-count-Festlegung enthalten kann.

Arnold.