1# Recording audio
2
3## What OneNote 2010 does
4
5Observed in a lab clone on 2026-09-29, with a QEMU HD Audio device on a null
6audio backend (it records silence; the clone has no camera, so Record Video
7was not observed):
8
9- **Record Audio** (Insert, Recording) with the caret at the end of "Before
10 recording": after that paragraph OneNote adds the recording's file, an empty
11 paragraph, "Audio recording started: 5:18 PM Tuesday, September 29, 2026" in
12 the `cite` quick style (Calibri 9, #595959) and an empty paragraph. The
13 contextual Audio & Video tab shows Recording: Record Audio, Record Video,
14 Play, Pause, Stop, Rewind 10 Minutes, Rewind 10 Seconds, the position
15 ("00:08/00:08"), Fast Forward 10 Seconds, Fast Forward 10 Minutes, See
16 Playback and Audio & Video Settings (`native/read/onenote-recording-tab.png`).
17- **The file** is named after the page ("Recorded.wma", shown without its
18 extension) and is Windows Media Audio 9 Voice, 8 kHz mono: 24,827 bytes for
19 34 seconds. It is stored in the section's own file data store beside a
20 32-pixel icon, never in `_onefiles`. The attachment carries
21 AudioRecordingGuid (`0x1c001c97`), IRecordMedia 1 (`0x14001d24`) and
22 AudioRecordingDuration in milliseconds (`0x14001cfd`, 33,903); the page lists
23 the recording in AudioRecordingGuids (`0x1c001ca3`, COM's `MediaPlaylist`).
24- **Linked notes.** Every paragraph whose text changes while recording is
25 linked to that moment: the recording's GUID (`0x1c001c98`) and milliseconds
26 since the start (`0x14001c99`, COM's `MediaIndex`) on its text object. A
27 paragraph edited during recording is linked too ("Before recording edited",
28 20,131 ms); empty paragraphs are not. The line saying when and the file are
29 linked at 0 and 151 ms.
30- **Playback.** Hovering a linked paragraph, or selecting the recording, shows
31 a blue play button in the margin (`native/read/onenote-linked-notes.png`); a
32 click plays from the linked moment.
33- **Deleting** the recording removes AudioRecordingGuids from the page; the
34 notes keep their links (`native/deleted`).
35- **Pause** while recording (the Pause button again resumes) leaves the pause
36 out of the clock; a note written while paused is not linked
37 (`native/read/paused-while-recording.xml`).
38- **See Playback** (on by default) highlights, as a selection, the note
39 linked last at or before the moment playing; the line saying when, linked at
40 0, is not highlighted (`native/read/onenote-see-playback.png`). When the
41 note playing is off screen OneNote scrolls just far enough to show it
42 (`native/read/onenote-see-playback-scrolls.png`: 60 lines between two
43 notes, played from the top of the page). A linked
44 note plays from five seconds before its moment, the default of Options,
45 Audio & Video (`native/read/onenote-audio-video-options.png`), which also
46 shows the default video profile, Windows Media Video 8 for Local Area Network
47 (256 Kbps). Control-Alt-P plays and Control-Alt-S stops; Control-Alt-A does
48 not record.
49- **Record Video** without a camera says "No camera available. Make sure the
50 camera is properly installed and connected." (`native/read/onenote-no-camera.png`).
51 Installing a virtual camera in the clone was refused, so OneNote's own video
52 recording was not observed.
53- **0x1c001cc8** is a run list of {u32 character position, u8 state} on text
54 objects, OneNote's proofing state: its page date and time and the line saying
55 when recording started always carry `00 00 00 00 03` (three recordings, all
56 pages of `native/`), typed text none or 0, 1 or 9 (a misspelling), equations
57 5. OneNote writes and rereads it itself and reads text without it, so
58 Snowbound writes it only on new pages' dates, as before.
59- **Attach File** of a .wav makes it a recording as well: identity,
60 IRecordMedia 1 and its length (1,000 ms), listed on the page
61 (`native/attached`). MS-ONE requires this of .wma, .mp3, .wav, .wmv, .avi and
62 .mpg files.
63
64## Rows
65
66`native/` is OneNote's recording (`notebook/`), its COM export
67(`read/page-recorded.xml`), and the section after OneNote deleted the
68recording (`deleted/`) or attached a .wav (`attached/`).
69
70`candidate/` is `a_recording_stores_its_file_line_and_linked_notes_for_onenote`
71in `crates/snowbound/src/recording.rs`: the editor records at the end of
72"Before recording", two notes are typed while it records, and Stop puts in
73two seconds of a tone as Snowbound stores recordings, 16 kHz IMA ADPCM WAV.
74`cold/` is a fresh OneNote 2010 read: the playlist, the file with its bytes,
75the line and both notes linked to their moments. Opened in a lab clone, the
76note's play button played the recording from there (`played-from-note.png`);
77`native/read/onenote-plays-ima-adpcm.png` is OneNote playing a 20-second one.
78Regenerate with `SNOWBOUND_RECORDING_EXPORT`, then `tools/native_runner.py DIR
79COLD --expected-pages 1 --collect-notebook --screenshots`.
80
81`edit/` is `onenote_s_recording_round_trips_through_deleting_restoring_and_linking`
82in `crates/onestore/tests/page_media.rs`: OneNote's recording deleted, put back
83as undo does, and a paragraph linked at 25 s, each as its own edit. `edit/cold`
84is a fresh OneNote 2010 read: the same playlist, links, WMA bytes and the new
85link. Regenerate with `ONESTORE_RECORDING_EDIT_EXPORT`, then
86`tools/native_runner.py DIR COLD --expected-pages 2 --collect-notebook
87--screenshots`.
88
89`video/` is Record Video. `native/read/attached-video.xml` is OneNote
90attaching one file of each kind: .avi, .mpg and .wmv become recordings (kind 2,
91with their length), .mp4 and .mov plain files. OneNote played Motion JPEG AVI
92with PCM or IMA ADPCM sound, MPEG-1 and WMV 8 with pictures
93(`onenote-plays-attached-*.png`), but H.264 in AVI without them. `video/candidate`
94is `a_video_recording_stores_its_file_line_and_linked_notes_for_onenote` in
95`crates/snowbound/src/recording.rs`: two seconds of Motion JPEG at 320 by 240,
9615 a second, with 16 kHz PCM, as Snowbound records video. `video/cold` is a
97fresh OneNote 2010 read; OneNote played it from a linked note with See Playback
98highlighting it (`video/played-from-note.png`), and played what the macOS
99conversion makes of `video/camera.mov` (H.264 and AAC, as a capture session
100records) and what GStreamer recorded in a Debian 13 VM from its test sources
101(`video/onenote-plays-*.png`). Regenerate with `SNOWBOUND_VIDEO_EXPORT`.
102
103`tools/test_recording.py` checks the rows without a VM.