tonus 0.1.4 → 0.1.8

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 (73) hide show
  1. package/BIBLIOGRAPHY.md +143 -96
  2. package/CHANGELOG.md +74 -0
  3. package/README.md +7 -9
  4. package/dist/data/am.d.ts +5 -0
  5. package/dist/data/am.js +14302 -0
  6. package/dist/data/corpus-overlap.d.ts +7 -0
  7. package/dist/data/corpus-overlap.js +53 -0
  8. package/dist/data/gr.js +3 -0
  9. package/dist/data/la.js +3 -0
  10. package/dist/data/lh.js +3 -0
  11. package/dist/data/lu.js +4 -1
  12. package/dist/data/nocturnale-romanum.d.ts +5 -0
  13. package/dist/data/nocturnale-romanum.js +12524 -0
  14. package/dist/data/office-matins-roman.d.ts +19 -0
  15. package/dist/data/office-matins-roman.js +4383 -0
  16. package/dist/data/office-monastic.d.ts +3 -0
  17. package/dist/data/office-monastic.js +6956 -0
  18. package/dist/data/office-psalms-monastic.d.ts +3 -0
  19. package/dist/data/office-psalms-monastic.js +21 -0
  20. package/dist/data/{office-psalms.d.ts → office-psalms-roman.d.ts} +1 -1
  21. package/dist/data/{office-psalms.js → office-psalms-roman.js} +3 -3
  22. package/dist/engines/cal/calendar.js +16 -1
  23. package/dist/engines/cal/date.js +5 -0
  24. package/dist/engines/chant/chant.d.ts +7 -1
  25. package/dist/engines/chant/chant.js +72 -0
  26. package/dist/{data → engines/chant/data}/compline.d.ts +1 -1
  27. package/dist/{data → engines/chant/data}/masses.d.ts +1 -1
  28. package/dist/{data → engines/chant/data}/masses.js +1 -1
  29. package/dist/{data → engines/chant/data}/prime.d.ts +1 -1
  30. package/dist/{data → engines/chant/data}/prime.js +1 -1
  31. package/dist/engines/chant/hour.js +37 -22
  32. package/dist/engines/chant/intone.js +6 -1
  33. package/dist/engines/chant/matutinum.d.ts +33 -0
  34. package/dist/engines/chant/matutinum.js +81 -0
  35. package/dist/engines/chant/ordinary.js +1 -1
  36. package/dist/engines/chant/psalm.d.ts +4 -4
  37. package/dist/engines/chant/psalm.js +6 -4
  38. package/dist/engines/chant/types.d.ts +37 -1
  39. package/dist/engines/harmonia/api.js +11 -0
  40. package/dist/engines/harmonia/data/doctrines.js +27 -1
  41. package/dist/engines/imprint.js +7 -1
  42. package/dist/engines/planet/position.js +51 -5
  43. package/dist/engines/score/articulation.js +60 -3
  44. package/dist/engines/score/cadence.js +3 -3
  45. package/dist/engines/score/emitters/midi.js +6 -2
  46. package/dist/engines/score/infer.js +13 -1
  47. package/dist/engines/score/ir.d.ts +2 -1
  48. package/dist/engines/score/ir.js +54 -12
  49. package/dist/engines/score/modulation.js +2 -2
  50. package/dist/engines/score/parse.js +16 -8
  51. package/dist/engines/score/phrasing.js +26 -0
  52. package/dist/engines/score/prosody.js +5 -0
  53. package/dist/engines/score/tabula.d.ts +2 -0
  54. package/dist/engines/score/tabula.js +1 -0
  55. package/dist/engines/score/types.d.ts +11 -2
  56. package/dist/engines/temper/api.js +1 -1
  57. package/dist/engines/temper/data/guido.d.ts +3 -2
  58. package/dist/engines/temper/data/guido.js +30 -25
  59. package/dist/engines/temper/data/modes.js +3 -0
  60. package/dist/{data → engines/temper/data}/tones.js +1 -1
  61. package/dist/engines/temper/gabc.js +25 -2
  62. package/dist/engines/temper/guido.d.ts +3 -2
  63. package/dist/engines/temper/interval.js +12 -0
  64. package/dist/engines/temper/modality.js +5 -4
  65. package/dist/engines/temper/scale.js +33 -2
  66. package/dist/engines/temper/step.d.ts +2 -2
  67. package/dist/index.d.ts +8 -4
  68. package/dist/index.js +4 -1
  69. package/package.json +2 -1
  70. package/dist/data/office.d.ts +0 -12
  71. package/dist/data/office.js +0 -13052
  72. /package/dist/{data → engines/chant/data}/compline.js +0 -0
  73. /package/dist/{data → engines/temper/data}/tones.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ export interface CorpusOverlap {
2
+ total: number;
3
+ unique: number;
4
+ shared: Record<string, number>;
5
+ }
6
+ export declare const CORPUS_OVERLAP: Record<string, CorpusOverlap>;
7
+ //# sourceMappingURL=corpus-overlap.d.ts.map
@@ -0,0 +1,53 @@
1
+ // corpus-overlap.ts — pre-dedup chant-count relationships between the books
2
+ // Extracted from GregoBase (chant-id sets) by scripts/extract-gregobase.mjs
3
+ // Generated: 2026-07-08T12:09:07.317Z
4
+ //
5
+ // tonus stores one copy of each chant (LU primary; LA/LH gap-fill), so a book's
6
+ // stored count is less than what it holds. This records, per book: its full
7
+ // pre-dedup `total`, how many chants it alone has (`unique`), and how many it
8
+ // shares with each other book (`shared`, by GregoBase chant id).
9
+ export const CORPUS_OVERLAP = {
10
+ "gr": {
11
+ "total": 1378,
12
+ "unique": 430,
13
+ "shared": {
14
+ "lu": 948,
15
+ "la": 6
16
+ }
17
+ },
18
+ "lu": {
19
+ "total": 2457,
20
+ "unique": 434,
21
+ "shared": {
22
+ "gr": 948,
23
+ "la": 1079,
24
+ "am": 5
25
+ }
26
+ },
27
+ "la": {
28
+ "total": 2534,
29
+ "unique": 1453,
30
+ "shared": {
31
+ "lu": 1079,
32
+ "gr": 6,
33
+ "am": 5
34
+ }
35
+ },
36
+ "lh": {
37
+ "total": 362,
38
+ "unique": 360,
39
+ "shared": {
40
+ "am": 2
41
+ }
42
+ },
43
+ "am": {
44
+ "total": 1456,
45
+ "unique": 1447,
46
+ "shared": {
47
+ "lu": 5,
48
+ "la": 5,
49
+ "lh": 2
50
+ }
51
+ }
52
+ };
53
+ //# sourceMappingURL=corpus-overlap.js.map
package/dist/data/gr.js CHANGED
@@ -1,7 +1,10 @@
1
1
  export const GR_SOURCE = {
2
2
  book: "Graduale Romanum",
3
+ fullTitle: "Graduale Sacrosanctae Romanae Ecclesiae, de Tempore et de Sanctis",
4
+ edition: null,
3
5
  year: 1961,
4
6
  editor: "Solesmes",
7
+ scanSource: "Scans courtesy of the Church Music Association of America",
5
8
  code: "gr",
6
9
  };
