Comment générer les partitions individuelles d'un orchestre

Bonsoir,

Je reviens avec une nouvelle question de factorisation, même si je me doute que ceci a déjà été résolu: il s'agit de générer les partitions individuelles de tous les instruments d'un orchestre.

J'avais, grâce à @jeanas , pu passer par une fonction qui générait un book par tonalité (1 pour les instruments transpositeurs en Sib, une pour ceux en Mib, en Fa, etc.). Le process était relativement direct: générer la même partition, qui ne différait que par le \transpose qu'on mettait dedans. Or ici il s'agit de générer les partitions d'une 30aine d'instruments, avec chacun leurs spécificités.

Le fichier de génération contient le conducteur (en A3 avec ses paramètres propres) et ensuite les books (A4, avec leurs paramètres) des instruments.

Comme les partitions ont un 1er et un 4e de couverture, la définition du \book est plutôt complexe.

Je n'arrive pas à trouver de moyen viable ou satisfaisant pour faire cela. Mais je me dis que je m'y prends peut-être mal dans ma démarche.

Pour plus de lisibilité du message, j'ai reporté les fichiers en fin de post.
La partie \book est dans le "1 - ": chaque \book contient 3 \bookpart: un pour le 1-2 de couverture, un pour la partition elle-même, un pour le 3-4 de couverture. Le dernier \bookpart ne change pas. Le premier ne varie que par le nom de l'instrument; le second contient la partie propre à chaque instrument.
Le code du \book inclut un fichier (dans le 2 - )
Comme on le voit, copier-coller la partie \book de chaque instrument est non seulement inmaintenable, mais d'un point de vue codage et réutilisabilité totalement absurde.
Quel serait le moyen de factoriser le maximum de choses là-dedans? J'ai essayé avec tout ce qui n'est pas lié aux parties (entête, paper, etc.), mais ça me fait des choses bizarres. Soit j'ai bouletté quelque part, soit il y a une impossibilité structurelle.

==> Au final, si je me retrouve avec 30 séquences

\book {
  \variable
  \variable
  \variable
  ... (une liste minimale d'appels de variables qui incluent les bookpart, les définitions/override \paper ou \layout, les \markup qui définissent la page de garde et le 4è de couv.)
  \structurePart
  \monInstrumentPart
}

Alors je serai déjà vachement content. :slight_smile:

Si quelqu'un a une idée...

Merci beaucoup,
Bonne nuit.

  • 1 - Fichier conductor.ly:
#(define currentInstrumentInFileName "ClarBass")
#(define currentInstrumentName "Bass Clarinet")

\book {
  \bookpart {
    \paper {
    page-count = #2
    }
  \include "instrument_cover_content.ly"
  \pageBreak
  \markup { " " }
  }
  \bookpart {
    \paper {
      bookTitleMarkup = ""
      page-count = #scorePageCount
      ragged-bottom = ##f
      ragged-right = ##f
      ragged-last = ##f
      ragged-last-bottom = ##f
    }
    \score {
      <<
        \structurePart
        \bassClarinetIPart
      >>
      \layout {
        \context {
          \Staff
          \remove Instrument_name_engraver
        }
        #(layout-set-staff-size 14)
      }
      \midi { }
    }
  }
  \bookpart {
    \paper {
      bookTitleMarkup = ""
      page-count = #2
    }
    \markup { " " }
    \pageBreak
    \instrumentFourthPageMarkup
  }
}
  • 2 - Le fichier include "instrument_cover_content.ly" contient notamment:
  \paper {
    bookTitleMarkup = \markup {
      \center-column {
        \abs-vspace #200
        \fill-line { \smallCaps \fontsize #15 "Moldus Samba" }
        \abs-vspace #100
        \fill-line { \fontsize #10 \concat { "(Avada Kedavra Dance)" } }
        \abs-vspace #150
        \fill-line { \smallCaps \fontsize #12 #currentInstrumentName }
        \abs-vspace #150
        \fill-line {
          \concat { \fontsize #8 "Composer: Tom Marvolo Riddle" }
          \hspace #10
          \fontsize #8 \fromproperty #'header:arranger
        }
      }
    }
    #(set-paper-size "a4")
    right-margin = 10\mm
    left-margin = 15\mm
    indent = 0
    system-separator-markup = ""
    ragged-bottom = ##f
    ragged-right = ##f
    ragged-last = ##f
    ragged-last-bottom = ##f
  }
  \bookOutputName "Moldus_Samba"
  \bookOutputSuffix #currentInstrumentInFileName
  \pageBreak

Emmanuel,
Bonjour.
J’espère que vous allez bien.
Ci-joint un fichier ZIP avec un exemple de structure de répertoires sur la Symphonie en Ré mineur de César Franck.
Tous les instruments sont regroupés dans Orchestre_Conducteur.ly.
Chaque instrument est dans un sous répertoire portant son nom par exemple /basson_un/basson_un.ly contient la partie pour le premier basson seulement.
J’espère que cet exemple pourra t'aider dans la résolution de ton probléme.
Je te souhaite de passer une bonne journée.
Bien à toi
Philippe R.
FRANCK-Symphonie en Ré mineur.zip (2,9 Mo)

Bonjour

hors sujet, ça fait 2 fois que je vois citer le nom de Freewave13
De quel logiciel parle-t-on ou de suite audio je ne le trouve pas sur internet, si ce n'est des planches de surf.

Cordialement

@MartialR :red_question_mark:

virgule mal placée
c'est moi qui suis hors sujet avec ma question sur Freewave13

1 « J'aime »

Bonsoir Philippe,

Tout d'abord désolé pour le délai dans la réponse, j'ai été éloigné de lilypond ces derniers jours.

Merci beaucoup pour cette réponse et ce matériel! Effectivement, c'est une bonne formule que de séparer chaque instrument dans son fichier. Je tâcherai de m'en rappeler.

Pour mon projet, ce qui différencie un peu les choses est que j'arrange un medley de 6 morceaux différents, enchaînés les uns aux autres.
Donc l'unité que j'ai privilégiée est le morceau. Le but ici était de transcrire et arranger chaque morceau en "standalone" que je valide unitairement, pour ensuite composer les transitions et chaîner tout cela dans les partitions finales.
Le point est que, pour chaque morceau, j'ai tous les instruments dedans. Et par un jeu d'include et d'auto-append, j'ai tous les instruments dans le medley final. C'est pour cela que je me retrouve avec une floppée de \book. Mais d'un autre côté, vous les avez également. Simplement ils sont répartis dans les dossiers instrumentaux.

=> Et je devrai tout de même répéter les instructions de couverture pour chacun d'eux, avec autant de changements à propager si je change ma mise en page.

Par contre, je trouve ça vraiment intéressant de comparer les philosophies d'utilisation et de structuration de projets autour de lilypond. J'apprends beaucoup.

Donc merci encore pour cela!

Bonne fin de soirée,
Emmanuel