Skip to content

Tesela 0.3.2

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 08:04
· 28 commits to main since this release
6e62b6d

Armonia

Bajo cifrado, cambios de clave y notas ajenas al acorde en el pentagrama

  • Tonalidad.cifrasDeBajo(de:): las cifras del bajo continuo de un acorde («6», «6 4», «6 5», «4 3», «4 2»),
    con las alteraciones que la armadura no da; bajoCifrado las escribe debajo de las disposiciones y las voces.
  • OpcionesDePentagrama.cambiosDeClave: en un solo pentagrama, la clave pasa de fa a sol (y vuelve) según el
    registro, con la clave nueva más pequeña delante de la nota.
  • marcarNotasAjenas: las notas que no son del acorde que suena, en color (colorDeLasNotasDePaso las de la
    tonalidad, colorDeLasCromaticas las demás).
  • En la línea de comandos, armonia pentagrama con --bajo-cifrado, --octava, --clave, --doble,
    --cambiar-clave y --ajenas, y armonia pentagrama melodia <notas> --sobre <acordes> (en inglés,
    --figured-bass, --octave, --clef, --grand-staff, --clef-changes, --non-chord y staff melody … --over).

Exportar a GUIDO

  • Voz.guido, Coral.guido y AnalisisArmonico.guido: la partitura en GUIDO Music Notation (.gmn), la
    entrada de Guido Engine, con lo mismo que LilyPond y ABC: grafía, barras, anacrusa, ligaduras, grupos irregulares
    (\tuplet), tempo, cifrados encima (\harmony) y análisis debajo (\text). Los cuartos de tono se escriben con
    la nota temperada.

Grados, dedos, secuencias y tablatura en el pentagrama

  • Grados en números romanos debajo de cada acorde: grados en DisposicionDeAcorde.svgPentagrama(…) y
    Voz.svgPentagrama(…).
  • Dedos encima de las notas: Escala.svgPentagrama(digitacion:) (los de digitacionDePiano(_:)) y digitos en
    las voces y las disposiciones.
  • Secuencias con ritmo: Escala.svgPentagrama(secuencia:), por terceras en corcheas, en grupos de tres en
    tresillos y de cuatro en semicorcheas.
  • Tablatura debajo del pentagrama (Tablatura), alineada nota a nota, y Escala.svgPentagrama(tocadaEn:) y
    Acorde.svgPentagrama(arpegiadoEn:) para las alturas de una posición del mástil, escritas con las notas de la
    escala o del acorde.
  • En la línea de comandos, armonia pentagrama con --romanos, --mano, --dedos, --secuencia y --tab
    (con --instrumento y --caged); en inglés, --roman, --hand, --fingers, --sequence y --instrument.

Cifrados, intervalos, semitonos y tónica en el pentagrama

  • Cifrado sobre cada acorde: DisposicionDeAcorde.svgPentagrama(_:titulo:cifrados:),
    Voz.svgPentagrama(titulo:acordes:) (encima de la primera nota de cada arpegio) y
    Arpegio.svgPentagrama(cifrado:).
  • OpcionesDePentagrama.intervalosDeLasNotas: el intervalo de cada nota debajo, desde la tónica de la escala o
    la fundamental del acorde que suena (9, 11 y 13 si tiene séptima).
  • marcarSemitonos (un arco entre las notas a un semitono) y marcarTonica (la tónica en
    colorDeLaTonica).
  • Escalas de varias octavas: Escala.svgPentagrama(octavas:), Escala.voz(octavas:) y
    alturasMicrotonales(octava:octavas:sentido:).
  • En la línea de comandos, armonia pentagrama escala|acorde|arpegio|acordes … (en inglés, staff scale|chord|arpeggio|chords) con --octavas, --bajando, --patron, --figura, --tresillos, --nombres,
    --intervalos, --semitonos, --tonica y --en <tonalidad>.

Ritmo y armadura en el pentagrama

  • Voz.svgPentagrama(titulo:opciones:): una voz en el pentagrama en SVG con su ritmo: cabezas negras, blancas
    y redondas, plicas, corchetes, barras de unión por pulso, puntillos, silencios, ligaduras, tresillos (con el 3 y,
    si no van unidos, su corchete), la cifra del compás y las barras de compás, que anulan las alteraciones. Con eso se
    dibuja un arpegio en corcheas, semicorcheas o tresillos, o una progresión arpegiada. resaltada cuenta las notas
    que se oyen, como los pasos de lo que suena.
  • OpcionesDePentagrama.Armadura.tonalidad(_:): la armadura de una tonalidad en cualquier dibujo (acordes,
    arpegios, disposiciones, escalas y voces); las notas solo llevan delante lo que la armadura no da.
  • Glifos nuevos de Bravura en GlifosSMuFL (cabeza negra, corchetes, silencios, puntillo, cifras del compás y del
    tresillo).

Acordes en las doce tonalidades y arpegios en el mástil

  • En la línea de comandos, armonia escala --doce --acordes (con --triadas, sin séptima) da los acordes de
    cada grado en las doce tonalidades, y armonia posiciones --arpegio <cifrado> (con --caged, --barrido e
    --ida-y-vuelta) el arpegio en cada posición del mástil, en tablatura y con los dedos (en inglés, --chords,
    --triads, --arpeggio, --sweep y --up-and-down).

