autosp - pré-processador para gerar comandos de espaçamento de notas para partituras MusiXTeX
autosp [-v | --version | -h | --help]
autosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]
Este programa facilita a criação de partituras MusiXTeX convertendo comandos (não padrão) da forma \anotes ... \en em um ou mais comandos convencionais de espaçamento de notas (\notes \Notes \NOtes ...), determinados por os valores reais das notas, com os comandos de espaçamento \sk inseridos conforme necessário. A codificação de um compasso inteiro pode ser inserida uma parte de cada vez, sem preocupação com alterações de espaçamento de notas dentro da parte ou requisitos de espaçamento de outras partes.
Por exemplo, se aplicado a
\anotes\qa J\qa K&\ca l\qa m\ca n\en
autosp gera
\Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en
Tipicamente, um comando \anotes gera vários comandos convencionais de espaçamento entre notas.
Se o argumento infile não tiver uma extensão .aspc, a entrada será obtida de infile.aspc se esse arquivo existir.
Se o argumento outfile não tiver uma extensão .tex, a saída será enviada para outfile.tex. Se nenhum argumento outfile for fornecido, a saída irá para infile.tex (ou para infile.ltx se uma declaração \documentclass for encontrada).
Para comandos \anotes, quebras de linha e espaços podem preceder segmentos de nota, permitindo formatação de fonte mais flexível; as quebras de linha e os espaços serão eliminados da saída.
Por exemplo,
\anotes
\ibl0K0\qb0K\nbbl0\qb0{.K}\tbbbl0\tbbl0\tql0L&
\ibbl1m{-2}\qb1{.m}\tbbbl1\tbbl1\qb1l\tql1k\en
é aceitável e gera
\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
Se a opção -l ( --log ) for usada, um log infile.alog muito detalhado será gerado.
Se a opção -d ( --dotted ) for usada, pontilhado emitirá notas no formato \qb{n }{.p} não é dado espaço extra; assume-se que a nota subseqüente será deslocada por um comando do tipo \roff ou um comando de espaçamento como \qsk ou \hqsk. Comandos no formato \qlp{p}, \qlpp{p}, ..., \qpb{n}{ p} e \qppb{n}{p} são sempre espaçados conforme indicado.
Se houver uma única pauta, compassos consecutivos de pausa de compasso inteiro serão mesclados em uma pausa de vários compassos. As pausas centradas no compasso podem ser codificadas usando a notação padrão \def\atnextbar, mas o comando não padrão \Cpause (ou \Cp) em um segmento de nota também gera uma pausa centrada no compasso.
Os comandos de espaçamento \sk e \bsk na origem são descartados, mas não os "pequenos" saltos \hsk, \qsk, \tqsk, \hqsk ou \qqsk, ou os pequenos saltos "para trás" \hbsk, \bqsk, \btsk, ou \bhsk. Além disso, os comandos não padrão \QQsk, \HQsk \TQsk e \Qsk na origem geram saltos "globais"; ou seja, o efeito de \qqsk, \hqsk, \tqsk ou \qsk, respectivamente, em cada pauta. Isso garante que as pautas permaneçam sincronizadas se for necessário espaçamento adicional em qualquer(s) pauta(s).
Saltos globais também podem ser obtidos dentro de sequências de codificação coletiva usando até quatro vírgulas sucessivas para obter os efeitos de \QQsk, \HQsk, \TQsk ou \Qsk, respectivamente. Saltos globais \tqsk (ou, para bemóis duplos, \qsk) são inseridos automaticamente antes de acidentes ('^', '_', '=', '<', '>') em notas de codificação coletiva (exceto quando o nota anterior é "virtual"; ou seja, um salto). Se este espaçamento adicional automático não for desejado em algum contexto, ele pode ser evitado substituindo o acidente na sequência de codificação coletiva por qualquer um dos comandos acidentais explícitos: \sh , \fl, \na, \smallsh, \bigsh, etc. Se o espaçamento automático for insuficiente, o espaçamento pode ser aumentado adicionando vírgulas suficientes ou usando um comando de notas convencional em vez de \anotes.
Um segmento de nota pode estar completamente vazio, mas se um segmento de nota deve começar com ou conter um "espaço", o valor da nota desse espaço deve ser explícito com um comando na forma \ha{*}, \qa{. *}, \qa{*}, \ca{*}, etc.
A partir da versão 2017-06-14, os efeitos das chamadas \TransformNotes são implementados pelo pré-processador autosp. Isso permite o uso de musixlyr em pontuações autosp; musixlyr.tex é incompatível com a implementação musixtnt.tex de \TransformNotes.
Todos os outros comandos MusiXTeX convencionais são emitidos exatamente como fornecidos na entrada.
autosp determina o espaçamento para notas comuns a partir dos próprios comandos de notas; por exemplo,
\qa, \qu, \ql, \qp
resulta em
\NOtes;
\ca, \cu, \cl, \ds
resulta em
\Notes;
e assim por diante. O espaçamento para notas transmitidas é determinado pela multiplicidade do feixe, de modo que \ib... resulta em \Notes, \ibb... resulta em \notes, etc.
A codificação coletiva de sequências de notas (incluindo acidentes e pontos) é manipulada expandindo a sequência em uma sequência de comandos de notas individuais.
autosp dimensiona as notas pelo valor relevante do tamanho do instrumento.
autosp assume que & e | (ao invés de \nextinstrument e \nextstaff) são usados para separar instrumentos e pautas.
Appoggiaturas e notas ornamentais são reconhecidas pelo uso de \tinynotesize; o espaçamento entre notas de 1,45\elemskip é usado. Se isso não for adequado e não puder ser corrigido com um pequeno salto, um comando \vnotes com qualquer espaçamento desejado pode ser usado.
autosp suporta x-tuplets introduzido usando \xtuplet{x} ou \xxtuplet{x:y} e <triplets introduzidos usando qualquer um dos seguintes comandos (independentemente de qualquer redefinição de \txt ou \tuplettxt):
\triolet
\uptrio
\downtrio
\uptuplet
\downtuplet
autosp assume que uma x-tupleta deve ser reproduzida em (x-1)/x da duração aparente da x-tupleta. Assim, por exemplo, supõe-se que uma tercina em colcheias seja tocada no tempo de uma semínima. Se esta suposição não for válida, o x-tuplet deve ser codificado explicitamente usando um comando \vnotes adequado; veja o primeiro compasso de barsant2.aspc para um exemplo de uma terquita x não padrão: uma 5ª tupla de 64ª notas com uma duração pretendida de seis 64ª.
Em algumas partituras polirrítmicas, o numeral \txt pode ser deslocado, mesmo que as próprias notas estejam espaçadas corretamente. Nesses casos, é possível suprimir a saída normal de \txt usando os comandos não padrão \Triolet (sem argumentos) ou \Xtuplet{k}\ e colocando um numeral no local correto usando \zcn (ou seja,\zcharnote).
O autosp pode lidar com x-tuplets simultâneos em várias pautas, desde que os valores de x e as durações totais das notas sejam idênticos.
Em algumas partituras barrocas, particularmente de J.S. Bach, uma semicolcheia irradiada é alinhada verticalmente com a terceira nota de uma tercina de colcheias em outra pauta (o que implica que elas devem ser tocadas simultaneamente); por exemplo.,
\ibl0L0\qb0{.L}\tqql0L
seria jogado como se notado
\uptrio{b}10\ql L\hroff{\cl L}
A seguinte codificação alinhará a semicolcheia com a terceira nota de uma tercina em outra pauta:
\ibl0L0\qb0{.L}\hbsk\tqql0L
e, similarmente, para tercinas de semicolcheias:
\ibbu0J0\qb0{.J}\hbsk\nqqqu0J\qb0{.J}\hbsk\tqqqu0J
Geralmente, as macros definidas pelo usuário não são processadas ou expandidas; no entanto, as definições da forma
\def\atnextbar{\znotes ... \en}
gerar definições que levem em consideração \TransformNotes.
Presume-se que todos os funcionários tenham o mesmo medidor; consulte kinder2.aspc para obter um exemplo de como contornar isso.
autosp pode não ser eficaz para música com mais de uma voz em uma única pauta. Pode ser aconselhável usar uma pauta separada para cada voz, para evitar \anotas quando necessário, ou omitir certas vozes inicialmente e adicioná-las ao arquivo TeX resultante.
Consulte os arquivos quod2.aspc, kinder2.aspc, geminiani.aspc e barsant2.aspc para pontuações adequadas para entrada no autosp. O programa tex2aspc pode ser usado para converter partituras MusiXTeX herdadas para o formato .aspc.
msxlint(1) tex2aspc(1)
musixdoc.pdf
Este programa e página de manual foram escritos por Bob Tennent rdt@cs.queensu.ca.