Notationsspezifisch > Noten für Gitarre

Einklammern von Punkten (dots) in Akkorddiagrammen

(1/2) > >>

trulli:
Hallo Freunde,

ich möchte in dem Diagramm des Akkordes einen Griffpunkt einklammern. Das ist eine übliche Praxis, wenn ein Finger später hinzugenommen wird und man kein neues Griffbild schreiben will.

Habt ihr dazu eine Idee? Bisher habe ich an diesen beiden Stellen gesucht, aber nichts passendes gefunden:
http://lilypond.org/doc/v2.14/Documentation/internals/fret_002ddiagram_002dinterface
http://lilypond.org/doc/v2.14/Documentation/internals/fretboard

Danke und Grüße


--- Code: ---\version "2.14.1"

\relative c {
 
d'^\markup {
      \override #'(size . 2.1) {
        \override #'(fret-diagram-details . (
                     (orientation . landscape)
                     (number-type . roman-upper)
                     (dot-label-font-mag . 0.9)
                     (finger-code . none)
                     (fret-label-vertical-offset . -0.5)
                     (fret-count  . 3)
                     (dot-position . 0.5)
                     (xo-font-magnification . 0.3)
                     (xo-padding . 0.3))) {
          \fret-diagram-verbose #'((open 1)
                                   (open 2)
                                   (place-fret 3 4 1)
                                   (place-fret 4 5 2)
                                   (place-fret 6 4 3))
        }
      }
    }
   
   
  }
--- Ende Code ---

Be-3:
Hallo Trulli,

da es sich bei den Fretboards um ganz "gewöhnliches" Markup handelt, hätte ich als "Notlösung" den \combine-Befehl benutzt, um mittels \translate zwei ordinäre Text-Klammern "( )" dorthin zu schieben, wo ich sie haben möchte.

Das ist zwar alles andere als elegant (vor allem muß man sich an die Plazierung mühnsam hinarbeiten), aber immerhin ist diese Lösung besser als nichts... Immerhin ein erster Ansatz.

Viele Grüße
Torsten


--- Code: ---\version "2.14.1"

\relative c {
 
d'^\markup {
      \combine \translate #'(0.82 . -1.5) "( )"
      \combine \translate #'(-1.27 . -5.7) "( )"
      \override #'(size . 2.1) {
        \override #'(fret-diagram-details . (
                     (orientation . landscape)
                     (number-type . roman-upper)
                     (dot-label-font-mag . 0.9)
                     (finger-code . none)
                     (fret-label-vertical-offset . -0.5)
                     (fret-count  . 3)
                     (dot-position . 0.5)
                     (xo-font-magnification . 0.3)
                     (xo-padding . 0.3))) {
          \fret-diagram-verbose #'((open 1)
                                   (open 2)
                                   (place-fret 3 4 1)
                                   (place-fret 4 5 2)
                                   (place-fret 6 4 3))
        }
      }
    }
   
   
  }
--- Ende Code ---

trulli:
Hallo Torsten,

danke für die Antwort. Ja, ich hatte an \combine auch schon gedacht, aber keine Lust auf die Fummelei mit der richtigen Position gehabt.  ::)

Danke, dass du es gemacht hast. Wenn es keine andere Lösung gibt, werde ich es so darstellen. Ich bin aber sicher, dass es noch weitere Lösungen gibt - meistens kommt man nur nicht gleich drauf... Mir ist noch eingefallen, dass man den Punkt auch durchsichtig mit durchgezogenem Rand darstellen könnte (#'(fret-diagram-details dot-color) = #'white). Wäre aber auch nur eine Notlösung.

Gruß

harm6:
Hallo,

ich habe leider auch keine einfache Lösung gefunden.

So hab' ich mir dann eben mal /scm/fret-diagrams.scm mal etwas genauer angeschaut. Um das Einklammern möglich zu machen sind gar nicht mal viele Änderungen in (define (make-fret-diagram ...)) nötig. Allerdings handelt es sich hierbei um die fast 600 Zeilen lange Hauptdefinition, die auch noch von anderen Definitionen dort abhängig ist.

Ganz davon abgesehen, daß es nie eine gute Idee ist in den Installationsdateien rumzufuschen, macht es die Länge der Definitionen völlig unpraktikabel sie einfach in das zu bearbeitende file zu setzen.

Stattdessen habe ich das ganze /scm/fret-diagrams.scm in ein .ly file (mit den gewünschten Änderungen) konvertiert.
Also wie üblich: irgendwo abspeichern und via \include einbinden.
fret-diagrams.ly im Anhang

Ob es immer funktionieren wird weiß ich noch nicht. D.h. das Einklammern wird immer klappen, aber vielleicht gibt es Verschiebungen in X-Achse. Falls Du so was bemerkst, dann melde Dich.

Die Syntax bleibt (mit einer Ausnahme) völlig gleich: als letztes Argument von place-fret kann parenthesize hinzugefügt werden, um den dot einzuklammern.


--- Zitat ---Mir ist noch eingefallen, dass man den Punkt auch durchsichtig mit durchgezogenem Rand darstellen könnte (#'(fret-diagram-details dot-color) = #'white).
--- Ende Zitat ---

Ich meine, daß dieser Befehl alle Punkte verändert. Falls Du nur einen verändert haben willst solltest Du inverted als letztes Argument von place-fret schreiben.


Es wäre ein schöne Sache, wenn die Möglichkeit zum Einklammern einzelner Elemente eines Griffdiagrams im source-code beinhaltet wäre. Was hälst Du davon eine feature-request einzureichen? bug-lilypond ist die richtige Adresse dafür.
-> http://lilypond.org/website/bug-reports.html (Stör Dich nicht daran, daß dort nur von bugs die Rede ist, für requests gilt dasselbe)

Anwendungsbeispiel:
--- Code: ---\version "2.14.1"

\include "fret-diagrams.ly"

\relative c {
 
d'^\markup {
      \override #'(size . 2.1) {
        \override #'(fret-diagram-details . (
                     (orientation . landscape)
                     (number-type . roman-upper)
                     (dot-label-font-mag . 0.9)
                     (finger-code . none)
                     (fret-label-vertical-offset . -0.5)
                     (fret-count  . 3)
                     (dot-position . 0.5)
                     (xo-font-magnification . 0.3)
                     (xo-padding . 0.3)))
                     {
          \fret-diagram-verbose #'((open 1)
                                   (open 2)
                                   (place-fret 3 4 1)
                                   (place-fret 4 5 2 parenthesize)
                                   (place-fret 6 4 3 inverted))
        }
      }
    }
}

fd = \markup {
          \fret-diagram-verbose #'((place-fret 1 1 1)
                                   (place-fret 2 3 4)
                                   (place-fret 3 2 2)
                                   (open 4)
                                   (place-fret 4 3 3 parenthesize)
                                   (mute 5)
                                   (mute 6))
}
 
\relative c' {
        <>^\fd
        <<{ <a' d f>1 } \\ { d,2 f }>>
}
--- Ende Code ---


HTH,
  Harm

trulli:
Klasse harm,

vielen Dank! Funktioniert in meinem Kontext bestens! Ich musste nur die Dot-Position etwas angleichen.

Ich habe mal das Problem für den Bug-Report verschickt. Wäre natürlich am einfachsten, wenn es einfach wie inverted als Argument eingefügt werden könnte.

Vielen Dank an alle und Grüße von Trulli

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln