Subject: [LilyPond] Réglage d'une partition importée en xml

From: Christophe via LilyPond <[email-masked]>
Date: Fri, 22 Nov 2024 15:49:11 +0000

Bonjour,
Je voudrais avoir vos conseils pour être efficace lors de la récupération d'un fichier xml. Après le maquettage, l'éditeur n'est pas suffisant pour écrire une belle partition, mais je peux importer un fichier xml dans Lilypond.
Comment refaire une partition propre avec ce fichier ? Quelles commandes supprimer ou ajouter ? 
Le code en exemple :
```
s\version "2.24.4"
% automatically converted by musicxml2ly from /media/christophe/16 GO/Chopin orchestre.xml
\pointAndClickOff

\include "articulate.ly"

\header {
  title =  "Chopin orchestre"
  encodingsoftware =  "Logic Pro"
  encodingdate =  "2024-11-21"
}

#(set-global-staff-size 21.54464285714286)
\paper {

  paper-width = 20.98\cm
  paper-height = 29.69\cm
  top-margin = 1.24\cm
  bottom-margin = 1.24\cm
  left-margin = 1.09\cm
  right-margin = 1.09\cm
  between-system-space = 0.7\cm
  page-top-space = 0.7\cm
  indent = 1.613846153846154\cm
}
\layout {
  \context {
    \Score
    skipBars = ##t
    autoBeaming = ##f
  }
}
PartPOneVoiceOne =  {
  \clef "treble" \time 3/4 \key b \minor | % 1
  R2. | % 2
  \stemUp fis'2. ~ \pp | % 3
  \stemUp fis'2. ~ | % 4
  \stemUp fis'2. ~ \pageBreak | % 5
  \stemUp fis'2. | % 6
  r4
}

PartPOneVoiceTwo =  {
  \clef "bass" \time 3/4 \key b \minor | % 1
  R2. | % 2
  \stemDown fis2. ~ ^\pp | % 3
  \stemDown fis2. ~ | % 4
  \stemDown fis2. ~ \pageBreak | % 5
  \stemDown fis2. | % 6
  r4
}

PartPTwoVoiceOne =  {
  \clef "treble" \time 3/4 \key b \minor \pageBreak | % 1
  r4 r4 \stemDown fis''4 ~ ^\f | % 2
  \stemDown fis''8 [ \stemDown g''8 ] \stemDown fis''8 [ \stemDown
  cis''8 ] \stemDown d''8 [ \stemDown b'8 ] | % 3
  \stemUp ais'2 r4 | % 4
  R2. \pageBreak | % 5
  R2. | % 6
  r4
}

PartPThreeVoiceOne =  {
  \clef "treble" \time 3/4 \key b \minor | % 1
  r2 s4 | % 2
  r2 s4 | % 3
  \clef "treble" \time 3/4 \key b \minor s4 r4 r4 \pageBreak | % 4
  \stemDown fis''4. ^\f \stemDown g''8 \stemDown fis''8 [ \stemDown
  cis''8 ] \pageBreak | % 5
  \stemDown e''8 [ \stemDown d''8 ] \stemDown b'2 | % 6
  r4
}

PartPFourVoiceOne =  {
  \clef "bass" \time 3/4 \key b \minor | % 1
  R2. \pageBreak | % 2
  \clef "bass" \time 3/4 \key b \minor r4 \stemDown <fis b d'>4 ^\pp
  \stemDown <fis b d'>4 | % 3
  r4 \stemDown <fis cis' e'>4 \stemDown <fis cis' e'>4 | % 4
  r4 \stemDown <fis ais e'>4 \stemDown <fis ais e'>4 \pageBreak | % 5
  r4 \stemDown <fis b d'>4 \stemDown <fis b d'>4 | % 6
  r4
}

PartPFiveVoiceOne =  {
  \clef "bass" \time 3/4 \key b \minor | % 1
  R2. \pageBreak | % 2
  \clef "bass" \time 3/4 \key b \minor \stemUp b,4 ^\p r4 r4 | % 3
  \stemUp cis4 r4 r4 | % 4
  \stemUp ais,4 r4 r4 \pageBreak | % 5
  \stemUp b,4 r4 r4 | % 6
  r4
}

PartPSixVoiceOne =  {
  \clef "bass_8" \time 3/4 \key b \minor | % 1
  R2. \pageBreak | % 2
  \clef "bass_8" \time 3/4 \key b \minor \stemUp b,,4 ^\p r4 r4 | % 3
  \stemUp cis,4 r4 r4 | % 4
  \stemUp ais,,4 r4 r4 \pageBreak | % 5
  \stemUp b,,4 r4 r4 | % 6
  r4
}

% The score definition
\score {
  <<

    \new StaffGroup \with {
      systemStartDelimiter = #'SystemStartBar
    }

    <<
      \new StaffGroup \with { \hide SpanBar }

      <<
        \new PianoStaff
        <<
          \set PianoStaff.instrumentName = "Cors en Fa"

          \context Staff = "1" <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPOneVoiceOne" {  \PartPOneVoiceOne }
          >> \context Staff = "2" <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPOneVoiceTwo" {  \PartPOneVoiceTwo }
        \new Staff
        <<
          \set Staff.instrumentName = "Violons 1"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPTwoVoiceOne" {  \PartPTwoVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Violons 2"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPThreeVoiceOne" {  \PartPThreeVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Altos"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPFourVoiceOne" {  \PartPFourVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Violoncelles"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPFiveVoiceOne" {  \PartPFiveVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Contrebasses"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPSixVoiceOne" {  \PartPSixVoiceOne }

  \layout {}
}
\score {
  \unfoldRepeats \articulate {

    \new StaffGroup \with {
      systemStartDelimiter = #'SystemStartBar
    }

    <<
      \new StaffGroup \with { \hide SpanBar }

      <<
        \new PianoStaff
        <<
          \set PianoStaff.instrumentName = "Cors en Fa"

          \context Staff = "1" <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPOneVoiceOne" {  \PartPOneVoiceOne }
          >> \context Staff = "2" <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPOneVoiceTwo" {  \PartPOneVoiceTwo }
        \new Staff
        <<
          \set Staff.instrumentName = "Violons 1"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPTwoVoiceOne" {  \PartPTwoVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Violons 2"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPThreeVoiceOne" {  \PartPThreeVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Altos"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPFourVoiceOne" {  \PartPFourVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Violoncelles"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPFiveVoiceOne" {  \PartPFiveVoiceOne }
        \new Staff
        <<
          \set Staff.instrumentName = "Contrebasses"

          \context Staff <<
            \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
            \context Voice = "PartPSixVoiceOne" {  \PartPSixVoiceOne }

  }
  \midi {\tempo 4 = 150 }
}

```

