StaffSymbol.line-positions

Begonnen von erich, Montag, 24. Juli 2017, 09:24

« vorheriges - nächstes »

erich

Hallo allen!

Zunächst das Beispiel
\version "2.19.52"
\language "nederlands"
\paper {indent = 0
        line-width = 20}
\score{
  <<
    \new Staff \with {\remove "Time_signature_engraver"
           \override StaffSymbol.line-positions = #'(-4 -2 0 2 4)}
    \new Voice { c'1 \break
    \stopStaff
        \override Staff.StaffSymbol.line-positions = #'(-6 -4 -2 0 2)
    \startStaff
    c'1
    }
  >>
}


Das Notensystem soll um eine Notenlinie verschoben werden. So wie ich es gemacht habe, wird der Taktstrich beim Übergang auf die neue Zeile falsch gesetzt. Mache ich was falsch? weiß jemand Abhilfe?

Gruß
Erich

Manuela

Hmmm, da stellt sich wieder die Frage, wozu das ganze? Vll. gibt es ganz andere unerwartete Lösung, wenn wir wüssten, was du damit bezwecken willst.

Das Problem dürfte die Änderung mittendrin sein, Lily passt die Taktstriche an das nachfolgende System an.
Danke für eure Hilfe
viele Grüße
-- Manuela

Malte

Ich muß Manuela recht geben, vermutlich gibt es eine viel einfachere Variante. Geht es tatsächlich um einen Violinschlüssel? Und soll der tatsächlich in diese Richtung geschoben werden? Dann wäre es viel einfacher, middleCPosition und clefPosition zu setzen:\version "2.19.63"

{
      c'1 \break
      \set Staff.middleCPosition = -4
      \set Staff.clefPosition = 0
      c'1
}
Ausgerechnet diesen Schlüssel gibts ja normalerweise nicht, weil dafür der Sopranschlüssel (C-Schlüssel auf der tiefsten Linie, \clef soprano) verwendet wird. Aber gehts dir vielleicht um andere alte Schlüssel? Oder den Violinschlüssel in die andere Richtung verschoben (\clef french)?

harm6

Falls es eine einfachere Möglichkeit gibt, schön, aber für Schlagzeuger sind eine unterschiedliche und wechselnde Anzahl von Notenlinien gang und gäbe.

Falls kein Weg um \stop/startStaff herumgeht so handelt es sich um issue 3609 und evtl. issue 2876
https://sourceforge.net/p/testlilyissues/issues/3609/
https://sourceforge.net/p/testlilyissues/issues/2876/

Für 3609 hab ich dort gerade einen workaround gepostet. Anwendung auf Erichs Code (\stop/startStaff am Zeilenumbruch) ergibt:

\version "2.19.64"

workAround =
\once \override Staff.BarLine.before-line-breaking =
  #(lambda (grob)
    (if (eqv? LEFT (ly:item-break-dir grob))
        (begin
          ;(ly:grob-set-property! grob 'bar-extent '(-5 . -1))
          ;(ly:grob-set-property! grob 'Y-extent '(-5 . -1))   
          (ly:grob-set-property! grob 'Y-offset 1))))

\paper { indent = 0 line-width = 20 }

{
  c'1
  \break
  \workAround
  \stopStaff
  \override Staff.StaffSymbol.line-positions = #'(-6 -4 -2 0 2)
  \startStaff
  c'1
}


Für 2876 fällt mir allerdings kein workaround ein :(

Gruß,
  Harm

erich

#4
Hallo Manuela,

da Du genauer nachfragst, werde ich etwas ausführlicher, weil es vielleicht auch den einen oder anderen interessieren könnte. Ich habe mir viele alternative Notationssysteme angeschaut und selbst einige entwickelt und wieder verworfen.  Zur Zeit verwende ich ein System, dass schon Hugo Riemann (1849-1919) in ähnlicher Weise vorgeschlagen hatte.

Das System kennt keine Vorzeichen und Hilfslinien nur zwischen den Notenlinien. Eine Oktave benötigt zur Darstellung für die gleichstufige Stimmung 12 Positionen. Das System hat daher für jede Oktave 3 Notenlinien und je 3 Positionen darüber zwischen den Linien macht 3x4 = 12. Oktavweise wechselt die Darstellung der Notenlinien - drei durchgezogen dann drei gestrichelte, die nicht vollstänig aufgeführt sein müssen. Der Schlüssel gibt das e' an. Die Linien sind also immer e-gis-c bzw. e-as-c.


Um möglichst wenige Notenzeilen verwenden zu müssen, soll ihre Anzahl bzw. ihre Darstellung wechseln können. Von daher rührt das aufgeworfene Problem.
Zur Illustration gebe ich unten eine LilyPondAusgabe unverändert als Beispiel; in traditioneller Notation findet man es unter
http://www.klangreihenmusik.at/skriptum-erinnerung-an-windhaag-07.php3

Gruß
Erich

Hallo Harm,

ich werde mir Deinen Beitrag noch ansehen. Ich verwende \stopStaff - \startStaff; ich hatte mich hier um ein knappes Beispiel bemüht.

vielen Dank
Erich

Manuela

Erich, danke für deine Antwort. Ich vermute mal, für deine Darstellung müsstest du Lilypond umprogrammieren, weil alles andere wahrscheinlich nur unzureichendes Stückwerk wäre.
Danke für eure Hilfe
viele Grüße
-- Manuela

erich

Manuela,

das ist doch das Gute an LilyPond, dass man damit vieles machen kann, ohne etwas programmieren zu müssen sondern einfach deklarieren kann! Natürlich stößt man, wenn man nicht ganz Alltäglichers macht, auch mal auf Fehler im System; aber dazu dient ja die Kommunikation hier vor allem die mit Harm.

Gruß an alle
Erich

p.s. und wenn mir etwas nicht ganz gelingt, nehme ich Inkscape zur Hilfe

ingmar

(off-topic:) Erinnert mich ein wenig an Equiton, das in den Siebzigern mal kurz hochkam und bei weitem nicht so platzhungrig ist.
Gruß, --ingmar

Manuela

Zitat von: erich am Montag, 24. Juli 2017, 14:44das ist doch das Gute an LilyPond, dass man damit vieles machen kann, ohne etwas programmieren zu müssen sondern einfach deklarieren kann! Natürlich stößt man, wenn man nicht ganz Alltäglichers macht, auch mal auf Fehler im System; aber dazu dient ja die Kommunikation hier vor allem die mit Harm.

Du hast recht, Lilypond ist genial und man kann unglaublich viel damit machen, das begeistert mich auch immer wieder.

Danke für eure Hilfe
viele Grüße
-- Manuela