tonus 0.1.6 → 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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to tonus. Newest first.
4
4
 
5
+ ## 0.1.7
6
+
7
+ - **`corpus(code)`** — metadata and analytics for a corpus book. Returns its
8
+ bibliographic identity (title, full Latin title, edition, year, editor, scan
9
+ attribution — drawn from GregoBase's catalogue) plus a breakdown of its
10
+ contents: genre distribution, mode distribution (I–VIII with a null bucket),
11
+ and cross-book **overlap** — the book's full pre-dedup `total`, its `unique`
12
+ count, and how many chants it `shared` with each other book. The overlap shows,
13
+ e.g., that the Liber Usualis is largely the Graduale and Antiphonarius combined,
14
+ while the Antiphonale Monasticum is nearly its own repertoire.
15
+ - The `*_SOURCE` objects now carry `fullTitle`, `edition`, and `scanSource`.
16
+
5
17
  ## 0.1.6
6
18
 
7
19
  - **The monastic Office.** `officium({ rite: "monasticum" })` assembles the
package/dist/data/am.js CHANGED
@@ -1,7 +1,10 @@
1
1
  export const AM_SOURCE = {
2
2
  book: "Antiphonale Monasticum",
3
+ fullTitle: null,
4
+ edition: "Pro Diurnis Horis",
3
5
  year: 1934,
4
6
  editor: "Solesmes",
7
+ scanSource: "Scans courtesy of Corpus Christi Watershed",
5
8
  code: "am",
6
9
  };
7
10
  export const AM_DATA = [
@@ -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