Merci pour vos conseils.
Cordialement
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/reglage-dune-partition-importee-en-xml/5817/1).

Pour créer un nouveau sujet, écrivez à [[email-masked]](mailto:[email-masked]) ou visitez la [page d'accueil de lilypond.community](https://lilypond.community).

---

From: Christophe via LilyPond <[email-masked]>
Date: Tue, 26 Nov 2024 15:04:31 +0000

Je ne vois pas de solution ou de méthode apparaître.
Il ne me reste plus qu'à tout reprendre en conservant si tout va bien les saisies de notes.

Aux modérateurs : le sujet peut être supprimé. Merci.
C.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/2).

---

From: MartialR via LilyPond <[email-masked]>
Date: Tue, 26 Nov 2024 16:01:37 +0000

Bonjour, 

j'avoue avoir essayé, 
mais c'est assez inextricable ainsi. 
il faut jouer sur l'espacement   vertical, sur la taille des portées,  le nombre de systeme par page
soit sur toute la partition dans \paper system-per-page = 2 
soit en forcçant 
```
myBreak = { 
r1*5 \break %mesure par ligne 
r1*2\break  %mesur sur cette ligne
etc.
}
<<

\new Staff .....etc... 
\new Devnull \myBreak 
```
voir l'aide : 
[http://lilypond.org/doc/v2.24/Documentation/notation/vertical-spacing](http://lilypond.org/doc/v2.24/Documentation/notation/vertical-spacing)
Cordialment,

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/3).

---

From: Olivier Charade via LilyPond <[email-masked]>
Date: Tue, 26 Nov 2024 16:16:59 +0000

Bonjour,
Quand j'écris de la musique à l'image le maquettage précède la partition (pour une pièce de concert c'est plutôt l'inverse) et j'exporte depuis Logic Pro en XML.
La première fois ça a été une prise de tête à la limite de la noyade pour m'y retrouver.
En prenant le temps de parcourir le résultat importé sous Lilypond, on peut trouver  un certain nombre de corrections génériques pour éclaircir le code (ici je vois tous les stemUp ou Down à supprimer).
Je crois que j'ai chaque fois supprimé toutes les indications de mise en page.
Ca reste laborieux mais, dans mon cas, je trouve toujours plus intéressant de ne pas devoir recopier toutes les voix. Il faut généralement enlever du code, pas trop en rajouter.
Je compatis.
Bon courage

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/4).

