-@node Automatic notation
-@section Automatic notation
-
-Cette section s'intéresse au réglage de l'impression automatique des
-altérations accidentelles et ligatures.
-
-@menu
-* Automatic accidentals::
-* Setting automatic beam behavior::
-@end menu
-
-@node Automatic accidentals
-@subsection Automatic accidentals
-@cindex Altérations accidentelles automatiques
-
-Une fonction a été créée pour regrouper les règles suivant lesquelles
-s'impriment les altérations. Elle s'invoque de la manière suivante :
-
-@funindex set-accidental-style
-@example
-#(set-accidental-style 'REGLE)
-@end example
-
-@c TODO: check the context stuff below
-@c -does it *really* work?
-@c -the default contexts as specified in
-@c scm/music-function.scm seem to be different -vv
-
-Cette fonction prend pour argument le nom de la règle d'altérations,
-auquel peut s'ajouter, comme argument facultatif, le contexte
-devant être affecté :
-
-@example
-#(set-accidental-style 'REGLE #('CONTEXTE#))
-@end example
-
-Si aucun contexte n'est spécifié, le contexte @code{Staff} sera affecté ;
-cependant on peut souhaiter l'appliquer au contexte @code{Voice} en lieu
-et place.
-
-Les régles d'altérations suivantes sont possibles :
-
-@table @code
-@item default
-C'est la règle d'impression par défaut, qui se rapporte à l'usage
-en vigueur au XVIIIème siècle : les altérations accidentelles sont valables toute
-une mesure, et uniquement à leur propre octave.
-
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- %#(set-accidental-style 'default)
- \musicA }
- \context Staff = "down"{
- %#(set-accidental-style 'default)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'default" }}}
-}
-@end lilypond
-
-@item voice
-En principe, LilyPond se souvient de toutes les altérations présentes sur la
-portée (contexte Staff). Avec cette règle, cependant, les altérations sont indépendantes
-pour chacune des voix.
-
-
-@example
- \new Staff <<
- #(set-accidental-style 'voice)
- @{ @dots{} @}
- >>
-@end example
-
-De ce fait, les altérations d'une voix sont ignorées dans les autres voix,
-ce qui peut donner lieu à un résultat malencontreux. Dans l'exemple suivant,
-il est difficile de dire si le deuxième @samp{la} est dièse ou naturel.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'voice)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'voice)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'voice" }}}
-}
-@end lilypond
-
-La règle @code{voice} n'est à envisager que dans le cas de voix devant être lues par
-des musiciens différents. S'il s'agit d'un @q{conducteur}, ou d'une portée destinée
-à un seul musicien, il vaut mieux utiliser @code{modern} ou @code{modern-cautionary}.
-
-
-@item modern
-@funindex modern style accidentals
-Cette règle est la plus courante au XXème siècle. Les altérations accidentelles
-sont imprimées comme avec le style @code{default}, mais lorsqu'une note non-altérée
-apparaît à une octave différente, ou bien dans la mesure suivante, des bécarres de précaution
-sont ajoutés. Dans l'exemple suivant, notez ainsi les deux bécarres dans la
-deuxième mesure de la main droite.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'modern" }}}
-}
-@end lilypond
-
-@item @code{modern-cautionary}
-@funindex modern-cautionary
-Cette règle est équivalente à @code{modern}, mais les bécarres de précaution sont
-imprimés de façon particulière : soit plus petits, soit (par défaut) entre parenthèses.
-Il est possible de le définir au moyen de la propriété @code{cautionary-style}
-pour l'objet @rinternals{AccidentalSuggestion}.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-cautionary)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'modern-cautionary" }}}
-}
-@end lilypond
-
-@funindex modern-voice
-@item modern-voice
-Cette règle sert aux altérations dans de la musique polyphonique destinée
-autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble des voix.
-Les altérations sont imprimées voix par voix, mais les autres voix, dans le même
-contexte @rinternals{Staff}, en @emph{tiennent compte} cette fois.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-voice)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-voice)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'modern-voice" }}}
-}
-@end lilypond
-
-@funindex modern-voice-cautionary
-@item modern-voice-cautionary
-Cette régle est similaire à la précédente, mais les altérations de précautions
-(celles que n'aurait pas ajoutées @code{voice}), sont imprimées de façon
-particulière. On retrouve donc toutes les altérations qu'imprimerait
-@code{default}, mais certaines sont considérées comme étant @qq{de précaution}.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-voice-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-voice-cautionary)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'modern-voice-cautionary" }}}
-}
-@end lilypond
-
-@item piano
-@funindex piano accidentals
-Cette règle est adaptée aux contextes GrandStaff -- ce qui n'empêche pas de devoir la spécifier
-pour chaque portée individuelle au sein du contexte GrandStaff.
-
-@example
-\new GrandStaff @{ <<
- \new Staff = "up" @{ <<
- #(set-accidental-style 'piano)
- @{ @dots{} @}
- >> @}
- \new Staff = "down"@{ <<
- #(set-accidental-style 'piano)
- @{ @dots{} @}
- >> @}
->> @}
-@end example
-
-Cette règle est communément employée pour les partitions de piano au XXème siècle.
-Très similaire à @code{modern} de par son comportement, elle s'en distingue en ce que
-les altérations tiennent compte des autre portées du contexte @rinternals{GrandStaff} ou
-@rinternals{PianoStaff}.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'piano)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'piano)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'piano" }}}
-}
-@end lilypond
-
-@item piano-cautionary
-@funindex #(set-accidental-style 'piano-cautionary)
-Identique à @code{#(set-accidental-style 'piano)}, mais les altérations de précaution
-sont imprimées différemment.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'piano-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'piano-cautionary)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'piano-cautionary" }}}
-}
-@end lilypond
-
-@item no-reset
-@funindex no-reset accidental style
-C'est la même règle que @code{default}, mais l'effet des altérations accidentelles
-ne cesse jamais, même dans les mesures suivantes.
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'no-reset)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'no-reset)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'no-reset" }}}
-}
-@end lilypond
-
-@item forget
-Tout le contraire de @code{no-reset}: l'effet des altérations cesse aussitôt,
-et de ce fait, toutes les altérations, quelque soit leur place dans la mesure, sont
-imprimées, en fonction de l'éventuelle armure.
-
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
-\score {
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'forget)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'forget)
- \musicB } >> }
- \header { piece = \markup {\fill-line { \fontsize #3 "'forget" }}}
-}
-@end lilypond
-@end table
-
-
-@seealso
-
-Référence du programme : @rinternals{Accidental_engraver},
-@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et @rinternals{AccidentalPlacement}.
-
-
-@knownissues
-
-Les notes simultanées sont considérées comme des évènements séquentiels.
-Ce qui implique que, dans un accord, les altérations accidentelles seront
-imprimées comme si les notes de l'accords apparaissaient une par une, en fonction
-de l'ordre dans lequels elles ont été saisies -- ce qui peut poser problème lorsqu'au
-sein d'un accord certaines altérations dépendent les unes des autres.
-Ce problème est à résoudre manuellement, en insérant des @code{!} et des @code{?} après les notes
-concernées.
-
-
-@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
-
-@funindex autoBeamSettings
-@funindex (end * * * *)
-@funindex (begin * * * *)
-@cindex ligatures automatiques, réglage
-@cindex réglage des ligatures automatiques
-
-@c [TODO: use \applyContext]
-
-Dans les métriques courantes, les ligatures automatiques peuvent commencer
-sur n'importe quelle note, mais ne peuvent se terminer qu'à certains points précis
-dans la mesure : sur une pulsation, ou après toute durée spécifiée par les propriétés
-nommées @code{autoBeamSettings}. Ces propriétés consistent en une liste de règles
-relatives au début ou à la fin des ligatures. Par défaut, elles sont définies dans
-le fichier
-@file{scm/@/auto@/-beam@/.scm}.
-
-On peut ajouter à cette liste une nouvelle règle, au moyen de la commande
-@example
-#(override-auto-beam-setting '(extrémité p q n m) a b [contexte])
-@end example
-
-@itemize @bullet
-
-@item @code{extrémité} désigne le début (@code{begin}) ou la fin (@code{end}) de la ligature.
-
-@item @code{p/q} désigne la valeur rythmique de la note que l'on veut affecter, ou de la
-plus brève des notes concernées. Si cette règle doit s'appliquer à toutes les ligatures,
-remplacez @code{p} et @code{q} par des étoiles @qq{@code{*}}.
-
-
-@item @code{n/m} est le chiffre de mesure dans lequel la règle doit
-s'appliquer. Si celle-ci doit s'appliquer dans toutes les métriques,
-remplacez @code{n} et @code{m} par des étoiles @qq{@code{*}}.
-
-@item @code{a/b} est l'emplacement, dans la mesure, auquel les ligatures doivent
-débuter ou s'achever (suivant la valeur @q{extrémité} que nous venons de voir).
-
-
-@item @code{contexte} est un argument facultatif, qui détermine le contexte dans lequel
-la règle doit s'appliquer. Par défaut, il s'agit de @code{'Voice}.
-@code{#(score-override-auto-beam-setting '(A B C D) E F)} équivaut à
-@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
-
-@end itemize
-
-Par exemple, si l'on veut que les ligatures s'achèvent toujours après la première noire :
-
-
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4)
-@end example
-
-On peut obliger une règle de ligatures à ne s'appliquer qu'à des groupes dont la note
-la plus brève est d'une valeur précise :
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 2/4
-#(override-auto-beam-setting '(end 1 16 * *) 1 16)
-a16 a a a a a a a |
-a32 a a a a16 a a a a a |
-#(override-auto-beam-setting '(end 1 32 * *) 1 16)
-a32 a a a a16 a a a a a |
-@end lilypond
-
-On peut obliger une règle de ligatures à ne s'appliquer que pour un chiffre de mesure
-précis :
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 5/8
-#(override-auto-beam-setting '(end * * 5 8) 2 8)
-c8 c d d d
-\time 4/4
-e8 e f f e e d d
-\time 5/8
-c8 c d d d
-@end lilypond
-
-Enfin, on peut désactiver une règle de ligatures au moyen du réglage suivant :
-
-@example
-#(revert-auto-beam-setting '(extrémité p q n m) a b [contexte])
-@end example
-
-@noindent
-@code{extrémité}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a}, @code{b} et @code{contexte}
-étant les mêmes que plus haut. Il est même possible de désactiver des règles que l'on n'a pas
-explicitement créées : les règles par défaut, qui se trouvent dans le fichier @file{scm/@/auto@/-beam@/.scm}.
-
-
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 4/4
-a16 a a a a a a a a a a a a a a a
-#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
-a16 a a a a a a a a a a a a a a a
-@end lilypond
-
-La commande @code{revert-auto-beam-setting} requiert exactement les mêmes arguments
-que la règle d'origine. En d'autres termes, les étoiles ne seront pas prises en compte ici.
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 1/4
-#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
-a16 a a a
-#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % ceci ne désactive pas la règle !
-a a a a
-#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % ceci marche
-a a a a
-@end lilypond
-
-
-
-@c TODO: old material -- not covered by above stuff, I think.
-Si, dans une mesure à 5/4, l'on veut que les ligatures soient regroupées temps par temps,
-il est nécessaire d'indiquer toutes les terminaisons de ligatures.
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
-
-La même syntaxe peut servir à définir les points de départ des ligatures.
-Dans l'exemple suivant, les ligatures automatiques ne peuvent se terminer
-que sur une noire pointée.
-@example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
-@end example
-@c ???? Je n'y comprends rien --vv
-Dans une mesure à 4/4, cela implique que les ligatures ne peuvent se terminer que sur
-la troisième croche, ou sur le quatrième temps (après la valeur de deux fois trois croches).
-
-Si une ligature se fait de manière inattendue, pensez à vérifer les règles automatiques
-dans le fichier @file{scm/@/auto@/-beam@/.scm} pour rechercher d'éventuels conflits, dans
-la mesure ou les règles par défaut s'ajoutent à vos propres règles. Il est alors nécessaire
-de désactiver toute règle par défaut conduisant à des ligatures indésirables.
-
-Ainsi, pour obtenir des ligatures en groupes de @code{(3 4 3 2)} croches, dans une mesure à 12/8,
-il faudra préalablement utiliser :
-
-@example
-%%% annulons les réglages par défaut relatifs à 12/8, dans scm/auto-beam.scm
-#(revert-auto-beam-setting '(end * * 12 8) 3 8)
-#(revert-auto-beam-setting '(end * * 12 8) 3 4)
-#(revert-auto-beam-setting '(end * * 12 8) 9 8)
-
-%%% puis ajoutons nos propres règles
-#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
-@end example
-
-@cindex ligatures automatiques
-@cindex groupes de notes
-@funindex autoBeaming
-@cindex paroles
-
-Si des ligatures sont utilisées dans les paroles d'une chanson (pour indiquer des mélismes),
-les ligatures automatiques doivent être désactivées, avec @code{\autoBeamOff}.
-
-
-@predefined
-
-@funindex \autoBeamOff
-@code{\autoBeamOff},
-@funindex \autoBeamOn
-@code{\autoBeamOn}.
-
-@commonprop
-
-Les groupes de notes reliées par les ligatures peuvent être spécifiés au moyen
-de la propriété @code{beatGrouping}.
-
-@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
-\time 5/16
-\set beatGrouping = #'(2 3)
-c8[^"(2+3)" c16 c8]
-\set beatGrouping = #'(3 2)
-c8[^"(3+2)" c16 c8]
-@end lilypond
-
-
-@knownissues
-
-Si une partition se termine alors qu'une ligature automatique est restée inachevée,
-cette dernière ligature ne sera pas imprimée du tout. C'est également valable dans
-le cas d'une musique polyphonique, saisie avec la syntaxe @code{<< @dots{} \\ @dots{}
->>}, où une voix se terminerait sans que la dernière ligature
-soit achevée.
-