tonus 0.11.0 → 0.12.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  All notable changes to tonus. Newest first.
4
4
 
5
+ ## 0.12.0 — 2026-09-24
6
+
7
+ A mass number is a Mass.
8
+
9
+ ### Changed
10
+
11
+ - **Breaking: `mass` is one of Masses I–XVIII, or 0.** The Kyriale's appendix
12
+ carried its Graduale page as a mass number, so Clemens Rector read as mass
13
+ 75 and the Requiem as 94, 101 and 102. Two ad libitum Kyries whose incipits
14
+ carry a numeral were worse: they read as Masses VI and X, so
15
+ `ordinarium({ mass: 6 })` returned an appendix Kyrie beside Mass VI's own,
16
+ and the era rule dated it by Mass VI's century. Every entry now carries a
17
+ `section` (`mass`, `credo`, `sprinkling`, `ad-libitum`, `requiem`), and only
18
+ the `mass` section is numbered. `ordinarium({ section: "requiem" })` replaces
19
+ `ordinarium({ mass: 102 })`. The appendix still rotates in the book's order,
20
+ now read from its Graduale pages.
21
+
22
+ ## 0.11.1 — 2026-09-10
23
+
24
+ The Kyriale says where it is printed.
25
+
26
+ ### Changed
27
+
28
+ - **The Kyriale can be cited.** Its 120 chants shipped with `books: ["ky"]` and
29
+ no page at all, so nothing downstream could say where to find one — `ky` is a
30
+ category, not a volume, and a citation drawn from `SOURCES` had nothing to
31
+ draw on. They are printed all the same, and twice over: every one carries
32
+ `books: ["lu", "gr"]` and the Liber Usualis's and the Graduale's own pages, so
33
+ `cantus({ id, source: "lu" })` and `cantus({ id, source: "gr" })` each answer
34
+ with that book's leaf number. `ky` remains outside `SOURCES`, the shelf's row
35
+ counts are unchanged, and a bare book query still does not sweep the ordinary
36
+ in: you ask for a Kyrie, you do not stumble onto one.
37
+
5
38
  ## 0.11.0 — 2026-09-06
6
39
 
7
40
  One cadence catalogue.
@@ -1,11 +1,27 @@
1
1
  export type KyrialeOffice = "ke" | "gl" | "cr" | "sa" | "ag" | "be" | "it" | "as" | "va";
2
+ /** Where the Kyriale prints an entry. Only `mass` entries carry a mass number. */
3
+ export type KyrialeSection = "mass" | "credo" | "sprinkling" | "ad-libitum" | "requiem";
2
4
  export interface KyrialeEntry {
3
5
  id: string;
4
6
  office: KyrialeOffice;
7
+ section: KyrialeSection;
8
+ /** One of Masses I–XVIII, or null outside the numbered Masses. */
5
9
  mass: number | null;
6
10
  mode: string | null;
7
11
  incipit: string;
8
12
  gabc: string;
13
+ /**
14
+ * Every book that PRINTS this ordinary chant, owner first — `gr` and `lu`,
15
+ * never `ky`. The Kyriale is a category, not a volume, so it is not in the
16
+ * book registry; these are the volumes a citation can name.
17
+ */
18
+ books: string[];
19
+ /** Page citations keyed by book code — the same shape as ChantData.pages. */
20
+ pages: Record<string, {
21
+ page: string;
22
+ sequence: number;
23
+ extent: number;
24
+ }[]>;
9
25
  }
10
26
  export declare const KYRIALE: KyrialeEntry[];
11
27
  //# sourceMappingURL=kyriale.d.ts.map