Neueste Beiträge

Seiten: 1 ... 6 7 [8] 9 10
71
Fragen zu Funktionen / Re: Automatische Textmarker-Markierungen
« Letzter Beitrag von harm6 am Samstag, 11. März 2017, 22:34 »
Zitat von: fugenkomponist
ich könnt mir sogar vorstellen, daß man das direkt im stencil der farbig zu hinterlegenden Grobs unterbringen kann.

Yup, z.B.:
\version "2.19.56"

#(define* (emphasize-in-color color padding #:optional (y-padding 0))
  (lambda (grob)
(let* ((stil (ly:grob-property grob 'stencil))
       (x-ext (ly:stencil-extent stil X))
       (y-ext (ly:stencil-extent stil Y)))
  (ly:grob-set-property! grob 'layer -100)
  (ly:grob-set-property! grob 'stencil
    (ly:stencil-add
      (stencil-with-color
        (make-filled-box-stencil
          (interval-widen x-ext padding)
          (interval-widen y-ext (+ y-padding padding)))
        color)
      stil)))))   

\relative c' {
  c1
  \once \override Staff.BarLine.after-line-breaking =
    #(emphasize-in-color red 0.2 1)
  \repeat volta 2 {
    c1
    \once \override Accidental.after-line-breaking =
      #(emphasize-in-color yellow 0.2)
    cis1
  \once \override Staff.BarLine.after-line-breaking =
    #(emphasize-in-color red 0.2 1)
   }
  \once \override Staff.KeySignature.after-line-breaking =
    #(emphasize-in-color green 0.2)
  \key g \major
  c1
}

Könnte man jetzt auch als Funktion kodieren ...


Gruß,
  Harm
72
Fragen zu Funktionen / Re: Abstände von Ankerpunkten in vertikaler Richtung finden
« Letzter Beitrag von xr am Samstag, 11. März 2017, 16:01 »
Zitat
Du veränderst ja die spanner-bounds nicht...

Bei diesem Thema ging es mir auch nicht um horizontale Abstände, sondern allein um die vertikalen. Und die kann man innerhalb eines Systems mit den Werten aus der minimum-translations-alist bestimmen. (Spanner bräuchte ich doch nur für horizontale Abstände, oder nicht?)

Ich vermute, dass die Liste verschiedene Berechnungen Lilyponds zur optimalen Positionierung wiederspiegelt, und der letzte Wert dann die beste Annäherung ist. Aber das vermute ich nur, vielleicht ist es auch anders, und es gibt einen internen Vorgang, der aus all diesen Werten später den optimalen aussucht.

Xaver
73
Fragen zu Funktionen / Re: Abstände von Ankerpunkten in vertikaler Richtung finden
« Letzter Beitrag von xr am Samstag, 11. März 2017, 12:04 »
Hallo harms,

hier schonmal eine schnelle Antwort.

Zitat
(2)
break-loop
ist in Deinen Beispielen nicht definiert und gibt unter bestimmten Bedingungen einen Fehler aus.
(3)
dloop ebenfalls

Hatte ich wohl vergessen zu kopieren. Hier der Code. Einfach einfügen.
#(define (dloop vals)
    (define n 0)
    (for-each
        (lambda (x)
            (disp n)
            (if (list? n) (dloop n) n)
            (newline)
            (set! n (+ 1 n))
            (display x)
        )
        vals
    )
)
#(define (break-loop elements fkt condit)
    ;; elements => list
    ;; breaks loop when fkt result equals condit
    ;; or running out of elements
    ;; there should be a better solution for
    ;; the line: set! result ...
    (let* (
        (result #f)
        )
        (do ((i 1 (1+ i))
             (x (fkt 0)  (fkt i))
             )
            (
            (begin
                (set! result (list-ref elements (1- i) ))
                (= i (length elements)) or (equal? condit (fkt (1- i))))
            x)
        )
    result
    )
)

Zitat
Mir ist unklar wie Du die Bögen setzen willst. Damit meine ich wo sollen sie anfangen und enden, nicht im Sinne von numerischen Werten, sondern welche Grobs Du treffen willst?
Du veränderst ja die spanner-bounds nicht...

Ich versuche die Werte numerisch zu berechnen. Ich habe da auch schon eine Lösung. Die Ausarbeitung dauert aber noch etwas.
Alles andere später.

Gruß,
Xaver
74
Fragen zu Funktionen / Re: Abstände von Ankerpunkten in vertikaler Richtung finden
« Letzter Beitrag von harm6 am Samstag, 11. März 2017, 10:48 »
Zitat von: fugenkomponist
harm, der von uns hier im Forum noch am meisten Ahnung von so Scheme-Sachen hat, hat in dem Thread auch schon geschrieben, d. h. er wird da wohl auch weiter mitlesen.

Eigentlich lese ich immer mit ;)
Jedoch habe ich zu häufig keine Zeit mich mit dem jeweiligen Anliegen zu beschäftigen und falls mir was dazu einfällt (was nicht notwendigerweise der Fall ist) das auch zu posten.
Aber jetzt ist ja Wochenende ...

@Xaver
Deinen Code habe ich compiliert, bislang aber nur flüchtig durchgesehen.
Mir ist unklar wie Du die Bögen setzen willst. Damit meine ich wo sollen sie anfangen und enden, nicht im Sinne von numerischen Werten, sondern welche Grobs Du treffen willst?
Du veränderst ja die spanner-bounds nicht...

