# WA8LMF TNC Test CD — consolidated and relabelled These are the working notes behind https://tnc-test.m0lte.uk/ — the rebuild of the WA8LMF TNC Test CD, assembled 7 September 2026 from the two published releases: | Release | Artefact held locally | Format | |---|---|---| | **Version 1.1** (31 Aug 2009) | `TNC_Test_Ver-1.1.bin` + `.cue`, 772,178,064 bytes | Mixed-mode "CD-Extra": session 1 = 7 Red Book audio tracks, session 2 = a 960-sector MODE1 data track | | **Version 2.0** (1 Feb 2025) | `TNC_Test_2.iso`, 253,849,600 bytes | Plain ISO 9660 + Joliet CD-ROM: 7 FLAC files plus data | Original work © Stephen H. Smith, WA8LMF — . Nothing here is new except this file and the corrected filenames; every document is a byte-for-byte copy of the original except where explicitly noted below. **How this was made:** the inventory, the measurements, the re-encoding and the text of this document were produced by Claude (Anthropic's Claude Opus 5, running in Claude Code), working from the two disc images at the direction of Tom Fanning, M0LTE. M0LTE supplied the discs and had already identified that track 2 was not the Mic-E bursts; the tracks 6/7 swap, the track 7 tail and the measurements below came out of that work. Every factual claim here is a measurement that can be repeated — §5 and §6 give the sector ranges, method and checksums needed to reproduce all of it independently. **On the website** the audio is served from `/tracks/` under URL-safe names (`01-144.39-mhz-saturated-channel-flat.flac` … `07-kpc3-plus-cal-tones-de-emphasised.flac`; same bytes as the files listed in §2) and the documents from `/docs/` under the names listed in `/docs/MD5SUMS`. The VU Player tools mentioned in §2 are not republished. "This folder" below means the working set the site was built from. --- ## 1. The headline: three of version 2's filenames don't match their contents ### Track 2 isn't the Mic-E bursts The file version 2 ships as `02_100-Mic-E-Bursts-DE-emphasized.flac` holds something else. It is **track 1 — the 25-minute saturated-channel recording — put through a de-emphasis filter**. The audio is not a version 2 problem: version 2 is a faithful rip of the version 1.1 disc, so the same audio sits in track 2 of the 2009 disc as well. What happened is that a **long-standing slip in the readme became a filename**. The readme on both discs (and on the website) says: > Track 2 is identical to Track 3 except that a precise > 6db-per-octave/20db-per-decade de-emphasis between 300 and 3000 Hz has been > applied… "Track 3" there should read "Track 1". WA8LMF's own supporting note on the 2009 disc — `Documentation/Notes on De-Emphasis - WA8LMF.txt`, which version 2 dropped — says the correct thing: > On the CD, track one emulates receive via raw discriminator, while track two > emulates de-emphasized receive via speaker or earphone jack. TNC developers are > encouraged to use both tracks alternately… **Evidence.** See §5 for method. In brief: track 2 is 25:47, track 3 is 5:05, so they cannot be the same material. Cross-correlating track 2 against every other track, only track 1 matches, and it matches at one exact sample offset (54,689 frames). At that alignment the magnitude-squared coherence between track 1 and track 2 is **0.97 or better from 100 Hz to 8 kHz, and 0.996–1.000 everywhere except the steep skirt between 100 and 300 Hz** (chance level 0.004; controls against tracks 3 and 4 give 0.001–0.010). A coherence of 1 is the textbook signature of one signal being a linearly filtered copy of another. The measured filter is a de-emphasis curve. It is track 1. ### Tracks 6 and 7 are swapped in version 2's filenames Version 2 ships `06_KPC3plus-CAL-tone-DE-emphasized.flac` and `07_KPC3plus-CAL-tone-PRE-emphasized.flac`. **They are swapped.** Track 6 is pre-emphasised, track 7 is de-emphasised. Four independent checks agree: 1. **Transfer function against track 5.** Aligning each track to the flat track 5 and estimating the transfer function (Welch, 4096-point windows, 200 averages, in windows that avoid the splice in track 7 noted in §5) gives magnitude-squared coherence of **0.997–1.000 at every tone line** for both — so both really are filtered copies of track 5 — and two exactly mirror-image curves: | Freq (Hz) | 300 | 600 | 900 | 1200 | 1800 | 2200 | 2800 | 3400 | 4400 | |---|---|---|---|---|---|---|---|---|---| | **Track 6** \|H\| dB | −17.4 | −11.9 | −8.2 | −5.7 | −2.3 | −0.7 | +1.5 | +2.6 | +2.6 | | **Track 7** \|H\| dB | +10.6 | +5.0 | +1.6 | −1.0 | −4.3 | −5.9 | −7.9 | −9.3 | −9.3 | Track 6 rises at **+6.09 dB/octave**, track 7 falls at **−5.88 dB/octave** — both matching the "precise 6 dB/octave, 20 dB/decade" the readme claims. Rising with frequency is pre-emphasis; falling is de-emphasis. 2. **Tone balance.** At 2200 Hz relative to 1200 Hz: track 6 **+5.04 dB**, track 7 **−4.84 dB** (a true 6 dB/octave gives ±5.26 dB). 3. **Per-bit amplitudes.** The CAL signal alternates one bit (0.83 ms) of 1200 Hz with one bit of 2200 Hz, so the level of each tone can be measured directly in the time domain: classify each bit by its instantaneous frequency (analytic signal, median-filtered) and take the envelope over the middle 60 % of it, away from the transitions. Over 25 s (≈15,000 bits of each tone per track): | Track | mean envelope, 1200 Hz bits | mean envelope, 2200 Hz bits | 2200 relative to 1200 | |---|---|---|---| | 5 | 29,764 | 29,429 | **−0.10 dB** → flat | | 6 | 15,348 | 25,796 | **+4.51 dB** → highs boosted = **pre-emphasis** | | 7 | 28,740 | 16,915 | **−4.60 dB** → highs cut = **de-emphasis** | By RMS rather than envelope peak: +0.18, +4.80 and −4.80 dB. These sit about half a decibel short of the filters' steady-state gain difference in item 2 (+5.04 / −4.84 dB) because a one-bit burst of a tone is not a pure tone and the single-frequency gain does not apply exactly. They are what a scope or a demodulator actually sees, and they are the figures carried in the files' tags (rounded to ±4.6 dB). An earlier version of this document gave +3.76 / −4.17 dB from a cruder per-cycle method that mis-sorted the partial cycles at bit boundaries; those figures were wrong. 4. **The disc's own reference waveforms.** `Documentation/1200-2200-PreEmph.gif` shows the narrow (2200 Hz) cycles taller than the wide (1200 Hz) ones; `1200-2200-DeEmph.gif` shows the reverse. Rendering 10 ms of the actual audio of tracks 6 and 7 reproduces those two pictures respectively. The **two published descriptions contradict each other** on this point, which is presumably how the swap arose: | Source | Track 6 | Track 7 | |---|---|---| | Readme burned on both discs | pre-emphasis | de-emphasis | | wa8lmf.net page text | de-emphasis | pre-emphasis | | Version 2 FLAC filenames | de-emphasis | pre-emphasis | | **Measured from the audio** | **pre-emphasis** | **de-emphasis** | The discs' readme has it right; the website text and version 2's filenames do not. --- ## 2. What is in this folder ``` Audio/ 7 FLAC files, losslessly re-encoded from the version 1.1 disc image Documentation/ the union of both discs' documents, deduplicated Tools/ VU Player, as shipped on version 2 README.md this file ``` ### Audio Encoded from `TNC_Test_Ver-1.1.bin` — the actual disc master — not from version 2's FLAC files, for the reasons in §3. 44.1 kHz, 16-bit, stereo (both channels carry identical samples throughout, as on the original disc). FLAC compression level 8; every file was decoded again after encoding and checked against the source PCM. | # | File | Duration | CD sectors (from the .cue) | MD5 of the decoded PCM | |---|---|---|---|---| | 1 | `01 - 144.39 MHz Saturated Channel - Flat.flac` | 25:47.32 | 0 – 116048 | `c449392c9505aa18bac8517d89e41b0f` | | 2 | `02 - 144.39 MHz Saturated Channel - De-emphasised.flac` | 25:47.92 | 116199 – 232292 | `3196b5a010fb8bc077b0104eb7ba44d5` | | 3 | `03 - 100 Identical Mic-E Bursts - Flat.flac` | 5:05.32 | 232443 – 255341 | `29669d96b76fe79d524a7902501d80c4` | | 4 | `04 - Mobile Drive Test - Flat.flac` | 9:58.72 | 255492 – 300395 | `566f26ec16d907437aa4eecd8f4a2e78` | | 5 | `05 - KPC3+ CAL Tones - Flat.flac` | 1:07.01 | 300546 – 305571 | `f931bd915dfb8444858f25d048cdd5bb` | | 6 | `06 - KPC3+ CAL Tones - Pre-emphasised.flac` | 1:07.12 | 305722 – 310755 | `af67edc7953fbfa6b0789bde306d0fe0` | | 7 | `07 - KPC3+ CAL Tones - De-emphasised.flac` | 1:07.21 | 310906 – 315946 | `6578a5b5ffce1f75bd6a887875398907` | Track numbering follows the original CD, so it still matches every published description, the DTMF cue tones on the tracks, and any test results anyone has recorded over the last twenty years. Only the descriptive part of the name is corrected. Title, artist, album, track number and a description are embedded as Vorbis comments in each file. Each track spans INDEX 01 of that track to INDEX 00 of the next — i.e. the two-second pregaps are excluded. They were checked first and contain nothing: peak amplitude 0 to 3 LSB out of 32768. ### Documentation Everything both discs carried, each file once. The HTML readmes render correctly in place, with their images and internal links resolving. | File | From | Note | |---|---|---| | `Readme - TNC Test CD v1.1 (2009).htm` / `.rtf` | v1.1 data track | unmodified | | `Readme - TNC Test CD v2.0 (2025).htm` | v2 ISO | **image/link paths edited** — see below | | `Readme - TNC Test CD v2.0 (2025).rtf` | v2 ISO | unmodified | | `Readme - v1.1 BIN-CUE download notes (2009).htm` | v1.1 download folder | unmodified; a longer variant with BIN/CUE burning instructions | | `Notes on De-Emphasis - WA8LMF.txt` | v1.1 only | dropped by v2 | | `Reason for Pre-Emphasis in NBFM - WA9FBO.html` | v1.1 only | dropped by v2 | | `De-Ephasis_Ckt.gif` | v1.1 only | active de-emphasis network schematic (original filename typo kept — the readmes link to it) | | `DriveTestRoute.gif` | v1.1 only | map of the track 4 drive test | | `DeviceMngr_CD.gif` | v1.1 only | Windows "Enable digital CD audio" screenshot | | `1200-2200-Flat.gif`, `1200-2200-PreEmph.gif`, `1200-2200-DeEmph.gif` | both, identical | reference waveforms for tracks 5/6/7 | | `DeEmphEq.gif`, `PreEmphEq.gif` | both, identical | the Adobe Audition EQ curves used | | `DigiStar.ico` | both, identical | disc icon | The only edit made to any original document: version 2's readme linked its images as `Files/…` and linked the schematic and the drive-test map as `../Index-Files/…`, a path that **does not exist on the version 2 disc** — those two links are dead as published. Both prefixes were stripped, so all seven local references now resolve against this folder (the three external wa8lmf.net links are untouched). Nothing else in the file was touched. The unmodified original is still in `TNC_Test_2.iso` (MD5 `e1ab5cf03e4aff44a26fa61a306ef06c`; the copy here is `4fb05670aa30af7cdc050fe16824f0b4`). ### Tools `VUplayer-2.49.exe` and `VU_Meter-1.2.zip`, from version 2. Unmodified. --- ## 3. Why the audio comes from the 2009 disc image and not from version 2's FLACs Version 2's readme says "The contents of the files are identical to the original disk - only the file format has changed". That is very nearly true, and it was checked rather than assumed: **every sample of audio in version 2 is bit-identical to the version 1.1 disc**, once the rip artefacts below are accounted for. But those artefacts are real, and they are why this set was rebuilt from the BIN: 1. **A constant 667-frame read offset.** Every version 2 track begins 667 frames (15.1 ms) earlier than the corresponding track boundary on the disc — an uncorrected optical-drive read offset. Track 1 consequently opens with 667 samples of silence that are not on the CD. 2. **Pregaps appended to the previous track.** Each of tracks 1–6 in version 2 carries the following track's two-second pregap on the end. 3. **Track 7 carries 152 extra seconds.** Version 2's track 7 runs 3:39 instead of 1:07. After the tones there are 90.0 s of digital silence — the audio session's 6,750-sector lead-out — and then **62 s of full-scale noise** (RMS −7.8 dBFS, peaks at 94 % of full scale): the second session's 4,500-sector lead-in and the data track's 150-sector pregap, which are data-mode sectors and read as ~11 MB of near-uniform random bytes when ripped as audio. The rip stops about 13 sectors into the data track itself. Anyone playing that file into a TNC, or into a service monitor's modulation input at a level set for the tones, gets a full-scale burst of noise after the useful audio. With the offset and the appended pregaps taken into account, the MD5 of every version 2 track matches the corresponding region of the 2009 BIN exactly. So no audio has been lost between the releases, and nothing here is a second-generation copy: it all traces to the same samples. --- ## 4. Full inventory of the two sources ### Version 1.1 — `TNC_Test_Ver-1.1.bin` / `.cue` 328,307 sectors of 2352 bytes. * **Session 1, sectors 0 – 315946**: audio tracks 1–7, laid out as in the table in §2, with 150-sector (2 s) pregaps before tracks 2–7. * **Sectors 315947 – 327346**: inter-session gap — session-1 lead-out, session-2 lead-in and the data track's pregap. All zeros in the image (ImgBurn fills it); version 2's rip shows that the physical disc's lead-in reads as noise (§3). * **Session 2, sectors 327347 – 328306**: 960 MODE1/2352 sectors carrying an ISO 9660 + Joliet filesystem (volume `TNC_Test_Ver-1.1`, extents addressed with absolute LBAs, base 327347). 14 files: the 13 documents listed in §2 plus `AUTORUN.INF`. Also present alongside the image, outside the disc: `_READme.htm`, the longer download-notes variant, kept here. ### Version 2.0 — `TNC_Test_2.iso` ISO 9660 + Joliet, volume `TNC_Test_2`, 24 files: * `Audio-Tracks/` — 7 FLAC files (note the stray space in `01_40-Mins-Traffic -on-144.39.flac` and the capitalisation slip in `04_25-MIns-Drive-Test.flac`). * `Files/` — 5 images plus `DigiStar.ico`, all byte-identical to the version 1.1 copies. * `Files/_vti_cnf/` — **6 stray files**, 167–354 bytes each, that came along by accident. They have `.gif`/`.ico` extensions but are Microsoft FrontPage server metadata (`vti_encoding:SR|utf8-nl`…), left over from the wa8lmf.net web tree. Not copied here. * `VU-Player/` — VU Player 2.49 and VU Meter 1.2. * `_READme.htm`, `_READme.RTF`, `AUTORUN.INF`. Two `AUTORUN.INF` stubs (one per disc) were not copied — they are disc-boot plumbing, not content. **Documents version 2 dropped:** `De-Ephasis_Ckt.gif`, `DriveTestRoute.gif`, `DeviceMngr_CD.gif`, `Notes On De-Emphasis.txt`, `prereason.html`. All are restored here. Two of the five are still linked from version 2's own readme. --- ## 5. Measurements, so the corrections can be checked Analysis was done directly on the 2009 BIN, decoding to mono. **Alignment.** Envelope cross-correlation over each full track, then sample-level FFT cross-correlation. Track 2 aligns to track 1 at lag +54,689 frames (+1.24011 s), a single sharp peak; normalised envelope correlation 0.747. The same test against tracks 3 and 4 peaks at 0.023 and 0.049, at meaningless lags. **Track 1 → track 2 transfer function**, Welch estimate, 4096-point windows, 300 averages, measured independently at t = 150 s, 700 s and 1200 s. All three agree to within 0.1 dB (the 0.1 dB is on the steep skirt below 300 Hz, where one Welch bin spans about 2 dB; elsewhere they agree to 0.02 dB): | Freq (Hz) | 100 | 150 | 200 | 250 | **300** | 400 | 500 | 600 | 800 | 1000 | 1200 | 1500 | 2000 | 2500 | 3000 | 3200 | 4000+ | |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| | \|H\| dB | −18.9 | −12.8 | −1.2 | +5.6 | **+7.1** | +4.3 | −0.2 | −4.1 | −8.6 | −12.8 | −16.2 | −20.0 | −24.7 | −27.9 | −44.2 | −50.6 | −32.8 | | coherence | .998 | .980 | .980 | .996 | 1.000 | .999 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | .998 | .999 | 1.000 | That is exactly the shape the readme describes — a peak around 300 Hz, a high-pass roll-off below it to keep CTCSS tones out, and a falling response above it — and it confirms the relationship is linear and time-invariant, i.e. one track is a filtered copy of the other. **One caveat worth knowing if you rely on this track.** The readme calls the de-emphasis "a precise 6 db-per-octave / 20 db-per-decade" curve. As applied to track 2 it is steeper: between 500 Hz and 2500 Hz the measured slope is **−11.9 dB/octave (−40 dB/decade)**; it then drops into a notch of −50.6 dB at 3.18 kHz, climbs back out, and from about 4 kHz up sits on a −32.8 dB floor. That is exactly what the disc's own screenshot of the filter predicts. `Documentation/DeEmphEq.gif` shows the Adobe Audition Graphic Equalizer on its **30-band, 1/3-octave** tab with the preset **"Mobile Radio De-Emph"**, Range 40 dB, Master Gain −1 dB. Its plotted response peaks at 250–315 Hz — matching the measured +7.1 dB peak at 300 Hz — rolls off below that, and has its top bands pegged at the bottom of their travel, which is the −32.8 dB floor. That is a bank of fixed 1/3-octave bands with a limited maximum cut rather than an RC network, which is why the slope comes out steeper than any RC network's and then flattens; the notch near 3.2 kHz is where the cut is deepest. By contrast the emphasis applied to tracks 6 and 7 *is* the nominal rate (+6.09 and −5.88 dB/octave, measured above). So the three CAL tone tracks behave as documented, and track 2 departs from it. This is a property of the disc as published, not of anything done here — the audio is untouched, and this is worth knowing rather than worth fixing. **Tracks 5/6/7** were aligned to track 5 and measured the same way; the transfer functions, tone balances and per-bit amplitudes are tabulated in §1. Track 6 and track 7 both show coherence 0.997+ against track 5 at every tone line, confirming each is a filtered copy of it, with curves that are mirror images of one another. **Track 7 has a splice.** Track 6 aligns to track 5 at a constant +9,742 frames from start to finish. Track 7 aligns at +14,538 frames until about 1,269,500 frames in (28.79 s), where 79 samples (1.8 ms) go missing and the lag becomes +14,459 for the rest of the track. Any measurement window that straddles the splice shows the coherence collapsing at high frequencies and a transfer function that is too steep; the numbers in §1 come from windows that don't. Because the CAL pattern repeats every 10 ms, the splice is inaudible and harmless for TNC testing. **Track 4** contains 114 carrier bursts in 9:59 (found by the drop in discriminator noise above 5 kHz when a carrier is present — the quieting), at a median spacing of 5.3 s. The readme's "25 minutes of a single mobile D700 beaconing every 12 seconds" would be about 125 beacons, so the dead air between beacons was edited out, as for track 1: roughly 110 packets, 22 minutes' worth at one per 12 s, in ten minutes of audio. --- ## 6. Provenance and integrity Every audio file was verified lossless by decoding it after encoding and comparing the MD5 of the resulting PCM against the MD5 of the source bytes read out of the BIN. Those MD5s are in the table in §2 and can be reproduced from `TNC_Test_Ver-1.1.bin` using the sector ranges given. MD5s of the files as delivered are in `MD5SUMS`. Because the analysis and this write-up were machine-produced (see the note at the top), nothing in them is offered as something to take on trust. The three things that matter are independently checkable in a couple of commands each: * **the audio is bit-identical to the CD** — `dd` the sector range out of the disc image, decode the FLAC to raw PCM, and compare. Each track also carries the encoder's own MD5 of its input in the FLAC STREAMINFO block, so `flac -t` verifies a file against itself; * **track 2 is derived from track 1** — align at +54,689 frames and measure coherence; it sits at 0.97–1.000 across the band (0.996+ outside the 100–300 Hz skirt), against 0.001–0.010 for the controls; * **tracks 6 and 7 are pre- and de-emphasised respectively** — measure the transfer function against track 5, or just measure the 1200 Hz and 2200 Hz bit amplitudes, or compare against the disc's own reference GIFs. The original disc images published by WA8LMF are still the definitive artefacts. This folder is a derived, relabelled working set — keep the images. Set against the work of making the recordings, three filenames are a small thing. None of the above is a criticism of the original; it is a tidy-up, offered in that spirit, and the recordings remain Stephen H. Smith's. They are © Stephen H. Smith and are reproduced for the purpose he published them for — a common reference for comparing packet demodulators. --- ## 7. Revision history **7 September 2026** — first version, published the same day at . **7 September 2026, later** — adversarially reviewed in a separate Claude Code session: every measurement above was re-run from the disc image, every link and quotation checked against its source, and the following corrected: * the coherence between tracks 1 and 2 was overstated as 0.998–1.000 across the band; it dips to 0.97 on the steep skirt between 100 and 300 Hz (the table already showed 0.980 at 150–200 Hz); * the three track-2 measurement points were described on the site as "18 minutes apart"; they are 2½, 11½ and 20 minutes in, and agree to 0.1 dB, not 0.02 dB; * the track-2 response was described as flattening above 3.5 kHz; it first drops to a −50.6 dB notch at 3.18 kHz and then rises to the −32.8 dB floor; * the per-cycle tone-balance figures for tracks 6 and 7 (+3.76 / −4.17 dB) came from a method that mis-sorted partial cycles; replaced by the per-bit measurement (+4.5 / −4.6 dB) and reconciled with the steady-state figures; * the 62 s of noise on version 2's track 7 was attributed to "the data area"; it is the second session's lead-in and pregap, read as audio; * the CAL-tone traces on the site were said to be drawn "at the same instant"; tracks 5 and 6 are from 24.16 s in, track 7 from 51.6 s in; * WA8LMF's instruction not to play the tracks over the air was missing from the site; the site said the version-2 readme was "kept as published" when its paths had been edited; the site's PLL remark was under track 6 rather than track 7; the site said some track-4 bursts were "never decoded" where the readme says they failed with the AGW Packet Engine; two quotations were not verbatim; the recording was dated to 2006 when only the publication is; * added: the splice in track 7, the beacon spacing in track 4, and this acknowledgement of copyright. The FLAC files were re-tagged to match (comments only; the audio is unchanged and the PCM checksums in §2 still hold). `MD5SUMS` was regenerated. --- Published at https://tnc-test.m0lte.uk/ by Tom Fanning, M0LTE. The recordings are the work of Stephen H. Smith, WA8LMF — http://wa8lmf.net/TNCtest/ Analysis and text by Claude (Anthropic Claude Opus 5) in Claude Code; see the note at the top.