Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Recording and playback

NodeRecordsWire fromFormat
RecorderThe Device's full IQ, with an optional pre-rollDevice iqSigMF
Baseband recorderOne channel's filtered IQChannel basebandSigMF
Audio recorderOne channel's audioChannel audio48 kHz 16-bit WAV
Event output, RecordingsOne WAV per callChannel events8 kHz 16-bit WAV

A SigMF recording is two files: samples in .sigmf-data, frequency, rate, and time in .sigmf-meta. Keep them together.

Record on a recorder is a switch saved with the workspace. While it is on, the server records whatever is wired in: it follows rewiring, keeps going with the browser closed, and starts again after a restart.

Decoded messages are not recordings. For those, wire events to a Decoder log.

Record IQ

Wire Device iq to a Recorder, press Record, then Stop. On a multi-lane radio the wired port picks the lane. Wire GPS position to store the location. The sample rate is locked while recording.

A radio that restarts or drops samples leaves a gap, not an end: the recording goes on, and each gap starts a new capture segment in the metadata. A clean server shutdown finishes open recordings. Killing the process can leave one incomplete.

Record on a schedule or a pass

Wire a Schedule or a Satellite control to a recorder's control, then press Record to arm it. It records only while the controller says so.

A Schedule holds windows such as 06:00 to 08:00 on weekdays. A stop before the start runs past midnight, and the same time for both keeps it on all day. Times follow the Zone you set, or the server's clock. Wire it to a Device's control too and the radio rests outside its windows.

Pre-roll

Catch a signal after it happened:

  1. Turn Pre-roll on and set Keep, 1 to 120 seconds (default 10).
  2. The recorder holds that much IQ in memory from then on.
  3. Record writes the held seconds first, then keeps going live.
  4. Stop ends the file. The pre-roll keeps running.

The pre-roll belongs to the workspace: switching away lets the radio go, switching back holds it again.

The buffer uses seconds × sample rate × 8 bytes, up to 1 GiB. Memory shows it. The sample rate is locked while a pre-roll is held. Retuning starts a new segment in the same recording.

Record a channel

Baseband recorder keeps a channel's IQ after filtering and before squelch. The files are much smaller than full Device IQ and can be played back like any other recording. Changing the mode or the Device rate starts a new file. Removing the channel ends it.

Audio recorder keeps what reaches it, after squelch and any Audio FX it is wired behind. Closed squelch writes silence so timing stays intact; Skip silence pauses instead. Mode and rate changes do not stop it. The file stays playable if the server stops mid-recording.

Both recorders take several channels and write one file per wired channel. Each Audio recorder keeps its own files, even when another one records the same channel.

Record each call

Wire a channel's events and audio to an Event output set to Recordings. Every call becomes its own WAV in the audio library, named by start time (UTC), mode, and frequency:

20261001T223105Z_NFM_144.200MHz.wav
20260815T100000Z_DMR_451.125MHz_TG91.wav

What makes a call:

ChannelA call is
Digital voice, trunk systemOne call, from header to end
AM, NFM, SSB, DECTOne squelch opening. Gaps under 1.5 s stay in the call

An analog channel with squelch off has no calls; use the Audio recorder for continuous audio. Calls longer than 10 minutes continue in a new file. Encrypted calls have no audio to save. Several channels can share one Event output. An Event filter between them skips short calls or keeps certain talkgroups. A Spectrum monitor wired here saves its clips the same way.

A call carries its clip on the events wire. Clips are kept only when they reach a Decoder log, which plays them, or an Event output that keeps them: Recordings, Matrix or a Discord webhook.

Record an array

Rec on an Array records every lane into one SigMF collection: a .sigmf-collection file that ties one recording per lane together, with the geometry, tier and noise source windows. Stop ends it. Library → Recordings lists the collection once, with its lane count.

Press Calibrate while recording. Playback calibrates from the recorded noise windows.

Play a recording

In Library → Recordings, press Open as source. A Device node appears pinned to that recording. Wire it to channels and displays like any other Device, then use play, pause, and seek to decode the same samples again with different settings. A Device node also offers the library itself, under Recording.

A recording made with GPS wired plays its location back too. Wire the Device position to a Map, or to anything that takes a GPS. The position follows the playhead, also on seek, and the Device node shows it.

Upload SigMF adds a recording from your computer, as a .sigmf archive or a .sigmf-meta and .sigmf-data pair. A downloaded array collection uploads whole. An upload may be up to 16 GiB; archives stream to disk.

Play an array recording

Open a collection as a source. The Device node gets one output per lane, iq to iq5 for a five-lane array. Press Make array, or wire the outputs to an Array's lanes in order. Set the Array's geometry as it was when recording. Wire a GPS to the Array's position and add a processor, such as a Direction finder. Each lane keeps its recorded frequency, so the Array cannot retune. The Array calibrates on the recorded noise windows; when the recording ends it keeps the last calibration.

Tags and notes

In Library → Recordings, press the pencil to give a recording a name, comma-separated tags, and a note. Search covers names, tags, and notes. Annotations live in the SigMF metadata, so they travel with the files.

Download

Download IQ as .sigmf, the original archive, or .wav, a stereo float WAV with I and Q as channels. The WAV keeps only the centre frequency and start time from the metadata. An array collection downloads as one SigMF archive with every lane, and has no WAV. A failed download aborts instead of handing you a truncated file.

Where files go

Recordings go to sdrmm/recordings in the platform data folder, with audio in audio/. Change it with --recordings-dir. Containers use /data/recordings. The library rebuilds itself from the SigMF files on disk.