remove Bar_engraver

Begonnen von gufrie, Dienstag, 13. August 2019, 16:41

« vorheriges - nächstes »

gufrie

Hallo, bin totaler Neuling und habe bisher einige Notenblätter erstellt, indem ich Beispiele im Internet gefunden habe und diese dann abgeändert habe.
Nun habe ich ein Problem beim Erstellen eines Stückes, in welchem die Taktstriche entfallen sollen. Habe bereits herausgefunden, dass dies mit \remove Bar-engraver klappen soll. Ich habe viele Beispiele dazu gefunden. Mein Problem ist aber: ich weiß einfach nicht, an welche Stelle in meinem Code diese Zeile eingefügt werden muss. Habe mal das Beispiel angefügt und hoffe, dass mit hier jemand helfen kann. Vielen Dank im voraus.
\version "2.18.2"
\header {
  title = "Wachet auf, ruft uns die Stimmet"      % Überschrift wird zentriert
  tagline = ##f                                   % ##f heisst: keine tagline
}

\paper {
  #(set-paper-size "a4")   % Seitengröße auf DIN A4 setzen.
  after-title-space = 1\cm % Größe des Abstands zwischen Überschrift und ersten Notensystem
}

\layout {
  indent = #0
}

melodie = \relative c' {
  \clef "treble"
  \time 4/4
  \key c\major
  \autoBeamOn
    c2 e2 g2. g4 g g a (g a2) g2 r4 g4 c g \break
   c4 e d e d2 g, r4 g4 c g a e f d c2 \break
   r4 g' g2. f4 e d c2 r4 g'4 g2. f4 e d c2 d4 e f2 e \break
   g2 a4 b4 c2 c4 e4 d2  c2 g2 c4 g a e f d c2 \bar "|."
}

text = \lyricmode {
\set stanza = "1."
   Wa -- chet auf, ruft uns die Stim -- me der Wäch -- ter
   sehr hoch auf der Zin ne, wach auf, du Stadt Je ru sa lem.
   Wohl auf, der Bräut -- gam kommt; steht auf, die Lam -- pen nehmt. Hal -- le -- lu -- ja.
   Macht euch be -- reit zu der Hoch -- zeit, ihr müs -- set ihm ent -- ge -- gen -- gehn
   }

\score {
  <<
    \new Voice = "Lied" { \melodie }
    \new Lyrics \lyricsto "Lied" { \text }
  >>
}

Köbi

Hallo gufrie

Willkommen im Forum! Bitte poste jeweils NUR ein Minimalbeispiel und zwar innerhalb von Code tags, Danke.

Zum deiner Frage: Wenn du im Archiv (https://archiv.lilypondforum.de/) nach "Taktstrich" suchst findest sehr einfach eine Antwort. Auf (d)ein (Minimal-) Beispiel übertragen könntest du es z.B. so machen:


\version "2.18.2"

melodie = \relative c' { c2 e2 g2. r4 }

text = \lyricmode { Wa - chet auf }

\score {
  <<
    \new Voice = "Lied" { \melodie }
    \new Lyrics \lyricsto "Lied" { \text }
  >>
   \layout {
      \context { \Staff \remove "Time_signature_engraver" }
      \context { \Staff \remove "Bar_engraver" }
   }
}


D.H., du setzt am Ende des score tags noch

    \layout {
      \context { \Staff \remove "Time_signature_engraver" }
      \context { \Staff \remove "Bar_engraver" }
    }
}

ein.

Gruss, Köbi

harm6

Hallo gufrie,

willkommen im Forum.

Zunächst ein paar Sachen...
Köbi sprach ja schon von den code-tags, bitte benutze sie ;)
Auch ist Dein Beispiel nicht wirklich minimal...
Siehe dazu http://lilypond.org/doc/v2.19/Documentation/web/tiny-examples.de.html
Aber wenn Du schon ein ausführliches Beispiel postest, dann auch ein paar Worte dazu, ehe ich ins eigentliche Thema einsteige.

Du schreibst:
ZitatHallo, bin totaler Neuling und habe bisher einige Notenblätter erstellt, indem ich Beispiele im Internet gefunden habe und diese dann abgeändert habe.
Die Hauptquelle für die Recherche sollte die LilyPond-Doku sein, die zu Deiner Version passt.
Das LSR liefert auch jede Menge Anregungen.
Bei Unklarheiten dann dieses Forum oder die internationale mailing-list.

Irgendwelche Snippets aus der Netzsuche sind aufgrund verschiedener Versionen häufig nicht zielführend, z.B.:
  after-title-space = 1\cm
ist in 2.18.2 absolut wirkungslos, das gabs früher mal, wenn ich mich recht erinnere war's in 2.12, mit anderen Worten Steinzeit ;)

Für
  #(set-paper-size "a4")
  \clef "treble"
  \time 4/4
  \key c\major
  \autoBeamOn
