.\" Generated by packaging/make-browse-man.py -- do not edit by hand. .TH SAUNTERBROWSE 1 "2026-08-22" "bandsaunter 2026-08-22_03" "User Commands" .SH NAME saunterbrowse \- read and listen to what a bandsaunter scan collected .SH SYNOPSIS .B saunterbrowse .RI [ DIRECTORY ] .RB [ \-\-sort .IR ORDER ] .RB [ \-\-filter .IR TEXT ] .RB [ \-\-player .IR CMD ] .RB [ \-\-list ] .SH DESCRIPTION A scan leaves a directory of recordings. Beside each one is a JSON file holding what the classifier made of it, and for speech a transcript of what was said. Reading that by hand means opening files one at a time and guessing which are worth playing. .PP .B saunterbrowse shows them as a list you move through with the arrow keys. The transcript of whichever recording is highlighted fills the top of the screen, because that is the part you actually want to read; underneath it are the identification, the bands the frequency falls in, and the list itself. Pressing Enter plays the recording. .PP With no .I DIRECTORY it opens the one the scanner writes to, taken from your saved settings, so it normally needs no arguments at all. .PP It only ever reads. Nothing in the recordings directory is renamed, moved or deleted. .SH KEYS .TP .B "Up Down k j" Move through the recordings. .TP .B "PgUp PgDn" A screenful at a time. .TP .B "Home End" The first and the last. .TP .B Enter Play the highlighted recording. Playing a second one stops the first: two players talking over each other is worse than either alone. .TP .B Space Stop playing. With nothing playing, it starts, like Enter. .TP .B t Read the whole transcript full screen, scrolling with the arrow keys. Useful for a long net, where the panel at the top can only show the first few lines \[em] it says so when there is more. .TP .B / Filter. What you type is matched against the frequency, the filename, the identification and .I everything that was said, so "was the repeater mentioned" is a question you can ask directly. Enter accepts, Escape clears. .TP .B s Cycle the order: time, frequency, duration. .TP .B r Re-read the directory. A scan running in another window is still writing to it, and this picks up what has arrived since. .TP .B o Print the highlighted recording's path and quit, for piping into something else. .TP .B "? h" The list of keys, and which audio player was found. .TP .B q Quit. With a filter in force, Escape clears the filter first. .SH OPTIONS .TP .BI DIRECTORY Where the recordings are. Defaults to the scanner's output directory, or to .B $BANDSAUNTER_OUTPUT when that is set. .TP .BI \-\-sort " ORDER" Start in this order: time, frequency, duration. Time is newest first; duration is longest first. .TP .BI \-\-filter " TEXT" Start with only the recordings matching this, exactly as if it had been typed at the .B / prompt. .TP .BI \-\-player " CMD" The command used to play a recording. The path is appended as its last argument. By default the first of these that is installed is used: pw-play, paplay, aplay, play, ffplay, mpv. .TP .B \-\-list Print one line per recording and exit, without drawing anything. This is what to use over a pipe, in a script, or anywhere there is no terminal. .TP .B \-V ", " \-\-version Print the version and exit. .SH SOUND Playback is handed to whichever player is installed rather than done in the program: the recordings are ordinary WAV files, every desktop already has something that plays them, and a browser that cannot start is worse than one that cannot play. If none is found, everything else still works and the message says which packages would fix it. .PP Over ssh there is usually no sound server at the far end. The browser and its transcripts work regardless; only Enter has nothing to do. .SH TRANSCRIPTS A transcript appears only where a recogniser produced one, which means the capture was judged to be speech and .B bandsaunter\-transcribe was installed at the time. Where there is none, the panel says which of the several reasons applies \[em] Morse, data, a bare carrier, or speech that was never offered to a recogniser \[em] because those want different things done about them. .PP Two places can hold the text: the JSON sidecar records what was recognised during the scan, and the .I _transcription.txt beside the recording is what a later re\-run wrote. The file wins, being the more recent of the two. .SH FILES .TP .I ~/bandsaunter/ Where recordings are written, unless the saved settings say otherwise. .TP .IR frequency \-\- date _ time \- modulation .wav A recording. .TP .IR ... .json Its measurements and identification. .TP .IR ... _transcription.txt What was said, where a recogniser heard speech. .SH ENVIRONMENT .TP .B BANDSAUNTER_OUTPUT The directory to open, overriding the saved settings. .SH EXAMPLES .PP .RS .EX saunterbrowse .EE .RE .PP Open the scanner's output directory. .PP .RS .EX saunterbrowse /mnt/recordings \-\-sort frequency .EE .RE .PP Browse somewhere else, grouped by channel rather than by time. .PP .RS .EX saunterbrowse \-\-list | grep \-i "mile marker" .EE .RE .PP Search the transcripts from a script. .SH EXIT STATUS 0 on a clean exit, 1 when the directory holds no recordings, 2 when it does not exist or there is no terminal to draw on. .SH SEE ALSO .BR bandsaunter (1) .SH BUGS The list is read when the browser opens. Press .B r to pick up recordings a running scan has written since.