Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Dienstag, 17. Mai 2016, 22:38

Titel: Scheme Funktion die Akkordliste erstellt
Beitrag von: Manuela am Dienstag, 17. Mai 2016, 22:38
Zugegebenermaßen, ich weiß nicht ganz genau, was ich da tue  ;)
Aber es funktioniert

#(define (make-a-list-all-chords-from-music music)
   "Return a list of all Chords from @var{music}."
   (reverse!
    (let loop ((music music) (pitches '()))
      (let ((p (music-name music)))
        (if (eq? p 'EventChord)
            (cons music pitches)
            (let ((elt (ly:music-property music 'element)))
              (fold loop
                (if (ly:music? elt)
                    (loop elt pitches)
                    pitches)
                (music-elts music))))))))

Allerdings habe ich zufällig bemerkt, dass z.B. markups nicht entfernt werden. Wie könnte ich das ändern?
Titel: Re: Scheme Funktion die Akkordliste erstellt
Beitrag von: fugenkomponist am Mittwoch, 18. Mai 2016, 04:15
Das lässt sich nicht kompilieren, music-name ist unbekannt, von „es funktioniert“ kann also keine Rede sein. Bitte immer ein kompilierbares Minimalbeispiel mit Versionsangabe! Müsstest du doch inzwischen wissen ;) Und im Falle von Funktionen mit beispielhafter Verwendung.

Und wenn du nicht weißt, was du tust, wärs nett, wenigstens zu sagen, was du tun willst.
Titel: Re: Scheme Funktion die Akkordliste erstellt
Beitrag von: Manuela am Mittwoch, 18. Mai 2016, 07:49
Sry, ich habe übersehen, dass da eine Menge Definitionen fehlen. :-[