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. ![]()
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