Escalas propias

  • Escalas propias: Escala.propia(_:) (por sus notas) y Escala.propia(desde:pasos:) (por sus pasos en
    semitonos); Escala(leyendo:) lee también «Do Re Mi♭ Fa♯ Sol La Si» y «Do 2-1-3-1-2-2-1». Si no están en el
    catálogo, TipoDeEscala.propio(_:) las nombra por su número de Forte y sus pasos. Escala.pasosEnSemitonos y
    numeroDeForte.
  • Escalas vecinas: Escala.vecinas(tipos:) (EscalaVecina), las que salen moviendo una nota un semitono.
  • Escala.enLasDoceTonalidades, de quinta en quinta, cada una con la escritura más sencilla.
  • RelojDeClases: un conjunto de clases en un reloj de doce horas (SVG), cromático o de quintas.
  • Afinaciones abiertas: Encordado.guitarraEnReAbierto, guitarraEnSolAbierto y guitarraDADGAD.
  • En la línea de comandos, armonia escala --vecinas y --doce, armonia posiciones --instrumento <nombre> y
    --capo <traste>, y la orden nueva armonia reloj <escala> [--quintas] (en inglés, --neighbors, --all-keys,
    --instrument, clock y --fifths).

Más escalas

  • Buscar escalas en una pieza: PiezaImportada.clasesDeAltura(umbral:) (las notas que suenan, por lo que duran)
    y PiezaImportada.escalas(umbral:tipos:), de más a menos probable, con la tonalidad estimada como desempate.
  • Escalas simétricas: Escala.intervaloDeSimetria, transposicionesDistintas, tonicasEquivalentes y
    ciclosSimetricos (CicloSimetrico: Do7 Mi♭7 Fa♯7 La7 en la disminuida semitono-tono).
  • Líneas de notas guía: Acorde.lineaDeNotasGuia(_:desde:octava:) (InicioDeNotasGuia), una nota por acorde,
    la más cercana a la anterior.
  • En el mástil: EscalaEnElMastil.recorrido, secuencia(_:sentido:) (la secuencia sin salir de la posición) y
    notasComunes(con:); Mastil.formasPentatonicas(de:), las cinco formas desde la tónica.
  • TecladoDePiano: un teclado en SVG con las teclas marcadas (los dedos o los nombres) y la tónica resaltada.
  • En la línea de comandos, armonia identificar --escalas y --archivo <fichero>, armonia escala --simetria,
    armonia analizar --notas-guia, armonia posiciones --secuencia <tipo> (con --bajando) y --formas, y la orden
    nueva armonia teclado <escala> [--mano derecha] [--octavas 2] (en inglés, --scales, --file, --symmetry,
    --guide-tones, --sequence, --descending, --shapes, keyboard y --hand).

Teclados de cuadrícula

  • Más teclados de cuadrícula: TecladoCuadrado.tercerasMenores, tritonos, octavas y secuencial;
    conEjes(_:) lee unos ejes escritos «H,V», conOrigen(_:) cambia la nota de la casilla de origen y enTono(_:)
    deja solo las notas de una escala, como el modo In Key del Push (grados, esCromatico). svg dibuja el contorno de
    las notas marcadas y la primera con borde naranja (primeras:, contorno:). RejillaDeControlador: las
    casillas de un Launchpad o un Push (8 × 8), un LinnStrument (16 × 8 y 25 × 8) o la ventana de 12 × 7.
  • En la línea de comandos, armonia cuadricula (grid) dibuja un teclado de cuadrícula con --ejes H,V,
    --rejilla 8x8, --origen <altura>, --giro 0-3, --espejo y --en-tono (en inglés, --axes, --grid,
    --origin, --rotate, --mirror y --in-key).
  • TecladoCuadrado y CasillaCuadrada: teclados isomórficos de botones cuadrados, definidos por sus ejes H
    (los semitonos de un paso a la derecha) y V (los de un paso hacia arriba). Trae cuartas (LinnStrument, Launchpad,
    Push), tercerasMayores, quintas, wickiHaydenCuadrado, tonosEnteros y tonnetzDeEuler, con girado(),
    reflejado, esCompleto, casillas(de:en:) y su dibujo en SVG. Los nombres, en los quince idiomas.

Estudiar escalas

  • Escala.secuencia(_:octava:octavas:sentido:) con SecuenciaDeEscala: la escala por terceras, por cuartas,
    en grupos de tres o de cuatro, en tríadas o en cuatriadas, subiendo o bajando (la menor melódica baja natural).
  • Escala.modosParalelos (los siete modos de la mayor sobre la misma tónica, del lidio al locrio),
    modosRelativos y brillo (cuántas notas sube o baja cada modo respecto al mayor).
  • Escala.comparar(con:) da una ComparacionDeEscalas: notas comunes, las que solo están en una, los grados
    que cambian (CambioDeGrado) y la distancia en el círculo de quintas. Escala.cambios(desde:) sirve
    para seguir una progresión.
  • Acorde.escalasBebop (EscalaBebop, con su nota de paso y el recorrido bajando con las notas del acorde en
    los tiempos fuertes) y Acorde.pentatonicas (PentatonicaSobreElAcorde: las mayores y menores sin notas a
    evitar, con las tensiones que suman). TipoDeEscala.bebop y modosPorBrillo.
  • Escala.digitacionDePiano(_:octava:octavas:) (DigitacionDePiano, Mano): los dedos de cada mano, sin
    pulgar en las teclas negras.
  • En la línea de comandos, armonia escala acepta --secuencia <tipo>, --bajando, --octavas, --piano,
    --modos y --comparar <escala> (en inglés, --sequence, --descending, --octaves, --modes y --compare);
    armonia acorde, --bebop y --pentatonicas; y armonia analizar --escalas añade las notas que cambian de una
    escala a la siguiente y las notas guía.

