frescobaldi - liypond - akkordsymbole verspringen mit höhe der note - vertikale abstände

M
mariachi pistola
Registrierter Benutzer
Zuletzt hier
10.11.21
Registriert
22.09.21
Beiträge
5
Kekse
0
moin moin,

ich benutze das notensetzprogram frescobaldi, da die ausgabe mir besonders gut ins auge fällt.
kenne mich allerdings nicht sehr gut aus. habe irgendwann mal mit tuxguitar geschrieben und dann nach frescobaldi konvertiert.
hier ist so etwas wie eine schablone für zweistimmige gitarre entstanden, die ich nutze.

mein problem: die akkorde, die ich in die notation mit reinschreibe, verspringen je nach höhe der note.

bsp.
<a'\1>2 -\tag #'chords ^\markup D <g'\1>8 <fis'\1>8
\times 2/3 { <e'\1>8 -\tag #'chords ^\markup G <fis'\1>8 <e'\1>8 } <d'\2>4. <g\3>8
<c'\2>8 -\tag #'chords ^\markup C <c'\2>8 <c'\2>8 <c'\2>4 <a\3>8
<b\2>8 -\tag #'chords ^\markup G <a\3>8 <g\3>8 <a\3>4. -\tag #'chords ^\markup D

akkord d dur ist in der ausgabe viel höher als g dur im 2. takt. dieser höher als c dur im 3. takt.
ich vermute, dass das mit den darunter stehenden noten zu tun hat. bei tonfolge fallend: a' e' c'

ich kopiere mal alles hier rein zum überblick, delitantisch und kompliziert, ich weiß
freue mich aber auf eine geschickte lösung, die meine akkorde in einer ebene (linie, zeile) verbleiben lassen
mit zb. \markup\raise #6 G hatte ich das schon geschafft, allerdings waren mir die abstände insgesamt zu groß und fürs auge nicht mehr gut
super fände ich, wenn ich den akkord auch nach unten, in richtung note drücken kann

vielen dank für eure antworten !
matze

