diff --git a/src/data/propers/common/lauds-capitulum-st-benedict.yml b/src/data/propers/common/lauds-capitulum-st-benedict.yml new file mode 100644 index 0000000..a31babe --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-st-benedict.yml @@ -0,0 +1,21 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 (clean year, per st-benedict.yml's own comment) +# -- also cross-checked directly against the source's own Monastic- +# specific file (SanctiM/03-21.txt), which carries a full proper office +# for his Transitus despite the plain secular Sancti file having none. +# Own real proper chapter and own hymns at both hours; Lauds responsory +# and both hours' versicle turn out byte-identical to Common-of-a- +# Confessor-Bishop's own (reused, not duplicated separately here since +# Vespers has its own distinct responsory -- see vespers-responsory-st- +# benedict.yml). No English rendering exists in the reference engine for +# this chapter or either hymn -- own translations, marked draft. +id: lauds-capitulum-st-benedict +text: + la: "Ecce Conféssor magnus, quasi stella matutína in médio nébulæ, et quasi luna plena, in diébus suis lucet. Et quasi sol refúlgens, sic ille effúlsit in templo Dei." + en: "Behold a great confessor, like the morning star amid a cloud, and like the full moon shining in his days; and like the sun in its brightness, so did he shine in the temple of God." +citation: + la: "Eccli 50:6-7" + en: "Sir 50:6-7" +status: + la: verified + en: draft diff --git a/src/data/propers/common/lauds-hymn-st-benedict.yml b/src/data/propers/common/lauds-hymn-st-benedict.yml new file mode 100644 index 0000000..441e52b --- /dev/null +++ b/src/data/propers/common/lauds-hymn-st-benedict.yml @@ -0,0 +1,98 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- "Inter ætérnas súperum corónas," own proper +# Sapphic hymn. No English rendering exists in the reference engine -- +# own original translation, marked draft. See lauds-capitulum-st- +# benedict.yml's header. +id: lauds-hymn-st-benedict +text: + la: >- + Inter ætérnas súperum corónas, + + Quas sacro partas rétinent agóne, + + Emicas celsis méritis corúscus, + + O Benedícte! + + + Sancta te compsit púerum senéctus, + + Nil sibi de te rápuit volúptas, + + Aruit mundi tibi flos, ad alta + + Mente leváto. + + + Hinc fuga lapsus, pátriam, paréntes + + Déseris, fervens némorum colónus; + + Edomas carnem, subigísque Christo + + Tortor acérbus. + + + Ne diu tutus látebras fovéres, + + Digna te produnt óperum piórum; + + Spárgitur felix céleri per orbem + + Fama volátu. + + + Glória Patri genitǽque Proli, + + Et tibi compar utriúsque semper, + + Spíritus alme, Deus unus, omni + + Témpore sæcli. Amen. + en: >- + Among the eternal crowns of the blessed, + + Won and held fast through holy contest, + + You shine forth radiant with lofty merits, + + O Benedict! + + + A holy old age adorned you while a boy still, + + No pleasure ever seized its share of you, + + The world's flower withered for you, your mind + + Already lifted on high. + + + Hence, fleeing ruin, your homeland and parents + + You leave, an ardent dweller of the forest; + + You tame the flesh, and, its harsh tormentor, + + Subdue it wholly to Christ. + + + Lest you too long keep safe your hidden refuge, + + Worthy deeds of holiness reveal you; + + Your happy fame is scattered through the whole world + + Borne on swift wing. + + + Glory to the Father and the begotten Son, + + And, ever equal to them both, to you, + + Kindly Spirit, one God, through every + + Age of the world. Amen. +status: + la: verified + en: draft diff --git a/src/data/propers/common/lauds-responsory-st-benedict.yml b/src/data/propers/common/lauds-responsory-st-benedict.yml new file mode 100644 index 0000000..d4de22b --- /dev/null +++ b/src/data/propers/common/lauds-responsory-st-benedict.yml @@ -0,0 +1,26 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- byte-identical to Common-of-a-Confessor- +# Bishop's own Lauds responsory ("Amávit eum Dóminus"), NOT his own +# `common: common-of-an-abbot` (which resolves to Confessor-Not-Bishop's +# different "Os justi" responsory -- would be wrong here) -- authored +# explicitly under his own id for that reason, not left to fall through. +# See lauds-capitulum-st-benedict.yml's header. +id: lauds-responsory-st-benedict +text: + la: | + R.br. Amávit eum Dóminus, * Et ornávit eum. + ℟. Amávit eum Dóminus, * Et ornávit eum. + ℣. Stolam glóriæ índuit eum. + ℟. Et ornávit eum. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Amávit eum Dóminus, * Et ornávit eum. + en: | + R.br. The Lord loved him, * and beautified him. + ℟. The Lord loved him, * and beautified him. + ℣. He clothed him with a robe of glory. + ℟. And beautified him. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. The Lord loved him, * and beautified him. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-st-benedict.yml b/src/data/propers/common/lauds-versicle-st-benedict.yml new file mode 100644 index 0000000..7aa4d25 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-st-benedict.yml @@ -0,0 +1,15 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- byte-identical to Common-of-a-Confessor- +# Bishop's own versicle, authored explicitly for the same reason as +# lauds-responsory-st-benedict.yml. Same versicle as Vespers. +id: lauds-versicle-st-benedict +text: + la: | + ℣. Justum dedúxit Dóminus per vias rectas. + ℟. Et osténdit illi regnum Dei. + en: | + ℣. The Lord guided the just in right paths. + ℟. And showed him the kingdom of God. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-st-benedict.yml b/src/data/propers/common/vespers-hymn-st-benedict.yml new file mode 100644 index 0000000..0776ef5 --- /dev/null +++ b/src/data/propers/common/vespers-hymn-st-benedict.yml @@ -0,0 +1,118 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21 -- "Láudibus cives résonent canóris," own +# proper Sapphic hymn recounting his flight to solitude at Subiaco, +# conquering temptation, and destroying the shrine to Apollo/Venus at +# Monte Cassino to found his own monastery there. No English rendering +# exists in the reference engine -- own original translation, marked +# draft. See lauds-capitulum-st-benedict.yml's header. +id: vespers-hymn-st-benedict +text: + la: >- + Láudibus cives résonent canóris, + + Templa solémnes moduléntur hymnos: + + Hac die summi Benedíctus arcem + + Scandit olýmpi. + + + Ille floréntes peragébat annos, + + Cum puer dulcis pátriæ penátes + + Liquit, et solus látuit silénti + + Cónditus antro. + + + Inter urtícas rigidósque sentes + + Vicit altrícem scélerum juvéntam: + + Inde consrípsit documénta vitæ + + Pulchra beátæ. + + + Æream turpis Clárii figúram, + + Et nemus stravit Véneri dicátum, + + Atque Baptístæ pósuit sacráto + + Monte sacéllum. + + + Jam que felíci résidens olympo, + + Inter ardéntes Séraphim catévas + + Spectat, et dulci réficit cliéntum + + Corda liquóre. + + + Glória Patri, Genitǽque Proli + + Et tibi, compar utriúsque semper + + Spíritus alme, Deus unus, omni + + Témpore sæcli. Amen. + en: >- + Let the citizens of heaven sound their tuneful praises, + + Let the temples chant their solemn hymns: + + On this day Benedict scales the heights + + Of highest heaven. + + + He was passing through his flowering years, + + When as a boy he left the sweet hearth + + Of his homeland, and lay hidden alone, + + Concealed in a silent cave. + + + Among nettles and unyielding briars + + He conquered youth, the nurse of every vice: + + From there he set down the beautiful precepts + + Of the blessed life. + + + The bronze image of shameful Apollo, + + And the grove given over to Venus, he cast down, + + And on that sacred mountain he raised + + A shrine to the Baptist. + + + And now, dwelling on happy Olympus, + + Amid the burning ranks of the Seraphim, + + He watches, and with sweet nectar refreshes + + The hearts of his own. + + + Glory to the Father, and to the begotten Son, + + And, ever equal to them both, to you, + + Kindly Spirit, one God, through every + + Age of the world. Amen. +status: + la: verified + en: draft diff --git a/src/data/propers/common/vespers-responsory-st-benedict.yml b/src/data/propers/common/vespers-responsory-st-benedict.yml new file mode 100644 index 0000000..aee44ac --- /dev/null +++ b/src/data/propers/common/vespers-responsory-st-benedict.yml @@ -0,0 +1,24 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21, cross-checked directly against the source's +# own SanctiM/03-21.txt ([Responsory Vespera]) -- his own proper +# responsory, invoking him directly by name ("Sancte Pater Benedícte"). +# See lauds-capitulum-st-benedict.yml's header. +id: vespers-responsory-st-benedict +text: + la: | + R.br. Sancte Pater Benedícte, * Intercéde pro nobis. + ℟. Sancte Pater Benedícte, * Intercéde pro nobis. + ℣. Ut digni efficiámur promissiónibus Christi. + ℟. Intercéde pro nobis. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Sancte Pater Benedícte, * Intercéde pro nobis. + en: | + R.br. Holy Father Benedict, * intercede for us. + ℟. Holy Father Benedict, * intercede for us. + ℣. That we may be made worthy of the promises of Christ. + ℟. Intercede for us. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. Holy Father Benedict, * intercede for us. +status: + la: verified + en: draft diff --git a/src/data/propers/common/vespers-versicle-st-benedict.yml b/src/data/propers/common/vespers-versicle-st-benedict.yml new file mode 100644 index 0000000..6bc8dde --- /dev/null +++ b/src/data/propers/common/vespers-versicle-st-benedict.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21 -- same versicle as Lauds (see lauds-versicle- +# st-benedict.yml). +id: vespers-versicle-st-benedict +text: + la: | + ℣. Justum dedúxit Dóminus per vias rectas. + ℟. Et osténdit illi regnum Dei. + en: | + ℣. The Lord guided the just in right paths. + ℟. And showed him the kingdom of God. +status: + la: verified + en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index 5b50625..20aa597 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -300,6 +300,19 @@ describe('resolveOrdo("lauds", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Mella cor obdulcántia'); }); + it("resolves St. Benedict's own proper chapter/hymn, with the Confessor-Bishop responsory/versicle (not his own common-of-an-abbot's)", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617), 2033-03-21 (clean year), cross-checked against SanctiM/ + // 03-21.txt directly. See lauds-capitulum-st-benedict.yml's header. + const ordo = resolveOrdo('lauds', '2033-03-21'); + const chapter = ordo.parts.find((p) => p.kind === 'chapter'); + expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Sir 50:6-7'); + const responsory = ordo.parts.find((p) => p.kind === 'responsory'); + expect(responsory?.kind === 'responsory' ? responsory.text.text.la : undefined).toContain('Amávit eum Dóminus'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Inter ætérnas súperum corónas'); + }); + it('includes the Kyrie + Our Father lead-in right after the Benedictus, before the day collect (either form)', () => { const ordo = resolveOrdo('lauds', FERIAL_TUESDAY); const litanyIndex = ordo.parts.findIndex((p) => p.kind === 'preces' && p.text.text.la?.includes('Kýrie, eléison')); diff --git a/tests/hours/vespers.test.ts b/tests/hours/vespers.test.ts index 386abda..91eb174 100644 --- a/tests/hours/vespers.test.ts +++ b/tests/hours/vespers.test.ts @@ -353,6 +353,17 @@ describe('resolveOrdo("vespers", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Anglórum jam Apóstolus'); }); + it("resolves St. Benedict's own proper Vespers responsory/hymn", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617), 2033-03-21, cross-checked against SanctiM/03-21.txt's own + // [Responsory Vespera]. See lauds-capitulum-st-benedict.yml's header. + const ordo = resolveOrdo('vespers', '2033-03-21'); + const responsory = ordo.parts.find((p) => p.kind === 'responsory'); + expect(responsory?.kind === 'responsory' ? responsory.text.text.la : undefined).toContain('Sancte Pater Benedícte'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Láudibus cives résonent canóris'); + }); + it("renders Passiontide's seasonal office, with the Gloria Patri omitted from the responsory", () => { // 2026-03-30 is Holy Monday (Passion Sunday 2026-03-22 through Holy // Saturday 2026-04-04) -- deliberately not 03-25, the Annunciation's