Sonstige Beobachtungen:
(1)
Sobald Du
system-system-spacing.padding
auf einen anderen (hohen) Wert setzt stimmt alles nicht mehr.
Insoweit mein Interesse an den spanner-bounds
(2)
break-loop
ist in Deinen Beispielen nicht definiert und gibt unter bestimmten Bedingungen einen Fehler aus.
(3)
dloop ebenfalls
(4)
#(define (grob-name grob) ...
Es gibt grob::name im sourcecode, würde ich ersetzen/streichen. Später hast Du grob::name selbst verwendet ;)
(5)
statt
#(define (sum elemList)
  (if
    (null? elemList)
    0
    (+ (car elemList) (sum (cdr elemList)))
  )
)
vielleicht
#(define (sum elemList)
(if (every number? elemList)
    (apply + elemList)
    elemList))
Falls Du anderweitig sicher gestellt hast, daß die Liste wirklich nur Zahlen enthält kann man sich die fool-proof-Bedingung vielleicht sogar sparen.


Soweit erstmal.
Alles erstmal Kleinigkeiten bis auf die spanner-bounds.

Gruß,
  Harm

75
Fragen zu Funktionen / Re: Automatische Textmarker-Markierungen
« Letzter Beitrag von fugenkomponist am Freitag, 10. März 2017, 17:41 »
Kurze Antwort: Ja, kann man, ist halt evtl. relativ aufwendig (zumindest bis man ne erste Lösung hat, dann kann mans in ne Funktion packen und gut ist).

Lange Antwort: Man kann auf jeden Fall mit \markup etc. rumspielen; ich könnt mir sogar vorstellen, daß man das direkt im stencil der farbig zu hinterlegenden Grobs unterbringen kann. Bevor ich das aber probiere: Ist dir vielleicht schon damit geholfen, die einzelnen Grobs farbig zu drucken statt schwarz auf farbigem Hintergrund? Dann würde es reichen, das per (\once) \override zu ändern:
\override Staff.KeySignature.color = #greenUnd noch ein paar Detailfragen:
• Soll die Färbung alle Grobs des Typs betreffen (z. B. alle Tonartwechsel immer grün)? Davon hängt ab, wo der \override plaziert werden sollte.
• Sollen die Wiederholungen solche Klammern haben wie in rot angedeutet? Dafür gibt es startRepeatType und endRepeatType, die auf "[|:" und ":|]" statt ".|:" und ":|." gesetzt werden.
• Falls ein einfaches Färben nicht ausreicht: farbig umkringeln oder hinterlegen?

\version "2.18.2"

\relative c' {
  c1
  \once \override Staff.BarLine.color = #red
  \repeat volta 2 {
    c1
    \once \override Accidental.color = #darkyellow
    cis1
  }
  \once \override Staff.BarLine.color = #red
  \once \override Staff.KeySignature.color = #darkgreen
  \key g \major
  c1
}
76
Fragen zu Funktionen / Automatische Textmarker-Markierungen
« Letzter Beitrag von Thomas am Freitag, 10. März 2017, 16:08 »
Hallo,

kann man einzelne Notenelemente automatisch farbig hinterlegen, wie zum Beispiel Wiederholungen, Tonartwechsel, Versetzungszeichen, ...?

\version "2.18.2"

\relative c' {
 
 c1
 \repeat volta 2 {
   c1
   cis1
 }
 \key g \major
 c1
 
}
77
Fragen zu Funktionen / Re: Leerzeichen bei Textaddition entfernen
« Letzter Beitrag von Hilflos-im-Code am Freitag, 10. März 2017, 10:05 »
Super, das lobe ich mir.
78
Fragen zu Funktionen / Re: Leerzeichen bei Textaddition entfernen
« Letzter Beitrag von fugenkomponist am Freitag, 10. März 2017, 09:51 »
Ja. Das Zauberwort heißt \concat:
\version "2.19.56"

\markup { eins zwei }
\markup \line { eins zwei }
\markup \concat { eins zwei }
Ergebnis dieses Codes als Bild im Anhang.

Auf dein Problem angewandt: Pack \concat direkt vor { $mrkp \fontsize #-3 $mrkp2 }
79
Fragen zu Funktionen / Leerzeichen bei Textaddition entfernen
« Letzter Beitrag von Hilflos-im-Code am Freitag, 10. März 2017, 09:43 »
VOR =
#(define-scheme-function
  (parser location mrkp mrkp2 )
  (markup? markup? )
#{
  \markup {

    \magnify #1
    \bold
    \with-color #darkmagenta
    \center-align
    \translate #'(-0 . 4.5)
    %% other syntax-possibility:
    %\override #'(font-name . ,font-name-string)

   { $mrkp \fontsize #-3 $mrkp2 }
   
   
   
  }
#})

{a4^\VOR "↑""4"}

Zwischen der Vier und dem Pfeil entsteht ein Leerzeichen. Kann ich das ohne großen Aufwand los bekommen?
80
Fragen zu Funktionen / Re: Auflösungszeichen vor Barline
« Letzter Beitrag von Manuela am Donnerstag, 9. März 2017, 22:51 »
Danke, das ist ein super "Schummelzettel"!
Seiten: 1 ... 6 7 [8] 9 10