Más acordes

  • DisposicionDeAcorde.sinFundamentalA, sinFundamentalB y dosManos: las disposiciones sin fundamental de
    piano (la A, de la tercera a la novena; la B, de la séptima a la quinta, con la 13 en lugar de la 5 en los acordes
    de dominante) y a dos manos (fundamental y séptima en la izquierda; tercera, quinta y novena en la derecha).
  • Mastil.gruposDeCuerdas(para:) y disposiciones(de:_:cuerdas:abertura:): cada disposición tocada en un grupo
    de cuerdas (el drop 2 en las cuerdas 4-3-2-1, el drop 3 saltando la que sigue al bajo), con
    Digitacion.dedosSugeridos.
  • Acorde.otrosNombres (Do6 = Lam7/Do; Si°7 = Re°7 = Fa°7 = La♭°7) y sinFundamental (Sol7(♭9) sin el Sol
    es Si°7).
  • Acorde.tonalidades: las tonalidades mayores y menores en que el acorde es diatónico, con su grado y su
    función.
  • Acorde.comparar(con:disposicion:) da una ComparacionDeAcordes: las notas comunes y la conducción de
    las voces de menor movimiento.
  • Acorde.sustituciones(en:): las rearmonizaciones del acorde suelto y, si es de dominante, su ii relativo y el
    disminuido sobre su tercera (Rearmonizacion.Recurso.iiRelativo y .disminuido, en los quince idiomas), con
    esDeDominante y tonalidadPropia.
  • En la línea de comandos, armonia acorde acepta --disposiciones, --nombres, --tonalidades,
    --sustituciones (con --en <tonalidad>) y --comparar <acorde> (en inglés, --voicings, --names, --keys,
    --substitutions, --in y --compare).

Más arpegios

  • Arpegio(_:grados:octavas:aproximacion:): un recorrido propio por grados sobre la fundamental («1 5 3 8» es
    Do–Sol–Mi–Do en Do; 9, 11 y 13 son tensiones). Arpegio.grados(leyendo:) lo lee de un texto.
  • Arpegio(…inicio:) empieza por otra nota del acorde (Mi–Sol–Do–Mi en Do); Arpegio.indice(de:en:) e
    indice(delGrado:en:) la buscan por su nombre o por su grado.
  • Arpegio(…tensiones:) suma la 9, la 11 y la 13 por encima del acorde, de su escala (nota(delGrado:): en Do7,
    la del lidio dominante); Arpegio.tensiones(leyendo:) las lee.
  • Arpegio.Aproximacion: notas cromáticas que llevan a cada nota del arpegio, desde abajo, desde arriba o en
    encierro (Fa–Re♯–Mi), con nombre en los quince idiomas y Aproximacion(leyendo:).
  • Voz(arpegiando:…tensiones:aproximacion:enlazados:): con enlazados, cada arpegio de la progresión empieza
    por la nota de su acorde más cercana a la última del anterior (en Do–Fa, el Fa empieza por Do).
  • En el mástil: Mastil.arpegiosCAGED(de:ancho:) (las cinco formas, con ArpegioEnElMastil.forma),
    arpegiosDeUnaNotaPorCuerda(de:alcance:) (para barrido) y ArpegioEnElMastil.dedos, el dedo sugerido para cada
    nota.
  • En la línea de comandos, armonia arpegio acepta --octavas, --sin-octava, --desde Mi (o --desde 3),
    --tensiones 9,13, --grados 1-5-3-8 y --aproximacion abajo|arriba|encierro (en inglés, --octaves,
    --no-octave, --from, --tensions, --degrees y --approach), y musicxml arpegios acepta --enlazar
    (--connect). La ayuda nombra todos los patrones, también «quebrado» y «baja y sube», y el autocompletado los
    propone.

Teoría postonal en la línea de comandos

  • armonia conjunto (set): un conjunto escrito como lo lee ConjuntoDeClases(leyendo:) («0 4 7», «047»,
    «Do Mi Sol», «4-Z15»), con sus notas, su forma normal y su forma prima, su número de Forte, el vector interválico,
    el vector de índice y los ejes de simetría.
  • armonia serie (row): una serie dodecafónica con sus notas, sus intervalos, sus hexacordos, sus formas
    combinatorias, cuántas formas distintas tiene y la matriz, con P y R a los lados e I y RI arriba y abajo.
  • --clases de tonnetz y tabla lee igual que armonia conjunto: «047», «01t», «Do Mi Sol» o «3-11». Como
    en las cifras seguidas cada cifra es una clase, «--clases 13» es {1, 3} y ya no un error.

