This folder holds work from Amp thread T-01a1047f-56d5-7081-b0f5-d22abb4cdb49.
The plan has two tracks. You understand a passage first, then memorize it. Memorizing never runs ahead of understanding. The surah is split into five blocks, and each block is split into chunks by meaning:
| Block | Verses | Name | Place on the walk |
|---|---|---|---|
| A | 1–7 | The pen | Desk with a pen |
| B | 8–16 | The liar | Liar at the door |
| C | 17–33 | The garden | Burnt garden |
| D | 34–47 | The court | Courtroom |
| E | 48–52 | The shore | Shore & the fish |
Videos (in this folder)
| File | Length | Status |
|---|---|---|
qalam-sung-method.mp4 |
2:17 | Explainer of the method. Complete and reviewed by the user. |
qalam-day1-block-A.mp4 |
6:41 | Recall session for Day 1. Complete. Shown to the user, who has not yet given feedback. |
qalam-day2-block-B.mp4 |
8:33 | Unreviewed. Fully rendered, but the user asked to approve Day 1 before more were made. |
qalam-day3-block-C.mp4 |
16:44 | Unreviewed. Fully rendered. |
qalam-day4-block-D.mp4 |
16:56 | Unreviewed. Fully rendered. |
qalam-day5-block-E.mp4 |
10:58 | Unreviewed. Fully rendered. |
qalam-day6-test.mp4 |
12:41 | Unreviewed. Fully rendered. A whole-surah test day. |
The Day 2–6 videos are drafts. Their timers, glosses, and memory tips may change after the user reviews Day 1.
Format of each day's session
- Warm-up (from Day 2 on): recite each earlier block from memory. The only cue is the block's name.
- Map: where the block sits in the surah, its chunks, and its place on the walk.
- Understand: each verse word by word, with a translation and one memory tip.
- Recall 1: the meaning and the first Arabic word are shown, and you recite the verse.
- Recall 2: no cue, verses shuffled.
- Chain: the chunk name is the only cue.
- Whole block: recite the whole block from memory.
A gold bar counts down while you recite. A chime plays when the answer appears.
The Day 6 test covers the five-block map, a full recitation, 12 random starts, 5 look-alike quizzes, the order of the "Or…?" questions, and a brain dump of the first word of every verse.
Checked facts
- Verse text comes from the quran.com API: Uthmani script plus word-by-word English.
- Translation is Sahih International, from the alquran.cloud API.
- Look-alike verses, checked against the source text:
- 46–47 match aṭ-Ṭūr 52:40–41 word for word.
- Verse 7 ends the same way as an-Naḥl 16:125. An-Najm 53:30 ends بِمَنِ ٱهْتَدَىٰ instead.
- Verse 43 opens like al-Maʿārij 70:44, then differs.
- Verse 29 ends ظَـٰلِمِينَ and verse 31 ends طَـٰغِينَ.
- The memory tips (
HOOKinsrc/mem.html) are my own notes. They have not been checked by a scholar.
Source (src/)
method-explainer.html+render.mjs: makeqalam-sung-method.mp4.mem.html+data.js+render2.mjs: make the day sessions. Use?day=1through?day=6.chime.py: builds the chime audio fromdata/chimes-N.json.fetch-fonts.sh: downloads Amiri, Amiri Quran, and Inter (all under the SIL Open Font License) intosrc/fonts/.
To regenerate, run src/fetch-fonts.sh, then copy src/ to /tmp/qvid. The scripts use that absolute path:
npm install # playwright-core
node render2.mjs video 3 raw-3.mp4 # also writes chimes-3.json
python3 chime.py 3 <duration-seconds> # writes chime-3.wav
ffmpeg -i raw-3.mp4 -i chime-3.wav -c:v copy -c:a aac -shortest qalam-day3-block-C.mp4
render2.mjs info <day> prints a day's duration. The Chrome path is hard-coded for the orb's agent-browser install.
Data (data/)
quran-com-68-word-by-word.json: the raw API response.alquran-cloud-68-simple-clean-and-sahih.json: the raw API response.words.json,sahih.json: trimmed versions used to buildsrc/data.js.chimes-1.json…chimes-6.json: the chime times, in seconds, for each day's video.
Left out on purpose
These were throwaway or can be rebuilt:
- The silent raw renders. The final videos contain the same video track.
- The chime WAV files, up to about 90 MB each.
chime.pyrebuilds them fromdata/chimes-*.json. node_modulesand the font files.src/fetch-fonts.shdownloads the fonts again.- One-off contact sheets and frame grabs. Representative ones are kept in
previews/.