solltest Du wissen, daß alle diese Setzungen default sind, also nicht extra geschrieben werden müssen. Einzig bei der KeySignature bin ich mir nicht ganz sicher, wie es in 2.18.2 geregelt ist.

Bei der Code-Eingabe würde ich für jeden Takt eine neue Zeile anfangen, man kann sonst zu leicht den Überblick verlieren, setze auuch nicht nur erklärende Kommentare sondern auch Taktzahlen, bzw Zeilen, Strophen-angaben oder ähnliches. Alles was den Überblick fördert.



Zum Thema:

Eigentlich habe ich den Eindruck, daß Du nicht die Taktstriche, also ein graphisches Symbol, entfernen willst sondern gar keine Takte (im Sinne einer Zeiteinteilung) haben willst. Ich schließe das aus der rhythmischen Eingabe, die an einer Stelle von vorn herein nicht mit einem 4/4-Takt konform geht, sowie aus dem Versuch einen \break mitten in einem solchen 4/4-Takt zu setzen.

Nichtsdestotrotz ein paar Worte zum Umgang mit dem Bar_engraver.
Zunächst versuche Informationen darüber zu bekommen, d.h. schau in die IR.
Dort findest Du beim Bar_engraver, daß er u.a. im Staff-context lebt.
In der NR 5.1 Interpretation contexts
findest Du jede Menge Stoff wie man mit dem ganzen Zeug umgeht, falls da etwas unklar bleiben sollte frag nach.
Köbi hat in seinem Code auch prinzipiell die richtige Syntax gezeigt, wie man engraver entfernt, mittels \remove im richtigen context, hier Staff. Allerding ist der Rest der Syntax ineffizient, denn
    \layout {
      \context { \Staff \remove "Time_signature_engraver" }
      \context { \Staff \remove "Bar_engraver" }
    }
bedeutet, daß der context \Staff kopiert wird und ihm der "Time_signature_engraver" entzogen wird, dann wird diese veränderte Kopie erneut kopiert und dieser Kopie einer Kopie der "Bar_engraver" entzogen.
Das macht man besser mit:
    \layout {
      \context {
        \Staff
        \remove "Time_signature_engraver"
        \remove "Bar_engraver"
      }
    }
Eine Kopie, die verändert wird.

Dieses \layout { ... } kann jetzt toplevel stehen, sodaß es für alle scores eines files gilt oder als score-layout, um nur diesen einen score anzusprechen:
\score {
  ...music...
  \layout { ... }
}


Du wirst allerdings feststellen, daß plötzlich auch bis auf den ersten alle Notenschlüssel verschwinden.
Die Begründung dafür habe ich vergessen, aber es gab eine ...
Willst du das?
Wenn ja, gut.
Wenn nicht dann ist das der falsche Weg.

Laß den Bar_engraver drin aber schließe den Druck des BarLine.stencil aus:
    \layout {
      \context {
        \Staff
        \omit BarLine
      }
    }
Falls diese Syntax noch nicht in 2.18.2 zur Verfügung steht schreibe
  \override BarLine.stencil = ##f anstelle von \omit ...
Den Zeilen umbruch mitten im Talt kann man mit
\bar "" \break
ausgeführt bekommen. LilyPond bricht von sich aus nie mitten im Takt um, nur dort wo ein Taktstrich steht.

Allerdings hast Du intern noch immer Takte und das spacing berücksichtigt den Taktstrich nach wie vor, kann man sehen wenn man genau hinschaut.

Ich würde deshalb \cadenzaOn verwenden. Hat jedoch ein paar Eigenschaften, die man berücksichtigen muß:
Taktstriche/Timing gibt es nicht, deshalb muß jeder Zeilenumbruch mittels
\bar "" \break
veranlaßt werden.
Aufgrund des fehlenden Timings gibts auch keine automatische Bebalkung, muß man manuell setzen. In deinem Beispiel kein Problem es kommen ja nur 1/4-tel als kürzeste Werte vor...

Führt dann zu:
\version "2.18.2"
\header {
  title = "Wachet auf, ruft uns die Stimmet"      % Überschrift wird zentriert
  tagline = ##f                                   % ##f heisst: keine tagline
}

\paper {
  #(set-paper-size "a4")   % Seitengröße auf DIN A4 setzen.
  after-title-space = 1\cm % Größe des Abstands zwischen Überschrift und ersten Notensystem
}

\layout {
  indent = #0
}

melodie = \relative c' {
  \cadenzaOn
  \clef "treble"
  \time 4/4
  \key c\major
    c2 e2
    g2. g4
    g g a (g
    a2) g2
    r4 g4 c g \bar "" \break
    c4 e d e
    d2 g,
    r4 g4 c g
    a e f d
    c2 \bar "" \break
    r4 g'
    g2. f4
    e d c2
    r4 g'4 g2. f4 e d
    c2 d4 e
    f2 e \bar "" \break
    g2 a4 b4
    c2 c4 e4
    d2 c2
    g2 c4 g
    a e f d
    c2 \bar "|."
}