---

From: Frédéric Moinard via LilyPond <[email-masked]>
Date: Wed, 27 Nov 2024 10:48:09 +0000

Bonjour,
J'abonde sur la réponse précédente. Le moins possible d'interventions avant l'export (prévoir un instrument en plus pour éditer les \mark et \tempo sur une voix ne comportant que des silences). Puis copier les voix dans un .ly préalablement préparé sous forme de modèle à remplir (je n'arrive pas à être à l'aise avec la manière dont musicxml2ly présente les voix). Le cauchemar récurrent étant de récupérer des xml de finale imprécis. 
Pour éviter les \stemUp etc, utiliser l'option `--nsd --no-stem-directions`.
Bon courage en effet !

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/5).

---

From: Ben via LilyPond <[email-masked]>
Date: Wed, 27 Nov 2024 11:04:32 +0000

Bonjour, 

Pour ma part, je ferais une seule fois un script qui nettoierait le fichier reçu. 

Par exemple, avec frescobaldi, vous pouvez faire un fragment en python qui enlève les stemDown et stemUp du texte sélectionné dans l'éditeur: 

-*- set: xml; menu: Insérer; python; indent: no; selection: yes;

text = text.replace(r'\stemDown', '' )
text = text.replace(r'\stemUp', '' )

Au plaisir, 

Ben

> Le 27 nov. 2024 à 11:47, Frédéric Moinard via LilyPond <[email-masked]> a écrit :
> 
> 	Frédéric Moinard <https://lilypond.community/u/frederic_moinard1> Frederic_Moinard1
> Novembre 27
> Bonjour,
> Pour éviter les \stemUp etc, utiliser l'option --nsd --no-stem-directions.
> Bon courage en effet !
> 
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/5>.
> 
> Pour créer un nouveau sujet, écrivez à [email-masked] <mailto:[email-masked]> ou visitez la page d'accueil de lilypond.community <https://lilypond.community/>.
> 
> Réponses précédentes
> 
> 	Olivier Charade <https://lilypond.community/u/olicha> olicha
> Novembre 26
> Bonjour,
> 	 <https://lilypond.community/u/martialr>MartialR
> Novembre 26
> Bonjour,
> 
> j'avoue avoir essayé,
> http://lilypond.org/doc/v2.24/Documentation/notation/vertical-spacing
> Cordialment,
> 
> 	Christophe <https://lilypond.community/u/christophe> Christophe
> Novembre 26
> 	Christophe <https://lilypond.community/u/christophe> Christophe
> Novembre 22
> Bonjour,
> \include "articulate.ly <http://articulate.ly/>"
> 
> \header {
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/5>.
> 
> Pour créer un nouveau sujet, écrivez à [email-masked] <mailto:[email-masked]> ou visitez la page d'accueil de lilypond.community <https://lilypond.community/>.
> 
> 
> 
> Pour vous désabonner de ces e-mails, cliquez ici <https://lilypond.community/email/unsubscribe/b29baab2c637a83bcf740312a8b25b3d8a5a3b3316bc40cecb02cf31e32bf9d5>.
>

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/6).

---

From: Vincent Gay via LilyPond <[email-masked]>
Date: Wed, 27 Nov 2024 15:56:03 +0000

Tout d'abord j'exporte en musicxml non compressé pour obtenir un fichier 
exploitable avec sed

  * sed -i '/<stem>up<\/stem>/d' MonFichier.musicxml
  * sed -i '/<stem>down<\/stem>/d' MonFichier.musicxml
  * et pendant que j'y suis sed  -i
    's/bracket="no"/bracket="yes"/' MonFichier.musicxml

petit script bash et hop...

#!/bin/bash

if [ ! -v 1 ]; then echo "indiquez un fichier à modifier"; exit; fi
if [ ! -e $1 ]; then echo "fichier non trouvé"; exit; fi
sed -i '/<stem>up<\/stem>/d' $1
sed -i '/<stem>down<\/stem>/d' $1
sed -i 's/bracket="no"/bracket="yes"/' $1

Le 27/11/2024 à 11:48, Frédéric Moinard via LilyPond a écrit :
> Pour éviter les \stemUp etc,

-- 
Vincent Gay
Envoyé depuis mon saxo-phone

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/edition-dune-partition-importee-en-xml/5817/7).