Series dodecafónicas

  • SerieDodecafonica: las doce clases de altura en su orden. Sus 48 formas (FormaDeSerie: P, I, R y RI, con
    el índice de la clase con que empieza la P o la I, como en Straus) con forma(_:), original(_:),
    inversion(_:), retrogrado(_:) y retrogradoDeLaInversion(_:); identificar(_:) dice qué formas son otra
    serie y numeroDeFormasDistintas, si es simétrica. La matriz de 12 × 12, los intervalos y
    esDeTodosLosIntervalos, los hexacordos y la combinatoriedad hexacordal (formasCombinatorias,
    tiposDeCombinatoriedad, esTotalmenteCombinatoria). Se lee como un conjunto (init(leyendo:)) y se guarda en
    JSON como la lista de sus clases.

Simetrías y notas comunes de un conjunto

  • ConjuntoDeClases.vectorDeIndice (las notas comunes de cada TnI) y vectorDeTransposicion (las de cada
    Tn), con notasComunes(transponiendo:) y notasComunes(invirtiendo:).
  • ejesDeSimetria: el EjeDeInversion de cada TnI que deja el conjunto igual, con los puntos por donde pasa
    («5–11», «0½–6½») y las clases que deja fijas; y transposicionesQueLoDejanIgual.

Ortografía de un conjunto

  • ConjuntoDeClases.notas(con:) escribe cada clase con la nota más sencilla, buscando el tramo más corto de la
    línea de quintas: {1, 5, 8} es Re♭–Fa–La♭, y con Do♯ fijo, Do♯–Mi♯–Sol♯. Lo que cabe en una escala diatónica
    sale sin repetir letra.

Conjuntos escritos a mano

  • ConjuntoDeClases(leyendo:) lee «[0, 4, 7]», «{0 4 7}», «047», «01t» (con t y e para el 10 y el 11),
    «Do Mi Sol» o «C E G», y el número de Forte («3-11», «4-Z15»), que da la forma prima. ErrorDeLectura tiene
    cuatro motivos nuevos, en los quince idiomas: claseDeAlturaNoValida, numeroDeForteDesconocido,
    faltaElCierre y serieNoDodecafonica(faltan:repetidas:).

Planificar modulaciones

  • Tonalidad.modulaciones(hasta:) escribe progresiones que modulan a otra tonalidad (PlanDeModulacion): por
    acorde común (Do → Sol por Lam, vi = ii), por séptima disminuida enarmónica (Do → La♭: Do♯°7, vii°7/ii, escrito
    Sol°7, vii°7 en La♭) o directa (ii–V7–I de la nueva). Cada plan lleva su progresión completa y su acorde pivote
    leído en las dos tonalidades.

Cifrado romano

  • Tonalidad.acorde(romano:) y Tonalidad.acordes(romanos:) leen cifrados romanos, el camino inverso
    de analizar(_:): inversiones («ii65», «V43»), grados alterados y prestados («♭VI», «♭VII»), dominantes y
    sensibles secundarias («V7/V», «vii°7/ii», también encadenadas: «V/V/V»), sustituto tritonal («subV7/ii»),
    napolitana («N6», «♭II6») y sextas aumentadas («It+6», «Fr+6», «Ger+6»).

Armonía negativa, disposición por cuartas y armonía modal

  • Armonía negativa: Tonalidad.negativa(_:) refleja una nota sobre el eje entre la tónica y la dominante (Mi ↔
    Mi♭, Si ↔ La♭ en Do), y Tonalidad.negativo(_:) y negativos(_:) hacen lo mismo con un acorde y con una
    progresión (Do → Dom, Fa → Solm, Sol7 → Reø7).
  • DisposicionDeAcorde.cuartal: cuatro notas por cuartas de la escala del acorde, con sus notas guía y sin notas
    a evitar (Rem7 → Re Sol Do Fa, Sol7 → Fa Si Mi La).
  • Armonía modal: Escala.modoDeLaMayor, Escala.notaCaracteristica (la 6.ª mayor del dórico, la 4.ª aumentada
    del lidio…), Escala.acordesCaracteristicos (las tríadas que la llevan) y Escala.cadenciaModal (IV–i en
    dórico, ♭II–i en frigio, ♭VII–I en mixolidio…).

Esquemas armónicos: jazz y secuencias

  • EsquemaArmonico.buscar(en:) reconoce en una progresión, en cualquier tonalidad, el ii–V–I (y el ii–V sin
    resolver), el turnaround, el backdoor y el blues de 12 compases, y las secuencias y esquemas del barroco y el
    galante: quintas descendentes, romanesca, canon de Pachelbel, monte, fonte y ponte. Cada uno dice dónde está y a
    qué tónica va, y EsquemaArmonico.Tipo.acordes(en:) lo escribe en una tonalidad. Nombres en los quince idiomas.
  • Rearmonizacion.Recurso.iiV (preparar un acorde con su ii–V: Rem → Mim7 La7 Rem) y
    Rearmonizacion.Recurso.backdoor (el V7 de una tonalidad mayor por iv7–♭VII7).

