Skip to content

Releases: rododendro1/Tesela

Tesela 0.3.2

Choose a tag to compare

@github-actions github-actions released this 03 Nov 08:04
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

-...

Read more

Tesela 0.3.1

Choose a tag to compare

@github-actions github-actions released this 02 Nov 12:46
f886f60

Armonia

  • Veintiocho escalas tradicionales más (el catálogo microtonal pasa de 68 a 74):
    • Grecia antigua: las harmoniai que faltaban (mixolidia, hipolidia, hipofrigia e hipodoria), que con la doria,
      la frigia y la lidia son las siete especies de octava (TipoDeEscala.harmoniai), y el tetracordo
      enarmónico, Mi Fa♭ Fa La en doce notas y Mi Fa𝄳 Fa La en cuartos de tono. Intervalo.segundaDisminuida,
      para escribirlo.
    • Makamlar: Mâhur, Acemaşiran, Sultânîyegâh, Şedaraban, Hümâyun, Uzzâl y Zirgüleli Hicaz, los cinco últimos
      con su versión en comas de Arel-Ezgi-Uzdilek.
    • Maqamat sin cuartos de tono: Āthār Kurd, maqām Nikrīz, Lāmī y Ṣabā Zamzam.
    • Indonesia: los pathet de Java (pélog lima, nem y barang; sléndro nem, sanga y manyura) y los modos tembung
      y sunaren de Bali, en la categoría nueva CategoriaTradicional.pathet (TipoDeEscala.pathets).
    • Rāgas que suben y bajan en línea recta: los janya Mohanakalyāṇi, Sāveri y Nāṭa (con su mēḷa padre) y el
      indostánico Lalit.
  • La escala de sexta disminuida de Barry Harris se encuentra por su nombre: «sexta disminuida» es el bebop
    mayor y «sexta menor disminuida», el bebop menor melódica (en inglés, «major/minor sixth diminished»).
  • PiezaImportada lee MEI y ABC, además de MIDI y MusicXML: init(mei:), init(abc:), y init(leyendo:)
    los reconoce solos. De MEI: partes y capas, armadura, compás, tempo, tresillos, ligaduras, notas de adorno
    (que no cuentan), accid.ges y los microtonos (cuartos de tono, koron y sori, comas turcas). De ABC, como lo
    escriben los cancioneros: cabecera (T, M, L, Q, K con sus modos, V), alteraciones que duran el compás,
    ligaduras, tresillos (3, ritmo con puntillo >/<, acordes [CEG], campos dentro de la música [K:D],
    silencios de varios compases y cuartos de tono ^/. Lee la primera canción del fichero. Lo que exportan
    mei() y abc() vuelve igual (por ABC, las comas, temperadas).
  • Lector de XML propio en lugar de XMLParser: MusicXML y MEI ya no necesitan FoundationXML (ni libxml2 en
    Linux). Admite UTF-8, UTF-16 y las codificaciones de un byte (Latin-1, windows-1252), y da la línea del error.
    ErrorDeImportacion.xmlDanado dice ahora «El fichero XML está dañado» y formatoDesconocido nombra los cuatro
    formatos.
  • Tutorial interactivo de DocC, «De una nota a un análisis armónico», en tres partes: notas, alturas e
    intervalos; acordes y escalas, y el análisis de una progresión, de la tonalidad a las cadencias y desde un
    fichero MIDI hasta MusicXML. El código de cada paso se prueba como los ejemplos de los artículos.
  • Fuzzing de los lectores (Herramientas/FuzzArmonia): libFuzzer con AddressSanitizer sobre MIDI, MusicXML,
    MXL, MEI, ABC, UIL y los textos de cifrados, notas, escalas, corales y voces, diez minutos cada domingo en el CI.
  • PiezaImportada.acordes() identifica una sola vez el acorde de las ventanas que suenan igual. Un fichero con
    las doce notas sostenidas durante horas tardaba más de un minuto en leer sus acordes, y ahora una fracción de
    segundo (lo encontró el fuzzing en su primer minuto).
  • Los microtonos también se leen: NotaDeLaPieza.desvio, los cents que una nota importada se aparta de su
    altura. En MusicXML, un <alter> con decimales ya no se redondea: -0.5 sobre E es Mi♭ y 50 cents (antes, Mi♭
    sin más). En MIDI, cada nota se lleva la inflexión de tono (pitch bend) de su canal, en el ámbito que fije el
    RPN 0. Las escalas microtonales salen y vuelven igual por los dos formatos.
  • Los binarios de armonia para Linux se compilan sin información de depuración ni símbolos, y el workflow de la
    versión crea la etiqueta si se lanza a mano y pone las notas del CHANGELOG a una release creada sin ellas.
  • Echoi bizantinos y śruti indios, dos sistemas microtonales nuevos (el catálogo microtonal pasa de 49 a 68):
    • SistemaMicrotonal.moria72, los 72 moria de la Comisión Patriarcal (1881), y nueve escalas nuevas de la
      tradición .bizancio, categoría .echos (TipoDeEscala.echoi): los ocho echoi y el légetos. Todos menos el
      trítos, que ya es la mayor, tienen versión microtonal (Re Mi⁻² Fa Sol La Si⁻² Do).
    • SistemaMicrotonal.sruti, los 22 śruti con sus razones justas (razonesDeLosSruti), y la versión
      microtonal de los diez thāṭ y de Yaman: el ṣaḍja-grāma de Arnold, con el re y el dha pitagóricos de Bhairav,
      Bhairavī y Toḍī (Do Re↓ Mi↓ Fa Sol La↓ Si↓ en Bilāval).
    • En el pentagrama, los moria llevan los signos de Wyschnegradsky y los śruti la flecha de Helmholtz-Ellis
      (catorce glifos más de Bravura); en MusicXML, los moria también.
  • Dieciséis escalas tradicionales más, todas con su versión microtonal (de treinta y tres a cuarenta y nueve):
    • Makamlar: Hüzzam, Saba, Karcığar, Suzinak, Nikriz y Nev'eser, en comas de Arel-Ezgi-Uzdilek.
    • Dastgāh y āvāz persas, con el koron: Segāh (sobre Mi, con la tónica en un koron), Navā, Bayāt-e Tork,
      Afšāri, Dašti, Abu ʿAtā y Bayāt-e Esfahān.
    • Maqamat en cuartos de tono: Rāḥat al-Arwāḥ (sobre Si𝄳), Bayātī Shūrī y Jiharkāh.
  • Más escalas con microtonos, de nueve a treinta y tres:
    • Maqamat nuevos en cuartos de tono: Ḥusaynī y Nayrūz, y Sīkāh, maqām Huzām e ʿIrāq, con la tónica en un cuarto
      de tono (se escriben sobre Mi y Si; su primer paso microtonal es −1).
    • Makamlar nuevos con su segâh (Si una koma bajo): Uşşak, Hüseynî y Segâh makamı, que empieza en la segâh.
    • Versión microtonal de Hicazkâr makamı y de los quince dromoi: Ousák y Sabáh, en cuartos de tono, con la
      segunda neutra de Bayātī y de Ṣabā; los demás, en comas de Arel-Ezgi-Uzdilek, con las notas del makam que tiene
      las suyas (Hitzáz como Hicaz, Tabahaniótikos como Suzinak, Niavént como Nev'eser, Kartzigár como Karcığar…) o,
      los que solo existen en Grecia (Pireótikos, Tsingánikos, Houzám, Sengáh), con los mismos tetracordos.
    • TipoDeEscalaMicrotonal.pasos cuenta desde la tónica temperada, y la tónica puede ser un microtono.
  • Notaciones con palabras: Notacion.espanol, .ingles, .catalan… pasan a llamarse .espanolPalabras,
    .inglesPalabras, .catalanPalabras… en los quince idiomas, como .espanolASCII y .espanolCompacto; igual en
    EscrituraDeNotas. Los nombres de antes desaparecen sin pasar por obsoletos. Los casos de Idioma
    (.espanol, .catalan…) no cambian.
  • Tipografia.unicode pasa a llamarse .conSimples (un signo por semitono: Fa♯, Si♭♭), junto a .conDobles;
    también sin obsoleto. El rawValue es ahora «conSimples».
  • Categorías indias en IAST: CategoriaTradicional.nombre y sus traducciones de alfabeto latino escriben
    thāṭ, mēḷa y rāga (Thāṭ, Mēḷa y Rāga en alemán y húngaro), como dastgāh; igual la ayuda de
    armonia escalas y la documentación. Los casos (.thaat, .melakarta, .raga) no cambian, y
    --categoria thaat, that o thāṭ (y melakarta, mela o mēḷa) siguen encontrando la misma categoría.
  • Las compactas escriben las dobles con 𝄪 y 𝄫: .espanolCompacto, .inglesCompacto, .catalanCompacto,
    .francesCompacto, .griegoCompacto, .rusoCompacto… usan Tipografia.conDobles: Fa𝄪, B𝄫, Do𝄪♯. El alemán y
    el húngaro siguen con sus sufijos (Fisis). También Nota.nombre, description, texto y la codificación
    (Si𝄫3); lo guardado con ♭♭ se sigue leyendo.
  • Microtonos en las partituras: cada nota de un Evento puede apartarse de su nota temperada (desvios, en
    cents; en texto, Mi♭4(50¢):4), y Escala.voz(octava:sentido:duracion:) da una escala en negras con sus
    microtonos. Los formatos los escriben: MusicXML, con el alter en decimales (−0.5) y su <accidental>
    (quarter-flat, koron y, para las comas, other con el glifo SMuFL); MEI, con accid (1qf, el koron y las
    comas de Arel-Ezgi-Uzdilek, kf, bs…); LilyPond y ABC, con los cuartos de tono (eeh, _/E), y las comas como
    la nota temperada; MIDI, con una inflexión de tono (pitch bend, en el ámbito de ±2 semitonos) antes de cada nota.
    Escala.svgPentagrama() dibuja sus signos con catorce glifos más de Bravura: los cuartos de tono de
    Stein-Zimmermann, las ocho comas de Arel-Ezgi-Uzdilek, el koron y el sori. En la línea de comandos,
    armonia musicxml|mei|lilypond|abc|midi escala Re bayati exporta una escala.
  • armonia escalas: el catálogo de escalas en la línea de comandos, las habituales y las de otras tradiciones
    agrupadas por tradición y categoría, con sus notas desde Do y la marca de las que tienen microtonos. Se filtra con
    --tradicion turquia (o --tradition turkey) y --categoria maqam, y un texto busca en los nombres. Con su ayuda
    en los quince idiomas.
  • Microtonos: la versión microtonal de las escalas que se aproximan, TipoDeEscala.microtonal (un
    TipoDeEscalaMicrotonal: la escala temperada y la posición de cada grado en los pasos de su SistemaMicrotonal).
    Maqām Rāst, Bayātī, Ṣabā y Sūznāk van en cuartos de tono (.cuartosDeTono); Šur, Homāyun y Čahārgāh, con el
    koron (.persa); Rast y Hicaz makamı, en las 53 comas de Arel-Ezgi-Uzdilek (.comas53).
    Escala.notasMicrotonales(sentido:) da sus notas (NotaMicrotonal), con los cents desde la tónica y su nombre
    (Mi𝄳, Fa𝄲, Si⁻¹ para una koma bajo Si). En la línea de comandos, armonia escala Re bayati añade una línea
    con los microtonos y otra con los cents.
  • Makamlar, mugam y más maqamat y dastgāh, en su versión temperada: dos tradiciones nuevas, Tradicion.turquia
    y .azerbaiyan, con sus categorías CategoriaTradicional.makam y .mugam (con su nombre en los quince idiomas).
    Siete makamlar turcos (TipoDeEscala.makamlar: Rast, Hicaz, Hicazkâr, Nihâvend, Kürdî, Bûselik y Çârgâh, con
    «makamı» detrás) y cuatro mugam de Hacıbəyov (TipoDeEscala.mugamlar: Rast, Şur, Segah y Çahargah, con «muğamı»
    detrás; los tres primeros, de ocho notas). Los maqamat pasan de 6 a 10, con los primeros que tienen cuartos de
    tono, aproximados: maqām Rāst, Bayātī, Ṣabā y Sūznāk...
Read more

Tesela versión 0.3.0

Choose a tag to compare

@rododendro1 rododendro1 released this 01 Nov 19:50
bae86a2
Quita los nombres obsoletos antes de la 0.3.0 (#49)

- Fuera los Obsoletos.swift de Armonia y ArmoniaPresentacion, Traduccion.pluralRuso e Idioma.traducidos.
- Caché de .build del CI: se compila todo si se ha borrado o renombrado un fichero de Swift (con Swift 6.0, un
  ejecutable recuperado seguía enlazando con Notacion.espanolUnicode).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

Tesela versión 0.2.0

Choose a tag to compare

@rododendro1 rododendro1 released this 31 Oct 21:33
31a399e
Versión 0.2.0 (#33)

* CI: cobertura de las pruebas en Linux

Nuevo job «Cobertura» (Swift 6.2) para Armonia (pruebas rápidas y de la
documentación), ArmoniaUI y Hexagonos: swift test --enable-code-coverage y
llvm-cov report sobre Sources. El total y los 15 ficheros con menos líneas
probadas van al resumen de la ejecución; el informe entero, como artefacto.
No falla por una cobertura baja.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Quita los workflows Swift y Jekyll de plantilla

swift.yml ejecutaba swift test en la raíz, que no tiene pruebas, así que fallaba
siempre, y repetía en macOS lo que ya hace ci.yml. jekyll-gh-pages.yml publicaba
en Pages en cada push a main y tapaba la documentación de DocC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* La cobertura también sale en el registro del paso

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Temporal: líneas sin probar en el registro

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Temporal: con la línea de cada región sin probar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Pruebas para lo que faltaba en Hexagonos y ArmoniaUI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Pruebas para lo que faltaba en Armonia, y fuera el paso temporal de la CI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Pone a Kokopelli como icono de las dos apps

Armonía lleva la silueta negra sobre fondo ámbar (el damero de la imagen
original era parte del dibujo y se sustituye por un color liso); Tonnetz,
el mosaico hexagonal. Iconos opacos en todos los tamaños del appiconset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Releases por etiqueta, Swift Package Index y guías para contribuir

- version.yml crea la release de cada etiqueta con la sección de esa versión en los
  CHANGELOG de los paquetes (Scripts/notas_de_version.py); el CI comprueba que la
  versión de project.yml tiene notas.
- .spi.yml con los módulos que Swift Package Index debe documentar.
- CONTRIBUTING.md, SECURITY.md, plantillas de issues (error y propuesta) y de pull request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Cobertura mínima, pruebas con ficheros estropeados y «Sin publicar» en los CHANGELOG

- El job de cobertura falla si las funciones o las líneas probadas de un paquete
  bajan de su mínimo.
- ImportacionAlAzarTests lee MIDI, MusicXML y UIL estropeados al azar y casos extremos.
  Encontraron tres fallos que detenían el programa, ya corregidos:
  - un MusicXML con un byte no UTF-8 en un nombre (XMLParser en Linux);
  - fracciones desbordadas en los acordes de una pieza de más de 100 000 ventanas;
  - intervalos UIL cerca del máximo de Int.
- notas_de_version.py: --comprobar (secciones de los CHANGELOG, en el CI) y
  --publicar (pasa «Sin publicar» a una versión y sube MARKETING_VERSION).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Formato del código con swift-format

- .swift-format: 4 espacios y 120 columnas; el resto, lo de swift-format.
- Todo el código Swift formateado con swift format -i. Las tablas de datos (nombres de
  escalas, textos traducidos) y las pruebas generadas llevan swift-format-ignore-file:
  tienen una fila por línea, que es como las leen los scripts de Scripts/.
- Cuatro comentarios al final de línea demasiado largos pasan a su propia línea, y do_
  se llama vecinosDeDo en una prueba.
- Job «Formato (swift-format)» en el CI con swift format lint --strict, y los comandos
  en CONTRIBUTING.md y la plantilla de PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Compara el rendimiento con la rama de destino y documenta ArmoniaUI con DocC

- RendimientoArmonia: `--avisar <porcentaje>` (con `--comparar`) lista los casos más lentos que antes en la
  mediana y en el mínimo y, en GitHub Actions, deja un aviso. En cada pull request, el job de rendimiento mide
  antes la rama de destino y compara con ella (aviso a partir de un 25 %; no falla).
- Catálogos DocC para ArmoniaUI y ArmoniaPresentacion, construidos en el job de DocC y publicados en GitHub
  Pages con los demás.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

* Versión 0.2.0

Las secciones «Sin publicar» de Armonia y ArmoniaUI pasan a 0.2.0, MARKETING_VERSION de las apps sube a 0.2.0 y
el README apunta a la nueva versión. Hexagonos no cambia desde 0.1.0 (solo el formato del código).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PYpALb9BAxTJCCCrpugmoF

---------

Co-authored-by: Claude <noreply@anthropic.com>

Tesela versión 0.1.0

Tesela versión 0.1.0 Pre-release
Pre-release

Choose a tag to compare

@rododendro1 rododendro1 released this 31 Oct 03:26
b67e470

What's Changed

  • Importar Hexaphonos (con los arpegios) by @rododendro1 in #1
  • Renombra el proyecto de Hexaphonos a Tesela by @rododendro1 in #2
  • Quita las referencias a Hexaphonos y el .pyc del repositorio by @rododendro1 in #3
  • Pasa a Swift 6 y abarata el CI de macOS by @rododendro1 in #4
  • Bump the acciones group with 2 updates by @dependabot[bot] in #5
  • CHANGELOG de Armonia: sin SepirizUI y los teclados isomórficos en un solo bloque by @rododendro1 in #6
  • Más pruebas: pentagramas, el teclado UIL y los avisos del coral by @rododendro1 in #7
  • Arpegios en las apps y en la CLI, e identificar acordes tocando notas by @rododendro1 in #8
  • Enlazar pestañas, entrada MIDI y teoría postonal en Identificar by @rododendro1 in #9
  • Importa ficheros MIDI y MusicXML y analiza sus acordes by @rododendro1 in #10
  • Abre ficheros MIDI y MusicXML en la pestaña Análisis by @rododendro1 in #11
  • Arpegios: progresiones arpegiadas, exportación y arpegio en el mástil by @rododendro1 in #12
  • Funde los ficheros +Idiomas en el fichero de su tipo by @rododendro1 in #13
  • Junta los ficheros de escalas by @rododendro1 in #14
  • VistaSVG en el actor principal y pruebas de importación con ficheros de fuera by @rododendro1 in #15
  • CI: macOS solo a mano y los lunes by @rododendro1 in #16
  • Versión 0.1.0 by @rododendro1 in #17

New Contributors

Full Changelog: https://github.com/rododendro1/Tesela/commits/Tesela_0.1.0