7
10
  export const GR_DATA = [
package/dist/data/la.js CHANGED
@@ -1,7 +1,10 @@
1
1
  export const LA_SOURCE = {
2
2
  book: "Liber antiphonarius",
3
+ fullTitle: "Antiphonale Sacrosanctae Romanae Ecclesiae pro diurnis horis",
4
+ edition: null,
3
5
  year: 1960,
4
6
  editor: "Solesmes",
7
+ scanSource: "Scans courtesy of the Church Music Association of America",
5
8
  code: "la",
6
9
  };
7
10
  export const LA_DATA = [
package/dist/data/lh.js CHANGED
@@ -1,7 +1,10 @@
1
1
  export const LH_SOURCE = {
2
2
  book: "Liber Hymnarius",
3
+ fullTitle: null,
4
+ edition: null,
3
5
  year: 1983,
4
6
  editor: "Solesmes",
7
+ scanSource: "Scan courtesy of Dominique Crochu",
5
8
  code: "lh",
6
9
  };
7
10
  export const LH_DATA = [
package/dist/data/lu.js CHANGED
@@ -1,7 +1,10 @@
1
1
  export const LU_SOURCE = {
2
- book: "Liber Usualis",
2
+ book: "The Liber Usualis",
3
+ fullTitle: null,
4
+ edition: "US edition",
3
5
  year: 1961,
4
6
  editor: "Solesmes",
7
+ scanSource: "Scans courtesy of the Church Music Association of America",
5
8
  code: "lu",
6
9
  };
7
10
  export const LU_DATA = [
@@ -0,0 +1,5 @@
1
+ import type { Chant } from "./types.js";
2
+ import type { ChantData } from "./gr.js";
3
+ export declare const NR_SOURCE: Chant["source"];
4
+ export declare const NR_DATA: ChantData[];
5
+ //# sourceMappingURL=nocturnale-romanum.d.ts.map