Análisis armónico ampliado

  • Sustituto tritonal (AcordeAnalizado.Categoria.sustitutoTritonal(de:)): una séptima de dominante medio tono
    por encima de su destino, cuando resuelve en él, se cifra «subV7» (o «subV7/ii»), con función de dominante y la
    escala lidia dominante. La♭7–Sol sigue siendo la sexta aumentada alemana.
  • I64 cadencial (AcordeAnalizado.Categoria.cuartaYSextaCadencial): la tónica en segunda inversión que va a la
    dominante sobre el mismo bajo sigue cifrándose «I64», pero tiene función de dominante.
  • Semicadencia frigia (Cadencia.esFrigia, del iv6 al V) y plagal menor (Cadencia.esPlagalMenor, del iv
    prestado al I mayor). Cadencia.nombre(en:) y description las nombran así en los quince idiomas.

Bajo cifrado

  • Tonalidad.acorde(sobre:cifras:) lee las cifras del bajo continuo sobre una nota del bajo, contando los
    intervalos en la armadura (abreviaturas «6», «64», «7», «65», «43», «42», «4», «9»; alteraciones delante o detrás
    de una cifra, o solas para la tercera).
  • Tonalidad.acordes(bajoCifrado:) lee una línea («La Fa:6 Mi:# La») y
    Coral.realizar(bajoCifrado:en:soprano:) la realiza a cuatro voces.

Notas extrañas a la armonía

  • NotaDeLaMelodia.analizar(_:sobre:partesFuertes:) mira cada nota de una melodía con el acorde que suena con
    ella y, si no es del acorde, dice qué nota extraña es (NotaExtrana) por cómo se llega a ella y cómo se sale: de
    paso, bordadura, apoyatura, retardo, anticipación, escapada, pedal o libre. Los retardos llevan sus cifras sobre
    el bajo (cifrasDelRetardo: «4-3», «7-6», «9-8») y, si se dan las partes fuertes, cada nota dice si está
    acentuada. Los nombres, en los quince idiomas («nota de paso», «passing tone», «Durchgangston»).

Escalas compatibles y acordes de una escala

  • Acorde.escalasCompatibles(entre:) busca por defecto entre las escalas de jazz (TipoDeEscala.deJazz: los
    modos de la mayor, de la menor melódica y de la menor armónica, las disminuidas, la de tonos enteros, las bebop,
    las pentatónicas y la de blues), no en todo el catálogo, y las ordena de las que tienen menos notas a evitar a
    las que más, no por su número de notas: Do7(♯11) da primero Do lidio dominante.
  • Escala.acordesQueCaben(grado:) y Escala.acordesQueCaben: los acordes de TipoDeAcorde.paraEscalas que
    caben sobre cada grado (sus, sextas, 6/9, add9, dominantes alteradas…), no solo los de terceras.
  • Escala.estructurasSuperiores(sobre:): las tríadas de la escala con tensiones y sin notas a evitar que se
    tocan sobre un acorde (Re sobre Do7M en lidio).
  • armonia escala --acordes escribe los acordes que caben en cada grado, y armonia analizar --escalas, las
    estructuras superiores de cada acorde.

Escalas sobre un acorde

  • Escala.notas(sobre:): cada nota de una escala sobre un acorde, con su papel (PapelEnLaEscala: nota del
    acorde, tensión disponible o nota a evitar) y su grado como en los cifrados de jazz (NotaSobreElAcorde.cifra:
    «9», «♯11», «♭13»). Escala.tensiones(sobre:) y Escala.notasAEvitar(sobre:) dan solo unas u otras, y
    Escala.contiene(acorde:), si la escala tiene todas las notas de un acorde.
  • La escala de cada acorde en su tonalidad: Tonalidad.escalaDelAcorde(_:) y AnalisisArmonico.escalas la eligen
    por lo que hace el acorde en el análisis (diatónico, dominante o sensible secundaria, napolitana, sexta
    aumentada, préstamo o cromático): Re dórico para Rem7 en Do, La frigio dominante para V7/ii, Si♭ lidio dominante
    para ♭VII7. Si no cabe, la de TipoDeEscala.paraAcordes que saca menos notas de la tonalidad.
  • Escala.escalaMadre: de qué escala es modo cada una (ModoDeEscala), entre la mayor, la menor melódica, la
    menor armónica y la mayor armónica (TipoDeEscala.familiasDeModos): Do alterada, modo 7 de Re♭ menor melódica.
    Se nombra en los quince idiomas («modo 2 de Do mayor», «mode 2 of C major»).
  • armonia analizar --escalas escribe debajo de cada acorde su escala, sus tensiones y sus notas a evitar, y
    armonia escala dice de qué escala es modo.

Disposiciones de piano y jazz

  • DisposicionDeAcorde: cerrada, drop 2, drop 3, drop 2 y 4, la shell (fundamental, tercera y séptima) y las
    notas guía. Acorde.disposiciones(_:en:) da todas las de un acorde en un ámbito, y
    DisposicionDeAcorde.conducir(_:en:), una por acorde de una progresión con el menor movimiento de las voces.
    Acorde.notasParaDisponer elige las cuatro notas de un acorde extenso (tercera, séptima y tensiones) y
    Acorde.notasGuia, la tercera y la séptima. DisposicionDeAcorde.svgPentagrama(_:titulo:opciones:) las dibuja,
    una por columna.

Contrapunto

  • El contrapunto se exporta. Contrapunto escribe sus dos voces en MusicXML, MEI, LilyPond y ABC
    (musicXML(tonalidad:tempo:titulo:), mei, lilyPond, abc), cada una en su pentagrama con la clave que le
    va mejor, y en MIDI (midi(tonalidad:tempo:titulo:instrumento:)), con una pista por voz. vozDelCantus da el
    cantus firmus como Voz, en redondas.

ArmoniaFormatos

  • Los formatos de fichero salen de ArmoniaPartitura a un módulo propio, ArmoniaFormatos (con su producto):
    la exportación a MusicXML, MEI, LilyPond, ABC y MIDI, la importación (PiezaImportada, ErrorDeImportacion) y
    el lector de XML. ArmoniaPartitura se queda con el modelo, el pentagrama en SVG y el contrapunto. Con
    import Armonia no cambia nada; quien importe solo ArmoniaPartitura y use los formatos tiene que añadir
    import ArmoniaFormatos (y el producto ArmoniaFormatos en su Package.swift).

Errores por capa

Cambia la API pública de los errores: quien haga catch let error as ErrorDeLectura o un switch sobre su
motivo tiene que adaptarse.

  • ErrorDeArmonia, el protocolo común de los errores del motor, con descripcion(en:), description y
    errorDescription. Lo cumplen los tres errores de lectura, ErrorDeImportacion y ErrorDeUIL, así que para
    mostrar cualquiera basta catch let error as any ErrorDeArmonia.
  • Un error de lectura por capa. ErrorDeLectura (Núcleo) se queda con las notas, las alturas, los intervalos y
    lo general (textoVacio, caracteresSobrantes). Los motivos de los cifrados, las escalas, las tonalidades y los
    corales pasan a ErrorDeLecturaDeTeoria.Motivo, con CalidadesIncompatibles y RechazoDeAcorde; los de las
    duraciones, los compases y el contrapunto, a ErrorDeLecturaDePartitura.Motivo. Los tres cumplen ErrorAlLeer
    (texto, posición, motivo, explicacion(en:) y situado(en:posicion:)), y sus motivos, MotivoDeLectura.
    Acorde(leyendo:) lanza ErrorDeLectura si falla la fundamental y ErrorDeLecturaDeTeoria si falla el
    cifrado; Voz(leyendo:), ErrorDeLectura si falla una nota y ErrorDeLecturaDePartitura si falla una
    duración.
  • Los textos de esos motivos pasan de TextosDeNucleo a TextosDeTeoria y TextosDePartitura: el Núcleo ya no
    sabe nada de acordes, escalas ni partituras.
  • ErrorDeUIL se lee en los quince idiomas (descripcion(en:)); antes solo tenía su description en español.
  • La CLI y Notacion.mensaje(de:) de las apps tratan todos los errores con un solo catch, y muestran los de UIL
    en el idioma elegido.

Eliminado

  • Los dos nombres que la 0.3.1 dejó marcados como obsoletos, y con ellos ArmoniaNucleo/Obsoletos.swift:
    Tipografia.compacta (ahora .conDobles) y Alteracion.simboloCompacto (ahora simboloConDobles).
  • armonia: las quince constantes públicas con la ayuda de cada idioma en LineaDeComandos (ayuda, help,
    ajuda, axuda, laguntza, ajudaEmPortugues, aide, aiuto, hilfe, ajudaEnOccitan, spravka, sugo,
    voitheia, aduya y ayudaEnAsturianu). La de cualquier idioma es LineaDeComandos.ayuda(en:):
    ayuda(en: .delIdioma(.catalan)) es la de armonia ayuda --idioma ca.

ArmoniaPresentacion

  • El arpegio con su ritmo en el pentagrama. PentagramaPresentado(_:titulo:tonalidad:notacion:nombresDeLasNotas:resaltada:)
    dibuja una voz con sus figuras, barras y compás, y con la armadura de la tonalidad si se da. La pestaña de acordes
    de la app enseña (y exporta) el arpegio con la figura y los tresillos con que suena.

  • Acordes en las doce tonalidades y arpegios en el mástil.
    PresentacionDeEstudioDeEscala.acordesEnLasDoceTonalidades(_:cuatriadas:notacion:) (TablaDeAcordesPresentada:
    los acordes de cada grado de quinta en quinta, con sonido y partitura) y
    PresentacionDeArpegios.enElMastil(_:formas:idaYVuelta:mastil:notacion:) (ArpegioEnElMastilPresentado, por
    posiciones, CAGED o con una nota por cuerda, con tablatura, dedos, sonido y MusicXML). Textos nuevos en los quince
    idiomas.

  • Escalas propias. PresentacionDeEstudioDeEscala: vecinas(de:notacion:), reloj(de:orden:notacion:) (el
    reloj de la escala en SVG) y enLasDoceTonalidades(_:secuencia:notacion:) (HojaDeEstudioPresentada, con
    pentagramas, sonido y ficheros). Textos nuevos en los quince idiomas.

  • Más escalas. PresentacionDeEstudioDeEscala: escalas(conLasNotas:) y escalas(de:) (EscalaEncontrada, con
    las notas que añade cada una), simetria(de:) (SimetriaPresentada), lineasDeNotasGuia, formasPentatonicas y
    secuenciaEnLasPosiciones (PosicionPresentada, con tablatura de texto y MusicXML), tablatura(_:en:notacion:) y
    teclado(de:mano:octavas:notacion:), el teclado de piano en SVG. Textos nuevos en los quince idiomas.

  • Textos de los teclados de cuadrícula: ejesHV, rejilla, notaDeOrigen y enTono, en los quince idiomas.

  • Estudiar escalas. PresentacionDeEstudioDeEscala: secuencia (SecuenciaPresentada, con pentagrama,
    sonido y ficheros para exportar), digitaciones (DigitacionDePianoPresentada), modosParalelos y
    modosRelativos (ModoPresentado), comparar (ComparacionDeEscalasPresentada) y bebop y pentatonicas
    sobre un acorde (EscalaSobreElAcordePresentada). AnalisisPresentado.cambiosDeEscala(en:) da, por acorde, las
    notas que cambian y las notas guía. Textos nuevos en los quince idiomas.

  • Más acordes. PresentacionDeRelacionesDeAcorde.relaciones(de:en:notacion:) (otros nombres, sin la
    fundamental, tonalidades con su función y sustituciones con su sonido) y comparar(_:con:disposicion:notacion:)
    (notas comunes, cada voz con su movimiento y el movimiento total). PresentacionDeDisposiciones.gruposDeCuerdas y
    enElMastil dan las disposiciones en la guitarra con su tablatura y los dedos, y acorde(_:_:notacion:) da ya
    los ficheros para exportar. Textos nuevos en los quince idiomas.

  • Arpegios con tempo, swing y enlace. PresentacionDeArpegios.arpegio(_:figura:tempo:swing:notacion:) y
    progresion(…enlazados:tempo:swing:…); AnalisisPresentado.arpegiada(_:figura:enlazados:notacion:). El tempo va
    también en las partituras; el swing solo cambia cómo suena (Escucha.conSwing(pulso:proporcion:), larga-corta en
    cada pulso). La figura puede ser de tresillo. Textos nuevos en los quince idiomas para las opciones del arpegio
    en las apps.

  • DisposicionDeAcorde.cuartal se nombra en los quince idiomas («Por cuartas», «Quartal»), y Armonía la ofrece
    junto a las demás disposiciones.

  • PresentacionDeEscalaYAcorde.acordesQueCaben(_:notacion:) (AcordesDelGrado) y
    EscalaSobreAcordePresentada.estructurasSuperiores. En Armonía, la vista de escalas pliega por grado todos los
    acordes que caben (cada uno se abre en Acordes) y el análisis pone las estructuras superiores debajo de cada
    acorde. Las escalas compatibles de la vista de acordes salen de las que menos notas a evitar tienen a las que más.

  • PresentacionDeEscalaYAcorde: una escala sobre un acorde, con su nombre, de qué escala es modo, cada nota
    con su grado y las tensiones y notas a evitar (EscalaSobreAcordePresentada). Cada fila del análisis lleva la
    escala de su acorde (AnalisisPresentado.Fila.escala). En Armonía, la vista de análisis la enseña debajo de cada
    acorde, la de acordes pone las tensiones y notas a evitar de cada escala compatible y la de escalas dice de qué
    escala es modo (y la abre).

  • PresentacionDeDisposiciones: las disposiciones de un acorde (de Do3 a Sol5) y una progresión dispuesta con
    el menor movimiento de las voces, con sus filas, su pentagrama, su sonido y, en la progresión, la partitura y el
    MIDI. PentagramaPresentado dibuja acordes con sus alturas escritas, y DisposicionDeAcorde.nombre(en:) los
    nombra en los quince idiomas (los drops, igual en todos).

  • PresentacionDeContrapunto, la vista de contrapunto de la app de armonía: comprueba un contrapunto de
    especies y lo enseña con una fila por compás (sus notas, los intervalos con el cantus y las faltas que lo tocan),
    las faltas una a una, el sonido de las dos voces (con el compás que suena) y los ficheros para exportar. Trae un
    ejemplo sin faltas de cada especie sobre el cantus en re de Fux.

  • RecorridoDePartitura, «Partitura» en la app del Tonnetz: los acordes de un fichero MIDI, MusicXML, MEI o
    ABC con su ritmo armónico y, entre cada dos tríadas, las transformaciones P, L y R que llevan de una a otra.
    tramo(hasta:longitud:) da las tríadas seguidas que se dibujan con sus flechas.

  • Textos nuevos en los quince idiomas: contrapunto, especie, los campos del cantus y del contrapunto, el número de
    compás, partitura, anterior, siguiente y la indicación para abrir una partitura.

  • Paquete propio: ArmoniaPresentacion (lo que enseñan las apps y la línea de comandos, sin SwiftUI) estaba dentro de
    Packages/ArmoniaUI y ahora está en Packages/ArmoniaPresentacion, con sus pruebas, su CI y su documentación. Su
    historial anterior está en el CHANGELOG de ArmoniaUI.

ArmoniaUI

  • Acordes en las doce tonalidades y arpegios para exportar. En Escalas, los acordes de cada grado en las doce
    tonalidades, con o sin séptima, para escucharlos y exportarlos. En Acordes, cada posición del arpegio en el mástil
    se exporta en tablatura MusicXML y puede subir y bajar, como se estudia el barrido.

  • Escalas propias en Armonía. En Escalas, una escala escrita por sus notas o por sus pasos en semitonos (con su
    número de Forte), sus escalas vecinas, el reloj de la escala en el círculo cromático o en el de quintas, la escala
    en las doce tonalidades para escucharla y exportarla, y las posiciones en el bajo, en afinaciones abiertas y con
    capo.

  • Más escalas en Armonía. En Escalas, la digitación de piano dibujada en un teclado para cada mano (y para
    exportar en SVG), la simetría de las escalas simétricas con sus acordes que se repiten, las cinco formas de la
    pentatónica con las notas que comparten y la secuencia elegida tocada en cada posición, en tablatura. En
    Identificar, las escalas que contienen lo que suena. En Análisis, las líneas de notas guía, para escucharlas y
    exportarlas.

  • Teclados de cuadrícula como los de un controlador. En la app Tonnetz, cuatro redes más (terceras menores,
    tritonos, octavas y secuencial) y «H,V», con los ejes que se escriban. Con AjusteCuadrado, cualquiera se gira de
    90° en 90°, se refleja, se dibuja en la rejilla de un Launchpad, un Push o un LinnStrument con la nota de origen que
    se elija y, con una escala, se toca en tono. Las notas llevan su contorno y la primera, el borde naranja.

  • Teclados de cuadrícula en la app Tonnetz. Seis redes más en el selector: en cuartas, en terceras mayores, en
    quintas, Wicki-Hayden en cuadrícula, de tonos enteros y el Tonnetz de Euler. Se dibujan con cuadrados de 12 columnas
    por 7 filas, con el Do4 hacia el centro, y se tocan como los teclados hexagonales.

  • Estudiar escalas en Armonía. En Escalas, la escala en secuencias (por terceras, en grupos, en tríadas…),
    subiendo o bajando, con su pentagrama, para escucharla y exportarla; la digitación de piano de cada mano; los modos
    sobre la misma tónica, del más brillante al más oscuro, con lo que cambia cada uno, y los de las mismas notas; y la
    comparación con otra escala. En Acordes, las escalas bebop y las pentatónicas para improvisar. En Análisis, debajo
    de cada acorde, las notas que cambian y las notas guía.

  • Más acordes en Armonía. En Acordes, las disposiciones sin fundamental (A y B) y a dos manos; cada disposición
    en un grupo de cuerdas del instrumento, con su diagrama, la tablatura y los dedos; los otros nombres del acorde, el
    que queda sin la fundamental, las tonalidades en que está, sus sustituciones para escucharlas y la comparación con
    otro acorde (notas comunes y cómo va cada voz). Las disposiciones se exportan en partitura y MIDI.

  • Más arpegios en Armonía. En Acordes, el arpegio se escribe también por grados («1 5 3 8»), empieza por la
    tercera o la quinta, suma tensiones (9, 11, 13), lleva notas cromáticas de aproximación y suena en tresillos, con
    swing y al tempo elegido. En el mástil, además de por posiciones, en las cinco formas CAGED y con una nota por
    cuerda, con los dedos sugeridos. En Análisis, la progresión arpegiada puede enlazar cada acorde con el anterior por
    la nota más cercana.

  • Disposiciones en Armonía. En Acordes, el acorde cerrado, en drop 2, drop 3, drop 2 y 4, con la fundamental,
    la tercera y la séptima o solo con las notas guía, en todas sus octavas, con el pentagrama y un botón para escuchar
    cada una. En Análisis, la progresión dispuesta así con el menor movimiento de las voces: se escucha (resaltando el
    acorde que suena) y se exporta como partitura y MIDI.

  • Contrapunto en Armonía. Desde la pestaña Coral se abre el contrapunto de especies: se elige la especie (de la
    primera a la quinta, cada una con un ejemplo sin faltas sobre el cantus en re de Fux), se escriben el cantus firmus
    y el contrapunto, y se ve compás a compás qué notas hay, sus intervalos con el cantus y las faltas. Se escucha
    (resaltando el compás que suena) y se exporta en MusicXML, MEI, LilyPond, ABC y MIDI.

  • «Partitura» en Tonnetz. Un modo nuevo abre un fichero MIDI, MusicXML (también .mxl), MEI o ABC y sigue sus
    acordes en la red, con «Anterior» y «Siguiente» o mientras suena: cada tríada se dibuja con las que llevan a ella
    y sus flechas, y se dice qué transformaciones P, L y R hay desde la anterior. En macOS, la app pide permiso para
    leer el fichero elegido.

  • ArmoniaPresentacion sale del paquete a uno propio, Packages/ArmoniaPresentacion, con sus pruebas. ArmoniaUI
    lo sigue reexportando, así que las apps no cambian; quien use ArmoniaPresentacion por ruta local debe apuntar a
    Packages/ArmoniaPresentacion y nombrar el producto con package: "ArmoniaPresentacion". Por URL (el
    Package.swift de la raíz) no cambia nada.

  • Notacion.mensaje(de:) traduce cualquier error del motor (any ErrorDeArmonia), también los de UIL, que antes
    salían siempre en español.