Klammern an und um Noten

Begonnen von Gerhrd, Montag, 14. Juli 2025, 20:34

« vorheriges - nächstes »

Gerhrd

Hallo Lilyponder

Gitarristen haben spezielle Probleme.
Als "Spielanweisung" will ich das Aufschlagen des Greiffingers auf die Saite mit einer "Klammer auf" vor der Note angeben, das Abziehen eines Fingers mit einer "Klammer zu" hinter der Note. Eine Notation, die in den Tabulaturen aus dem Barock oft zu finden ist.
Mit "\parenthesize" kann ich die ganze Note einklammern. Das hilft mir nicht.

Alternativ kann ich mir auch einen kleinen Pfeil vorstellen, der auf die Note zeigt oder von ihr weg. Das verlangt aber ein "Sonderzeichen" ??!!??

( Schon versucht: \parenthesize_right ; ergibt einen Fehler.)

Danke für Eure Ideen.


Gerhard

Lilysetter

#1
Hi, 1000 Wege führen zum Layout, sowas kann man leicht in postscript machen. Meinst Du so:\version"2.25.6"\relative{
  c'_\markup\postscript"/Emmentaler 2.5 selectfont -1.6  -1 moveto (\() show"
  c'_\markup\postscript"/Emmentaler 2.5 selectfont  1.8 2.5 moveto (\)) show"
  }

