autosp - préprocesseur pour générer des commandes d'espacement des notes pour les partitions MusiXTeX
autosp [-v | --version | -h | --help]
autosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]
Ce programme facilite la création de partitions MusiXTeX en convertissant des commandes (non standard) de la forme \anotes ... \en en une ou plusieurs commandes conventionnelles d'espacement des notes (\notes \Notes \NOtes ...), déterminées par les valeurs réelles des notes, avec les commandes d'espacement \sk insérées si nécessaire. Le codage d'une mesure entière peut être entré une partie à la fois, sans se soucier des changements d'espacement des notes dans la partie ou des exigences d'espacement des autres parties.
Par exemple, si appliqué à
\anotes\qa J\qa K&\ca l\qa m\ca n\en
autosp génère
\Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en
Typiquement, une commande \anotes génère plusieurs commandes conventionnelles d'espacement des notes.
Si l'argument infile n'a pas d'extension .aspc, l'entrée est extraite de infile.aspc si ce fichier existe.
Si l'argument outfile n'a pas d'extension .tex, la sortie est envoyée à outfile.tex. Si aucun argument outfile n'est fourni, la sortie ira à infile.tex (ou à infile.ltx si une déclaration \documentclass est rencontrée).
Pour les commandes \anotes, les sauts de ligne et les espaces peuvent précéder les segments de note, permettant un formatage plus flexible de la source ; les sauts de ligne et les espaces seront supprimés de la sortie.
Par exemple,
\anotes
\ibl0K0\qb0K\nbbl0\qb0{.K}\tbbbl0\tbbl0\tql0L&
\ibbl1m{-2}\qb1{.m}\tbbbl1\tbbl1\qb1l\tql1k\en
est acceptable et génère
\notesp\ibl0K0\qb0K&\ibbl1m{-2}\qb1{.m}\en
\nnotes\sk&\tbbbl1\tbbl1\qb1l\en
\notesp\nbbl0\qb0{.K}&\tql1k\en
\nnotes\tbbbl0\tbbl0\tql0L&\sk\en
Si l'option -l ( --log ) est utilisée, un journal très détaillé infile.alog est généré.
Si l'option -d ( --dotted ) est utilisée, les notes dotted de la forme \qb{n }{.p} n'ont pas d'espace supplémentaire ; on suppose que la note suivante sera décalée par une commande de type \roff ou une commande d'espacement telle que \qsk ou \hqsk. Commandes de la forme \qlp{p}, \qlpp{p}, ..., \qpb{n}{ p} et \qppb{n}{p} sont toujours espacés comme indiqué.
S'il n'y a qu'une seule portée, les mesures consécutives de silence de mesure entière sont fusionnées en un silence de plusieurs mesures. Les silences centrés sur la mesure peuvent être codés en utilisant la notation standard \def\atnextbar mais la commande non standard \Cpause (ou \Cp) dans un segment de note génère également un silence centré sur la mesure.
Les commandes d'espacement \sk et \bsk dans la source sont supprimées, mais pas les "petits" sauts \hsk, \qsk, \tqsk, \hqsk ou \qqsk, ni les petits sauts "vers l'arrière" \hbsk, \bqsk, \btsk, ou \bhsk. De plus, les commandes non standard \QQsk, \HQsk \TQsk et \Qsk dans le source génèrent des sauts "globaux" ; c'est-à-dire l'effet de \qqsk, \hqsk, \tqsk ou \qsk, respectivement, dans chaque portée. Ceux-ci garantissent que les portées restent synchronisées si un espacement supplémentaire est nécessaire dans une ou plusieurs portées.
Des sauts globaux peuvent également être obtenus dans des séquences de codage collectif en utilisant jusqu'à quatre virgules successives pour obtenir les effets de \QQsk, \HQsk, \TQsk ou \Qsk, respectivement. Les sauts globaux \tqsk (ou, pour les doubles bémols, \qsk) sont automatiquement insérés avant les altérations ('^', '_', '=', '<', '>') sur les notes de codage collectif (sauf lorsque le la note précédente est "virtuelle" ; c'est-à-dire un saut). Si cet espacement supplémentaire automatique n'est pas souhaité dans certains contextes, il peut être évité en remplaçant l'accidentel dans la séquence de codage collectif par l'une des commandes accidentelles explicites : \sh , \fl, \na, \smallsh, \bigsh, etc. Si l'espacement automatique est insuffisant, l'espacement peut être augmenté en ajoutant suffisamment de virgules ou en utilisant une commande notes conventionnelle au lieu de \anotes.
Un segment de note peut être complètement vide, mais si un segment de note doit commencer par ou contenir un "espace", la valeur de note de cet espace doit être rendue explicite avec une commande de la forme \ha{*}, \qa{. *}, \qa{*}, \ca{*}, etc.
Depuis la version 2017-06-14, les effets des appels \TransformNotes sont implémentés par le pré-processeur autosp. Cela permet l'utilisation de musixlyr dans les partitions autosp ; musixlyr.tex est incompatible avec l'implémentation musixtnt.tex de \TransformNotes.
Toutes les autres commandes MusiXTeX conventionnelles sont sorties exactement comme indiqué dans l'entrée.
autosp détermine l'espacement des notes ordinaires à partir des commandes de note elles-mêmes ; Par exemple,
\qa, \qu, \ql, \qp
aboutir à
\NOtes;
\ca, \cu, \cl, \ds
aboutir à
\Notes;
et ainsi de suite. L'espacement des notes liées est déterminé par la multiplicité des ligatures, de sorte que \ib... donne \Notes, \ibb... donne \notes, etc.
Le codage collectif des séquences de notes (y compris les altérations et les points) est géré en développant la séquence en une séquence de commandes de notes individuelles.
autosp met les notes à l'échelle en fonction de la valeur de taille d'instrument appropriée.
autosp suppose que & et | (plutôt que \nextinstrument et \nextstaff) sont utilisés pour séparer les instruments et les portées.
Les appoggiatures et appoggiatures sont reconnues par l'utilisation de \tinynotesize ; un espacement des notes de 1,45\elemskip est utilisé. Si cela ne convient pas et ne peut pas être corrigé avec un petit saut, une commande \vnotes avec n'importe quel espacement souhaité peut être utilisée.
autosp prend en charge les x-tuplets introduits en utilisant \xtuplet{x} ou \xxtuplet{x:y} et <triplets introduits à l'aide de l'une des commandes suivantes (indépendamment de toute redéfinition de \txt ou \tuplettxt) :
\triolet
\uptrio
\downtrio
\uptuplet
\downtuplet
autosp suppose qu'un x-tuplet doit être joué dans (x-1)/x de la durée apparente du x-tuplet. Ainsi, par exemple, un triolet en huitièmes est supposé être joué dans le temps d'une noire. Si cette hypothèse n'est pas valide, le x-uplet doit être codé explicitement à l'aide d'une commande \vnotes appropriée ; voir la première mesure de barsant2.aspc pour un exemple d'un x-uplet non standard : un 5-uplet de 64e notes avec une durée prévue de six 64e.
Dans certaines partitions polyrythmiques, le chiffre \txt peut être déplacé, même si les notes elles-mêmes sont correctement espacées. Dans ces cas, il est possible de supprimer la sortie normale de \txt en utilisant les commandes non standard \Triolet (sans arguments) ou \Xtuplet{k}\ et en plaçant un chiffre à l'emplacement correct en utilisant \zcn (c'est-à-dire\zcharnote).
autosp peut traiter des x-tolets simultanés dans plusieurs portées à condition que les valeurs x et les durées totales des notes soient identiques.
Dans certaines partitions baroques, notamment de J.S. Bach, une double croche rayonnée est alignée verticalement avec la troisième note d'un triolet de croches dans une autre portée (ce qui implique qu'elles doivent être jouées simultanément); par exemple.,
\ibl0L0\qb0{.L}\tqql0L
serait joué comme s'il était noté
\uptrio{b}10\ql L\hroff{\cl L}
Le codage suivant alignera la double croche ligaturée avec la troisième note d'un triolet dans une autre portée :
\ibl0L0\qb0{.L}\hbsk\tqql0L
et, de même, pour les triolets de doubles croches :
\ibbu0J0\qb0{.J}\hbsk\nqqqu0J\qb0{.J}\hbsk\tqqqu0J
Généralement, les macros définies par l'utilisateur ne sont ni traitées ni développées ; cependant, les définitions de la forme
\def\atnextbar{\znotes ... \en}
générer des définitions qui tiennent compte de \TransformNotes.
Tous les états-majors sont supposés avoir le même compteur ; voir kinder2.aspc pour un exemple de comment contourner ce problème.
autosp peut ne pas être efficace pour la musique avec plus d'une voix dans une seule portée. Il peut être conseillé d'utiliser une portée distincte pour chaque voix, d'éviter les \anotes si nécessaire, ou d'omettre certaines voix initialement et de les ajouter au fichier TeX résultant.
Voir les fichiers quod2.aspc, kinder2.aspc, geminiani.aspc et barsant2.aspc pour les partitions pouvant être entrées dans autosp. Le programme tex2aspc peut être utilisé pour convertir les partitions MusiXTeX "héritées" au format .aspc.
msxlint(1) tex2aspc(1)
musixdoc.pdf
Ce programme et cette page de manuel ont été écrits par Bob Tennent rdt@cs.queensu.ca.