Subject: grace et Chiffrage de mesure (et arranger.ly)

From: Clement Caillol <[email-masked]>
Date: Wed, 5 May 2021 19:57:28 +0200

Bonjour à tous,

J'ai une partition construite avec arranger.ly, et j'ai une petite note 
qui m'embête, car elle vient se placer avant le chiffrage de mesure.

Or, quand j'essaie de rectifier ça dans la construction de mon  'global, 
lilypond fait n'importe quoi avec les mesures suivante.

Voilà le début de mon paramétrage de 'global :

   (rm-with 'global 1 #{\time 12/8 #} /     5 #{\time 6/8#} /     6 
#{\time 12/8#} /     12 #{\time 6/8#} /     13 #{\time 12/8#} /     23 
#{ \time 6/8 \grace {s8} #} / %%%%%%%%%  <-- ici     24 #{\time 12/8#} / 
     )

Et les mesures 24 25 deviennent complètement chaotiques, j'ai 
l'impression que toute la musique se décale, et les sauts de pages ne se 
font plus...

J'ai aussi essayé ça  au début de ma musique :

(rm all 23 #{\grace s8 R2.#})

mais j'obtiens cette erreur :

Sequential_iterator::next_element(): l'assertion 
« la_.is_grace_fixup_sane (here_mom_) » a échoué.

Merci de votre aide,

Clément

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 5 May 2021 20:36:40 +0200

Le 05/05/2021 à 19:57, Clement Caillol a écrit :
>
> Bonjour à tous,
>
> J'ai une partition construite avec arranger.ly, et j'ai une petite 
> note qui m'embête, car elle vient se placer avant le chiffrage de mesure.
>
> Or, quand j'essaie de rectifier ça dans la construction de mon  
> 'global, lilypond fait n'importe quoi avec les mesures suivante.
>
> #{ \time 6/8 \grace {s8} #} / %%%%%%%%%  <-- ici     24 #{\time 12/8#} 
> /            )
>
> l'impression que toute la musique se décale, et les sauts de pages ne 
> se font plus...
>

Bonjour,

Je ne suis pas familier d'arranger.ly, mais il serait
utile de voir un exemple minimal. Quoi qu'il en soit,
l'erreur que vous obtenez sent les commandes \grace
consécutives, comme dans

{ \grace { c8 } \grace { c8 } c4 }

En 2.22, vous obtiendrez la même faute d'assertion.
La chose a été réglée dans les versions de développement
récentes, vous devriez essayer la 2.23.2.

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 06 May 2021 02:53:44 +0200

>  [..] il serait
> utile de voir un exemple minimal.
Bon, j'en ai fait un...
Cet exemple semble fonctionner du côté arranger.ly mais effectivement le 
placement des \grace notes n'est peut-être pas judicieux de la part de 
Lilypond. La \grace note devrait être après le changement le 6/8

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

