lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re :Re: Transpositions sérielles


From: Jean Abou Samra
Subject: Re: Re :Re: Transpositions sérielles
Date: Sun, 24 Apr 2022 21:07:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

Le 21/04/2022 à 15:07, xtof pno a écrit :
Bonjour,
Merci pour cette info.
Pour l'instant, n'ayant que la matrice, \accidentalStyle dodecaphonic, a l'air de suffire.
Par contre, je peine pour la mise en forme.
Je souhaite seulement établir une liste de la série de base avec pour chaque transpo au demi-ton supérieur son renversement en miroir. Soit 24 lignes l'une sous l'autre.
Je crois que je vais les écrire à la main.
Merci pour vos références.
Cordialement.
Christophe



Bonjour Christophe,

Désolé pour le délai de réponse (beaucoup de choses en ce moment…).

En tous cas, il est tout à fait faisable de générer les 24 lignes à partir
de la série. Est-ce que le code ci-dessous correspond à peu près à ce
que tu attends ?


\version "2.22.2"

tableau =
#(define-void-function (série) (ly:music?)
   (let ((notes (make-hash-table)))
     (for-some-music
      (lambda (m)
        (let ((p (ly:music-property m 'pitch #f)))
          (if p
              (hashv-set! notes
                          (modulo (ly:pitch-semitones p)
                                  12)
                          p)))
        #f)
      série)
     (let* ((first-pitch (car (music-pitches série)))
            (inverted (inversion
                       first-pitch
                       first-pitch
                       (ly:music-deep-copy série))))
       (for-each
        (lambda (i)
          (let ((copy (ly:music-deep-copy série))
                (inv-copy (ly:music-deep-copy inverted)))
            (define (set-transposition! music)
              (for-some-music
               (lambda (m)
                 (let ((p (ly:music-property m 'pitch #f)))
                   (if p
                       (let* ((t (ly:pitch-transpose
                                  p
                                  (ly:make-pitch 0 0 (* 1/2 i))))
                              (t-n (hashv-ref
                                    notes
                                    (modulo
                                     (ly:pitch-semitones t)
                                     12))))
                         (ly:music-set-property! m
                                                 'pitch
                                                 t-n))))
                 #f)
               music))
            (define (scorify! music inv)
              (set-transposition! music)
              (add-score
               #{
                  \score {
                    \layout {
                      indent = 40
                    }
                    \new Staff \with {
                      instrumentName =
                        \markup \center-column {
                          \line { Transposition #(number->string i) }
                          #(if inv "(miroir)" "")
                        }
                    } {
                      \accidentalStyle forget
                      \cadenzaOn
                      #music
                      \bar "||"
                    }
                  }
               #}))
            (scorify! copy #f)
            (scorify! inv-copy #t)))
       (iota 12)))))


série = \fixed c' { g b ees ais a cis f c gis d e fis }

\tableau \série



Cordialement,
Jean





reply via email to

[Prev in Thread] Current Thread [Next in Thread]