Autor Thema: Abstand zwischen fret-diagram und Notenlinien  (Gelesen 6651 mal)

hurrlipurr

  • Gast
Abstand zwischen fret-diagram und Notenlinien
« am: Sonntag, 5. Oktober 2014, 15:51 »
Hallo,

ich würde gerne einen größeren Abstand zwischen Griffbildern und Notensystem haben - hier ein Minibeispiel:

{ d'4^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-2;1-o;" a' cis'' e'' }

Ich habe dazu schon verschiedene Layout-Einstellungen aus dem Handbuch probiert, aber irgendwas mache ich wohl falsch.

Viele Grüße
Oliver

harm6

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #1 am: Sonntag, 5. Oktober 2014, 21:33 »
Hallo hurrlipurr,

willkommen hier im Forum.

Zur Frage, ich habe mal vier Möglichkeiten kodiert:
\version "2.19.13"
%%%%%%%%%%%%%%%%%%%%%%%%%
%% \tweak
%%%%%%%%%%%%%%%%%%%%%%%%%
{
  d'4-\tweak #'padding #5 ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-2;1-o;"
  a' cis'' e''
}

%%%%%%%%%%%%%%%%%%%%%%%%%
%% \once \override 
%%%%%%%%%%%%%%%%%%%%%%%%%
{
  \once \override TextScript.padding = #5
  d'4^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-2;1-o;"
  a' cis'' e''
}

%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%
<<
  \new FretBoards
    \with { \override VerticalAxisGroup.staff-staff-spacing.padding = #5 }
    \chordmode { <d a cis' e'>4 }
  \new Staff { d'4 a' cis'' e'' }
>>

%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%% and predefining the wanted chord
%%%%%%%%%%%%%%%%%%%%%%%%%
\include "predefined-guitar-fretboards.ly"
\storePredefinedDiagram #default-fret-table \chordmode { d'':7+.9 }
                        #guitar-tuning
                        % using a list like for 'fret-diagram-verbose'
                        #'((mute 6)
                           (mute 5)
                           (open 4)
                           (place-fret 3 2)
                           (place-fret 2 2)
                           (open 1))
                           
