Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Spezielle Projekte => Thema gestartet von: Matze am Donnerstag, 9. Dezember 2021, 19:31

Titel: Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen
Beitrag von: Matze am Donnerstag, 9. Dezember 2021, 19:31
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
Titel: Antw:Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen
Beitrag von: harm6 am Donnerstag, 9. Dezember 2021, 21:18
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
Titel: Antw:Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen
Beitrag von: Matze am Freitag, 10. Dezember 2021, 18:00
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
Titel: Antw:Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen
Beitrag von: harm6 am Sonntag, 12. Dezember 2021, 10:49
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.
Titel: Antw:Notenzeilenanfänge mit wechselnden Notenschlüssel verschiedenartig anordnen
Beitrag von: Matze am Sonntag, 12. Dezember 2021, 19:32
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