#(define (tie::tab-clear-tied-fret-numbers grob)
(let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
(ly:grob-set-property! tied-fret-nr 'transparent #t)))

\version "2.16.0"
#(set-global-staff-size 28)

\paper {
indent = #0
system-system-spacing = #'((basic-distance . 20))
print-all-headers = ##t
print-all-headers = ##t
ragged-right = ##f
ragged-bottom = ##t
top-margin = 20
bottom-margin = 20
oddFooterMarkup = \markup{ \fill-line{ \line{" "} } }
}
\layout {
\context { \Score
\override MetronomeMark #'padding = #'5
\override MetronomeMark #'transparent = ##t
}
\context { \Staff
\override TimeSignature #'style = #'numbered
\override StringNumber #'transparent = ##t
}
\context { \TabStaff
\override TimeSignature #'style = #'numbered
\override Stem #'transparent = ##t
\override Flag #'transparent = ##t
\override Beam #'transparent = ##t
\override Tie #'after-line-breaking = #tie::tab-clear-tied-fret-numbers
}
\context { \TabVoice
\override Tie #'stencil = ##f
}
\context { \StaffGroup
\consists "Instrument_name_engraver"
}
}
deadNote = #(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
(acons 'stencil ly:note-head::print
(acons 'glyph-name "2cross"
(acons 'style 'special
(ly:music-property note 'tweaks)))))
note)

palmMute = #(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
(acons 'style 'do (ly:music-property note 'tweaks)))
note)

TrackAVoiceAMusic = #(define-music-function (parser location inTab) (boolean?)
#{
\tempo 4=160
\clef #(if inTab "tab" "treble_8")
\key g \major
\time 6/8
\voiceOne
\repeat volta 2 {
<b\2>4. -\tag #'chords ^\markup G <d'\2>4.
<c'\2>2 -\tag #'chords ^\markup C <b\2>8 <a\3>8
<b\2>4. -\tag #'chords ^\markup G <g\3>4.
<a\3>2. -\tag #'chords ^\markup D
\break

<b\2>4. -\tag #'chords ^\markup G <d'\2>4.
<g'\1>2 -\tag #'chords ^\markup C <fis'\1>8 <e'\1>8
<d'~\2>2. -\tag #'chords ^\markup D <d'\2>2. }
\break

<a'\1>2 -\tag #'chords ^\markup D <g'\1>8 <fis'\1>8
\times 2/3 { <e'\1>8 -\tag #'chords ^\markup G <fis'\1>8 <e'\1>8 } <d'\2>4. <g\3>8
<c'\2>8 -\tag #'chords ^\markup C <c'\2>8 <c'\2>8 <c'\2>4 <a\3>8
<b\2>8 -\tag #'chords ^\markup G <a\3>8 <g\3>8 <a\3>4. -\tag #'chords ^\markup D
\break
<b\2>4. -\tag #'chords ^\markup G <d'\2>4.
<g'\1>2 -\tag #'chords ^\markup C <fis'\1>8 <e'\1>8
<d'\2>4. -\tag #'chords ^\markup D <d'\2>4.
<d'\2>2. -\tag #'chords ^\markup G

\bar "|."
\pageBreak
#})
TrackAVoiceBMusic = #(define-music-function (parser location inTab) (boolean?)
#{
\voiceTwo

#})
TrackALyrics = \lyricmode {
\set ignoreMelismata = ##t

\unset ignoreMelismata
}
TrackAStaff = \new Staff <<
\context Voice = "TrackAVoiceAMusic" {
\TrackAVoiceAMusic ##f
}
\context Voice = "TrackAVoiceBMusic" {
\TrackAVoiceBMusic ##f
}
\new Lyrics \lyricsto "TrackAVoiceAMusic" \TrackALyrics
>>
TrackATabStaff = \new TabStaff \with { stringTunings = #`(,(ly:make-pitch 0 2 NATURAL) ,(ly:make-pitch -1 6 NATURAL) ,(ly:make-pitch -1 4 NATURAL) ,(ly:make-pitch -1 1 NATURAL) ,(ly:make-pitch -2 5 NATURAL) ,(ly:make-pitch -2 2 NATURAL) ) } <<
\context TabVoice = "TrackAVoiceAMusic" {
\removeWithTag #'chords
\removeWithTag #'texts
\TrackAVoiceAMusic ##t
}
\context TabVoice = "TrackAVoiceBMusic" {
\removeWithTag #'chords
\removeWithTag #'texts
\TrackAVoiceBMusic ##t
}
>>
TrackAStaffGroup = \new StaffGroup <<
\TrackAStaff
\TrackATabStaff
>>
\score {
\TrackAStaffGroup
\header {
title = "Übers Meer"
composer = "Rio Reiser"
instrument = ""
subtitle = ""
subtitle = ""
subsubtitle = ""
}
}

%{
convert-ly (GNU LilyPond) 2.16.2 convert-ly: »« wird verarbeitet...
Anwenden der Umwandlung: 2.11.2, 2.11.3, 2.11.5, 2.11.6, 2.11.10,
2.11.11, 2.11.13, 2.11.15, 2.11.23, 2.11.35, 2.11.38, 2.11.46,
2.11.48, 2.11.50, 2.11.51, 2.11.52, 2.11.53, 2.11.55, 2.11.57,
2.11.60, 2.11.61, 2.11.62, 2.11.64, 2.12.0, 2.12.3, 2.13.0, 2.13.1,
2.13.4, 2.13.10, 2.13.16, 2.13.18, 2.13.20, 2.13.27, 2.13.29, 2.13.31,
2.13.36, 2.13.39, 2.13.40, 2.13.42, 2.13.44, 2.13.46, 2.13.48,
2.13.51, 2.14.0, 2.15.7, 2.15.9, 2.15.10, 2.15.16, 2.15.17, 2.15.18,
2.15.19, 2.15.20, 2.15.25, 2.15.32, 2.15.39, 2.15.40, 2.15.42,
2.15.43, 2.16.0
%}
 
Eigenschaft
 

Anhänge

  • test.pdf
    64,1 KB · Aufrufe: 168
Grund: zum näheren verständnis
Hallo mariachi pistola,

Willkommen im Forum!

Hui, das ist aber eine alte LilyPond-Version...
Aber abgesehen davon:

Eigentlich sollte man Akkordsymbole im Kontext ChordNames ausgeben, dann erübrigt sich Dein Alignment-Problem und außerdem lassen sie sich transponieren usw.

Egal. Du hast den Weg über TextScript genommen.
Der Grund für die ungleichmäßige Anordnung bzw. verschobene Grundlinie ist, dass ein TextScript-Objekt immer an seiner Note ausgerichtet ist und in Deinem Fall stehen die Notenhälse manchmal so weit nach oben heraus, dass sie die Akkordsymbole "nach oben drücken".

Um das zu umgehen, kannst Du die staff-padding-Eigenschaft groß genug setzten, dass alle Symbole auf einer gemeinsamen Grundlinie ausgerichtet werden können.
In Deinem Coding wäre das im \layout-Block:

Code:
  \context { \Staff
             \override TimeSignature #'style = #'numbered
             \override StringNumber #'transparent = ##t
             \override TextScript #'staff-padding = #4
  }

ich habe hier den staff-padding-Wert auf 4 gesetzt. Jetzt stehen alle Akkordsymbole generell etwas höher, so dass der C-Dur-Akkord nicht mehr vom g in den Noten weiter als die anderen nach oben herausgeschoben werden muss:

1632309710606.png


Viele Grüße
Torsten

Edit: Wenn die Akkordsymbole näher an die Noten rücken können sollen, kannst Du auch padding und outside-staff-padding auf 0 setzen bzw. verringern.
Die Eigenschaft staff-padding bestimmt den Abstand zum Staff, solange nicht anderes dazwischenkommt und das TextScript-Symbol weiter verschiebt.
 
hallo torsten,
vielen dank !
leider passiert in meiner version bei staff-padding-Wert 4 rein gar nichts. bei 5 steigen die anderen akkorde.
erst wenn ich den wert auf 6 erhöhe, liegen alle auf einer linie. dann sind sie mir zu weit oben.
(ich glaube du hattest es mit zeile 2 probiert, in zeile drei aber steht ein a noch höher...)
wenn ich padding und outside-staff-padding auf 0 setze oder verringere, passiert nix :(

ChordNames hatte ich ebenfalls probiert. die wirft er mir doppelt, in anderer schrift und unterhalb der tabs aus.
hier weiß ich nicht so recht, wie ich in meiner "schablone" ChordNames integrieren muss.
wenn du noch ne idee hast, wäre ich dir sehr dankbar !

matze
 
leider passiert in meiner version bei staff-padding-Wert 4 rein gar nichts. bei 5 steigen die anderen akkorde.

Das ist komisch - ich habe Dein Coding genommen und durch LilyPond Version 16.2 laufen lassen.


wenn ich padding und outside-staff-padding auf 0 setze oder verringere, passiert nix :(

Du musst auch noch padding auf 0 setzen.
Wenn Du die beiden Werte auf einen negativen Wert setzt, kannst Du mit staff-padding genau den Abstand vom Staff einstellen, den Du möchtest. Wenn's sein muss, mit Überlappungen und Kollisionen.

Bei
Code:
  \context { \Staff
             \override TimeSignature #'style = #'numbered
             \override StringNumber #'transparent = ##t
             \override TextScript #'staff-padding = #2
             \override TextScript #'outside-staff-padding = #-10
             \override TextScript #'padding = #-10
  }
bekomme ich z. B.

1632330810681.png

da hängt das C im Hals, wenn man das mag...

Die "normale" Lösung für Akkordnamen wäre allerdings ChordNames.
Du hast die Akkorde ja jeweils als TextScript in den Notentext mit eingebaut - oder ist das automatisch generiert?

Frescobaldi bietet den Luxus, über Tools -> Musical Transformations -> Quick Remove -> Remove Text Markup (from music)
all Deine TextScript-Pseudoakkorde zu entfernen (vorher den entsprechenden Abschnitt markieren.

Dann noch mit Suchen & Ersetzen die überflüssigen bzw. jetzt störenden
-\tag #'chords
entfernen.

Dann kann man die Akkorde im vorgesehenen ChordNames-Kontext definieren (ich habe mich hier an den Stil der vorliegenden Beispieldatei gehalten:

Code:
TrackAChords = \new ChordNames \chordmode {
  g2. c g d g c d d g c g d g c d g
}

Die neue Variable heißt TrackAChords und ich habe die Akkorde einfach schnell in eine Reihe geschrieben.

Diese Varialbe muss man noch in die \score einbauen, in diesem Fall also in die Variable TrackAStaffGroup mit einbauen
Code:
TrackAStaffGroup = \new StaffGroup <<
  \TrackAChords
  \TrackAStaff
  \TrackATabStaff
>>
Dann braucht man auch keine Tags: oben die Akkordnamen, dann die Notenzeile und darunter die Tabulatur.

Ohne Eingriff werden die Akkorde in serifenloser Schrift gedruckt (Default).
Das kannst Du allerdings im \layout-Block oder sonstwo ändern, indem Du die font-family auf "roman" stellst. Auch die Größe lässt sich anpassen:
Code:
  \context { \ChordNames
             \override ChordName #'font-family = #'roman
             \override ChordName #'font-size = #0
             chordChanges = ##t
  }
chordChanges = ##t verhindert, dass in jedem Takt ein gleichbleibender Akkordname wiederholt wird.

1632331970816.png


Viele Grüße
Torsten
 
was mir auffällt, ist, dass die Notenhälse nicht "regelgerecht" dargestellt werden, da alle Hälse nach oben zeigen. Würden die Hälse der höheren Noten regelkonform nach unten zeigen, träte das Problem der verschobenen Akkorde wahrscheinlich erst bei deutlich höheren Tönen auf (vermute ich als Unwissende).
 
was mir auffällt, ist, dass die Notenhälse nicht "regelgerecht" dargestellt werden, da alle Hälse nach oben zeigen.

Da hast Du natürlich völlig recht.
Das (offensichtlich) zusammengenerierte Coding ist sowieso für Menschen nicht sehr lesefreundlich.
Ich hatte das einfach alles kommentarlos so belassen und mich nur um die bemängelte Akkordnamen-Positionierung gekümmert.

Der Grund, warum die Hälse alle nach oben zeigen, ist schlicht und ergreifend die (unverständliche) Anweisung \voiceOne in der Definition von TrackAVoiceMusic, die somit die Stimme als 1. Stimme in einem polyphonen Zusammenhang definiert, weshalb alle Hälse nach oben ausgerichtet sind.
Dummerweise gibt es keine 2. oder gar 3. Stimme, so dass diese Ausrichtung völlig überflüssig ist.

Wenn man diesen unnötigen und hier sogar störenden \voiceOne-Befehl weglässt, sind die Hälse konventionell ausgerichtet:

1632337141983.png


Viele Grüße
Torsten
 
hey torsten,
wahnsinn ! läuft jetzt alles wie geschmiert !

ich habe aufgeräumt, ChordNames-Kontext eingefügt, wie du es oben vorgemacht hast.
(schön übersichtlich jetzt und transponieren funzt auch, genial !)

und auch die neue version runtergeladen :)

danke dir !!!
matze
Beitrag automatisch zusammengefügt:

die zweite stimme (bass) brauche ich für den daumen der rechten hand, da sollen die hälse nach unten, quasi als spielanleitung.
nur im beispiel gab es keine basslinie...

aber das wird wohl das problem gewesen sein.
danke auch an INge !
 
Zuletzt bearbeitet:
Und in den Takten 2,6,10 und 14 ist die Taktmitte nicht erkennbar, weil Noten über die Taktmitte hinweggehen. Das würde man in Noten mit hohem Lesbarkeitsanspruch für andere Musiker anders machen und kleinere Notenwerte mit Haltebogen verwenden, sodass keine Note die Schläge 3 und 4 (=Taktmitte) gemeinsam belegt.

Nur als Anmerkung für die Lesbarkeit.
 
Und in den Takten 2,6,10 und 14 ist die Taktmitte nicht erkennbar, weil Noten über die Taktmitte hinweggehen. Das würde man in Noten mit hohem Lesbarkeitsanspruch für andere Musiker anders machen und kleinere Notenwerte mit Haltebogen verwenden, sodass keine Note die Schläge 3 und 4 (=Taktmitte) gemeinsam belegt.

Nur als Anmerkung für die Lesbarkeit.
in takt 10 könnte ich die punktierte viertel binden. aber für takte 2, 6 und 14 fällt mir nichts ein. hast du da einen vorschlag, wie du es meinst ?
 
in takt 10 könnte ich die punktierte viertel binden. aber für takte 2, 6 und 14 fällt mir nichts ein.

Üblich und deutlich besser lesbar wäre eine Aufteilung der jeweiligen Noten und Nutzung eines Haltebogens (Tie), so dass die Taktmitte und somit rhythmische Struktur klar hervortritt.

Das hat @HaraldS ja bereits verraten.

Dann verrate ich Dir noch, wie man das in LilyPond macht:
Note in zwei passende kleinere Werte aufteilen und dazwischen einen Haltebogen (Tie) setzen, das macht man in LilyPond mit der Tilde ~
Beispiel

CSS:
c4. ~ c8
In den aktuellen LilyPond-Versionen muss man in solchen Fällen nicht einmal den Ton wiederholen:
CSS:
c4. ~ 8

Die erste Zeile sähe dann so aus (Takt 2 betroffen):

1632581927836.png


Die Tabulatur "erkennt" automatisch, dass sie die 1 auf der 2. Saite nicht wiederholen muss.

Wenn dann die zweite Stimme (Daumen, Bass, ...) hinzukommt, ist eine solche rhythmisch klare Aufteilung noch vorteilhafter.

Viele Grüße
Torsten
 
  • Gefällt mir
Reaktionen: 1 Benutzer
also im beispiel oben finde ich die halbe note sehr leicht lesbar, auch wenn sie hier im 6/8 über die mitte geht.
die gebundene und punktierte note macht den takt fast unnötig voll.

aber ihr habt natürlich recht.
überall sonst findet man diese struktur auch so, vor allem, wenn zweit- und drittstimmen hinzu kommen wirds dann wieder leichter faßbar.

danke euch !
den bindebogen habe ich jetzt auch auf dem schirm
matze
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben