tonus 0.1.8 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/BIBLIOGRAPHY.md +132 -108
  2. package/CHANGELOG.md +598 -1
  3. package/LICENSE +133 -29
  4. package/README.md +106 -83
  5. package/dist/data/am.js +2666 -11196
  6. package/dist/data/ams.d.ts +5 -0
  7. package/dist/data/ams.js +122 -0
  8. package/dist/data/attestation.d.ts +19 -0
  9. package/dist/data/attestation.js +15716 -0
  10. package/dist/data/attestation.json +15711 -0
  11. package/dist/data/cadentiae.d.ts +43 -0
  12. package/dist/data/cadentiae.js +174 -0
  13. package/dist/data/cal.js +48 -0
  14. package/dist/data/census.d.ts +12 -0
  15. package/dist/data/census.js +36 -0
  16. package/dist/data/commune-office.d.ts +4 -0
  17. package/dist/data/commune-office.js +2371 -0
  18. package/dist/data/commune-office.json +2365 -0
  19. package/dist/data/commune.js +181 -11
  20. package/dist/data/corpus-overlap.d.ts +17 -0
  21. package/dist/data/corpus-overlap.js +299 -5
  22. package/dist/data/cot.d.ts +5 -0
  23. package/dist/data/cot.js +172 -0
  24. package/dist/data/cse.d.ts +5 -0
  25. package/dist/data/cse.js +122 -0
  26. package/dist/data/gabc-glyphs.d.ts +45 -0
  27. package/dist/data/gabc-glyphs.js +122 -0
  28. package/dist/data/gr.js +754 -6394
  29. package/dist/data/kyriale.js +116 -116
  30. package/dist/data/la.js +799 -13419
  31. package/dist/data/lh.js +113 -3473
  32. package/dist/data/lu.js +931 -17631
  33. package/dist/data/nocturnale-romanum.js +1659 -10411
  34. package/dist/data/office-ferial.d.ts +4 -0
  35. package/dist/data/office-ferial.js +396 -0
  36. package/dist/data/office-ferial.json +391 -0
  37. package/dist/data/office-monastic.d.ts +17 -1
  38. package/dist/data/office-monastic.js +1403 -466
  39. package/dist/data/office-psalms-monastic.d.ts +13 -1
  40. package/dist/data/office-psalms-monastic.js +9 -0
  41. package/dist/data/propers.js +1 -1
  42. package/dist/data/psalms.js +22919 -5
  43. package/dist/data/psm.d.ts +5 -0
  44. package/dist/data/psm.js +122 -0
  45. package/dist/data/seasonal-respbreve.d.ts +5 -0
  46. package/dist/data/seasonal-respbreve.js +41 -0
  47. package/dist/data/seasonal-respbreve.json +35 -0
  48. package/dist/data/smufl-glyphs.d.ts +17 -0
  49. package/dist/data/smufl-glyphs.js +1546 -0
  50. package/dist/data/smufl-glyphs.json +1530 -0
  51. package/dist/engines/cal/calendar.d.ts +3 -2
  52. package/dist/engines/cal/calendar.js +105 -29
  53. package/dist/engines/cal/data/eras.d.ts +35 -0
  54. package/dist/engines/cal/data/eras.js +128 -0
  55. package/dist/engines/cal/date.js +44 -0
  56. package/dist/engines/cal/types.d.ts +15 -3
  57. package/dist/engines/cal/types.js +5 -5
  58. package/dist/engines/census/census.d.ts +7 -0
  59. package/dist/engines/census/census.js +179 -0
  60. package/dist/engines/census/types.d.ts +55 -0
  61. package/dist/engines/census/types.js +8 -0
  62. package/dist/engines/chant/attest.d.ts +39 -0
  63. package/dist/engines/chant/attest.js +90 -0
  64. package/dist/engines/chant/chant.d.ts +16 -4
  65. package/dist/engines/chant/chant.js +220 -30
  66. package/dist/engines/chant/data/compline.js +2 -1
  67. package/dist/engines/chant/data/masses.d.ts +56 -4
  68. package/dist/engines/chant/data/masses.js +305 -80
  69. package/dist/engines/chant/data/prime.js +1 -1
  70. package/dist/engines/chant/hour.js +279 -58
  71. package/dist/engines/chant/ordinary.d.ts +2 -0
  72. package/dist/engines/chant/ordinary.js +336 -56
  73. package/dist/engines/chant/propers.js +55 -5
  74. package/dist/engines/chant/psalm.d.ts +4 -4
  75. package/dist/engines/chant/psalm.js +25 -11
  76. package/dist/engines/chant/syllabify.d.ts +1 -0
  77. package/dist/engines/chant/syllabify.js +90 -17
  78. package/dist/engines/chant/types.d.ts +115 -12
  79. package/dist/engines/chant/types.js +38 -3
  80. package/dist/engines/harmonia/api.js +4 -0
  81. package/dist/engines/harmonia/data/doctrines.js +3 -1
  82. package/dist/engines/harmonia/tabula.d.ts +3 -0
  83. package/dist/engines/harmonia/tabula.js +1 -0
  84. package/dist/engines/harmonia/voice.d.ts +4 -0
  85. package/dist/engines/harmonia/voice.js +8 -4
  86. package/dist/engines/imprint.js +14 -1
  87. package/dist/engines/planet/orbital.js +4 -4
  88. package/dist/engines/planet/planet.d.ts +10 -0
  89. package/dist/engines/planet/planet.js +30 -3
  90. package/dist/engines/planet/position.js +13 -10
  91. package/dist/engines/planet/types.d.ts +1 -0
  92. package/dist/engines/score/api.d.ts +2 -13
  93. package/dist/engines/score/api.js +21 -8
  94. package/dist/engines/score/articulation.js +2 -2
  95. package/dist/engines/score/cadence.d.ts +76 -0
  96. package/dist/engines/score/cadence.js +96 -0
  97. package/dist/engines/score/emitters/accidentals.d.ts +21 -0
  98. package/dist/engines/score/emitters/accidentals.js +88 -0
  99. package/dist/engines/score/emitters/atramentum.d.ts +107 -0
  100. package/dist/engines/score/emitters/atramentum.js +239 -0
  101. package/dist/engines/score/emitters/breaking.d.ts +62 -0
  102. package/dist/engines/score/emitters/breaking.js +80 -0
  103. package/dist/engines/score/emitters/moderna.d.ts +38 -0
  104. package/dist/engines/score/emitters/moderna.js +612 -0
  105. package/dist/engines/score/emitters/svg.d.ts +143 -0
  106. package/dist/engines/score/emitters/svg.js +1328 -0
  107. package/dist/engines/score/emitters/tracks.d.ts +104 -0
  108. package/dist/engines/score/emitters/tracks.js +728 -0
  109. package/dist/engines/score/infer.d.ts +3 -3
  110. package/dist/engines/score/infer.js +2 -2
  111. package/dist/engines/score/inscriptio.d.ts +69 -0
  112. package/dist/engines/score/inscriptio.js +138 -0
  113. package/dist/engines/score/ir.d.ts +2 -2
  114. package/dist/engines/score/ir.js +59 -12
  115. package/dist/engines/score/lyric.d.ts +23 -0
  116. package/dist/engines/score/lyric.js +234 -0
  117. package/dist/engines/score/meta.d.ts +2 -2
  118. package/dist/engines/score/modulation.d.ts +12 -0
  119. package/dist/engines/score/modulation.js +49 -0
  120. package/dist/engines/score/neume.js +35 -4
  121. package/dist/engines/score/parse.js +150 -9
  122. package/dist/engines/score/phrasing.js +4 -3
  123. package/dist/engines/score/prosody.d.ts +38 -0
  124. package/dist/engines/score/prosody.js +70 -6
  125. package/dist/engines/score/tabula.d.ts +37 -5
  126. package/dist/engines/score/tabula.js +18 -0
  127. package/dist/engines/score/types.d.ts +88 -1
  128. package/dist/engines/temper/api.d.ts +4 -1
  129. package/dist/engines/temper/api.js +28 -5
  130. package/dist/engines/temper/data/guido.js +6 -2
  131. package/dist/engines/temper/data/modes.d.ts +6 -0
  132. package/dist/engines/temper/data/modes.js +42 -0
  133. package/dist/engines/temper/data/tones.d.ts +1 -1
  134. package/dist/engines/temper/data/tones.js +20 -11
  135. package/dist/engines/temper/interval.js +4 -3
  136. package/dist/engines/temper/modality.d.ts +11 -2
  137. package/dist/engines/temper/modality.js +74 -2
  138. package/dist/engines/temper/modes.d.ts +1 -1
  139. package/dist/engines/temper/pitch.d.ts +1 -1
  140. package/dist/engines/temper/pitch.js +12 -2
  141. package/dist/engines/temper/scale.d.ts +53 -0
  142. package/dist/engines/temper/scale.js +107 -8
  143. package/dist/index.d.ts +26 -8
  144. package/dist/index.js +37 -4
  145. package/docs/api/calendar.md +279 -0
  146. package/docs/api/census.md +288 -0
  147. package/docs/api/chant.md +657 -0
  148. package/docs/api/heavens.md +346 -0
  149. package/docs/api/index.md +263 -0
  150. package/docs/api/score.md +873 -0
  151. package/docs/api/tuning.md +619 -0
  152. package/package.json +11 -5
  153. package/dist/data/office-matins-roman.d.ts +0 -19
  154. package/dist/data/office-matins-roman.js +0 -4383
  155. package/dist/data/office-psalms-roman.d.ts +0 -15
  156. package/dist/data/office-psalms-roman.js +0 -28
  157. package/dist/data/office-roman.d.ts +0 -19
  158. package/dist/data/office-roman.js +0 -13792
  159. package/dist/engines/chant/matutinum.d.ts +0 -33
  160. package/dist/engines/chant/matutinum.js +0 -81
  161. package/dist/engines/score/emitters/midi.d.ts +0 -65
  162. package/dist/engines/score/emitters/midi.js +0 -162
  163. package/dist/engines/score/emitters/musicxml.d.ts +0 -18
  164. package/dist/engines/score/emitters/musicxml.js +0 -166
@@ -0,0 +1,5 @@
1
+ import type { Chant } from "./types.js";
2
+ import type { ChantData } from "./gr.js";
3
+ export declare const AMS_SOURCE: Chant["source"];
4
+ export declare const AMS_DATA: ChantData[];
5
+ //# sourceMappingURL=ams.d.ts.map
@@ -0,0 +1,122 @@
1
+ export const AMS_SOURCE = {
2
+ book: "Antiphonale Monasticum Solesmense",
3
+ fullTitle: null,
4
+ edition: "Proprium Sanctorum — offices proper to the Solesmes congregation",
5
+ year: 1935,
6
+ editor: "Solesmes",
7
+ scanSource: "Scan courtesy of Dominique Crochu",
8
+ code: "ams",
9
+ };
10
+ export const AMS_DATA = [
11
+ {
12
+ id: "gregobase:9299",
13
+ incipit: "Gertrudis arca Numinis",
14
+ gabc: "(c4)GEr(g)trú(hi)dis,(j) ar(ih)ca(g) Nú(h')mi(f)nis,(g'_) (,)\r\nSpon(i)só(k')que(j) junc(i)ta(k) Vír(ji)gi(h)num,(g.) (;)\r\nDa(g) nup(h')ti(f)á(g)lis(e) pán(fe)ge(d)re(c'_) (,)\r\nCas(g)tos(hi) a(j)mó(ih)res(g) fœ(h')́de(f)ris.(g.) (::)\r\n",
15
+ office: "hy",
16
+ mode: "8",
17
+ pages: [
18
+ { page: "1223", sequence: 1, extent: 1 }
19
+ ],
20
+ },
21
+ {
22
+ id: "gregobase:9301",
23
+ incipit: "Annulis septem subarrhavit me",
24
+ gabc: "(c3)AN(i)nu(i)lis(i) sep(i')tem(g) sub(i')ar(j>)rhá(i)vit(hi~) me(i.) *(,) Dó(ij)mi(i)nus(i) me(i')us(g) Je(hi)sus(g) Chris(e.)tus,(e.) (;) et(e) tam(g)quam(hf~) spon(h_)sam(g'_) (,) de(f)co(e')rá(f_)vit(f'_) me(h) co(g)ró(e.)na.(e.) (::)",
25
+ office: "an",
26
+ mode: "7",
27
+ pages: [
28
+ { page: "1225", sequence: 2, extent: 1 }
29
+ ],
30
+ },
31
+ {
32
+ id: "gregobase:9302",
33
+ incipit: "Habuit Gertrudis potestatem",
34
+ gabc: "(c4)HA(d)bu(e)it(c') Ger(d)trú(dh'!iv)dis(h.) *(,) pot(hg)es(gf)tá(ghg')tem(h_/iih.) (,) cláu(h>)de(j)re(jk) cæ(ji)lum(hg~) nú(h)bi(ij)bus,(h.) (;) et(h_ggo) a(e)pe(f')rí(g)re(g_e) por(gh)tas(fe) e(d!ewf_e)jus:(dc..) (;) qui(e)a(ed) lin(cd~)gua(d) e(e_f)jus(ghg/hiHGgo) (,) cla(e')vis(f) cæ(g)li(fe) fac(d)ta(cd) est.(d.) (::)",
35
+ office: "an",
36
+ mode: "1",
37
+ pages: [
38
+ { page: "1225", sequence: 3, extent: 2 }
39
+ ],
40
+ },
41
+ {
42
+ id: "gregobase:9304",
43
+ incipit: "Ad sacros Virgo",
44
+ gabc: "(f3)Ad(c) sa(f')cros(e) vir(f.)go(h.) (,) thá(g)la(f)mos(g') an(h)hé(g.)lans(f.) (;)\r\nNúp(ff)ti(f')as(g) cæ(h.)lo(e.) (,) ce(h)le(i)brá(j')re(kxk) ges(i.)tit,(j.) (:)\r\nEt(j) pi(i')is(h) vo(g.)tis(i.) (,) ní(f)mi(f)um(g') mo(e)rán(d.)tem(c.) (,)\r\nPró(h)vo(f')cat(g) ho(e.)ram.(f.) (::)\r\n",
45
+ office: "hy",
46
+ mode: "2",
47
+ pages: [
48
+ { page: "1226", sequence: 2, extent: 2 }
49
+ ],
50
+ },
51
+ {
52
+ id: "gregobase:9306",
53
+ incipit: "Casta columba nidificans",
54
+ gabc: "(c4)Cas(h)ta(f') co(g)lúm(gh)ba(g.) (,) ni(gh)dí(hg)fi(f)cans(g'_) in(f) ca(g')vér(h)na(g') ma(h)cé(hj)ri(h)æ(h.) (,) sa(i)cri(j) lá(k')te(j)ris(ji) Je(h)su(hi) Chris(h)ti,(g.) (;) mel(ghg') su(e)a(fg)vís(g)si(fe)mum(d.) (,) de(e_f) pe(gf)tra(gh) su(h)gé(g.)bat.(g.) (::)",
55
+ office: "an",
56
+ mode: "8",
57
+ pages: [
58
+ { page: "1229", sequence: 1, extent: 1 }
59
+ ],
60
+ },
61
+ {
62
+ id: "gregobase:9307",
63
+ incipit: "Loquebatur Christus ad dilectam",
64
+ gabc: "(c4)LO(d)que(e_f)bá(g)tur(g) Chris(gh)tus(g'_) *() ad(g) di(g')léc(g)tam(d') Ger(e)trú(fe)dem(e'_) (,) fá(f)ci(fe)e(f') ad(g) fá(gh)ci(g)em,(g.) (;) sic(i_j)ut(h) so(h)let(gf) lo(g)qui(d) ho(e_f)mo(g'_) (,) ad(g) a(gf)mí(g)cum(ghg) su(e.)um.(e.) (::)",
65
+ office: "an",
66
+ mode: "4",
67
+ pages: [
68
+ { page: "1229", sequence: 2, extent: 1 }
69
+ ],
70
+ },
71
+ {
72
+ id: "gregobase:9308",
73
+ incipit: "Beatae Gertrudis verba",
74
+ gabc: "(c3)BE(e)á(e)tæ(g') Ger(h)trú(i_h)dis(g_h) ver(i_j)ba(i'_) *(,) di(i)ví(j')ni(i) e(hi)rant(h') a(h)mó(hg)ris(fe) já(fe)cu(de)la:(e.) (;) lám(f')pa(e)des(d) e(e_f)jus,(f.) (,) lám(g')pa(h)des(i) i(hg)gnis(fe) at(d)que(f_h) flam(g)má(e.)rum.(e.) (::)",
75
+ office: "an",
76
+ mode: "7",
77
+ pages: [
78
+ { page: "1229", sequence: 3, extent: 1 }
79
+ ],
80
+ },
81
+ {
82
+ id: "gregobase:9309",
83
+ incipit: "Dilectae animam e carcere corporis",
84
+ gabc: "(c4)DI(f)léc(gh)tæ(f) á(g')ni(f)mam(f'_) *(,) e(f) cár(e')ce(f)re(d') cór(c)po(d)ris(fe) ex(gh)e(gh)ún(fv_2fv_2//ggf)tem(f.) (;) ac(f)cé(ixf!gwh!io)pit(h) Chris(hj)tus(h') in(h) ul(h')nas(g) su(hv_GF)as,(f.) (;) et(e) cor(fg~) su(gf)um(d_c) il(f)li(fg) a(g)mán(gf)ter(g) a(ghg)pé(f')ru(f)it.(f.) (::)",
85
+ office: "an",
86
+ mode: "6",
87
+ pages: [
88
+ { page: "1230", sequence: 1, extent: 1 }
89
+ ],
90
+ },
91
+ {
92
+ id: "gregobase:9321",
93
+ incipit: "Damasci praepositus",
94
+ gabc: "(c3)DA(e!fwh)má(f)sci,(fe) *() præ(d)pó(ef)si(f)tus(e.) (,) gen(g')tis(h) A(i')ré(h)tæ(f') re(h)gis(g.) (;) vó(h')lu(h)it(h') me(h) com(hg~)pre(f)hén(g_h)de(g)re :(e.) (:) a(e) frá(ef)tri(e)bus(ef) per(e) mu(e_fE'D)rum(d'_) (,) sub(d)mís(e')sus(d) sum(e') in(f) spor(h_i)ta:(htg/hih.) (;) et(h) sic(i) e(g')vá(h)si(f') ma(h)nus(e') e(f>)jus(e'_) (,) in(e>) nó(c_d)mi(ef)ne(f') Dó(e)mi(de)ni.(e.) (::)",
95
+ office: "an",
96
+ mode: "8",
97
+ pages: [
98
+ { page: "812", sequence: 3, extent: 2 }
99
+ ],
100
+ },
101
+ {
102
+ id: "gregobase:9322",
103
+ incipit: "Ter virgis caesus sum",
104
+ gabc: "(c3)TER(e!fwh) vir(f>)gis(ed) cæ(ef)sus(f) sum,(e.) *(,) se(g')mel(h) la(i)pi(hf)dá(h')tus(h) sum:(g.) (;) ter(i) nau(i)frá(h')gi(h)um(h) pér(ij)tu(i)li(hg/hih.) (,) pro(fe) Chris(f!gwh_f)ti(g') nó(e)mi(de)ne.(e.) (::) E(h) u(h) o(g) u(h) a(f) e.(e.) (::)",
105
+ office: "an",
106
+ mode: "8",
107
+ pages: [
108
+ { page: "813", sequence: 1, extent: 1 }
109
+ ],
110
+ },
111
+ {
112
+ id: "gregobase:10402",
113
+ incipit: "Gratia Dei in me",
114
+ gabc: "(c3)\r\nGRá(f)ti(e)a(f) De(h_i)i(ii) *(,)\r\nin(h) me(i) vá(j')cu(h)a(ij) non(j>) fu(i.)it:(i.) (;)\r\nsed(i) grá(f_i)ti(h')a(g) e(f_e~)jus(f_e) (,)\r\nsem(d')per(e) in(f') me(h) ma(f.)net.(f.) (::) E(i) u(h) o(i) u(j) a(h) e.(f.) (::)\r\n",
115
+ office: "an",
116
+ mode: "4",
117
+ pages: [
118
+ { page: "812", sequence: 2, extent: 1 }
119
+ ],
120
+ }
121
+ ];
122
+ //# sourceMappingURL=ams.js.map
@@ -0,0 +1,19 @@
1
+ /** One chant's manuscript attestation. `century` is a TERMINUS ANTE QUEM:
2
+ * the chant existed by then because a book from that century holds it — it
3
+ * is NOT a composition date, and an undated chant may be older still. */
4
+ export interface Attestation {
5
+ /** Earliest surviving witness, as a century number (10 = the 900s). */
6
+ century: number;
7
+ /** Latest witness, same scale — how long it stayed in use. */
8
+ latest: number;
9
+ /** How many indexed manuscript witnesses CANTUS holds. */
10
+ witnesses: number;
11
+ /** Which cursus transmits it, where CANTUS records one. */
12
+ cursus: "monastic" | "secular" | "both" | null;
13
+ /** The Cantus ID this attestation was read from. */
14
+ cantusId: string;
15
+ /** How the id was assigned: the direct text matcher, or the nocturnale crosswalk (gap-fill only). */
16
+ via: "map" | "crosswalk";
17
+ }
18
+ export declare const ATTESTATION: Record<string, Attestation>;
19
+ //# sourceMappingURL=attestation.d.ts.map