Q-Code Audio Link

This page is a dumb ear and mouth — nothing more. It plays a tone string out of a speaker and reports which tone it hears each 50 ms. All of the modem intelligence (wake burst, preamble, length, CRC, the decode) lives in Q-Code (qaudio.py). This page holds no framing or checksum logic. The acoustic path (speaker → air → mic) is hardware: use Test tone first and watch the bars move. If the 16 kHz bar does not move, your speaker/mic pair does not pass that band — try a lower band.

Transmit — play a tone string

Paste a tone string from Q-Code (hide … audio audio prints one per share). B = 250 ms wake burst at 16 kHz, then one 50 ms tone per bit (17 kHz = 0, 18.5 kHz = 1).



Receive — listen and report the tones heard

Open this page on the listening device, press Start listening, then play the frame on the other device. The page waits for the 16 kHz wake burst, then reports one bit per 50 ms. Paste the heard tone string back into Q-Code: reveal … from audio <tones…>.

idle