Subject: midi et \segno et \coda

From: [email-masked]
Date: Tue, 24 May 2022 08:43:22 +0200 (CEST)

Bonjour

Je sais faire un midi qui développe les répétitions avec \unfoldRepeats, mais je n'arrive pas à faire reprendre à un signe \segno, ou aller à la coda

Dans l'exemple suivant, est-il possible de créer un midi qui jouerait dans l'ordre les mesures 1-2-1-2-3-1-4 ?

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

\version "2.23.3"
\language "français"

MusicReprises = \relative do' {
  \repeat volta 2 {
    \mark \markup { \musicglyph "scripts.segno" }
    \repeat unfold 4 do4 | 
    \mark \markup { \musicglyph "scripts.coda" }
    \repeat unfold 4 ré4 }
  \repeat unfold 4 mi4  \bar "||"  
  \mark \markup { \musicglyph "scripts.segno" \musicglyph "scripts.coda" }
  \repeat unfold 4 fa4 \bar "|." }

\score { \new Staff { \MusicReprises }
\layout { }}

\score { \new Staff { \unfoldRepeats \MusicReprises }
\midi { \tempo 4=120 }}

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

D'avance merci de vos idées,

David

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 24 May 2022 16:32:58 +0200

Le 24/05/2022 à 08:43, [email-masked] a écrit :
> Bonjour
>
> Je sais faire un midi qui développe les répétitions avec 
> \unfoldRepeats, mais je n'arrive pas à faire reprendre à un signe 
> \segno, ou aller à la coda
>

Bonjour,

Puisque tu utilises déjà une version de développement, tu pourrais passer
à une plus récente, et profiter de toutes les commandes liées aux 
répétitions
ajoutées par Dan, qui permettent d'écrire :

\version "2.23.9"

\language "français"

   \segnoMark 1
   \repeat segno 2 {
     \volta 1 {
       \repeat volta 2 {
         do4 4 4 4
         \codaMark 1
         ré4 4 4 4
       }
       mi4 4 4 4
     }
     \unfolded \volta 2 {
       do4 4 4 4
     }
   }
   \section
   \codaMark 1
   fa4 4 4 4
   \fine
}

\score { \MusicReprises }

\score {
   \unfoldRepeats \MusicReprises
   \midi { \tempo 4 = 120 }
   \layout { }
}

Par rapport aux tags, il y a moins de redondance dans le code.
Il reste tout de même la première mesure qui est réécrite…
Je ne vois pas mieux, la structure de ces répétitions est tout
de même assez inhabituelle, me semble-t-il. Cela dit, tu peux
toujours mettre cette partie dans une variable et la réutiliser
aux deux endroits.

Sinon, la façon plus traditionnelle de faire est de faire des variables
pour toutes les sections, et de les combiner en deux \score complètement
séparés :

\version "2.23.9"

\language "français"

mesI = { do'4 4 4 4 }
mesII = { ré'4 4 4 4 }
mesIII = { mi'4 4 4 4 }
mesIV = { fa'4 4 4 4 }

\score {
   {
     \mark \markup \musicglyph "scripts.segno"
     \repeat volta 2 {
       \mesI
       \mark \markup \musicglyph "scripts.coda"
       \mesII
     }
     \mesIII
     \mark \markup { \musicglyph "scripts.segno" \musicglyph 
"scripts.coda" }
     \mesIV
   }
}

\score {
   { \mesI \mesII \mesI \mesII \mesIII \mesI \mesIV }
   \midi { \tempo 4 = 120 }
   \layout { }
}

Cordialement,
Jean