• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

EventChord rausfischen

Begonnen von erich, Samstag, 26. März 2016, 09:34

Vorheriges Thema - Nächstes Thema

erich

Hallo und frohe Ostern

Mit dem Script
\version "2.18.2"
#(define function
   (lambda(x)
     (cond ((eq? #t) (begin (display-scheme-music x) x))
           (else x))
) )

test =
#(define-music-function (parser location original-music)
   (ly:music?)
    (music-map
      function
      original-music )
)

\score {
  \new Voice {\test {e'1 <g' c''>1}}
}


werden alle Objekte ausgegeben, die mit make-music überschrieben sind.

Was muss ich in der cond-Anweisung statt (eq? #t) setzen, sodass nur das EventChord-Objekt ausgegeben wird?

Gruß
Erich

harm6

Verschiedene Möglichkeiten:


\version "2.18.2"

#(define function
   (lambda(x)
     (cond ;; (1) Vergleich des Namens, via (ly:music-property x 'name)
           ((eq? (ly:music-property x 'name) 'EventChord)
             (begin (display-scheme-music x) x))
           ;; (2) Vergleich des Namens, via (music-is-of-type? x 'event-chord)
           ;; Nach meiner Erfahrung klappt das aber nicht immer
           ((music-is-of-type? x 'event-chord)
             (begin (display-scheme-music x) x))
           ;; (3) Filter nach 'EventChord via (extract-named-music x 'EventChord)
           ;; Gibt eine Liste aus.
           ;; Je nach Absicht das elegenteste
           (#t
             (let ((ev-chords-list (extract-named-music x 'EventChord)))
               (begin
                 (display-scheme-music ev-chords-list)
                 x)))
           (else x))))

test =
#(define-music-function (parser location original-music)
   (ly:music?)
    (music-map
      function
      original-music ))

\score {
  \new Voice { \test { e'1 <g' c''>1 } }
}


HTH,
  Harm

P.S.
Du weißt das (eq? #t) immer #t zurüchgibt?

erich

Hallo Harm

"HTH" - ich hab's nachgeschlagen: ,,Hoffe das hilft weiter"

Vielen Dank, jaaaaaaaaaaaa, es hat geholfen. Der salvatorische Hinweis ließ mich schmunzel; aber man kann ja nie wissen!

Herlichen Gruß
Erich