tonus 0.1.8 → 0.6.1

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 (166) hide show
  1. package/BIBLIOGRAPHY.md +138 -108
  2. package/CHANGELOG.md +664 -1
  3. package/LICENSE +133 -29
  4. package/README.md +107 -80
  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/data/zodiac.d.ts +47 -0
  83. package/dist/engines/harmonia/data/zodiac.js +163 -0
  84. package/dist/engines/harmonia/tabula.d.ts +3 -0
  85. package/dist/engines/harmonia/tabula.js +1 -0
  86. package/dist/engines/harmonia/voice.d.ts +4 -0
  87. package/dist/engines/harmonia/voice.js +8 -4
  88. package/dist/engines/imprint.js +14 -1
  89. package/dist/engines/planet/orbital.js +4 -4
  90. package/dist/engines/planet/planet.d.ts +10 -0
  91. package/dist/engines/planet/planet.js +30 -3
  92. package/dist/engines/planet/position.js +13 -10
  93. package/dist/engines/planet/types.d.ts +1 -0
  94. package/dist/engines/score/api.d.ts +2 -13
  95. package/dist/engines/score/api.js +21 -8
  96. package/dist/engines/score/articulation.js +2 -2
  97. package/dist/engines/score/cadence.d.ts +76 -0
  98. package/dist/engines/score/cadence.js +96 -0
  99. package/dist/engines/score/emitters/accidentals.d.ts +21 -0
  100. package/dist/engines/score/emitters/accidentals.js +88 -0
  101. package/dist/engines/score/emitters/atramentum.d.ts +107 -0
  102. package/dist/engines/score/emitters/atramentum.js +239 -0
  103. package/dist/engines/score/emitters/breaking.d.ts +62 -0
  104. package/dist/engines/score/emitters/breaking.js +80 -0
  105. package/dist/engines/score/emitters/moderna.d.ts +38 -0
  106. package/dist/engines/score/emitters/moderna.js +612 -0
  107. package/dist/engines/score/emitters/svg.d.ts +143 -0
  108. package/dist/engines/score/emitters/svg.js +1335 -0
  109. package/dist/engines/score/emitters/tracks.d.ts +104 -0
  110. package/dist/engines/score/emitters/tracks.js +728 -0
  111. package/dist/engines/score/infer.d.ts +3 -3
  112. package/dist/engines/score/infer.js +2 -2
  113. package/dist/engines/score/inscriptio.d.ts +69 -0
  114. package/dist/engines/score/inscriptio.js +138 -0
  115. package/dist/engines/score/ir.d.ts +2 -2
  116. package/dist/engines/score/ir.js +59 -12
  117. package/dist/engines/score/lyric.d.ts +23 -0
  118. package/dist/engines/score/lyric.js +234 -0
  119. package/dist/engines/score/meta.d.ts +2 -2
  120. package/dist/engines/score/modulation.d.ts +12 -0
  121. package/dist/engines/score/modulation.js +49 -0
  122. package/dist/engines/score/neume.js +35 -4
  123. package/dist/engines/score/parse.js +150 -9
  124. package/dist/engines/score/phrasing.js +4 -3
  125. package/dist/engines/score/prosody.d.ts +38 -0
  126. package/dist/engines/score/prosody.js +70 -6
  127. package/dist/engines/score/tabula.d.ts +37 -5
  128. package/dist/engines/score/tabula.js +18 -0
  129. package/dist/engines/score/types.d.ts +88 -1
  130. package/dist/engines/temper/api.d.ts +4 -1
  131. package/dist/engines/temper/api.js +28 -5
  132. package/dist/engines/temper/data/guido.js +6 -2
  133. package/dist/engines/temper/data/modes.d.ts +6 -0
  134. package/dist/engines/temper/data/modes.js +42 -0
  135. package/dist/engines/temper/data/tones.d.ts +1 -1
  136. package/dist/engines/temper/data/tones.js +20 -11
  137. package/dist/engines/temper/interval.js +4 -3
  138. package/dist/engines/temper/modality.d.ts +11 -2
  139. package/dist/engines/temper/modality.js +74 -2
  140. package/dist/engines/temper/modes.d.ts +1 -1
  141. package/dist/engines/temper/pitch.d.ts +1 -1
  142. package/dist/engines/temper/pitch.js +12 -2
  143. package/dist/engines/temper/scale.d.ts +53 -0
  144. package/dist/engines/temper/scale.js +107 -8
  145. package/dist/index.d.ts +26 -8
  146. package/dist/index.js +40 -4
  147. package/docs/api/calendar.md +279 -0
  148. package/docs/api/census.md +288 -0
  149. package/docs/api/chant.md +657 -0
  150. package/docs/api/heavens.md +396 -0
  151. package/docs/api/index.md +265 -0
  152. package/docs/api/score.md +906 -0
  153. package/docs/api/tuning.md +619 -0
  154. package/package.json +13 -5
  155. package/dist/data/office-matins-roman.d.ts +0 -19
  156. package/dist/data/office-matins-roman.js +0 -4383
  157. package/dist/data/office-psalms-roman.d.ts +0 -15
  158. package/dist/data/office-psalms-roman.js +0 -28
  159. package/dist/data/office-roman.d.ts +0 -19
  160. package/dist/data/office-roman.js +0 -13792
  161. package/dist/engines/chant/matutinum.d.ts +0 -33
  162. package/dist/engines/chant/matutinum.js +0 -81
  163. package/dist/engines/score/emitters/midi.d.ts +0 -65
  164. package/dist/engines/score/emitters/midi.js +0 -162
  165. package/dist/engines/score/emitters/musicxml.d.ts +0 -18
  166. package/dist/engines/score/emitters/musicxml.js +0 -166
