Allgemein > Hilfe beim Einstieg in Lilypond

Tonhöhe farbig darstellen

<< < (2/2)

ding-dong:
 8) echt cool!

sollte man es vielleicht umbenennen  - zb "pitch-colors" - da ja viel allgemeiner jedes objekt auf einer bestimmten tonhöhe eingefärbt werden kann, also auch pausen:

--- Code: --- \override Rest #'color = #pitch-colors
--- Ende Code ---
und dann:

--- Code: ---{ c \rest d \rest e \rest f \rest g \rest }
--- Ende Code ---

und ist es möglich die 7 farben irgendwie mit einem \set pitch-colors = ... zu definieren?! (ich kenne leider scheme nicht)
vielen dank!
 

etilli33:

--- Zitat von: ding-dong am Sonntag, 31. August 2008, 09:52 ---und ist es möglich die 7 farben irgendwie mit einem \set pitch-colors = ... zu definieren?! (ich kenne leider scheme nicht)
vielen dank!

--- Ende Zitat ---

Hmm, geht bestimmt, aber ich weiß auch nicht, wie...

FriedrichR:
Super tolle Lösung!
Hab ich gleich in OOoLilypond eingefügt - und siehe da, es Funktioniert!


PS
Oh, sorry für das riesen Bild...

Hier noch der Link zum OOoLilypond-Thread:
https://archiv.lilypondforum.de/index.php?topic=166.0

etilli33:


--- Zitat von: ding-dong am Sonntag, 31. August 2008, 09:52 ---und ist es möglich die 7 farben irgendwie mit einem \set pitch-colors = ... zu definieren?! (ich kenne leider scheme nicht)
vielen dank!

--- Ende Zitat ---

Nochmal dazu: es war wohl gedacht, die während des STückes zu ändern? Innerhalb der Scheme-Funktion kann man ja jede beliebige x11-Farbe nehmen, die Liste findet sich wenn ich recht erinnere im NR.

Und wenn du irgendwo ändern willst, kannst du ja eine anders genannte Funktion erstellen und dann mit einem weiteren \override hierzu wechseln.

Till

ding-dong:
ich meinte so etwas wie

--- Code: ---#(define (color-notehead grob)
       "Color the notehead according to its position on the staff."
       (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
         (case mod-position
           ;;   Return rainbow colors
           ((1) (x11-color arg1 ))  ; for C
           ((2) (x11-color arg2 ))  ; for D
           ((3) (x11-color arg3 ))  ; for E
           ((4) (x11-color arg4 ))  ; for F
           ((5) (x11-color arg5 ))  ; for G
           …
           …
         )
       )
     )

--- Ende Code ---

und dann:


--- Code: ---\set (override) pitch-color = ( rot green magent … … …)
--- Ende Code ---
( oder wie auch immer das in scheme geschrieben wird)

das wäre etwas flexibler und bei stimmungsschwankungen müsste man nicht wieder die funktion hart kodieren
vielleicht müsste man das noch ausarbeiten?!

ding-dong

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln