Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: Markus W. Kropp am Dienstag, 27. Juni 2017, 13:36

Titel: Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Dienstag, 27. Juni 2017, 13:36
Hallo Leute,

ich möchte Viertelpausen als dicke Schrägstriche (von links unten nach rechts oben im 45° Winkel, Größe ca. normale Viertelpause, Lilypond 2.18.2) darstellen. Ich habe leider nur das hier gefunden, wo die normale Pause durch einen Kreis ersetzt wird:

#(define (ly:rest-interface::dot-rests grob)
  (let ((duration (ly:grob-property grob 'duration-log))
        (circle (ly:stencil-translate-axis (make-circle-stencil 0.55 0.1 #t) 0.3 X)))
    (case duration
      ((2) circle)
      ((3) (ly:stencil-add
               circle
               (make-filled-box-stencil '(-0.275 . 0.9) '(-1.35 . -1.0))))
      (else (ly:rest::print grob)))))


Steuern kann man das dann variabel mit

\override Rest #'stencil = #ly:rest-interface::dot-rests
\repeat unfold 4 { r4 r r r }
\revert Rest #'stencil


Funktioniert wunderbar mit den Kreisen (den code habe ich im Netz gefunden). Nur: wie bekomme ich Schrägstriche hin?


LG Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Manuela am Dienstag, 27. Juni 2017, 13:44
Wird allerdings ein bisschen fett:

#(define (ly:rest-interface::dot-rests grob)
  (let ((duration (ly:grob-property grob 'duration-log))
        (circle (ly:stencil-translate-axis (make-circle-stencil 0.55 0.1 #t) 0.3 X)))
    (case duration
      ((2) ly:percent-repeat-item-interface::beat-slash)
      ((3) (ly:stencil-add
               circle
               (make-filled-box-stencil '(-0.275 . 0.9) '(-1.35 . -1.0))))
      (else (ly:rest::print grob)))))


Update: so kann man Dicke und Steigung steuern:

\relative c'' {
\override Rest.stencil = #ly:rest-interface::dot-rests
\override Rest.thickness = #0.48
\override Rest.slope = #1.7
\repeat unfold 4 { r4 r r r }
}
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Malte am Dienstag, 27. Juni 2017, 13:58
\version "2.19.61"

{
  \override Rest.stencil = #ly:text-interface::print
  \override Rest.text = \markup \musicglyph #"noteheads.s2slash"
  \repeat unfold 16 r4
}

Das verwendet die ,,Schrägstrich-Notenköpfe" als Zeichen für alle Pausen, nicht nur Viertelpausen. Reicht dir das?

Wieso möchtest du die Pausenzeichen denn ändern?
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:24
Hallo Leute,

ich setze gerade ein Leadsheet. Das besteht ja aus Melodie und Akkordsymbolen. Der zweite Teil im Leadsheet beinhaltet keine notierte Melodie mehr aber nur noch Akkorde. Und da brauche ich in den Notenlinien Platzhalter für die nicht-notierte Melodie. Die Schrägstriche sind da perfekt. Ist die Vorgabe von dem Jazzer, dem ich das setze.

Deshalb: tausend Dank für diese Lösung! Manuelas funktioniert perfekt, Maltes werde ich gleich noch ausprobieren. Ihr seid so unglaublich schnell mit Code. Und: diese Art Code übersteigt mein Können und ich lerne stetig dazu. Hättet Ihr zum Verständnis vielleicht noch einen Link, der diese #(define ... Geschichte erklärt? Was da genau passiert? Ich erahne es zwar aus dem Code – verstehen kann man das aber nicht nennen.

Herzliche Grüße & Dank

Markus

EDIT: boa, Maltes Version ist ja extrem schlank! Und funktioniert! Danke!
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Manuela am Mittwoch, 28. Juni 2017, 10:34
Zitat von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:24
Deshalb: tausend Dank für diese Lösung! Manuelas funktioniert perfekt, Maltes werde ich gleich noch ausprobieren. Ihr seid so unglaublich schnell mit Code. Und: diese Art Code übersteigt mein Können und ich lerne stetig dazu. Hättet Ihr zum Verständnis vielleicht noch einen Link, der diese #(define ... Geschichte erklärt? Was da genau passiert? Ich erahne es zwar aus dem Code – verstehen kann man das aber nicht nennen.

Alles, was mit # beginnt, ist Scheme-Code. Vielleicht fängst du mal damit an

LilyPond – Extending (http://lilypond.org/doc/v2.19/Documentation/extending-big-page.de.html)

Die allerwichtigsten Funktionen zu Scheme findest du hier (Englisch)

Teach Yourself Scheme in Fixnum Days (http://ds26gte.github.io/tyscheme/index-Z-H-1.html#node_toc_start)

Ein weiteres Tutorial (Englisch)

Getting to Grips with Scheme in LilyPond (http://lilypondblog.org/2014/03/music-functions-1-getting-to-grips-with-scheme-in-lilypond/)

Zitat von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:24
EDIT: boa, Maltes Version ist ja extrem schlank! Und funktioniert! Danke!

Meine Version kann zwischen Pausen verschiedener Länge unterscheiden.  ;)
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Malte am Mittwoch, 28. Juni 2017, 10:40
Zitat von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:24
ich setze gerade ein Leadsheet. Das besteht ja aus Melodie und Akkordsymbolen. Der zweite Teil im Leadsheet beinhaltet keine notierte Melodie mehr aber nur noch Akkorde. Und da brauche ich in den Notenlinien Platzhalter für die nicht-notierte Melodie. Die Schrägstriche sind da perfekt. Ist die Vorgabe von dem Jazzer, dem ich das setze.
Das hab ich schon fast vermutet: Du brauchst hier gar keine Pausen zu ,,mißbrauchen", sondern kannst Noten verwenden; dafür gibt es den Befehl \improvisationOn und sein Gegenstück \improvisationOff. Falls du die Notenhälse dann noch loswerden willst, kannst du dir mit \omit Stem und \undo \omit Stem behelfen. Der Vorteil an dieser Lösung ist, daß du trotzdem noch Pausen setzen kannst. Und daß es halt eher im Sinne des Erfinders ist ;)

Du mußt halt dann Tonhöhen auf der Mittellinie notieren (im Violinschlüssel h' oder b') oder aber du verwendest den Pitch_squash_engraver.

\improvisationOn und der Pitch_squash_engraver sind hier (http://lilypond.org/doc/v2.18/Documentation/notation/note-heads#improvisation) dokumentiert mit Beispiel :)

Edit: Hier mal \improvisationOn ohne Pitch_squash_engraver in Aktion:\version "2.18.2"

\relative {
  c'4 d e f
  g a b c
  \improvisationOn
  \omit Stem
  % ohne Pitch_squash_engraver: Notenkopf folgt weiterhin der Tonhöhe
  b b c c
  % aber Vorzeichen werden bei \improvisationOn versteckt
  bes bes bes bes
  b b r b
  \improvisationOff
  \undo \omit Stem
  c b a g
  f e d c
}
Titel: Antw:Viertelpause als Schrägstrich darstellen
Beitrag von: Manuela am Mittwoch, 28. Juni 2017, 10:44
Zitat von: Malte am Mittwoch, 28. Juni 2017, 10:40Du mußt halt dann Tonhöhen auf der Mittellinie notieren (im Violinschlüssel h' oder b') oder aber du verwendest den Pitch_squash_engraver.

\improvisationOn und der Pitch_squash_engraver sind hier (http://lilypond.org/doc/v2.18/Documentation/notation/note-heads#improvisation) dokumentiert mit Beispiel :)

Wieder was gelernt  :)

Es gibt ja so viel in Lilypond zu erforschen, das ist unglaublich.
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:46
okay, tausend Dank für die Links und die Erklärungen. Da habe ich ja was zu tun. Jazz zu notieren ist für mich noch neu, ich komme von der Klassik. Und da steht man mit Lilypond plötzlich vor ganz neuen Themen.

Meine Zwischenlösung ist jetzt erstmal, dass ich mir zwei Variablen gemacht habe, wo die Schrägstriche (statt den Pausen) ein- und ausgeschaltet werden. Wenn ich Zeit habe werde ich mich mal mit den \improvistionOn Befehlen und den Scheme Sachen "herumschlagen".

Supi!


Herzliche Grüße

Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:49
Mann, da habe ich mich im Netz tot gesucht, dann hier meine Frage gestellt und dann ist die Lösung mit \improvisationOn so einfach? Das ist mir noch nie passiert  :o dann brauche ich doch keine Variablen.


Grüße Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Manuela am Mittwoch, 28. Juni 2017, 11:06
Zitat von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:49
Mann, da habe ich mich im Netz tot gesucht, dann hier meine Frage gestellt und dann ist die Lösung mit \improvisationOn so einfach?

Lilypond eben  ;)

Probier das mal mit anderen Notensatzprogrammen.
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Malte am Mittwoch, 28. Juni 2017, 11:18
Zitat von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 10:49
Mann, da habe ich mich im Netz tot gesucht, dann hier meine Frage gestellt und dann ist die Lösung mit \improvisationOn so einfach?
Deshalb frag ich so oft nach dem ,,Was willst du eigentlich machen?" ;) Denn oft stellt sich später im Thread heraus, daß die eigentliche Fragestellung eine ganz einfache Lösung hat, diese Fragestellung aber nicht von Anfang an klar war und von vornherein nach teilweise merkwürdigen ,,Basteleien" gefragt wird.

Bestes Beispiel: Es hat mal wer gefragt, wie man versteckte Pausen dazu bringt, keinen horizontalen Platz zu verbrauchen. Es stellte sich raus, daß das im ersten Takt des Stücks passieren sollte und die eigentliche Frage gewesen wär: Wie geht ein Auftakt in LilyPond? Der Fragesteller, ganz neuer Nutzer, hat einfach nicht damit gerechnet, daß LilyPond das kann. Das ist natürlich jetzt ein besonders drastisches Beispiel, aber LilyPond kann eben auch viele speziellere Dinge, womit man als Nutzer oft erstmal nicht mit rechnet.

Mein Rat daher (auch an alle anderen, die das lesen): Geht erstmal davon aus, daß LilyPond mehr ohne Bastelei kann als ihr glaubt. Fragt nach dem ,,wie". Und wenn sich dann herausstellt, daß es keine fertige Lösung gibt, kann man immer noch anfangen zu basteln.

Deshalb ist übrigens hier auch die Thread-schließen-Funktion ausgeschaltet: Wenn eine Bastel-Antwort gegeben wurde, der Fragesteller damit zufrieden ist und den Thread schließt, kann man sein ,,LilyPond kann das fei von Haus aus ohne Gebastel" nicht loswerden ;)
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Manuela am Mittwoch, 28. Juni 2017, 11:55
Zitat von: Malte am Mittwoch, 28. Juni 2017, 11:18
Deshalb frag ich so oft nach dem ,,Was willst du eigentlich machen?" ;) Denn oft stellt sich später im Thread heraus, daß die eigentliche Fragestellung eine ganz einfache Lösung hat, diese Fragestellung aber nicht von Anfang an klar war und von vornherein nach teilweise merkwürdigen ,,Basteleien" gefragt wird.

Bestes Beispiel: Es hat mal wer gefragt, wie man versteckte Pausen dazu bringt, keinen horizontalen Platz zu verbrauchen. Es stellte sich raus, daß das im ersten Takt des Stücks passieren sollte und die eigentliche Frage gewesen wär: Wie geht ein Auftakt in LilyPond? Der Fragesteller, ganz neuer Nutzer, hat einfach nicht damit gerechnet, daß LilyPond das kann. Das ist natürlich jetzt ein besonders drastisches Beispiel, aber LilyPond kann eben auch viele speziellere Dinge, womit man als Nutzer oft erstmal nicht mit rechnet.

Mein Rat daher (auch an alle anderen, die das lesen): Geht erstmal davon aus, daß LilyPond mehr ohne Bastelei kann als ihr glaubt. Fragt nach dem ,,wie". Und wenn sich dann herausstellt, daß es keine fertige Lösung gibt, kann man immer noch anfangen zu basteln.

Es wäre vll. eine gute Idee, einen Thread mit aussagekräftiger Überschrift und entsprechenden Hinweisen in diesem Unterforum anzupinnen.

Überschrift etwa "Zum ersten Mal hier? Nützliche Hinweise zur Fragestellung"
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 13:35
Lieber Malte,

ich weiß was Du meinst. Ich muss nur Jazz-Noten setzen und das ist Neuland für mich. So neu, dass ich in diesem Falle gar keine genaue Frage hätte stellen können. Ich bemühe mich schon um die Genauigkeit in der Fragestellung – doch setzt eine sehr exakte Frage eine sehr exakte Fachkenntnis voraus. Und das war in meinem Fall nicht der Fall. Wäre ich im Notensatz für Klassik, hätte ich viel präziser fragen können.

Von daher: holdrio, ich gebe Dir Recht und bemühe mich. Jedoch hätte ich rückblickend nicht anders fragen können – und das, obwohl ich mit "meinem Jazzer" schon Kontakt zu einigen Themen hatte.


Liebe Grüße

Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Malte am Mittwoch, 28. Juni 2017, 14:54
Hallo Markus,

das war gar nicht als Kritik gemeint; es ist mir nur aufgefallen und ich wollte erklären, warum ich so oft darauf bestehe, die genaue Anwendung zu erfahren ;) Vielleicht geh ich mal Manuelas Idee nach ;)

Viele Grüße
Malte
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 28. Juni 2017, 15:12
Selbst wenn es Kritik wäre: gute Kritik! Ich habe nur mal versucht zu erläutern, warum man mit fehlenden Voraussetzungen nicht immer präzise fragen kann. Mehr nicht. Also, alles easy, alles gut. Ich bin da nicht so empfindlich.

Anregung: wenn ein Fragender nicht noch präziser trotz intensiver Bemühung fragen kann: vielleicht als Helfer noch mehr nachbohren, was gemeint ist. Oder man sollte als Fragender mehr Grafiken einfügen, damit man klarer zum Ausdruck bringt, was gemeint ist. Das könnte so manche Threads abkürzen. Ist nur so eine Idee & Vorschlag – muss man nicht machen. Vielleicht weniger Arbeit für beide Seiten. Für mich sind alle Formen okay, Hauptsache es ist nett & kompetent, was hier im Forum immer der Fall ist  :D  ;D


Musikalische Grüße

Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 19. Juli 2017, 10:21
Da war es nun doch gut, dass ich ungenau gefragt habe. Warum? Bei einer sehr genauen Frage hätte ich die Antwort:

\improvisationOn

bekommen. Und es hätte erst einmal wunderbar funktioniert. Wenn da nicht der lilyjazz-font wäre ... der stellt das nämlich nicht als Schrägstrich dar. Also konnte ich sofort auf Maltes schlanke Lösung


\override Rest.stencil = #ly:text-interface::print
  \override Rest.text = \markup \musicglyph #"noteheads.s2slash"


zurückgreifen. Und voila ... es funktioniert auf Knopfdruck!


LG Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Malte am Mittwoch, 19. Juli 2017, 11:53
Zitat von: Markus W. Kropp am Mittwoch, 19. Juli 2017, 10:21Wenn da nicht der lilyjazz-font wäre ... der stellt das nämlich nicht als Schrägstrich dar.
Öhm ... doch, bei mir gehts. Zeig mal Code ;)
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Mittwoch, 19. Juli 2017, 12:15
\improvisationOn

... mehr nicht – bei aktiviertem \jazzOn. Bei keinem \jazzOn stellt lily Schrägstriche dar.

Bei mir werden dann mit \jazzOn und \improvisationOn Viertel-Notenköpfe dargestellt statt Schrägstriche mit lilyjazz. Hm. Vielleicht liegt's daran:


\paper {
  myStaffSize = #21
  #(define fonts
     (make-pango-font-tree
      "lilyjazz"
      "lilyjazz-text"
      "lilyjazz-chord"
     
      (/ myStaffSize 21)
      ))
}


Kann bei Bedarf gerne mehr Code schicken ...

LG Markus
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Malte am Mittwoch, 19. Juli 2017, 20:26
Hm ... ist 2.19.xx wirklich keine Option für dich? Ehrlich gesagt bin ich zu faul, einen alten Font und entsprechende Header zu installieren, wenn die für mich einfachste Lösung ein LilyPond-Upgrade ist. Die Handhabung von Fonts ist einfach so viel einfacher geworden ...
Titel: Antw:Viertelpause als Schrägstrich darstellen [gelöst]
Beitrag von: Markus W. Kropp am Donnerstag, 20. Juli 2017, 00:27
also ... ich habe schon zweimal erklärt, warum ich nicht Upgrade. der Font ist ja korrekt installiert unter 2.18.2, das ist nicht das Problem. finde ich auch nicht umständlich.

LG markus