From 5d500c4e1fc53ccbecfd9b02a386b2aabe622b92 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Fri, 4 Sep 2026 12:07:48 -0400 Subject: [PATCH] Give Pentecost its own hymnody at Matins/Lauds/Vespers, all octave MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same gap as Ascension (pentecost-sunday is a temporal-feast id, not a saint record) -- the mechanism fix from that commit is generic, so this only needed the id added to ALWAYS_OVERRIDE_TEMPORAL_IDS plus real content. Unlike Ascension, Pentecost has 3 genuinely different hymns, one per hour: "Jam Christus astra ascénderat" (Matins), "Beáta nobis gáudia" (Lauds), "Veni Creátor Spíritus" (Vespers), each with its own real, distinct chapter/responsory/versicle at Lauds vs. Vespers. Authored matins-hymn-pentecost-sunday.yml, lauds-{capitulum, responsory,hymn,versicle}-pentecost-sunday.yml, and vespers-{responsory,hymn,versicle}-pentecost-sunday.yml (Vespers reuses Lauds' chapter via the existing cross-hour fallback) -- all live-verified against Divinum Officium (Monastic Tridentinum 1617), 2026-05-24. Confirmed the whole octave end-to-end via resolveOrdo, including a real winning saint within the window (St. Augustine of Canterbury) keeping his own hymn at Lauds/Vespers unaffected. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak --- .../lauds-capitulum-pentecost-sunday.yml | 16 ++ .../common/lauds-hymn-pentecost-sunday.yml | 147 ++++++++++++++ .../lauds-responsory-pentecost-sunday.yml | 24 +++ .../lauds-versicle-pentecost-sunday.yml | 12 ++ .../common/matins-hymn-pentecost-sunday.yml | 182 ++++++++++++++++++ .../common/vespers-hymn-pentecost-sunday.yml | 137 +++++++++++++ .../vespers-responsory-pentecost-sunday.yml | 24 +++ .../vespers-versicle-pentecost-sunday.yml | 12 ++ src/hours/resolve-common.ts | 1 + 9 files changed, 555 insertions(+) create mode 100644 src/data/propers/common/lauds-capitulum-pentecost-sunday.yml create mode 100644 src/data/propers/common/lauds-hymn-pentecost-sunday.yml create mode 100644 src/data/propers/common/lauds-responsory-pentecost-sunday.yml create mode 100644 src/data/propers/common/lauds-versicle-pentecost-sunday.yml create mode 100644 src/data/propers/common/matins-hymn-pentecost-sunday.yml create mode 100644 src/data/propers/common/vespers-hymn-pentecost-sunday.yml create mode 100644 src/data/propers/common/vespers-responsory-pentecost-sunday.yml create mode 100644 src/data/propers/common/vespers-versicle-pentecost-sunday.yml diff --git a/src/data/propers/common/lauds-capitulum-pentecost-sunday.yml b/src/data/propers/common/lauds-capitulum-pentecost-sunday.yml new file mode 100644 index 0000000..78eaace --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-pentecost-sunday.yml @@ -0,0 +1,16 @@ +# Pentecost's own Lauds chapter (Acts 2:1-2) — shared with Vespers via +# vespersCapitulumForOverride's own cross-hour fallback (see +# hours/vespers.ts), not duplicated into a separate vespers-capitulum- +# pentecost-sunday.yml. Live-verified against Divinum Officium (Monastic +# Tridentinum 1617), Lauds/Vespers live query, 2026-05-24 (Pentecost +# Sunday itself). +id: lauds-capitulum-pentecost-sunday +text: + la: "Cum compleréntur dies Pentecóstes, erant omnes discípuli páriter in eódem loco: et factus est repénte de cælo sonus, tamquam adveniéntis spíritus veheméntis, et replévit totam domum, ubi erant sedéntes." + en: "When the day of Pentecost was fully come, the disciples were all with one accord in one place and suddenly there came a sound from heaven, as of a rushing mighty wind and it filled all the house where they were sitting." +citation: + la: "Act 2:1-2" + en: "Acts 2:1-2" +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-hymn-pentecost-sunday.yml b/src/data/propers/common/lauds-hymn-pentecost-sunday.yml new file mode 100644 index 0000000..e61755a --- /dev/null +++ b/src/data/propers/common/lauds-hymn-pentecost-sunday.yml @@ -0,0 +1,147 @@ +# Pentecost's own Lauds hymn ("Beáta nobis gáudia") — distinct from +# Matins' own ("Jam Christus astra ascénderat") and Vespers' own ("Veni +# Creátor Spíritus"), unlike Ascension where all 3 hours share one text. +# Live-verified against Divinum Officium (Monastic Tridentinum 1617), +# Lauds live query, 2026-05-24 (Pentecost Sunday itself). Self-contained +# — this hour's own resolveOfficeBundle doesn't run a hymn through the +# doxology-split/append mechanism at all; the closing doxology here is +# the same shared Pentecost-track text as Matins' own (see +# matins-hymn-pentecost-sunday.yml's own header on "Doxology: PentT"), +# baked in directly, but its own distinct English rendering ("To God the +# Father, laud and praise...") is kept rather than reused from the +# generic `hymn-doxology-pent.yml` translation, same as everywhere else +# in this store that keeps each hymn's own historic translator's ending. +id: lauds-hymn-pentecost-sunday +text: + la: >- + Beáta nobis gáudia + + Anni redúxit órbita, + + Cum Spíritus Paráclitus + + Effúlsit in discípulos. + + + Ignis vibránte lúmine + + Linguæ figúram détulit, + + Verbis ut essent próflui, + + Et caritáte férvidi. + + + Linguis loquúntur ómnium; + + Turbæ pavent Gentílium, + + Musto madére députant + + Quos Spíritus repléverat. + + + Patráta sunt hæc mýstice, + + Paschæ perácto témpore, + + Sacro diérum número, + + Quo lege fit remíssio. + + + Te nunc, Deus piíssime, + + Vultu precámur cérnuo: + + Illápsa nobis cǽlitus + + Largíre dona Spíritus. + + + Dudum sacráta péctora + + Tua replésti grátia: + + Dimítte nostra crímina, + + Et da quiéta témpora. + + + Glória Patri Dómino, + + Natóque, qui a mórtuis + + Surréxit, ac Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Round roll the weeks our hearts to greet, + + With blissful joy returning; + + For lo! the Holy Paraclete + + On twelve bright brows sits burning: + + With quivering flame he lights on each, + + In fashion like a tongue, to teach + + That eloquent they are of speech, + + Their hearts with true love yearning. + + + While with all tongues they speak to all, + + The nations deem them maddened, + + And drunk with wine the prophets call, + + Whom God's good Spirit gladdened; + + A marvel this—in mystery done— + + The holy paschaltide outrun, + + By numbers told, whose reckoning won + + Remission for the saddened. + + + O God most Holy, thee we pray, + + With reverent brow low bending, + + Grant us the Spirit's gifts today + + The gifts from heaven descending; + + And, since, thy grace hath deigned to bide + + Within our breasts once sanctified, + + Deign, Lord, to cast our sins aside, + + Henceforth calm seasons sending. + + + To God the Father, laud and praise, + + Praise to the Son be given; + + Praise to the Spirit of all grace, + + The fount of graces seven — + + As was of old, all worlds before, + + Is now and shall be evermore, + + When time and change are spent and o'er + + All praise in earth and heaven. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-responsory-pentecost-sunday.yml b/src/data/propers/common/lauds-responsory-pentecost-sunday.yml new file mode 100644 index 0000000..73f4516 --- /dev/null +++ b/src/data/propers/common/lauds-responsory-pentecost-sunday.yml @@ -0,0 +1,24 @@ +# Pentecost's own Lauds responsory ("Spíritus Dómini replévit orbem +# terrárum") — distinct from Vespers' own ("Spíritus Paráclitus", see +# vespers-responsory-pentecost-sunday.yml). Live-verified against Divinum +# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-05-24 +# (Pentecost Sunday itself). +id: lauds-responsory-pentecost-sunday +text: + la: | + R.br. Spíritus Dómini replévit orbem terrárum, * Allelúja, allelúja. + R. Spíritus Dómini replévit orbem terrárum, * Allelúja, allelúja. + V. Et hoc quod cóntinet ómnia, sciéntiam habet vocis. + R. Allelúja, allelúja. + V. Glória Patri, et Fílio, * et Spirítui Sancto. + R. Spíritus Dómini replévit orbem terrárum, * Allelúja, allelúja. + en: | + R.br. The Spirit of the Lord filleth the world. * Alleluia, Alleluia. + R. The Spirit of the Lord filleth the world. * Alleluia, Alleluia. + V. And That Which containeth all things hath knowledge of the voice. + R. Alleluia, alleluia. + V. Glory be to the Father, and to the Son, * and to the Holy Ghost. + R. The Spirit of the Lord filleth the world. * Alleluia, Alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-pentecost-sunday.yml b/src/data/propers/common/lauds-versicle-pentecost-sunday.yml new file mode 100644 index 0000000..8a34224 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-pentecost-sunday.yml @@ -0,0 +1,12 @@ +# Pentecost's own Lauds versicle — distinct from Vespers' own +# ("Loquebántur váriis linguis Apóstoli", see +# vespers-versicle-pentecost-sunday.yml). Live-verified against Divinum +# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-05-24 +# (Pentecost Sunday itself). +id: lauds-versicle-pentecost-sunday +text: + la: "V. Repléti sunt omnes Spíritu Sancto, allelúja.\nR. Et cœpérunt loqui, allelúja." + en: "V. They were all filled with the Holy Ghost, alleluia.\nR. And began to speak, alleluia." +status: + la: verified + en: verified diff --git a/src/data/propers/common/matins-hymn-pentecost-sunday.yml b/src/data/propers/common/matins-hymn-pentecost-sunday.yml new file mode 100644 index 0000000..bde33ef --- /dev/null +++ b/src/data/propers/common/matins-hymn-pentecost-sunday.yml @@ -0,0 +1,182 @@ +# Pentecost's own Matins hymn ("Jam Christus astra ascénderat"). Live- +# verified against Divinum Officium (Monastic Tridentinum 1617), Matins +# live query, 2026-05-24 (Pentecost Sunday itself). Self-contained with +# its own closing doxology baked in ("Glória Patri Dómino, Natóque, qui a +# mórtuis Surréxit, ac Paráclito..." — the source tags this "Doxology: +# PentT", byte-identical to the already-existing `hymn-doxology-pent.yml` +# used elsewhere, but baked directly into the body here since this hour's +# per-feast/octave hymn tiers never run the doxology-split/append +# mechanism — see matins-hymn-ascension.yml's own header for the +# identical reasoning). +# +# Closes the same real mechanism gap already fixed for Ascension +# (`pentecost-sunday` is a temporal-feast id, not a saint record, so +# `resolveOfficeWinner`'s octave-synthesis needed the same fix — see +# hours/resolve-common.ts's `ALWAYS_OVERRIDE_TEMPORAL_IDS`). Per direct +# instruction (2026-09-04): Ascension and Pentecost are core content, not +# to be left half-fixed. +id: matins-hymn-pentecost-sunday +text: + la: >- + Jam Christus astra ascénderat, + + Revérsus unde vénerat, + + Promíssum Patris múnere, + + Sanctum datúrus Spíritum. + + + Solémnis urgébat dies, + + Quo mýstico septémplici + + Orbis volútus sépties, + + Signat beáta témpora. + + + Cum lucis hora tértia + + Repénte mundus íntonat, + + Orántibus Apóstolis + + Deum venísse núntiat. + + + De Patris ergo lúmine + + Decórus ignis almus est, + + Qui fida Christi péctora + + Calóre Verbi cómpleat. + + + Impléta gaudent víscera, + + Affláta Sancto Spíritu, + + Voces divérsas íntonant, + + Fantur Dei magnália. + + + Ex omni gente cógniti, + + Græcis, Latínis, Bárbaris, + + Cunctísque admirántibus, + + Linguis loquúntur ómnium. + + + Judǽa tunc incrédula, + + Vesána torvo spíritu, + + Ructáre musti crápulam, + + Alúmnos Christi cóncrepat. + + + Sed signis et virtútibus + + Occúrrit, et docet Petrus, + + Falsa profári pérfidos, + + Joéle teste cómprobans. + + + Glória Patri Dómino, + + Natóque, qui a mórtuis + + Surréxit, ac Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Now Christ, ascending whence he came, + + Had mounted o'er the starry frame, + + The Holy Ghost on man below, + + The Father's promise, to bestow. + + + The solemn time was drawing nigh, + + Replete with heav'nly mystery, + + On seven days' sevenfold circles borne, + + That first and blessèd Whitsun-morn. + + + When the third hour shone all around, + + There came a rushing mighty sound, + + And told the Apostles, while in prayer, + + That, as was promised, God was there. + + + Forth from the Father's light it came, + + That beautiful and kindly flame: + + To fill with fervour of his word + + The spirits faithful to their Lord. + + + With joy the Apostles' breasts are fired, + + By God the Holy Ghost inspired: + + And straight, in diverse kinds of speech, + + The wondrous works of God they preach. + + + To men of every race they speak, + + Alike barbarian, Roman, Greek: + + From the same lips, with awe and fear, + + All men their native accents hear. + + + But Juda's sons, e'en faithless yet, + + With mad infuriate rage beset, + + To mock Christ's followers combine, + + As drunken all with new-made wine. + + + When lo! with signs and mighty deeds, + + Stands Peter in the midst, and pleads; + + Confounding their malignant lie + + By Joel's ancient prophecy. + + + To God the Father let us sing, + + To God the Son, our risen King, + + And equally let us adore + + The Spirit, God forevermore. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-pentecost-sunday.yml b/src/data/propers/common/vespers-hymn-pentecost-sunday.yml new file mode 100644 index 0000000..a7fa0b0 --- /dev/null +++ b/src/data/propers/common/vespers-hymn-pentecost-sunday.yml @@ -0,0 +1,137 @@ +# Pentecost's own Vespers hymn ("Veni Creátor Spíritus") — the well-known +# hymn, distinct from Matins' own ("Jam Christus astra ascénderat") and +# Lauds' own ("Beáta nobis gáudia"). Live-verified against Divinum +# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-05-24 +# (Pentecost Sunday itself). The source's own rubric ("Prima stropha +# hymni sequentis dicitur flexibus genibus" — the first verse is said +# genuflecting) isn't modeled by this app's own rendering, same as other +# performance-rubric notes elsewhere in this store. +id: vespers-hymn-pentecost-sunday +text: + la: >- + Veni Creátor Spíritus, + + Mentes tuórum vísita, + + Imple supérna grátia, + + Quæ tu creásti péctora. + + + Qui Paráclitus díceris, + + Donum Dei altíssimi, + + Fons vivus, ignis, cáritas, + + Et spiritális únctio. + + + Tu septifórmis múnere, + + Dextræ Dei tu dígitus, + + Tu rite promíssum Patris, + + Sermóne ditans gúttura. + + + Accénde lumen sénsibus: + + Infúnde amórem córdibus: + + Infírma nostri córporis + + Virtúte firmans pérpeti. + + + Hostem repéllas lóngius, + + Pacémque dones prótinus: + + Ductóre sic te prǽvio + + Vitémus omne nóxium. + + + Per te sciámus da Patrem, + + Noscámus atque Fílium, + + Te utriúsque Spíritum + + Credámus omni témpore. + + + Glória Patri Dómino, + + Natóque, qui a mórtuis + + Surréxit, ac Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Creator Spirit, all Divine, + + Come, visit every soul of Thine, + + And fill with Thy celestial flame + + The hearts which Thou Thyself didst frame. + + + O gift of God, Thine is the sweet + + Consoling name of Paraclete + + And spring of life and fire and love + + And unction flowing from above. + + + The mystic sevenfold gifts are Thine, + + Finger of God's right hand divine; + + The Father's promise sent to teach + + The tongue a rich and heavenly speech. + + + Kindle with fire brought from above + + Each sense, and fill our hearts with love; + + And grant our flesh, so weak and frail, + + The strength of Thine which cannot fail. + + + Drive far away our deadly foe, + + And grant us Thy true peace to know; + + So we, led by Thy guidance still, + + May safely pass through every ill. + + + To us, through Thee, the grace be shown + + To know the Father and the Son; + + And Spirit of Them both, may we + + Forever rest our faith in Thee. + + + To Sire and Son be praises meet, + + And to the Holy Paraclete; + + And may Christ send us from above + + That Holy Spirit's gift of love. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-responsory-pentecost-sunday.yml b/src/data/propers/common/vespers-responsory-pentecost-sunday.yml new file mode 100644 index 0000000..3bf3b34 --- /dev/null +++ b/src/data/propers/common/vespers-responsory-pentecost-sunday.yml @@ -0,0 +1,24 @@ +# Pentecost's own Vespers responsory ("Spíritus Paráclitus") — distinct +# from Lauds' own ("Spíritus Dómini replévit orbem terrárum", see +# lauds-responsory-pentecost-sunday.yml). Live-verified against Divinum +# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-05-24 +# (Pentecost Sunday itself). +id: vespers-responsory-pentecost-sunday +text: + la: | + R.br. Spíritus Paráclitus, * Allelúja, allelúja. + R. Spíritus Paráclitus, * Allelúja, allelúja. + V. Docébit vos ómnia. + R. Allelúja, allelúja. + V. Glória Patri, et Fílio, * et Spirítui Sancto. + R. Spíritus Paráclitus, * Allelúja, allelúja. + en: | + R.br. The Comforter, Which is the Holy Ghost. * Alleluia, Alleluia. + R. The Comforter, Which is the Holy Ghost. * Alleluia, Alleluia. + V. He shall teach you all things. + R. Alleluia, alleluia. + V. Glory be to the Father, and to the Son, * and to the Holy Ghost. + R. The Comforter, Which is the Holy Ghost. * Alleluia, Alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-versicle-pentecost-sunday.yml b/src/data/propers/common/vespers-versicle-pentecost-sunday.yml new file mode 100644 index 0000000..b9956ef --- /dev/null +++ b/src/data/propers/common/vespers-versicle-pentecost-sunday.yml @@ -0,0 +1,12 @@ +# Pentecost's own Vespers versicle — distinct from Lauds' own +# ("Repléti sunt omnes Spíritu Sancto", see +# lauds-versicle-pentecost-sunday.yml). Live-verified against Divinum +# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-05-24 +# (Pentecost Sunday itself). +id: vespers-versicle-pentecost-sunday +text: + la: "V. Loquebántur váriis linguis Apóstoli, allelúja.\nR. Magnália Dei, allelúja." + en: "V. The Apostles spoke in diverse tongues, alleluia.\nR. The wonderful works of God, alleluia." +status: + la: verified + en: verified diff --git a/src/hours/resolve-common.ts b/src/hours/resolve-common.ts index a052418..d6b1cf0 100644 --- a/src/hours/resolve-common.ts +++ b/src/hours/resolve-common.ts @@ -61,6 +61,7 @@ export const ALWAYS_OVERRIDE_TEMPORAL_IDS = new Set([ 'christmas-octave-sunday', 'immaculate-heart-of-mary', 'ascension', + 'pentecost-sunday', 'circumcision', 'holy-name-of-jesus', 'vigil-of-christmas',