Subject: [HS] portée circulaire

From: david <[email-masked]>
Date: Tue, 09 Jun 2020 22:27:22 +0200

Bonjour,

J'ai noté ce sujet HS, car c'est juste une question de curiosité...

en flanant sur internet, je suis tombé sur des images de portées 
circulaires, spiralées, ou avec une forme rappelant les calligrammes 
d'appolinaire... (voir pièces jointes)

Pensez-vous que ce soit possible de faire ce genre de chose avec 
lilypond ?
(pas forcément du grégorien, un portée normale circulaire c'est 
largement suffisant ^^ )

Merci d'avance et bonne soirée à tous,
David

---

From: Patachon <[email-masked]>
Date: Wed, 10 Jun 2020 09:34:03 +0200

Bonjour,

Cette possibilité m'intéresse, oh! combien, pour les « canons ». L'ars
subtilior et le codex chantilly est représenté deux fois dans le choix
d'images.

Sur l'article du codex, pour « Tout par compas suy composés », j'ai
donné le lien en note vers une super réalisation vidéo qui donne tout
son sens à la partition.

Ça serait bien de le réaliser en vrai avec le principe du MIDI discuté
il y a quelques jours qui permet d'entendre le contrepoint, comme
exemple pour wp…

Il se trouve plein d'exemples dans l'histoire, car la représentation
est symboliquement appropriée pour… les canons circulaires.

Patrick — canonisé

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 10 Jun 2020 10:10:38 +0200

Cher David, cher Patrick,
Je pense qu'on est nombreux ici à avoir pensé à ce genre de réalisations.
Est-ce possible ? Oui.
En revanche, rien ne peut être automatisé en l'état; pour ce faire, il
faudrait changer toutes les règles d'alignement de LilyPond, bref, un
travail de bénédictins pour des utilisations très ponctuelles...
Intérêt ? Limité on va dire.
Le plus simple, je pense, est :
--- d'utiliser un logiciel graphique approprié (InkScape, Gimp, etc.) ;
--- d'utiliser les commandes graphiques de LilyPond et de faire avec (
http://lilypond.org/doc/v2.20/Documentation/notation/text-markup-commands) ;
--- d'utliser la sortie SVG et de combiner les deux logiciels (LP +
InkScape par ex.).
Un essai simple :

\version "2.20.0"

%% Juste pour contrôler l'alignement :
#(define-markup-command
  (circled-pattern layout props radius angle num arg)
  (number? number? number? markup?)
  (interpret-markup layout props
   (let* ((rep (abs num))(rad (abs radius)))
    (cond
     ((= num 0) (markup ""))
     ((= num 1) (markup arg))
     (#t (markup
          (#:combine
           (#:null)
           (fold
            (lambda (i prev)
             (markup
               (#:combine
                (#:rotate
                 (* i (/ angle rep))
                 (#:concat (#:null #:hspace rad arg)))
               prev)))
            (markup (#:null))
            (iota (1+ rep))))))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

linSup = \markup\override #'(thickness . 2) \draw-line #'(1.8 . 0)

\markuplist {
  \vspace #5
  \fill-line {
    %% Guides (à cacher) :
    %--{
      \combine
      \with-dimensions-from \null
      \translate #'(0 . -30)
      \circled-pattern #0 #180 #64 % <= espacements à adapter
      \with-color #red \draw-line #'(0 . 60)
      \combine \with-color #red \draw-circle #15 #.1 ##f
      \combine \with-color #red \draw-circle #16 #.1 ##f
      \combine \with-color #red \draw-circle #17 #.1 ##f
      \combine \with-color #red \draw-circle #18 #.1 ##f
      \combine \with-color #red \draw-circle #19 #.1 ##f
      \combine \with-color #red \draw-circle #25 #.1 ##f
      \combine \with-color #red \draw-circle #26 #.1 ##f
      \combine \with-color #red \draw-circle #27 #.1 ##f
      \combine \with-color #red \draw-circle #28 #.1 ##f
      \combine \with-color #red \draw-circle #29 #.1 ##f
    %}
    %%%%
    \combine\draw-circle #20 #.13 ##f
    \combine\draw-circle #21 #.13 ##f
    \combine\draw-circle #22 #.13 ##f
    \combine\draw-circle #23 #.13 ##f
    \combine\draw-circle #24 #.13 ##f
    \combine\translate #'(0 . 22) \musicglyph "clefs.C"
    \combine \translate #'(3.3 . 21.2) \rotate #-10 \flat
    \combine \translate #'(4.4 . 22.5) \rotate #-11.6 \flat
    \combine \translate #'(5 . 20.3) \rotate #-14 \flat
    \combine\translate #'(6.4 . 20.6) \rotate #-21 \compound-meter #'(12 .
8)
    \combine\translate #'(9.2 . 16.2) \rotate #-31 \note-by-number #3 #0 #UP
    \combine\translate #'(8.3 . 16.6) \rotate #-28 \linSup
    \combine\translate #'(12.3 . 17.4) \rotate #-37 \natural
    \combine\translate #'(13.8 . 16.3) \rotate #-41 \note-by-number #2 #0
#UP
    \null
  }
}

Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 10 Jun 2020 10:15:00 +0200

Avec un peu d'explications :

\version "2.20.0"

\markuplist {
  \vspace #5
  \fill-line {
    %% Guides (à cacher) :
    % {
      \combine
    %%%% La portée %%%%%%%%%%%%%%%%%%

    %%%%% Les notes %%%%%%%%%%%%%%%%%
    \combine\translate #'(0 . 22)\musicglyph "clefs.C"

---

From: david <[email-masked]>
Date: Wed, 10 Jun 2020 13:25:55 +0200

Incroyable !
(mais vrai...) 

merci, je vais voir ce que je peux comprendre de tout ça :) 

Le 2020-06-10 10:10, Pierre Perol-Schneider a écrit :

> En revanche, rien ne peut être automatisé en l'état; pour ce faire, il faudrait changer toutes les règles d'alignement de LilyPond, bref, un travail de bénédictins pour des utilisations très ponctuelles... 
> --- d'utiliser les commandes graphiques de LilyPond et de faire avec (http://lilypond.org/doc/v2.20/Documentation/notation/text-markup-commands) ; 
> --- d'utliser la sortie SVG et de combiner les deux logiciels (LP + InkScape par ex.). 
> Un essai simple : 
> 
> \version "2.20.0"
> 
> \combine\translate #'(6.4 . 20.6) \rotate #-21 \compound-meter #'(12 . 8)
> \combine\translate #'(13.8 . 16.3) \rotate #-41 \note-by-number #2 #0 #UP
> \null
> }
> } 
> 
> Cordialement, 
> Pierre 
> 
>> exemple pour wp...
>> est symboliquement appropriée pour... les canons circulaires.
>> 
>> Patrick -- canonisé
>>

---

From: Valentin Villenave <[email-masked]>
Date: Wed, 10 Jun 2020 16:09:24 +0200

> merci, je vais voir ce que je peux comprendre de tout ça :)

Pour la petite histoire, j’avais écrit une notice sur ce sujet il y a
quelques années (avec beaucoup de liens dedans) :
http://trouvailles.oumupo.org/?hzjjYQ#hzjjYQ

V. V.