Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen

Begonnen von Matze, Donnerstag, 9. Dezember 2021, 19:31

« vorheriges - nächstes »

Matze

Hallo Leute,

ich möchte Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig auf einer Seite anordnen.
Also zb. so, dass in einer Zeile Violinen Schlüssel und c steht, 3cm gar nichts, dann Bassschlüssel mit einer Note, dann wieder nichts, dann Violinenschlüssel
mit weiterer Note usw. Insgesamt 6 solcher Schnipsel pro Zeile. Auch würde ich gern die Abstände zwischen den Schnipseln variieren können.
In der nächsten Zeile das selbe Spiel. Auch möchte ich die jeweiligen Abstände der Zeilen dann verändern können.

Ich nutze Version "2.16.0" und bin krasser Anfänger. Darum schreibe ich nie selber neu, sondern nutze eine Art Schablone, die ich dann jeweils anpasse...
Das sieht bei mir dann so aus:

#(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
   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 {
ragged-right = ##t
  \context { \ChordNames
             \override ChordName #'font-family = #'roman
             \override ChordName #'font-size = #0
             chordChanges = ##t
  }
   \context { \Score
      \omit BarNumber
      \override MetronomeMark #'padding = #'5
      \override MetronomeMark #'transparent = ##t
   }
   \context { \Staff
      \override TimeSignature #'transparent = ##t
      \override StringNumber #'transparent = ##t
      \override TextScript #'staff-padding = #-10
      \override TextScript #'outside-staff-padding = #-10
      \override TextScript #'padding = #-10
   }
   \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)
TrackAChords = \new ChordNames \chordmode {
  % akkorde zb.   e2. a e b
 
}
TrackAVoiceAMusic = #(define-music-function (parser location inTab) (boolean?)
#{
   
   <c\4>1    %\stopStaff
           %\skip2.





      %\stopStaff f''4 \skip2. \startStaff g, e
      %\clef treble
      % \clef bass
      % \bar "|."
      %<e,\6>1 <f,\6>1 <fis,\6>1 <g,\6>1
      %<a,\5>1 <b,\5>1 <bes,\5>1 <c\5>1
      %<d\4>1 <e\4>1 <f\4>1
      %<g\3>1 <a\3>1 <bes\3>1 <b\3>1
      %<b\2>1 <c'\2>1 <d'\2>1
      %<e'\1>1 <f'\1>1 <fis'\1>1 <g'\1>1 <a'\1>1
   
      % pausen \skip4. r2 r8
     
      %\repeat volta 2 {
     
      %\break

      % triole \times 2/3 { <cis'\1>8  <dis'\1>8 <cis'\1>8 }

   
#})
TrackAVoiceBMusic = #(define-music-function (parser location inTab) (boolean?)
#{
      % zweite stimme bass hier
     
#})
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 <<
   \TrackAChords
   \TrackAStaff
    %\TrackATabStaff
>>
\score {
   \TrackAStaffGroup
   \header {
      title = " "
      composer = " "
      instrument = ""
      subtitle = ""
      subtitle = ""
      subsubtitle = ""
   }
}

Würde mich riesig freuen, wenn jemand Ideen zu meinem Problem hat.
Vielen Dank
Matze

harm6

Hallo Matze,

willkommen im Forum.

Ein paar Hinweise:
Bitte setze code in code-tags.
Poste bitte minimal examples.
ZitatIch nutze Version "2.16.0"
Ernsthaft??
Diese Version ist uralt, bitte mach ein upgrade auf die aktuelle stable, d.h. 2.22.1
Für 2.16. wirst Du keinen support bekommen, kaum jemand hat diese Version noch. Und wer sie hat (wie ich) benutzt sie nur noch zum debuggen von uraltem, anderweitig nicht mehr lauffähigem code.

Gruß,
  Harm

Matze

Sorry, hier hatte sich ein Fehler eingeschlichen. Mein Programm Frescobaldi, dass Lilypond nutzt, hat die Version 2.16.0

Die Lilypond Version 2.18.2, die bei mir drauf ist, wird in meinen Packetquellen, als die neueste angegeben.

Würde ich hier, mit 2.18.2 Unterstützung bekommen, oder reicht es noch nicht ?

Matze

harm6

Könntest Du noch genauer beschreiben wie es nachher aussehen soll?

Handelt es sich um eine Art Tabelle, wie unten?




foo baaaaaaaaaaar
foooooooooooo bar

Also mit festgelegten Spalten.

Oder eher wie im mehrzeiligen Fließtext:

foo    baaaaaaaaaaar
foooooooooooo    bar


Oder noch anders?


Im Moment tendiere ich dazu Dir \markup zu empfehlen (bevor ich genaueres weiß ist das aber wirklich nur ein erster Gedanke).

Davon hängt auch ab mit welcher LilyPond Du sinnvoll arbeiten kannst:
Das score-markup-command ist irgendwann deutlich verbessert worden. Ob diese Verbesserung bereits für 2.18.2 zur Verfügung steht weiß ich momentan nicht.
Eine Tabelle kann man mit dem table-markup-list-command erstellen. Das ist aber erst seit 2.19.x implementiert.


Gruß,
  Harm

P.S. Welches Betriebssystem verwendest Du?
Bei mir ist das Ubuntu 20.04, dort wird mir LilyPond-2.20.0 und Frescobaldi-3.0.0 angeboten.
Allerdings nutze ich diese nicht sondern verwende immer die von LilyPond bereit gestellten Installer.
Zumindest auf Linux-Systemen ist das kinderleicht (auch für multiple Versionen).

Tatsächlich verwende ich zusätzlich auch noch die repositories für LilyPond und Frescobaldi, aber das führt hier zu weit.

Matze

es könnte wie folgt aussehen:

foo      baa      foo      foo
baa     foo       baa     baa
baa     baa      foo      foo

foo      foo       foo      baa
baa     baa      foo      baa

also eher festgelegte Spalten

ps. ich habe hier linux mint 18 cinnamon