All checks were successful
Deploy to WebDAV (/BLB) / deploy (push) Successful in 48s
93 lines
3.9 KiB
Markdown
93 lines
3.9 KiB
Markdown
# BLB Hymns MIDI Gap Report
|
||
|
||
Generated: 2026-09-05
|
||
|
||
## UPDATE (2026-09-05) — MIDI recovery from Cyber Hymnal
|
||
|
||
The BLB note naming **Cyber Hymnal** (hymntime.com) as the source of its hymns and
|
||
lyrics was used to recover the missing tune-audio. Of the **1,463** files that were
|
||
originally missing:
|
||
|
||
- **801** recovered from Cyber Hymnal's MIDI library (`hymntime.com/tch/mid/`)
|
||
by matching each BLB hymn page's `Music:` tune/composer attribution to the Cyber Hymnal
|
||
tune index, downloading the tune MIDI, renaming to the BLB slug, and storing under
|
||
`hymns/hymns_mid/`.
|
||
- **662** remain missing. These are overwhelmingly **modern gospel
|
||
hymn-tunes** (Sankey, Moody, gospel revival songs, etc.) that are not present in Cyber
|
||
Hymnal's library, plus a set of **ambiguous tunes** whose Cyber Hymnal names are
|
||
composer-disambiguated into multiple variants (e.g. two "Aberystwyth", two "Veni
|
||
Creator", three "St. Catherine") where selecting the wrong variant would play the wrong
|
||
tune, so they were deliberately left unresolved rather than guessed.
|
||
|
||
**Files added:** 801 valid Standard MIDI files (verified `MThd` magic, 1–3
|
||
tracks, real note data) added under `hymns/hymns_mid/`.
|
||
|
||
**Current status:** most (but not all) of the original 1,463-file gap is closed; the
|
||
remainder affects 674 of 2749 hymn pages.
|
||
|
||
## Summary
|
||
|
||
- **Hymn HTML pages scanned:** 2,749 total; **1,925 (70%)** have ≥1 dead midi reference
|
||
- **Distinct missing midi files:** 1463
|
||
- **Total broken midi references:** 2156
|
||
- **Existing midi files (`hymns/hymns_mid/`):** 729 — tunes A–G only
|
||
- **Midi tune range present:** `mid_a_*` … `mid_g_*`
|
||
- **Midi tune range absent:** `mid_h_*` … `mid_z_*` (plus a handful of `mid_g_*`)
|
||
|
||
## Root cause
|
||
|
||
The `hymns/hymns_mid/` directory was ingested with **only tunes A through G** (729 files). The missing H–Z tunes (1,463 files) were **never part of the source data** — confirmed independently in:
|
||
|
||
- the ingest manifest `blb_manifest.txt` (snapshot of the original WebDAV source at download time)
|
||
- full `git log --all` history (no H–Z midi blob was ever committed)
|
||
- the source WebDAV (`files.thecookiejar.me/www/static/BLB/`) — returns 404 for the missing files
|
||
- the live Blue Letter Bible site (no longer serves these hymn pages) and the Internet Archive Wayback Machine (no capture)
|
||
|
||
These are **not broken links** (paths are correct and resolve properly); the destination files simply do not exist anywhere reachable.
|
||
|
||
## Missing files by first tune-letter
|
||
|
||
| Letter | Missing .mid files |
|
||
|---|---|
|
||
| g | 4 |
|
||
| h | 154 |
|
||
| i | 80 |
|
||
| j | 47 |
|
||
| k | 23 |
|
||
| l | 137 |
|
||
| m | 136 |
|
||
| n | 58 |
|
||
| o | 98 |
|
||
| p | 73 |
|
||
| q | 4 |
|
||
| r | 79 |
|
||
| s | 270 |
|
||
| t | 89 |
|
||
| u | 8 |
|
||
| v | 31 |
|
||
| w | 152 |
|
||
| x | 4 |
|
||
| y | 9 |
|
||
| z | 7 |
|
||
|
||
## Affected pages
|
||
|
||
1925 pages under `hymns/hymns_html/` reference at least one missing midi. Full page list is in `broken_pages.txt`.
|
||
|
||
## Data files in this directory
|
||
|
||
- `broken_pages.txt` — every page with ≥1 dead midi reference
|
||
- `missing_midis.csv` — one row per (page, missing .mid) reference pair
|
||
- `missing_midis_unique.csv` — one row per distinct missing .mid file
|
||
- `missing_to_pages.csv` — each missing .mid and the pages that reference it
|
||
- `gap_index.json` — machine-readable full dataset
|
||
|
||
## Recommendation
|
||
|
||
Do **not** attempt link-only fixes — there is no destination to point at. Realistic remediation paths, in order of safety:
|
||
|
||
1. **Accept the gap** (documented here) until a source for the hymn-tune midis is obtained.
|
||
2. **Synthesise/obtain** the missing public-domain hymn tunes from an external archive, then add the files under `hymns/hymns_mid/` (no HTML changes needed — the links will then resolve).
|
||
3. **Optionally neutralise** the dead audio controls on the 1,925 affected pages (removes 404s, loses audio).
|
||
|
||
*Links are `audio/midi` MIME; page HTML constructs them as `./hymns/hymns_mid/<file>.mid` relative to the BLB root (via `basepath.js`), so they resolve against `/BLB/hymns/hymns_mid/`.* |