text = \lyricmode {
\set stanza = "1."
   Wa -- chet auf, ruft uns die Stim -- me der Wäch -- ter
   sehr hoch auf der Zin ne, wach auf, du Stadt Je ru sa lem.
   Wohl auf, der Bräut -- gam kommt; steht auf, die Lam -- pen nehmt. Hal -- le -- lu -- ja.
   Macht euch be -- reit zu der Hoch -- zeit, ihr müs -- set ihm ent -- ge -- gen -- gehn
   }
   

\score {
  <<
    \new Voice = "Lied" { \melodie }
    \new Lyrics \lyricsto "Lied" { \text }
  >>
}


HTH,
  Harm

P.S.
2.18.2 ist schon sehr alt ich würde 2.19.83 nehmen, die ist sowieso eine prerelease für 2.20




Köbi

... eigentlich wollte ich Harm ein wenig Arbeit abnehmen und auch mal einen Beitrag leisten, damit ich nicht immer so ein schlechtes Gewissen habe, wenn ich wieder dumme Fragen stelle ... (Herausgekommen ist das Gegenteil, Harm hatte noch mehr Arbeit :D)

gufrie

Hallo harm6 und Köbi.
ich bin begeistert über Eure Stellungnahmen und bedanke mich sehr dafür. Werde mich bemühen, bei weiteren Fragen ein Minimal-Beispiel zu senden. Da ich noch Anfänger bin, wusste ich nur nicht so recht, welche Teile ich dazu weglassen konnte um noch ein sinnvolles Beispiel zu erhalten.
Ich muss vielleicht kurz erklären, wie ich überhaupt zu lilypond gekommen bin.
Mir ist im Netz ein Liederheft über den Weg gelaufen (Titel "Singen im Advent"). Dieses ist herausgegeben von "Musikpiraten e.V." Darin wiederum ist eine "Ebersberger Liedersammlung" erwähnt in der angegeben ist, dass die Lieder mit lilypond erstellt wurden. Da sind dann auch die Original-Sourcen der einzelnen Lieder mit enthalten. Diese habe ich dann zum Üben und Kennenlernen von lilypond benutzt. So nach und nach habe ich schon einiges dazugelernt und durch Eure sehr interessanten Ausführungen schon wieder mehr verstanden.
Nun noch kurz zu der Version 2.18.2.: wenn ich auf lilypond.org gehe, wird da als neueste Version 2.18.2 angeboten. Wo kann ich denn die Version 2.19.83 oder 2.20 bekommen?


Köbi

Zitat
wenn ich auf lilypond.org gehe, wird da als neueste Version 2.18.2 angeboten. Wo kann ich denn die Version 2.19.83 oder 2.20 bekommen?

Drei Zeilen weiter unten als 2.18.2 (ca. 2-3 cm).

harm6

Zitat
Mir ist im Netz ein Liederheft über den Weg gelaufen (Titel "Singen im Advent"). Dieses ist herausgegeben von "Musikpiraten e.V." Darin wiederum ist eine "Ebersberger Liedersammlung" erwähnt in der angegeben ist, dass die Lieder mit lilypond erstellt wurden.
Allerdings sind diese mit älteren LilyPondversionen geschrieben worden, insoweit empfiehlt sich sowieso `convert-ly´.

Zitat
Nun noch kurz zu der Version 2.18.2.: wenn ich auf lilypond.org gehe, wird da als neueste Version 2.18.2 angeboten. Wo kann ich denn die Version 2.19.83 oder 2.20 bekommen?
2.18.2 ist in der Tat die aktuelle "stable"
2.19.83 ist die aktuelle devel-Version
2.20.0 ist die kommende stable, für die 2.19.83 eine prerelease ist
2.21.0 ist die kommende devel Version nachdem 2.20.0 raus ist.

Die letzten beiden (2.20 und 2.21) würde ich erstmal vergessen, es sei denn Du möchtest sie aus dem git repository selbst kompilieren. Ist aber eigentlich nur was für developer oder für Leute die dringend einen noch unveröffentlichen Bugfix/feature benötigen.

2.18.2 ist zwar die aktuelle stable, aber mittlerweile sehr betagt. Ein Grund dafür war, daß unser cross-build-system kaputt war. Ein anderer ist, daß noch etwas Arbeit aussteht, um eine neue stable raus zu hauen.

2.19.83 wird zwar devel-Version genannt, aber sie ist genauso stabil, wie die "stable".
Dafür hat sie jede Menge bugfixes und haufenweise neue features.
Wenn man devel-Versionen verwendet, so muß man im Prinzip damit rechnen, daß es auch mal ein vor und zurück geben kann, z.B. wenn sich eine Änderung doch nicht als sinnvoll erweist.
Ist aber mir einer prerelease noch unwahrscheinlicher.
Insoweit rate ich Dir dazu. Direkter link zu den installern:
http://lilypond.org/development.html

Gruß,
  Harm