<<
  \new FretBoards
    \with { \override VerticalAxisGroup.staff-staff-spacing.padding = #5 }
    \chordmode { d'':7+.9 }
  \new Staff { d'4 a' cis'' e'' }
>>

HTH,
  Harm

hurrlipurr

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #2 am: Montag, 6. Oktober 2014, 08:19 »
Vielen Dank!

Die ersten beiden funktionieren prima. Nicht elegant, aber für den Moment völlig ausreichend.

Bei der dritten bekomme ich Fehler, was aber möglicherweise an der verwendeten Version 2.16.2 liegt. Ich werde mal auf die neueste Version upgraden und es dann probieren.

Mir ist noch etwas anderes aufgefallen: wenn ich Fretboards und Akkordsymbole verwende, werden die Griffbretter über der Note zentriert, die Akkorde dagegen linksbündig gesetzt. Kann man dieses Verhalten auch anpassen?

fugenkomponist

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #3 am: Montag, 6. Oktober 2014, 09:21 »
Bei der dritten bekomme ich Fehler, was aber möglicherweise an der verwendeten Version 2.16.2 liegt. Ich werde mal auf die neueste Version upgraden und es dann probieren.
Ich kenn mich mit Gitarre und Akkorden gar nicht aus, aber hierzu kann ich was sagen:
TextScript.padding hieß bis 2.16 TextScript #'padding und VerticalAxisGroup.staff-staff-spacing.padding war VerticalAxisGroup #'(staff-staff-spacing padding)
Was sich da genau geändert hat und wie sich 2.18 noch (abgesehen von zahlreichen Bugfixes) von 2.16 unterscheidet, kannst du hier sehen.

Edit: Falls du es noch nicht kennst: alte LilyPond-Dateien müssen manchmal an die Syntax der verwendeten neueren LilyPond-Version angepasst werden, das muss man aber nicht von Hand machen, sondern das kann das Programm convert-ly für einen übernehmen.
Ach ja: Die oben beschriebene Syntax, die bis 2.16 verwendet wurde, funktioniert in den meisten Fällen in 2.18 auch noch, ist aber nicht mehr empfohlen und wird auch irgendwann abgeschafft.
« Letzte Änderung: Montag, 6. Oktober 2014, 09:24 von fugenkomponist »

hurrlipurr

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #4 am: Montag, 6. Oktober 2014, 09:46 »
Ich kenn mich mit Gitarre und Akkorden gar nicht aus, aber hierzu kann ich was sagen:
TextScript.padding hieß bis 2.16 TextScript #'padding und VerticalAxisGroup.staff-staff-spacing.padding war VerticalAxisGroup #'(staff-staff-spacing padding)
Was sich da genau geändert hat und wie sich 2.18 noch (abgesehen von zahlreichen Bugfixes) von 2.16 unterscheidet, kannst du hier sehen.

Ich habe es nun wie folgt geändert

\version "2.16.2"

%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%
<<
  \new FretBoards
  \with { \override VerticalAxisGroup #'(staff-staff-spacing padding) = #5 }
    \chordmode { <d a cis' e'>4 }
  \new Staff { d'4 a' cis'' e'' }
>>

aber ich bekomme nun neue Fehlermeldungen:

Starte lilypond 2.16.2 [Ohne Titel] ...
»/tmp/frescobaldi-YYPBLw/tmpI3ZO7h/document.ly« wird verarbeitet
Analysieren...
/tmp/frescobaldi-YYPBLw/tmpI3ZO7h/document.ly:9:17: Fehler: syntax error, unexpected $undefined
    \chordmode {
                 <d a cis' e'>4 }
/tmp/frescobaldi-YYPBLw/tmpI3ZO7h/document.ly:9:29: Fehler: syntax error, unexpected $undefined
    \chordmode { <d a cis' e'
                             >4 }
/tmp/frescobaldi-YYPBLw/tmpI3ZO7h/document.ly:6:0: Fehler: Fehler gefunden, musikalischer Ausdruck wird ignoriert

<<
schwerer Fehler: gescheiterte Dateien: "/tmp/frescobaldi-YYPBLw/tmpI3ZO7h/document.ly"
Wurde mit dem Return-Code 1 beendet.

Die Änderungen zwischen den Versionen scheinen nicht so gravierend zu sein, daher ist die Frage, ob es sinnvoll ist, von der paketierten Version (Linux Mint 17) auf die ganz aktuelle zu wechseln.

harm6

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #5 am: Montag, 6. Oktober 2014, 12:03 »
Die ersten beiden funktionieren prima. Nicht elegant, aber für den Moment völlig ausreichend.
[...]
Mir ist noch etwas anderes aufgefallen: wenn ich Fretboards und Akkordsymbole verwende, werden die Griffbretter über der Note zentriert, die Akkorde dagegen linksbündig gesetzt. Kann man dieses Verhalten auch anpassen?

Naja, das Ausmaß an Eleganz wird wohl eher dadurch bestimmt, an welche Anwendung Du denkst. Ein einzelnes markup via padding-tweak bzw override zu versetzen ist absolut hinreichend und üblich.
Die konsequente Setzung von Griffdiagrammen wird aber eher den eigenen FretBoard-context benutzen wollen.
;)

Das Akkordsymbol wird nicht linksbündig gesetzt, sondern der root-name (also das "c" in "cb5#9") wird über der Note zentriert. Weitere Zusätze werden rechts davon gesetzt.
Ich halte nichts davon den ganzen Akkord über der Note zu zentrieren. Aber im Code unten eine Möglichkeit, ich weiß allerdings nicht, ob sie immer klappt.



\version "2.16.2"

%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%
<<
  \new FretBoards
  \with { \override VerticalAxisGroup #'(staff-staff-spacing padding) = #5 }
    \chordmode { <d a cis' e'>4 }
  \new Staff { d'4 a' cis'' e'' }
>>

aber ich bekomme nun neue Fehlermeldungen:
[...]

Die Änderungen zwischen den Versionen scheinen nicht so gravierend zu sein, daher ist die Frage, ob es sinnvoll ist, von der paketierten Version (Linux Mint 17) auf die ganz aktuelle zu wechseln.

Die Änderungen zwischen den Versionen sind für mich immer so bedeutsam, daß ich upgrade. Geht kinderleicht.
Allerdings behalte ich die alten stable Versionen. Multiple Versionen sind natürlich etwas aufwendiger...
Wenn mein Rechner nicht gerade kaput ist habe ich Zugriff auf alle stable seit 2.12 sowie die neueste devel-Version.

Zum Kernthema.
Folgender Code scheint auch mit 2.16. zu funktionieren:
\version "2.16.0"

%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%

forPostOnly =
\with {
  \consists "Text_engraver"
  \override  TextScript #'padding = #5
}

\include "predefined-guitar-fretboards.ly"

#(define x-off
  (lambda (grob)
    (let* ((stil (ly:grob-property grob 'stencil))
           (stil-x-length (interval-length (ly:stencil-extent stil X)))
           (text (ly:grob-property grob 'text))
           ;; poking in the ChorName-markup will likely not work in some cases
           (root-name (caar (cdaadr text)))
           (root-stil (grob-interpret-markup grob root-name))
           (root-stil-x-length
             (interval-length (ly:stencil-extent root-stil X))))
    (+ (/ stil-x-length -2) (/ root-stil-x-length 2)))))

chrds = {
  { <d a cis' e'>1 }
  \chordmode { c1 }
}

<<
  \new ChordNames
    \forPostOnly
    {
      <>^"default chords"
      \chrds
    }
   
  \new FretBoards
    \with {
      \override VerticalAxisGroup #'default-staff-staff-spacing #'padding = #10
    }
    \chrds
   
  \new ChordNames
    \with {
      \override ChordName #'X-offset = #x-off
      \forPostOnly
    }
    {
      <>^"whole chords centered on note"
      \chrds
    }
   
  \new Staff { d'4 a' cis'' e'' c'1 }
>>

HTH,
  Harm

hurrlipurr

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #6 am: Montag, 6. Oktober 2014, 15:02 »
Version 2.18.2 konnte ich tatsächlich mühelos installieren. Allerdings habe ich jetzt kein Frescobaldi mehr, da es an der paketierten Version hängt. :-/

Das Akkordsymbol wird nicht linksbündig gesetzt, sondern der root-name (also das "c" in "cb5#9") wird über der Note zentriert. Weitere Zusätze werden rechts davon gesetzt.
Ich halte nichts davon den ganzen Akkord über der Note zu zentrieren. Aber im Code unten eine Möglichkeit, ich weiß allerdings nicht, ob sie immer klappt.

Da hast du natürlich recht. Ich habe es falsch ausgedrückt: die Grifftabellen sollten idealerweise zentriert unter dem Akkordsymbol ausgerichtet werden.

Dein Beispiel muss ich mir in Ruhe zu Gemüte führen. Vielleicht brauche ich vorher einen Scheme-Kurs? ;-)

Auf jeden Fall schon mal vielen lieben Dank für deine Mühe.


fugenkomponist

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #7 am: Montag, 6. Oktober 2014, 15:47 »
Ja, Ubuntus (und damit Mints) Frescobaldi braucht ein LilyPond aus den Paketquellen. Du brauchst das Paketquellen-LilyPond aber gar nicht zu deinstallieren (und damit auch Frescobaldi nicht), sondern kannst einfach das LilyPond von der Webseite „drüberinstallieren“.

Das wär die einfache Variante.

Allerdings wächst Frescobaldi an seinen Aufgaben und der aus den Paketquellen kann auch nur Syntax von LilyPond 2.16 erkennen und vervollständigen (insbesondere kommen keine Ergänzungsvorschläge bei der Notation VerticalAxisGroup.staff-[…] mit Punkt). Mit anderen Worten: lass Frescobaldi ruhig deinstalliert und installiere den aktuellen von http://frescobaldi.org/, ist auch nicht viel schwieriger als die manuelle LilyPond-Installation (du willst aber noch das Paket libpopplerqt4 installieren für die PDF-Vorschau).

Edit: Um genau zu sein: den aktuellen Frescobaldi findest du unter https://github.com/wbsoft/frescobaldi/releases, da das .tar.gz runterladen, entpacken und den Anweisungen in der Datei INSTALL folgen.
« Letzte Änderung: Montag, 6. Oktober 2014, 15:49 von fugenkomponist »

harm6

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #8 am: Montag, 6. Oktober 2014, 20:20 »
Dein Beispiel muss ich mir in Ruhe zu Gemüte führen. Vielleicht brauche ich vorher einen Scheme-Kurs? ;-)

LilyPond orientiert sich im allgemeinen am Standard für Notensatz anhand diverser Quellen, z.B. "Behind Bars" von Elaine Gould.
Siehe auch:
https://archiv.lilypondforum.de/index.php?topic=1342.msg7366
In vielen Fällen gibt es Einstellmöglichkeiten, falls man es doch anders haben möchte.
In vielen Fällen jedoch auch nicht.  Man kann meistens die notwendige Funktionalität programmieren, getreu dem Motto "LilyPond kann alles" ;)
Und scheme genauer guile ist nun mal die Erweiterungssprache.
Es gibt ja das Forum ... :D

Gruß,
  Harm

hurrlipurr

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #9 am: Montag, 6. Oktober 2014, 21:29 »
Mit anderen Worten: lass Frescobaldi ruhig deinstalliert und installiere den aktuellen von http://frescobaldi.org/, ist auch nicht viel schwieriger als die manuelle LilyPond-Installation (du willst aber noch das Paket libpopplerqt4 installieren für die PDF-Vorschau).

Ja, mal sehen, mache ich wahrscheinlich. Erst mal berausche ich mich aber eine Weile am herrlichen Lilypond-Syntax-Highlighting in meinem Lieblingseditor Sublime Text.  8)

hurrlipurr

  • Gast
Re: Abstand zwischen fret-diagram und Notenlinien
« Antwort #10 am: Montag, 6. Oktober 2014, 21:35 »
Es gibt ja das Forum ... :D

Keine Sorge, mir fallen ganz sicher noch viele Fragen ein. Aber bevor ich euch weiter belästige, lese ich erst mal die Doku zu Ende.  ;D