On this page:
33.1 Replace the draft with a recording
33.2 Subtitles and timeline output
9.3

33 Pace a lesson with narration🔗ℹ

A narration value attaches speech text and timing to a beat. Start with a silent draft. It provides pacing and transcript text; it does not generate a voice.

The examples use one small card with a left-hand explanation slot:

Here the beat has no separate #:duration:

(define draft-clip
  (build-slide narration-card #:initial '(title right)
    (beat 'explain
      #:narration
      (narration "Double the input, then add one."
                 #:draft-duration 4)
      (reveal-slot 'left #:duration 0.5))))

It lasts for the longer of the narration and the visual actions. Here that is four seconds, leaving time to read after the half-second fade. The manual checks that timing by lowering the clip to an ordinary Scene:

> (= (scene-duration (slide->scene draft-clip)) 4)

#t

33.1 Replace the draft with a recording🔗ℹ

The author-facing form is the same, except that the narration points to an audio file and can add a trailing hold:

(define recorded-beat
  (beat 'explain
    #:narration
    (narration "Double the input, then add one."
               #:audio "voice/explain.wav")
    #:tail-hold 0.4
    (reveal-slot 'left #:duration 0.5)))

Constructing the description does not read the recording. The audio file is resolved when the storyboard is prepared, so this manual build does not require "voice/explain.wav" to exist.

In a source file, the narration form resolves a relative audio filename from that source file’s directory. The trailing hold starts after the longer of the recording and the actions. If you give an explicit beat duration, everything must fit; the system does not silently cut the recording or speed it up.

33.2 Subtitles and timeline output🔗ℹ

Subtitles are timed text in a separate track. A figure caption is ordinary content inside a slide, not a subtitle. Ordinary Pict and Scene output does not burn the subtitle track into the picture.

An authored timeline carries the Scene together with narration, subtitles, and section information. Build a one-shot storyboard from the draft clip:

(define narrated-film
  (storyboard #:id 'narrated-demo #:theme lecture-light
    (storyboard-shot 'explanation draft-clip)))
(define timeline
  (storyboard->timeline narrated-film))
> (authored-timeline? timeline)

#t

Use storyboard->timeline when you need those tracks rather than the visual-only storyboard->scene.

The slide project runner handles this for a video. Exact trimming, imported child media, and caption segments are lookup topics in Slides, not prerequisites for a first recording.

The next chapter puts a moving Scene or a construction inside a slide. Its play-content action can share a beat with the narration you have just learned.