Subject: Re :Re: Transpositions sérielles

From: Yagloops <[email-masked]>
Date: Wed, 20 Apr 2022 17:22:28 +0200

Bonjour! Comme ça peut être ?
musicA = {
   <<
     \relative {
       cis''8 fis, bes4 <a cis>8 f bis4 |
       cis2. <c, g'>4 |
     }
     \\
     \relative {
       ais'2 cis, |
       fis8 b a4 cis2 |
     }
}

musicB = {
   \clef bass
   \new Voice {
     \voiceTwo \relative {
       <fis a cis>8[ <fis a cis>
       \change Staff = up
       cis' cis
       \change Staff = down
       <fis, a> <fis a>]
       \showStaffSwitch
       \change Staff = up
       dis'4 |
       \change Staff = down
       <fis, a cis>4 gis <f a d>2 |
     }
   }
}

\new PianoStaff {
   <<
     \new Staff = "up" {
       \accidentalStyle dodecaphonic
       \musicA
     }
     \new Staff = "down" {
       \accidentalStyle dodecaphonic
       \musicB
     }
}

---

From: xtof pno <[email-masked]>
Date: Thu, 21 Apr 2022 13:07:25 +0000 (UTC)

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 

  Le mer., avr. 20, 2022 à 17:21, Yagloops<[email-masked]> a écrit:     Bonjour! Comme ça peut être ?
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {

\new PianoStaff {
  <<
    \new Staff = "up" {
}

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 24 Apr 2022 21:07:49 +0200

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