Die parenthesize-Funktion ist in ly\music-functions-init.ly definiert:parenthesize =
#(define-music-function (arg) (symbol-list-or-music?)
   (_i "Tag @var{arg} to be parenthesized.

@var{arg} may be either a music event or a grob path.")
   (let ((maybe-with-id (if (and (ly:music? arg)
                                 (music-is-of-type? arg 'event-chord))
                            (tweak 'parenthesis-id
                                   (gensym "unique-parenthesis-id")
                                   arg)
                            arg)))
     (once (propertyTweak 'parenthesized #t maybe-with-id))))
man könnte eine neue  \parenthesize_right definieren.

Gerhrd

Hallo Lilysetter,

ich bin beeindruckt, verstehe aber leider nur "Bahnhof".

zum ersten snipsel:
ich arbeite mit \version "2.24.3" und dachte, das sei die neueste.


ich kenne "ly\music-functions-init.ly nicht und kann mit dem zweiten snipsel nichts anfangen.
Wo finde ich eine Erklärung, was dort geschrieben steht?

Danke für Deine Antwort.

Gerhard

harm6

Zitat von: GerhardAls "Spielanweisung" will ich das Aufschlagen des Greiffingers auf die Saite mit einer "Klammer auf" vor der Note angeben, das Abziehen eines Fingers mit einer "Klammer zu" hinter der Note. Eine Notation, die in den Tabulaturen aus dem Barock oft zu finden ist.
Das kenne ich so nicht, kannst du eine Quelle nennen, besser noch ein Bild posten?
Tatsächlich kenne ich solche "Klammern" in der alten Musik nur als Verzierungsanweisung. Siehe https://en.wikipedia.org/wiki/Ornament_(music) insbesondere die Tabelle von Jean-Henri d'Anglebert.
Aufschlag/Abziehbindungen kenne ich nur wie hier:
{ c''( d'') }

Zitat von: Gerhardich arbeite mit \version "2.24.3" und dachte, das sei die neueste.
LilyPond kommt stets in zwei Versionen. Einerseits die "stable", andererseits die "devel"-Version. Alle neueren Entwicklungen und neuen features kommen mit der devel-Version. Der Neuheit wegen ist die Wahrscheinlichkeit für bislang unentdeckte bugs dort geringfügig größer. Wenn eine neue stable veröffentlicht wird geht die devel-Version darin auf.
Erfahrungsgemäss ist die bug-Wahrscheinlichkeit allerdings wirklich nur geringfügig größer. Das ein schwerer bug sich in der devel zeigt ist sehr selten, ca einmal pro Dekade.
Insoweit rate ich immer zur neuesten devel-Version, zur Zeit ist das 2.25.26 https://lilypond.org/doc/v2.25/Documentation/web/development
Die neueste stable ist 2.24.4 https://lilypond.org/doc/v2.25/Documentation/web/download
Es ist auch kein Problem mehrere Versionen parallel zu installieren. Frescobaldi macht das sehr einfach möglich. Es geht aber auch anders...

Zitat von: Gerhardich kenne "ly\music-functions-init.ly nicht
Das gehört zu den internen Dateien. Wo auch immer du LilyPond installiert hast kannst Du es finden.
Wenn du LilyPond erweitern willst, so wirst du in diese Dateien schauen und den source-code verstehen müssen, um dann im eigenen ly-file modifizierte oder ganz neue Versionen davon zu verwenden.
Falls du dabei auf Schwierigkeiten stösst (egal auf welchem level), frag hier. :)


Zitat von: LilysetterDie parenthesize-Funktion ist in ly\music-functions-init.ly definiert:
[...]
man könnte eine neue  \parenthesize_right definieren.
\parenthesize setzt im wesentlichen nur das 'parenthesized-property und die stencil(s)-proceduren reagieren darauf.
Um \parenthesize_right/left sinnvoll zu definieren bräuchtest du noch zwei neue properties: 'parenthesized-left/right oder du müsstest 'parenthesized richtungsabhängig machen.
Dazu noch entsprenchende 'stencils sowie den eigentlichen 'stencil.
Scheint mir bei weitem zu viel Aufwand zu sein...

Zitat von: Lilysettersowas kann man leicht in postscript machen.
Geht natürlich, allerdings gibt es Überlegungen in zukünftigen Versionen nativen postscript-code nicht mehr zu unterstützen.
Grund: LilyPond kann im Moment entweder ghostscript oder cairo verwenden. ghostscript hat allerdings ein paar Probleme. Mit cairo ist kein postscript möglich.
Anstatt \postscript ist es oft möglich \path zu verwenden.

Nachdem das alles gesagt ist ... zum eigentlichen Thema:
https://lsr.di.unimi.it/LSR/Item?id=902 zeigt eine recht gute Lösung. Allerdings gibt es dort ja die Anmerkung:
Zitat von: LSR 902%It's probably possible to automate a bit more
Das habe ich unten mal gemacht (und das snippet gleich komplett neu geschrieben).

\version "2.24.3"

#(define (paren-left grob)
  (ly:font-get-glyph (ly:grob-default-font grob) "accidentals.leftparen"))
 
#(define (paren-right grob)
  (ly:font-get-glyph (ly:grob-default-font grob) "accidentals.rightparen"))

leftParen =
  \tweak Parentheses.stencils
    #(lambda (grob) (list (paren-left grob) empty-stencil))
  \parenthesize
  \etc
 
rightParen =
  \tweak Parentheses.stencils
    #(lambda (grob) (list empty-stencil (paren-right grob)))
  \parenthesize
  \etc

{
  \override Parentheses.font-size = #1
  \leftParen <b d'>
  < \rightParen b d'>
  \leftParen d'
  \rightParen b
}

HTH,
  Harm


Lilysetter

#4
Vielen Dank, Harm!  Ich würde es begrüßen, wenn Du Dich dafür einsetzst, dass Postscript drinbleibt. Ich mache sehr viel damit.
In meinem obere Beispiel gibt es eine interne Warnung, dass er den Font /Emmentaler durch einen anderen ersetzt, denn es muss /Emmentaler-20 bzw. /Emmentaler-xx  (xx für gerade size) heißen.

Ich habe noch etwas experimentiert, es gibt ein Beispiel in notation.pdf (5.4.10 Modifying stencils):
XinO = {
  \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text = \markup {
    \combine
    \halign #-0.7 \draw-circle #0.85 #0.2 ##f
    \musicglyph "noteheads.s2cross"
    }}
\relative {a' a \XinO a a}

das kann man modifizieren in:lp =
  \tweak NoteHead.stencil #ly:text-interface::print
  \tweak NoteHead.text
%   \markup\combine\musicglyph"noteheads.s2"\translate #'(-1 . -.7) "("
%   \markup\combine\musicglyph\fromproperty #'NoteHead:glyph-name \postscript"-.8 -.9 moveto 1.0 0.9 scale(\()show"
    \markup\combine\musicglyph"noteheads.s2"\postscript"-1.5 -.9 moveto 1.0 0.9 scale(\))show"
  \etc
rp =
  \tweak NoteHead.stencil #ly:text-interface::print
  \tweak NoteHead.text
    \markup\combine\musicglyph"noteheads.s2"\postscript" 1.5 -.9 moveto 1.0 0.9 scale(\))show"
  \etc
\relative{ c'4 d e f
  \lp g^\markup{\hspace #15 }
  \rp a^\markup{\hspace #15 }
  \lp b2^"-------"
  \rp c^"-------"}

Zwei Probleme: das horizontale Spacing  und  die Notenwertübernahme, jetzt malt er ja immer eine Viertelnote (noteheads.s2). Wie kann ich den originalen Namen hier einbringen à la \fromproperty #'NoteHead:glyph-name ?

Gerhrd

Harm und Lilysetter,
ich bin überrascht, auf wieviel Kompetenz ich gestoßen bin; ich werde nacharbeiten.
Zunächst zur Frage, woher mein Ansinnen kommt.
Natürlich kann man einen Legato-Bogen auch als Spielanweisung verstehen. Wann aber ist das Legato-Spiel gefragt, wann das Abziehen oder Aufschlagen des Fingers? Oft läuft der Bogen über mehrere Noten. Auch hier übt sich der Gitarrist im Legato, obgleich er erneut zupfen muß.
Die Tabelle von Jean-Henri d'Anglebert hat es mir angetan. Die Beispiele 9 (Aufschlag des Zeigefingers zum c nachdem die leere h-Saite gezupft wurde) und 10 (Abzug des Ringfingers zum c nachdem das d gezupft wurde) treffen mein Problem.
Für Beispiel 9 steht bei mir die Klammer auf vor der Note c, für 10 die Klammer zu hinter der Note c.
Als Beispiel wollte ich ein PDF anhängen - ich weiß nicht, wie ich das hier machen kann. Es ist ein Zitat einer Ausarbeitung der Tabulatur von Antonio Brescionello von Ruggero Chiesa. Chiesa setzt in seiner Übertragung ein u über die Note für Klammer auf und ein n für Klammer zu.
Ein anderer Weg ist natürlich, diese Situationen immer mit einer Vorschlagnote zu beschreiben. Ich werde das überdenken.

In jedem Fall, Danke für Eure Beiträge; ich werde versuchen, sie zu durchdringen.
Gerhard

harm6

Zitat von: GerhardIch würde es begrüßen, wenn Du Dich dafür einsetzst, dass Postscript drinbleibt. Ich mache sehr viel damit.
Kann ich natürlich machen, aber es gibt schon gewichtige Argumente pro cairo. Auf jeden Fall wäre es besser du würdest selbst das Wort ergreifen, immerhin nutzt du postscript ja viel. Ich selbst nur gelegentlich.
Du könntest die devel-mailinglist abonieren bzw einen account auf GitLab anlegen und beobachten was passiert, um dann gegebenenfalls zu reagieren.

Zitat von: GerhardIch habe noch etwas experimentiert, es gibt ein Beispiel in notation.pdf
[...]
das kann man modifizieren in:
[...]
Zwei Probleme: das horizontale Spacing  und  die Notenwertübernahme, jetzt malt er ja immer eine Viertelnote (noteheads.s2). Wie kann ich den originalen Namen hier einbringen à la \fromproperty #'NoteHead:glyph-name ?
Dein override verändert NoteHead.stencil so, dass die Klammer zum Notenkopf kommt. In der Folge erscheint die Klammer zwischen einem möglichen Versetzungszeichen und dem Notenkopf. Gewollt?
Wenn du die Klammer via postscript generierst, so werden die horizontalen Abmessungen des NotenKopfs nicht verändert (Fluch und Segen des postscript-markup). Führt dann aber dazu, dass die horizontalen Abstände auch nicht verändert werden.
Wenn du eine andere Methode wählst, die die Abmessungen des Notenkopfes verändert, so werden auch mögliche Hilflinien länger und Notenhälse müssen auch neu positioniert werden.

Insoweit denke ich, dass ein override für NoteHead.stencil nicht zum Ziel führt bzw einen Rattenschwanz weitere Befehle notwendig macht.

Nichtsdestotrotz noch eine Anmerkung zu der Methode.
Den stencil auf ly:text-interface::print zu setzen und dann das text-property anzugehen, ist eine Methode mit einfachen Mitteln Ergebnisse zu erzielen. Aber sie unterliegt auch Beschränkungen. Hier ist es nicht direkt möglich auf den originalen NoteHead zuzugreifen.
Besser wäre es grob-transformer zu nutzen:
\version "2.25.26"
{
  \override NoteHead.stencil =
  #(grob-transformer 'stencil
    (lambda (grob orig)
      (ly:stencil-add
        (grob-interpret-markup grob
          #{ \markup \postscript " -1.5 -.9 moveto 1.0 0.9 scale(\()show" #})
        orig)))
  b'4
  b'2
}
Zeigt aber natürlich auch obige Probleme.

Gruß,
  Harm


harm6

Zitat von: GerhardDie Tabelle von Jean-Henri d'Anglebert hat es mir angetan.

Das ist ja eine Verzierungstabelle bei der diverse Zeichen und ihre Ausführung gegenübergestellt sind. Sie stammt aus den "Pièces de clavecin", ist also primär für ein Tasteninstrument.
Insoweit kann man nicht ablesen wie die jeweilige Verzierung auf der Gitarre technisch ausgeführt werden soll, imho.

Zitat von: GerhardAls Beispiel wollte ich ein PDF anhängen - ich weiß nicht, wie ich das hier machen kann. Es ist ein Zitat einer Ausarbeitung der Tabulatur von Antonio Brescionello von Ruggero Chiesa. Chiesa setzt in seiner Übertragung ein u über die Note für Klammer auf und ein n für Klammer zu.
Das Original der Tabulatur kann man hier erhalten: https://www.jobringmann.de/facsimile-links/autor-verleger/153-autor-brescianello-ga
Chiesa's Übertragung hier: https://cvrad.narod.ru/mus/gitara/brescianelloga1690-1758/Brescianello-18_Partite.pdf (113 Seiten)
Ich sehe da keine u oder n-Zeichen, sondern oben oder unten offene Halbkreise, die Verzierungen anzeigen, meist in Anmerkungen erklärt. Ansonsten ganz normale (Legato-)Bögen.
Kannst Du spezielle Stellen benennen auf die du dich beziehst?

Wie man ein pdf vom eigenen Rechner hochlädt, weiss ich auch nicht mehr. Ein Bild einzufügen geht scheinbar nur noch wenn es irgendwo bereits verfügbar ist und lediglich verlinkt wird.

Zitat von: GerhardNatürlich kann man einen Legato-Bogen auch als Spielanweisung verstehen. Wann aber ist das Legato-Spiel gefragt, wann das Abziehen oder Aufschlagen des Fingers? Oft läuft der Bogen über mehrere Noten. Auch hier übt sich der Gitarrist im Legato, obgleich er erneut zupfen muß.
Schon ganz allgemein gibt es Bögen verschiedener Bedeutung: Haltebögen, Legatobögen, Phrasierungsbögen (in LilyPond: Tie, Slur, PhrasingSlur). Für uns Gitarristen kommt noch der Bogen für Abzieh/Aufschlagbindungen hinzu (LilyPond hat kein eigenes grob dafür, idR wird Slur verwendet). Für gewöhnlich wird aus dem Zusammenhang klar was gemeint ist.
Dort wo doch unklar ist was gemeint ist sollte der Herausgeber weitere Anmerkungen einfügen (insbesondere Fingersatz für die rechte Hand), imho.

Gruß,
  Harm

Gerhrd

Ich meinte zunächst die erste Tabelle:

Takt 9 entspricht bei Brescianello die linke Klammer, Takt 10 die rechte. Chiesa hat diese Klammern in die Halbbögen - nach oben unter unten offen - übertragen.(Keine u und n).
Ich habe dazu das Vorwort von Chiesa zu seiner Übertragung, von dem ich eine Kopie als PDF anhängen wollte.

Soweit zur Klarstellung.

Danke aber für den Einsatz. Ich habe weder die Kopie der Tabulatur noch die Ausarbeitung von Chiesa im Netz gefunden.
Zu Deinem letzten Absatz: eben weil die Bögen schon viele Bedeutungen haben und die Eindeutigkeit oft nicht gegeben ist, suche ich nach Alternativen. Dabei fand ich die Klammern nicht schlecht.

Gruß, Gerhard


harm6

ZitatChiesa hat diese Klammern in die Halbbögen - nach oben unter unten offen - übertragen.(Keine u und n).
Ich habe dazu das Vorwort von Chiesa zu seiner Übertragung, von dem ich eine Kopie als PDF anhängen wollte.
Dieses Vorwort interessiert mich. Es ist leider in obigem link nicht enthalten.
Könntest du es auf eine Bild-hosting-site hochladen und hier verlinken?

Gruß,
  Harm

Gerhrd

#10
Hallo Harm,
Was ist eine "Bild-hosting-site"?
Ich kann die Seiten scannen und Dir als PDF schicken.
Gib mir eine Chance  ;)

Gerhard

P.S:
Ich habe auf https://cvrad.narod.ru  gestöbert und weitere Bresianello Noten gefunden:
https://cvrad.narod.ru/mus/gitara/brescianelloga1690-1758/Brescianelloga-Sonates_Partitas.pdf

Hier wird die Klammer genutzt.

harm6

ZitatWas ist eine "Bild-hosting-site"?
Siehe https://de.wikipedia.org/wiki/Filehosting
Eine Seite nur für Bilder wäre https://de.wikipedia.org/wiki/Imgur

Es sind aber alles(?) US-amerikanische Seiten...

Bei manchen Seiten reicht es nicht das file hochzuladen und zu verlinken, sondern du musst auch die Berechtigungen setzen.

Zitat[link] Hier wird die Klammer genutzt.
Ja, aber immer als Indikator für eine Verzierung.

Gerhrd

Hi Harm,
hast Du bereits bei einem der Anbieter einen Account?

harm6

Ja, bei imgur. Allerdings hatte ich das Passwort verschmissen und musste sehr tief graben, um es wieder zu finden.

Aber jetzt funktioniert es:

LOL


Gerhrd

Hallo Harm,
ich war einige Tage weg.

Ich habe versucht mich bei imgur anzumelden.
Dazu benötige ich einen google oder Appel- Account. Beides habe ich nicht.
Kann ich Dir die PDF nicht anders zukommen lassen?

Mit Dir habe ich offensichtlich einen Insider gefunden. Daher schau bitte unter Frescobaldi,
habe dort ein paar weitere Fragen eingestellt.

Danke, Gerhard