Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: chf am Sonntag, 12. Dezember 2021, 19:08

Titel: Holzbläser-Diagramm für Oboe "gelöst"
Beitrag von: chf am Sonntag, 12. Dezember 2021, 19:08
Liebe Freunde,

auf der Grundlage von
Re:Holzbläser-Diagramm für Blockflöte gesucht
« Antwort #1 am: Montag, 24. Januar 2011, 09:51 »
aus dem Archiv

\version "2.22.0"
finger = \markup {
  \draw-circle #.75 #.2 ##f
  \hspace #1
  \center-column {
    \line { \draw-circle #.75 #.2 ##t }
    \line { \draw-circle #.75 #.2 ##t  }
    \line { \draw-circle #.75 #.2 ##t  }
    \line { \draw-circle #.75 #.2 ##f  }
    \line { \draw-circle #.75 #.2 ##f  }
    \line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f  }
    \line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f  }
} }

\relative c' {
  \override Stem.transparent = ##t a''4^\finger
}
bin ich bis hierher gekommen. Nun weiß ich nicht weiter.
Im angehängten Foto ist zu sehen, was rauskommen soll. Könnt ihr helfen? Es geht mir vor allem um die Bezeichnungen in den Diagrammen.
Ich weiß nicht, wie ich sie einfügen soll.

finger = \markup {
  %\draw-circle #.75 #.2 ##f
  \hspace #1
  \center-column {
    \line { \draw-circle #.75 #.2 ##t }
    \line { \draw-circle #.75 #.2 ##t  }
    \line { \draw-circle #.75 #.2 ##f  }
    \line { \draw-circle #.75 #.2 ##t  }
    \line { \draw-circle #.75 #.2 ##t  }
    \line { \draw-circle #.75 #.2 ##t  }
   
} }

\relative c' {
  \override Stem.transparent = ##t a''4^\finger}

Herzliche Adventgrüße
Christa
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: Manuela am Sonntag, 12. Dezember 2021, 21:20
Liebe Christa, wenn du deine Codelbeispiele in die Code-Tags einfügst (das Kästchen mit dem #) tut man sich einerseits beim Lesen leichter, andererseits kann man den Code mit einem Mausklick rauskopieren.
Das Diagramm wird hier als Markup (=Text) definiert, es gibt hier eine ausführliche Beschreibung, wie Texte in Lilypond zu erstellen sind: A.10 Textbeschriftungsbefehle (http://lilypond.org/doc/v2.22/Documentation/notation/text-markup-commands)

Somit wird dann auch klar, wo der zusätzliche Text eingefügt werden muss (das Beispielbild ist übrigens so klein, das es kaum zu erkennen ist)

Ich habe mal etwas eingefügt

\version "2.22.0"

finger = \markup {
  \draw-circle #.75 #.2 ##f
  \hspace #1
  \center-column {
    \line { \draw-circle #.75 #.2 ##t }
    \line { \draw-circle #.75 #.2 ##t }
    \line \vcenter { \hspace #2 +8 \draw-circle #.75 #.2 ##t + As  }
    \line { \draw-circle #.75 #.2 ##f  }
    \line { \draw-circle #.75 #.2 ##f  }
    \line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f  }
    \line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f  }
} }

\relative c' {
  \override Stem.transparent = ##t a''4^\finger
}


Was \line, \vcenter und \hspace bewirken, findest du im Kapitel Align, \circle im Kapitel Graphic vom vorhin erwähnten Link
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: chf am Sonntag, 12. Dezember 2021, 22:57
Danke, Manuela, das ist wunderbar!
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: Manuela am Montag, 13. Dezember 2021, 16:00
Liebe Christa,

die Kreise sind deswegen nicht genau übereinander, weil die vor- und nachgestellten Buchstaben Platz brauchen. Mit den Zahlenwerten nach \hspace kannst du den Abstand regeln, es kommt auf dein System an, die eingestellten Schriftgrößen etc. In meinem System ergeben die folgenden Werte genau übereinander liegende Grifflöcher. Du musst evtl. die Werte ändern, damit es bei dir passt.

Harm hat vll. eine elgantere Lösung, ich kann nur das folgende anbieten:

\version "2.22.0"

slashC = \markup \combine \draw-circle #.75 #.2 ##f \path #0.25
#'((moveto -1 -1)
   (lineto 1 1)
   )
offen = \markup \draw-circle #.75 #.2 ##t
zu = \markup \draw-circle #.75 #.2 ##f

finger = \markup {
  \center-column {
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3 +8 \zu }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}

fingerSl = \markup {
  \center-column {
    \line { \offen }
    \line { \slashC }
    \line \vcenter { \hspace #-3 +8 \zu }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}

fingerAs = \markup {
  \center-column {
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #2 +8 \zu + As  }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}

\relative c'' {
  \textLengthOn
  \override TextScript.outside-staff-priority = ##f
  \override TextScript.padding = #1
  \override Stem.transparent = ##t
  a4^\finger
  a4^\fingerAs
  \hideNotes a a a a
  \unHideNotes
  a4^\fingerSl
}
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: chf am Montag, 13. Dezember 2021, 16:22
Liebe Manuela,

du bist ein Schatz! Ich danke dir - es ist alles am richtigen Fleck.
Ich wünsche dir eine gute Zeit!

Christa


Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: chf am Dienstag, 14. Dezember 2021, 13:58
Liebe Manuela,

noch eine Frage/Bitte:
Wie kann das ganze Bild verkleinert werden?

(Dass es sich als "TextScript" verschieben lässt, habe ich mit Erfolg probiert.)

Mit Dank und Gruß
Christa
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: Malte am Dienstag, 14. Dezember 2021, 14:24
Mit \scale in der Definition sollte es gehen:fingerAs = \markup \scale #'(0.5 . 0.5) { [...]
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: chf am Dienstag, 14. Dezember 2021, 19:05
Heißen Dank! Funktioniert wunderbar.
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: Manuela am Samstag, 18. Dezember 2021, 11:44
Liebe Christa, fügst du bitten dem Titel den Zusatz "gelöst" hinzu, damit man gleich sieht, dass es eine Lösung gibt, danke  :)
Titel: Antw:Holzbläser-Diagramm für Oboe
Beitrag von: Lilysetter am Freitag, 28. Januar 2022, 06:33
Für solche Wünsche bietet sich auch \postscript an. Man muss sich halt ein wenig einlesen. Ich programmiere seit 30 Jahren in Postscript, das ist eine sehr durchdachte und mächtige Seitenbeschreibungssprache, die auch Lilypond nutzt: Die .ly-Dateien werden zuerst in eine Postscript-Datei umgewandelt und dann mit dem OpensourceProgramm ghostscript in PDF übersetzt.
Hier mein Vorschlag (es gibt eine noch aktuellere Version, welche ich gerade nicht zur Hand habe):
%https://lilypondforum.de/index.php/topic,1006.0.html
\version "2.22.0"

slashC = \markup \combine \draw-circle #.75 #.2 ##f \path #0.25
#'((moveto -1 -1)
   (lineto 1 1)(rlineto -1 1)
   )
offen = \markup \draw-circle #.75 #.2 ##t
zu = \markup \draw-circle #.75 #.2 ##f

finger = \markup {
  \center-column {
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3 +8 \zu }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}
fingerZ = \markup\postscript "0.15 setlinewidth newpath
  /x  0.9 def %x-Position der Punkte
  /ys 1.0 def %y-Startwert
  /ya 1.5 def %y-Addierwert (Abstand der Punkte)
  /z   ys def %y-Hilfsvariable
  /r  0.4 def %Radius der Punkte
  /y{z /z z ya add def}def %y holen und nächstes y (in z) berechnen
  x y r 0 360 arc fill %Punkt zeichnen
  x y r 0 360 arc fill
  x y r 0 360 arc fill
  x y r 0 360 arc stroke %Kreis zeichnen
  x y r 0 360 arc stroke
  x y r 0 360 arc fill
  x    4 ya mul  ys add moveto  -0.6 -0.6 rmoveto 1.2 1.2 rlineto stroke %Diagonallinie
  /Times findfont 1.8 scalefont setfont  %Font und Größe
  -2.5 0 ya mul 0.4 add moveto (+C) show %auf der 0+1=1. Position
  -2.5 3 ya mul 0.4 add moveto (+8) show %auf der 3+1=4. Position
   2.0 3 ya mul 0.4 add moveto (+As)show
  "

fingerSl = \markup {
  \center-column {
    \line { \offen }
    \line { \slashC }
    \line \vcenter { \hspace #-3 +8 \zu }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}

fingerAs = \markup {
  \center-column {
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #2 +8 \zu + As  }
    \line { \offen }
    \line { \offen }
    \line \vcenter { \hspace #-3.5 +C \offen }
  }
}

\relative c'' {
  \textLengthOn
  \override TextScript.outside-staff-priority = ##f
  \override TextScript.padding = #1
  \override Stem.transparent = ##t
  a4^\finger
  a a a^\fingerZ
  a a a^\fingerAs
  \hideNotes a a a a
  \unHideNotes
  a4^\fingerSl
}
Titel: Antw:Holzbläser-Diagramm für Oboe "gelöst"
Beitrag von: Lilysetter am Mittwoch, 2. Februar 2022, 16:25
Wie versprochen die andere Version:
\version"2.22.0"\paper{top-margin=35}
\relative{c'd e f c d e f^\markup\postscript"
  /Times-Roman findfont 1 scalefont setfont
  1 1 translate 2 2 scale 0.025 setlinewidth newpath
  [0 1 7]{0 exch 0.3 0 360 arc fill}forall
  [  2]{dup 0 exch 0.3 170 370 arc closepath -0.4 exch 0.30 sub moveto 0.8 0.0 rlineto stroke}forall
  [3 4]{0 exch 0.3 0 360 arc stroke}forall
  [  5]{dup 0 exch 0.3 40 320 arc  0 exch lineto closepath stroke}forall
  [  6]{0 exch 0.3 60 300 arc closepath stroke}forall
  [8 9]{0 exch 0.3 70 290 arc fill}forall
  [0 1]{-0.7 exch moveto(rechtsbuendig)dup stringwidth pop neg -0.32 rmoveto show}forall %rechtsbündig
  [2 3]{-0.7 exch moveto(+888)dup stringwidth pop neg -0.32 rmoveto show}forall %rechtsbündig
  [4 5]{-0.7 exch moveto (+8)dup stringwidth pop neg -0.32 rmoveto show}forall %rechtsbündig
  [6 7]{ 0.7 exch 0.32 sub moveto(ADD)show}forall %linksbündig
  [2 3]{-0.3 exch 0.30 sub moveto 0.6 0.6 rlineto stroke}forall %Diagonalstrich
  [  4]{ 0.7 exch 0.32 sub moveto(linksbuendig)show}forall %linksbündig
  [  5]{ 0.7 exch 0.32 sub moveto(pacman)show}forall %linksbündig
  "}

Postscript-Literatur:
Reference Manual second editition:
https://www.adobe.com/content/dam/acom/en/devnet/actionscript/articles/psrefman.pdf
Reference Manual third editition:
https://www.adobe.com/content/dam/acom/en/devnet/actionscript/articles/PLRM.pdf
Jens Pönisch (TU Chemnitz): Postscript-Grafik
https://monarch.qucosa.de/api/qucosa%3A17967/attachment/ATT-1/
Frank Richter: Postscript-Einführung
https://monarch.qucosa.de/api/qucosa%3A17967/attachment/ATT-2/
Frank Richter: Postscript-Sprache
https://monarch.qucosa.de/api/qucosa%3A17967/attachment/ATT-3/
Jens Pönisch: Postscript-Tools
https://monarch.qucosa.de/api/qucosa%3A17967/attachment/ATT-4/
Titel: Antw:Holzbläser-Diagramm für Oboe "gelöst"
Beitrag von: Manuela am Freitag, 11. Februar 2022, 14:01
Danke. Lilysetter! Auch für die Postscript Links