\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(rm-with 'global
   1 #{ \time 12/8 #}
   5 #{ \time 6/8 #}
   6 #{ \time 12/8 #}
  12 #{ \time 6/8 #}
  13 #{ \time 12/8 #}
  23 #{ \time 6/8 #}
  24 #{ \time 12/8 #})
(cut-end 'global 25))

all = #'(I II III)
#(init all)
#(begin
(rm 'I 22 #{ c'2. d' \grace dis'8 e'2. #})
(rm 'II 22 #{ a2. b \grace { c'16 b } c'2. #})
(rm 'III 23 #{ a2. #})
)
\layout {
   \context { \Score
     skipBars = ##t
     \override MultiMeasureRest.expand-limit = #1 }}
<<
\new Staff << \global \I >>
\new Staff << \global \II >>
\new Staff << \global \III >>

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

-- 
Gilles

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 06 May 2021 07:48:57 +0200

Le 2021-05-06 02:53, Gilles Thibault a écrit :
> Cet exemple semble fonctionner du côté arranger.ly mais effectivement
> le placement des \grace notes n'est peut-être pas judicieux de la part
> de Lilypond. La \grace note devrait être après le changement le 6/8
> 
Rah il manque la parenthèse de fermeture... Je refais, en plus propre :

%%%%%%%%%%%%%%%%%%%%%%
\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(rm-with 'global
   1 #{ \time 12/8 #}
   5 #{\time 6/8#}
   6 #{\time 12/8#}
  12 #{\time 6/8#}
  13 #{\time 12/8#}
  23 #{\time 6/8 #}
  24 #{\time 12/8 #})
(cut-end 'global 25))

all = #'(I II III)
#(init all)
#(begin

\score {
<<
\layout {
   \context { \Score
     skipBars = ##t
}
%%%%%%%%%%%%%%%%%%%

-- 
Gilles

---

From: Clément CAILLOL <[email-masked]>
Date: Thu, 6 May 2021 07:28:54 +0000

Merci beaucoup, j'avais du mal à imaginer un exemple minimal avec arranger.ly, mais à l'avenir j'en fournirai un de ce genre.

Du coup il n'y a pas de solution ?

Clément Caillol

________________________________
From: lilypond-user-fr <lilypond-user-fr-bounces+ccazerty=[email-masked]> on behalf of Gilles Thibault <[email-masked]>
Sent: Thursday, May 6, 2021 7:48:57 AM
To: Jean Abou Samra <[email-masked]>
Cc: Lilypond - Liste <[email-masked]>; lilypond-user-fr <lilypond-user-fr-bounces+gillesth=[email-masked]>
Subject: Re: grace et Chiffrage de mesure (et arranger.ly)

%%%%%%%%%%%%%%%%%%%%%%
\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(rm-with 'global
   1 #{ \time 12/8 #}
   5 #{\time 6/8#}
   6 #{\time 12/8#}
  12 #{\time 6/8#}
  13 #{\time 12/8#}
  23 #{\time 6/8 #}
  24 #{\time 12/8 #})
(cut-end 'global 25))

all = #'(I II III)
#(init all)
#(begin

\score {
<<
\layout {
   \context { \Score
     skipBars = ##t

--
Gilles

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 06 May 2021 12:04:23 +0200

Le 2021-05-06 09:28, Clément CAILLOL a écrit :
> Merci beaucoup, j'avais du mal à imaginer un exemple minimal avec
> arranger.ly, mais à l'avenir j'en fournirai un de ce genre.
> 

En faisant
#(export-instruments (cons 'global all) "export.ly")
on peut rapidement reconstituer une version Lilypond traditionnelle 
(sans arranger.ly)  que voici :

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

global = {
   \time 12/8
   s1*3/2*4 |
   \time 6/8
   s1*3/4 |
   \time 12/8
   s1*3/2*6 |
   \time 6/8
   s1*3/4 |
   \time 12/8
   s1*3/2*10 |
   \time 6/8
   s1*3/4 |
   \time 12/8
   s1*3/2 |
}

I = {
   R1*30 |
   c'2. d'2. |
   \grace dis'8 e'2. |
   R1*3/2 |

}

II = {
   R1*30 |
   a2. b2. |
   \grace { c'16 b16 } c'2. |
   R1*3/2 |

}

III = { R1*63/2 |
   a2. |
   R1*3/2 |
   }

\score { <<
   \layout {
     \context { \Score
       skipBars = ##t

%%%%%%%%%%%

Le résultat obtenu est absolument identique ... y compris donc pour les 
mauvais placement des \grace
Jean Abou parlait de la version 2.23.2. Peut-être que le problème est 
résolu avec cette version.

-- 
Gilles

---

From: Christophe Pochon <[email-masked]>
Date: Thu, 6 May 2021 12:43:21 +0200

C'est le fameux bug du grace ;-)
Il faut mettre des grace de silences invisibles dans toutes les portées, y
compris dans les s du global :

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

global = {
   \time 12/8
   s1*3/2*4 |
   \time 6/8
   s1*3/4 |
   \time 12/8
   s1*3/2*6 |
   \time 6/8
   s1*3/4 |
   \time 12/8
   s1*3/2*10 |
   \time 6/8 \grace s8
   s1*3/4 |
   \time 12/8
   s1*3/2 |
}

I = {
   R1*30 |
   c'2. d'2. |
   \grace dis'8 e'2. |
   R1*3/2 |

}

II = {
   R1*30 |
   a2. b2. |

}

III = { R1*63/2 |
   \grace s8 a2. |
   R1*3/2 |
   }

\score { <<
   \layout {
     \context { \Score
       skipBars = ##t

%%%%%%%%

A+

Christophe Pochon

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 07 May 2021 14:37:10 +0200

> compris dans les s du global :

... ce qui donne avec "arranger.ly" :

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

\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(rm-with 'global
   1 #{ \time 12/8 #}
   5 #{ \time 6/8 #}
   6 #{ \time 12/8 #}
  12 #{ \time 6/8 #}
  13 #{ \time 12/8 #}
; 23 #{ \time 6/8 \grace s8 s8*6 #} ; ne marche pas ici !
  23 #{ \time 6/8 #}
  24 #{ \time 12/8 #}
)
;(rm 'global 23 #{ \grace s8 s8*6 #})
(cut-end 'global 25)
)

all = #'(I II III)
#(init all)
#(begin
(rm 'I 22 #{ c'2. d' \grace dis'8 e'2. #})
(rm 'II 22 #{ a2. b \grace { c'16 b } c'2. #})
(rm 'III 23 #{ \grace s8 a2. #})
(rm 'global 23 #{ \time 6/8 % L'original est effacé
                   \grace s8 s8*6 #}))

\score { <<
   \layout {
     \context { \Score
       skipBars = ##t

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

-- 
Gilles

---

From: Clement Caillol <[email-masked]>
Date: Fri, 7 May 2021 19:08:27 +0200

Merci !

Pour préciser, j'avais essayé cette méthode, mais comme ma partition 
n'était pas tout à fait terminée, ça avait fait n'importe quoi 
(j'imagine à cause de silences que je n'avais pas encore mis). 
Maintenant que les finitions sont faites ça marche très bien.

De plus, je ne sais pas pourquoi, mais cette manip fait aussi sauter la 
double barre finale s'il y en avait une. Il faut donc la remettre :

\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(rm-with 'global
  1 #{ \time 12/8 #}
  5 #{ \time 6/8 #}
  6 #{ \time 12/8 #}
12 #{ \time 6/8 #}
13 #{ \time 12/8 #}

;(rm 'global 23 #{ \grace s8 s8*6 #})
(cut-end 'global 25)
(rm 'global 25 #{\bar "|."#})
)

all = #'(I II III)
#(init all)
#(begin
(rm 'I 22 #{ c'2. d' \grace dis'8 e'2. #})
(rm 'II 22 #{ a2. b \grace { c'16 b } c'2. #})
(rm 'III 23 #{ \grace s8 a2. #})
(rm 'global 23 #{ \time 6/8 % L'original est effacé ainsi que la double 
barre finale
                 \grace s8 s8*6 #})
(rm 'global 25 #{\bar "|."#}) ;remettre la double barre
)

Le 07/05/2021 à 14:37, Gilles Thibault a écrit :
>  >>

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 07 May 2021 23:32:34 +0200

>> ; 23 #{ \time 6/8 \grace s8 s8*6 #} ; ne marche pas ici !
... mais ça marchera à cette étape dans les prochaines versions de 
arranger.ly
         #{ \time 6/8 \grace s8 #} même suffira.
On aura donc plus besoin non plus de réécrire 2 fois la barre finale ( 
\bar "|." ) !

Je joint au message le fichier extractMusic.ly, le seul fichier qui a 
été modifié, mais par contre je ne publie pas la mise à jour tout de 
suite sur github. J'ai créé un peu la confusion en mettant trop vite 
certaines mises à jour de fichiers sur la liste anglaise. Je ferai une 
petite annonce, proprement, quand tout sera près.

-- 
Gilles