@@ -1,5 +1,5 @@
1
1
  // AUTO-GENERATED by scripts/extract-commune.mjs — do not edit manually
2
- // Generated: 2026-03-28T23:14:43.930Z
2
+ // Generated: 2026-07-27T19:59:30.686Z
3
3
  export const COMMUNE_PROPERS = [
4
4
  {
5
5
  commune: "C10",
@@ -14,12 +14,12 @@ export const COMMUNE_PROPERS = [
14
14
  {
15
15
  commune: "C10Pasc",
16
16
  name: "C10Pasc",
17
- in: null,
18
- gr: null,
17
+ in: "gregobase:1140",
18
+ gr: "gregobase:392",
19
19
  al: null,
20
20
  tr: null,
21
21
  of: "gregobase:567",
22
- co: null,
22
+ co: "gregobase:160",
23
23
  },
24
24
  {
25
25
  commune: "C10a",
@@ -28,7 +28,7 @@ export const COMMUNE_PROPERS = [
28
28
  gr: "gregobase:756",
29
29
  al: "gregobase:1209",
30
30
  tr: null,
31
- of: null,
31
+ of: "gregobase:210",
32
32
  co: "gregobase:1144",
33
33
  },
34
34
  {
@@ -39,17 +39,27 @@ export const COMMUNE_PROPERS = [
39
39
  al: "gregobase:127",
40
40
  tr: "gregobase:1354",
41
41
  of: "gregobase:280",
42
- co: null,
42
+ co: "gregobase:160",
43
43
  },
44
44
  {
45
45
  commune: "C10c",
46
46
  name: "BMV Sabbato Pasc.",
47
- in: null,
47
+ in: "gregobase:1140",
48
48
  gr: "gregobase:392",
49
49
  al: "gregobase:281",
50
50
  tr: "gregobase:392",
51
51
  of: "gregobase:280",
52
- co: null,
52
+ co: "gregobase:160",
53
+ },
54
+ {
55
+ commune: "C10n",
56
+ name: "C10n",
57
+ in: "gregobase:1140",
58
+ gr: "gregobase:392",
59
+ al: null,
60
+ tr: null,
61
+ of: "gregobase:210",
62
+ co: "gregobase:160",
53
63
  },
54
64
  {
55
65
  commune: "C11",
@@ -81,6 +91,16 @@ export const COMMUNE_PROPERS = [
81
91
  of: "gregobase:779",
82
92
  co: "gregobase:586",
83
93
  },
94
+ {
95
+ commune: "C2-1p",
96
+ name: "C2-1p",
97
+ in: "gregobase:340",
98
+ gr: null,
99
+ al: "gregobase:762",
100
+ tr: null,
101
+ of: "gregobase:1382",
102
+ co: "gregobase:617",
103
+ },
84
104
  {
85
105
  commune: "C2",
86
106
  name: "Martyris",
@@ -111,6 +131,46 @@ export const COMMUNE_PROPERS = [
111
131
  of: "gregobase:407",
112
132
  co: "gregobase:89",
113
133
  },
134
+ {
135
+ commune: "C2ap",
136
+ name: "C2ap",
137
+ in: "gregobase:340",
138
+ gr: null,
139
+ al: "gregobase:762",
140
+ tr: null,
141
+ of: "gregobase:1382",
142
+ co: "gregobase:617",
143
+ },
144
+ {
145
+ commune: "C2b-1",
146
+ name: "Martyris non Pont. alt",
147
+ in: "gregobase:227",
148
+ gr: "gregobase:1206",
149
+ al: "gregobase:1118",
150
+ tr: "gregobase:1206",
151
+ of: "gregobase:779",
152
+ co: "gregobase:586",
153
+ },
154
+ {
155
+ commune: "C2b",
156
+ name: "Martyris non Pont.",
157
+ in: "gregobase:456",
158
+ gr: "gregobase:827",
159
+ al: "gregobase:1187",
160
+ tr: "gregobase:827",
161
+ of: "gregobase:630",
162
+ co: "gregobase:317",
163
+ },
164
+ {
165
+ commune: "C2bp",
166
+ name: "C2bp",
167
+ in: "gregobase:340",
168
+ gr: null,
169
+ al: "gregobase:762",
170
+ tr: "gregobase:1119",
171
+ of: "gregobase:1382",
172
+ co: "gregobase:617",
173
+ },
114
174
  {
115
175
  commune: "C2p",
116
176
  name: "C2p",
@@ -141,6 +201,16 @@ export const COMMUNE_PROPERS = [
141
201
  of: "gregobase:835",
142
202
  co: "gregobase:1002",
143
203
  },
204
+ {
205
+ commune: "C3a-1p",
206
+ name: "C3a-1p",
207
+ in: "gregobase:1231",
208
+ gr: null,
209
+ al: "gregobase:106",
210
+ tr: null,
211
+ of: "gregobase:870",
212
+ co: "gregobase:1109",
213
+ },
144
214
  {
145
215
  commune: "C3a",
146
216
  name: "Martyrum TP",
@@ -151,6 +221,36 @@ export const COMMUNE_PROPERS = [
151
221
  of: "gregobase:33",
152
222
  co: "gregobase:699",
153
223
  },
224
+ {
225
+ commune: "C3ap",
226
+ name: "C3ap",
227
+ in: "gregobase:1231",
228
+ gr: null,
229
+ al: "gregobase:106",
230
+ tr: null,
231
+ of: "gregobase:870",
232
+ co: "gregobase:1109",
233
+ },
234
+ {
235
+ commune: "C3b",
236
+ name: "Martyrum non Pont.",
237
+ in: "gregobase:261",
238
+ gr: "gregobase:888",
239
+ al: "gregobase:1250",
240
+ tr: "gregobase:888",
241
+ of: "gregobase:919",
242
+ co: "gregobase:658",
243
+ },
244
+ {
245
+ commune: "C3bp",
246
+ name: "C3bp",
247
+ in: "gregobase:1231",
248
+ gr: null,
249
+ al: "gregobase:106",
250
+ tr: "gregobase:1119",
251
+ of: "gregobase:870",
252
+ co: "gregobase:1109",
253
+ },
154
254
  {
155
255
  commune: "C3p",
156
256
  name: "Martyrum Pont.",
@@ -189,8 +289,48 @@ export const COMMUNE_PROPERS = [
189
289
  al: "gregobase:14",
190
290
  tr: "gregobase:511",
191
291
  of: "gregobase:777",
292
+ co: "gregobase:1008",
293
+ },
294
+ {
295
+ commune: "C4b-1",
296
+ name: "Conf. non Pont. alt",
297
+ in: "gregobase:48",
298
+ gr: "gregobase:415",
299
+ al: "gregobase:1187",
300
+ tr: "gregobase:7670",
301
+ of: "gregobase:630",
302
+ co: "gregobase:1154",
303
+ },
304
+ {
305
+ commune: "C4b-2",
306
+ name: "Conf. non Pont. alt 2",
307
+ in: "gregobase:233",
308
+ gr: "gregobase:511",
309
+ al: "gregobase:14",
310
+ tr: "gregobase:511",
311
+ of: "gregobase:777",
192
312
  co: null,
193
313
  },
314
+ {
315
+ commune: "C4b",
316
+ name: "Conf. non Pont.",
317
+ in: "gregobase:456",
318
+ gr: "gregobase:235",
319
+ al: "gregobase:477",
320
+ tr: "gregobase:235",
321
+ of: "gregobase:779",
322
+ co: "gregobase:1008",
323
+ },
324
+ {
325
+ commune: "C4c",
326
+ name: "C4c",
327
+ in: "gregobase:456",
328
+ gr: "gregobase:235",
329
+ al: "gregobase:477",
330
+ tr: "gregobase:235",
331
+ of: "gregobase:779",
332
+ co: "gregobase:1008",
333
+ },
194
334
  {
195
335
  commune: "C5-1",
196
336
  name: "Virginum alt",
@@ -231,6 +371,16 @@ export const COMMUNE_PROPERS = [
231
371
  of: "gregobase:722",
232
372
  co: "gregobase:1008",
233
373
  },
374
+ {
375
+ commune: "C5c",
376
+ name: "C5c",
377
+ in: "gregobase:1374",
378
+ gr: "gregobase:34",
379
+ al: "gregobase:724",
380
+ tr: "gregobase:34",
381
+ of: "gregobase:630",
382
+ co: "gregobase:1154",
383
+ },
234
384
  {
235
385
  commune: "C6-1",
236
386
  name: "Dedicationis alt",
@@ -271,13 +421,23 @@ export const COMMUNE_PROPERS = [
271
421
  of: "gregobase:1333",
272
422
  co: "gregobase:1301",
273
423
  },
424
+ {
425
+ commune: "C6b",
426
+ name: "C6b",
427
+ in: "gregobase:938",
428
+ gr: "gregobase:1373",
429
+ al: "gregobase:500",
430
+ tr: "gregobase:1373",
431
+ of: "gregobase:177",
432
+ co: "gregobase:844",
433
+ },
274
434
  {
275
435
  commune: "C7",
276
436
  name: "Abbatum",
277
437
  in: "gregobase:938",
278
438
  gr: "gregobase:394",
279
439
  al: "gregobase:406",
280
- tr: null,
440
+ tr: "gregobase:394",
281
441
  of: "gregobase:177",
282
442
  co: "gregobase:1292",
283
443
  },
@@ -288,9 +448,19 @@ export const COMMUNE_PROPERS = [
288
448
  gr: "gregobase:947",
289
449
  al: "gregobase:406",
290
450
  tr: "gregobase:947",
291
- of: null,
451
+ of: "gregobase:177",
292
452
  co: "gregobase:799",
293
453
  },
454
+ {
455
+ commune: "C7b",
456
+ name: "C7b",
457
+ in: "gregobase:938",
458
+ gr: "gregobase:394",
459
+ al: "gregobase:406",
460
+ tr: null,
461
+ of: "gregobase:177",
462
+ co: "gregobase:1292",
463
+ },
294
464
  {
295
465
  commune: "C8",
296
466
  name: "Mart. Pont.",
@@ -963,7 +1133,7 @@ export const FEAST_COMMUNE = [
963
1133
  },
964
1134
  {
965
1135
  feastId: "08-26",
966
- commune: "C2-1b",
1136
+ commune: "C2b-1",
967
1137
  },
968
1138
  {
969
1139
  feastId: "08-27",
@@ -4,4 +4,21 @@ export interface CorpusOverlap {
4
4
  shared: Record<string, number>;
5
5
  }
6
6
  export declare const CORPUS_OVERLAP: Record<string, CorpusOverlap>;
7
+ /**
8
+ * What each book HOLDS, before the keep set — the ledger of the cut.
9
+ *
10
+ * `corpus(code)` reports what tonus kept; this reports what was there to keep,
11
+ * in the same genera/modes shape, so every omission is visible rather than
12
+ * merely implied by a smaller number. Only the extractor can measure this: it
13
+ * is the one place that reads the un-cut book.
14
+ *
15
+ * Books outside GregoBase (nr, ky) have no entry — the same "unmeasured, not
16
+ * zero" rule the overlap follows.
17
+ */
18
+ export interface CorpusFull {
19
+ total: number;
20
+ genera: Record<string, number>;
21
+ modes: Record<string, number>;
22
+ }
23
+ export declare const CORPUS_FULL: Record<string, CorpusFull>;
7
24
  //# sourceMappingURL=corpus-overlap.d.ts.map
@@ -1,6 +1,6 @@
1
1
  // corpus-overlap.ts — pre-dedup chant-count relationships between the books
2
2
  // Extracted from GregoBase (chant-id sets) by scripts/extract-gregobase.mjs
3
- // Generated: 2026-07-08T12:09:07.317Z
3
+ // Generated: 2026-08-04T17:25:33.176Z
4
4
  //
5
5
  // tonus stores one copy of each chant (LU primary; LA/LH gap-fill), so a book's
6
6
  // stored count is less than what it holds. This records, per book: its full
@@ -12,24 +12,30 @@ export const CORPUS_OVERLAP = {
12
12
  "unique": 430,
13
13
  "shared": {
14
14
  "lu": 948,
15
- "la": 6
15
+ "cot": 21,
16
+ "la": 6,
17
+ "cse": 3
16
18
  }
17
19
  },
18
20
  "lu": {
19
21
  "total": 2457,
20
- "unique": 434,
22
+ "unique": 418,
21
23
  "shared": {
22
24
  "gr": 948,
25
+ "cot": 43,
23
26
  "la": 1079,
27
+ "cse": 15,
24
28
  "am": 5
25
29
  }
26
30
  },
27
31
  "la": {
28
32
  "total": 2534,
29
- "unique": 1453,
33
+ "unique": 1452,
30
34
  "shared": {
31
35
  "lu": 1079,
32
36
  "gr": 6,
37
+ "cot": 11,
38
+ "cse": 6,
33
39
  "am": 5
34
40
  }
35
41
  },
@@ -42,12 +48,300 @@ export const CORPUS_OVERLAP = {
42
48
  },
43
49
  "am": {
44
50
  "total": 1456,
45
- "unique": 1447,
51
+ "unique": 1401,
46
52
  "shared": {
47
53
  "lu": 5,
54
+ "cot": 3,
48
55
  "la": 5,
56
+ "cse": 19,
57
+ "ams": 27,
49
58
  "lh": 2
50
59
  }
60
+ },
61
+ "ams": {
62
+ "total": 99,
63
+ "unique": 70,
64
+ "shared": {
65
+ "cse": 2,
66
+ "am": 27
67
+ }
68
+ },
69
+ "psm": {
70
+ "total": 60,
71
+ "unique": 60,
72
+ "shared": {}
73
+ },
74
+ "cse": {
75
+ "total": 188,
76
+ "unique": 149,
77
+ "shared": {
78
+ "lu": 15,
79
+ "cot": 6,
80
+ "la": 6,
81
+ "gr": 3,
82
+ "am": 19,
83
+ "ams": 2
84
+ }
85
+ },
86
+ "cot": {
87
+ "total": 58,
88
+ "unique": 13,
89
+ "shared": {
90
+ "gr": 21,
91
+ "lu": 43,
92
+ "la": 11,
93
+ "cse": 6,
94
+ "am": 3
95
+ }
96
+ },
97
+ "nr": {
98
+ "total": 1564,
99
+ "unique": 1564,
100
+ "shared": {}
101
+ }
102
+ };
103
+ export const CORPUS_FULL = {
104
+ "gr": {
105
+ "total": 1378,
106
+ "genera": {
107
+ "al": 297,
108
+ "in": 244,
109
+ "of": 191,
110
+ "co": 245,
111
+ "gr": 188,
112
+ "tr": 86,
113
+ "re": 8,
114
+ "an": 45,
115
+ "hy": 19,
116
+ "ps": 13,
117
+ "se": 5,
118
+ "su": 2,
119
+ "ca": 4,
120
+ "im": 5,
121
+ "or": 21,
122
+ "tp": 5
123
+ },
124
+ "modes": {
125
+ "1": 263,
126
+ "2": 205,
127
+ "3": 145,
128
+ "4": 139,
129
+ "5": 156,
130
+ "6": 75,
131
+ "7": 128,
132
+ "8": 237,
133
+ "other": 30
134
+ }
135
+ },
136
+ "lu": {
137
+ "total": 2457,
138
+ "genera": {
139
+ "al": 188,
140
+ "in": 169,
141
+ "co": 173,
142
+ "tr": 42,
143
+ "gr": 134,
144
+ "re": 73,
145
+ "of": 142,
146
+ "an": 1147,
147
+ "hy": 153,
148
+ "ps": 21,
149
+ "se": 6,
150
+ "su": 15,
151
+ "or": 47,
152
+ "rb": 134,
153
+ "ca": 6,
154
+ "im": 7
155
+ },
156
+ "modes": {
157
+ "1": 491,
158
+ "2": 254,
159
+ "3": 205,
160
+ "4": 230,
161
+ "5": 156,
162
+ "6": 121,
163
+ "7": 261,
164
+ "8": 540,
165
+ "other": 199
166
+ }
167
+ },
168
+ "la": {
169
+ "total": 2534,
170
+ "genera": {
171
+ "or": 19,
172
+ "rb": 220,
173
+ "an": 2058,
174
+ "hy": 232,
175
+ "re": 5
176
+ },
177
+ "modes": {
178
+ "1": 608,
179
+ "2": 182,
180
+ "3": 186,
181
+ "4": 262,
182
+ "5": 81,
183
+ "6": 106,
184
+ "7": 307,
185
+ "8": 674,
186
+ "other": 128
187
+ }
188
+ },
189
+ "lh": {
190
+ "total": 362,
191
+ "genera": {
192
+ "hy": 308,
193
+ "an": 35,
194
+ "ps": 13,
195
+ "re": 6
196
+ },
197
+ "modes": {
198
+ "1": 55,
199
+ "2": 58,
200
+ "3": 23,
201
+ "4": 99,
202
+ "5": 4,
203
+ "6": 10,
204
+ "7": 8,
205
+ "8": 75,
206
+ "other": 30
207
+ }
208
+ },
209
+ "am": {
210
+ "total": 1456,
211
+ "genera": {
212
+ "an": 1049,
213
+ "hy": 246,
214
+ "rb": 119,
215
+ "re": 20,
216
+ "or": 18,
217
+ "ps": 2,
218
+ "ca": 1,
219
+ "su": 1
220
+ },
221
+ "modes": {
222
+ "1": 321,
223
+ "2": 125,
224
+ "3": 81,
225
+ "4": 146,
226
+ "5": 30,
227
+ "6": 151,
228
+ "7": 166,
229
+ "8": 373,
230
+ "other": 63
231
+ }
232
+ },
233
+ "ams": {
234
+ "total": 99,
235
+ "genera": {
236
+ "hy": 27,
237
+ "an": 64,
238
+ "rb": 7,
239
+ "ca": 1
240
+ },
241
+ "modes": {
242
+ "1": 18,
243
+ "2": 13,
244
+ "3": 17,
245
+ "4": 11,
246
+ "5": 2,
247
+ "6": 11,
248
+ "7": 5,
249
+ "8": 22
250
+ }
251
+ },
252
+ "psm": {
253
+ "total": 60,
254
+ "genera": {
255
+ "an": 58,
256
+ "rb": 2
257
+ },
258
+ "modes": {
259
+ "1": 12,
260
+ "2": 5,
261
+ "3": 3,
262
+ "4": 7,
263
+ "5": 1,
264
+ "6": 2,
265
+ "7": 4,
266
+ "8": 14,
267
+ "other": 12
268
+ }
269
+ },
270
+ "cse": {
271
+ "total": 188,
272
+ "genera": {
273
+ "an": 54,
274
+ "hy": 65,
275
+ "re": 30,
276
+ "rb": 19,
277
+ "se": 11,
278
+ "tr": 1,
279
+ "ca": 3,
280
+ "tp": 2,
281
+ "co": 1,
282
+ "pa": 1,
283
+ "su": 1
284
+ },
285
+ "modes": {
286
+ "1": 55,
287
+ "2": 31,
288
+ "3": 9,
289
+ "4": 27,
290
+ "5": 10,
291
+ "6": 25,
292
+ "7": 16,
293
+ "8": 13,
294
+ "other": 2
295
+ }
296
+ },
297
+ "cot": {
298
+ "total": 58,
299
+ "genera": {
300
+ "se": 7,
301
+ "co": 1,
302
+ "tr": 1,
303
+ "re": 3,
304
+ "su": 1,
305
+ "an": 18,
306
+ "in": 1,
307
+ "of": 1,
308
+ "gr": 1,
309
+ "hy": 23,
310
+ "or": 1
311
+ },
312
+ "modes": {
313
+ "1": 18,
314
+ "2": 7,
315
+ "3": 2,
316
+ "4": 2,
317
+ "5": 7,
318
+ "6": 8,
319
+ "7": 5,
320
+ "8": 7,
321
+ "other": 2
322
+ }
323
+ },
324
+ "nr": {
325
+ "total": 1564,
326
+ "genera": {
327
+ "an": 546,
328
+ "re": 812,
329
+ "hy": 78,
330
+ "in": 84,
331
+ "ps": 17,
332
+ "or": 27
333
+ },
334
+ "modes": {
335
+ "1": 262,
336
+ "2": 177,
337
+ "3": 127,
338
+ "4": 183,
339
+ "5": 90,
340
+ "6": 110,
341
+ "7": 246,
342
+ "8": 342,
343
+ "other": 27
344
+ }
51
345
  }
52
346
  };
53
347
  //# sourceMappingURL=corpus-overlap.js.map
@@ -0,0 +1,5 @@
1
+ import type { Chant } from "./types.js";
2
+ import type { ChantData } from "./gr.js";
3
+ export declare const COT_SOURCE: Chant["source"];
4
+ export declare const COT_DATA: ChantData[];
5
+ //# sourceMappingURL=cot.d.ts.map