SDR-Receiver
1. About the App
SDR-Receiver is used with a USB software-defined radio on macOS. Supported receivers range from an inexpensive RTL-SDR USB stick (about 40 USD) to a communications receiver such as the Icom IC-R8600 (about 3000 USD). After the receiver is connected, the main window shows the spectrum (FFT) and waterfall, together with the controls used to tune and listen.
The following modes can be demodulated to the speaker: WFM (broadcast FM), NFM (narrow FM), AM, SSB (USB and LSB) and CW (Morse).
The app also contains more than 25 decoders for data, speech and images. Decoded traffic can be written to a log file. Some decoders show positions on a map.
Band plans, frequency lists and memories are maintained under Tools. The included band plan is shown on the spectrum. The frequency list contains a General catalog and the EiBi shortwave list. EiBi is a published schedule of broadcast stations, including names and transmission times in UTC. The Stations at VFO window lists catalog entries for the frequency currently tuned.
The Scanner searches a frequency range, a list of memories or a frequency list for signals.
I/Q recording stores the raw samples from the receiver. During playback, the recording is used as if the receiver were still connected: the frequency can be tuned within the captured bandwidth, the demodulation mode can be changed, and decoders can be used. A separate audio recorder stores only the speaker audio. Recording can follow the signal so that silent periods are not written to the file.
1.1. Troubleshooting
Should you encounter any issues, please refer to the Common Issues section of the manual first. If no solution is listed there, use the app’s Contact Developer feature.
2. The manual
This manual describes how to use SDR-Receiver: connecting a receiver, the main window, decoders, tools and additional views.
The manual can be opened from inside the app (SDR-Receiver ▸ Settings…, then Open the App Manual) or in a browser:
https://go-to.me/sdr-receiver-manual
For a printed copy, or to save a PDF, click here.
The manual is updated from time to time.
3. Requirements
SDR-Receiver requires macOS 26 or later. Older macOS versions are not supported.
A purchase on the App Store can be used on more than one Mac. Use the same Apple ID on each Mac.
SDR-Receiver works with the following USB receivers:
RTL-SDR (and variants)
Airspy
Airspy HF+
Microtelecom Perseus
Icom IC-R8600
FUNcube Dongle Pro+
HackRF
ADALM Pluto (and variants)
The receiver must be connected to the Mac by USB.
4. Connecting the Receiver
The receiver must be connected to the Mac by USB. On the Icom IC-R8600, use the USB cable on the receiver’s I/Q outlet — not the CI-V or audio connection.
Click the centre of the window, or Connect at the top, to open the Receivers list. The first time this list is opened it contains only the Demo Receiver.
4.1. Adding a receiver
Click Add. Choose the receiver type.
Then click Select Connected Device…. That scans for devices of the chosen type that are currently plugged in. Select the device and return to the previous screen.
The name is filled in automatically. Change it if more than one receiver of the same type is used; otherwise leave the default. Click Save. The receiver is added to the list.
Select an entry and click Info for frequency range and other specifications of that receiver.
Click Connect to open the main window.
After a connection, sample rate and Zero-IF escape are under SDR-Receiver ▸ Receiver Settings…. Sample rate is the bandwidth the radio actually captures. Zero-IF escape is described under Frequency Tuning below.
4.2. The main window
The black strip at the top is the VFO. Mode selects demodulation: WFM (broadcast FM), NFM (narrow FM), AM, USB, LSB or CW. BW on this strip is the demodulation filter — the width of the signal sent to the speaker and to audio-based decoders.
AGC is automatic gain control on the audio. It holds the speaker level steadier: weak signals are brought up, strong signals are held back so they do not overload. Click cycles Off, Slow, Med and Fast. Off leaves the gain fixed. Slow, Med and Fast set how quickly the gain follows the signal.
SQL is squelch. When it is on, the speaker is muted until the signal is strong enough. That keeps empty channels quiet. Click turns it on or off. Option-click sets the level: higher means a stronger signal is required before audio is heard.
HPF is a high-pass filter on the speaker. It cuts low-frequency rumble and hum. LPF is a low-pass filter on the speaker. It cuts high-frequency hiss. NR is noise reduction on the speaker. Click turns each on or off. Option-click sets the cutoff (HPF, LPF) or the amount (NR). These three affect the speaker only. They do not change what a decoder receives.
Band lists sections from the enabled band plans (for example maritime, broadcast or amateur). Selecting a section tunes to the centre of that range. Band plans themselves are maintained under Tools.
Click the frequency readout to type a frequency in MHz.
M+ stores a memory at the current frequency. Memories can show markers above the frequency scale. MEM recalls a stored memory. The recall list can be searched by name, tag or frequency.
<<, <, >, >> and the tuning wheel change frequency in steps set by Step.
Two meters sit under those controls. The right meter is always the S-meter. In WFM and NFM the left meter is TUN: centre means the station is on frequency, left means tuned low, right means tuned high. In the other modes the left meter is AF Level, the audio level after demodulation.
The buttons to the right of the VFO depend on the connected receiver. Controls the device does not have are hidden. Typical controls are gain or attenuator, RF amplifier and Bias-T.
4.3. Spectrum and waterfall
Below the VFO is the panadapter: the spectrum (FFT) above, the waterfall below.
The yellow line is the VFO — the frequency being listened to. The blue shaded area is the demodulation filter. Its width follows BW on the VFO strip.
A band ribbon (maritime, broadcast, amateur and so on) is drawn from the enabled band plans. See Band Plan under Tools. Memory markers can appear above that ribbon. Marker size and height are set in SDR-Receiver ▸ Settings….
DISP on the spectrum sets how the display is drawn. It does not change the radio.
Avg smooths the spectrum trace. Auto scale sets the dB range from the signal. With Auto off, Ref (top) and Floor (bottom) are set by hand, or by dragging the dB scale on the left. The scale is dBFS relative to full-scale IQ, not the S-meter. Markers and Band plan turn the memory stems and the band ribbon on or off.
The frequency scale sits between the spectrum and the waterfall. Drag the bottom of that scale to change how much height is given to the spectrum and how much to the waterfall.
−, BW and + at the bottom of the waterfall set the displayed bandwidth (zoom). This is independent of the sample rate: the radio still captures the same width; only the view changes. The same BW popover also sets waterfall speed.
The scale on the left of the spectrum is dB. The scale on the left of the waterfall is time. Either can be dragged to change the corresponding setting.
4.4. Toolbar
At the top of the window: volume and mute, a lock, and the I/Q recording controls.
The lock stops accidental frequency changes.
4.5. I/Q recording
I/Q recording stores the samples from the receiver, not the speaker audio. Playback is used as if the receiver were still connected: the frequency can be tuned within the captured bandwidth, the demodulation mode can be changed, and decoders can be used. Audio recording is a separate tool and is described under Tools.
Files can become large. Size follows the sample rate under SDR-Receiver ▸ Receiver Settings…. As a guide, about one minute at 5 MHz produces around 1 GB. The Perseus can capture up to 2 MHz; some Airspy models more than 10 MHz.
To record, click the red record control at the top. Recording starts at once. The main window shows a red border and the elapsed time. Click the same control to stop. A file name is asked for then.
To play a recording, disconnect the receiver first. Click the file control at the top and choose the file. Playback starts immediately. Use the transport controls to pause, stop or loop.
To use a live receiver again, click Close Playback at the top right.
4.6. The Demo Receiver
The Demo Receiver is not hardware. It plays included recordings and generated signals so the app and the decoders can be tried without a radio.
Included examples: Radio China (a foreign-language broadcast for Speech / Transcribe / Translate), DCF77, an ACARS recording, and generated RTTY, CW and ACARS.
After connecting, follow the instructions shown in the window.
4.7. Frequency tuning
The frequency can be changed in several ways:
Click the frequency readout and enter a value in MHz.
Use <<, <, >, >> next to the tuning wheel, or the wheel itself. The step size is set by Step.
Double-click a frequency on the spectrum.
Scroll the mouse wheel over the panadapter to step the VFO. Option-scroll changes the displayed bandwidth.
Drag the waterfall, or the spectrum outside the blue filter, to move the centre of the display (the LO).
Drag the blue filter or the yellow VFO line on the spectrum to move the listening frequency (the VFO).
4.8. Zero-IF escape
Some receivers produce a spike at the centre of their own spectrum (DC offset and LO leakage). If the VFO sits exactly on that centre, SSB in particular demodulates the spike as a tone in the audio.
Zero-IF escape parks the hardware centre (LO) a little above the VFO on an explicit tune, so that spike is not in the audio. The amount is set under SDR-Receiver ▸ Receiver Settings…, in the Tuning section. Set the slider to Off to place the LO on the VFO. A few decoders that need the signal at DC ignore this setting.
1. Decoders
Decoders are opened from the Decoders menu. Each decoder has its own window. They copy data, speech or images from the signal: pagers, aircraft and ship traffic, packet radio, weather fax, amateur digital modes, time signals, live transcription, and others. Some also show positions on a map.
RX starts and stops decoding. Click it to turn the decoder on. While RX is on, some decoders also set the demodulation mode and bandwidth required for that signal. Closing the decoder window turns RX off and stops logging. Minimising the window leaves the decoder running.
The sections below apply to most decoder windows. Later sections cover each decoder.
1.1. Frequency selection
Where a list of known frequencies exists, the decoder offers a frequency control like this:
Type in the field to search. Every matching entry is listed. A section can also be chosen first, so only entries in that section are shown.
< and > to the right of the field step to the previous or next entry.
Selecting an entry tunes the receiver. Mode, bandwidth or other settings may also be set when that frequency needs them.
Manual is selected when the current frequency is not in the list, or when a frequency outside the list is used on purpose.
1.2. Filter
Many decoder windows, and some Tools windows, have a Filter field. It hides rows in the table. It does not change decoding, and it does not change what is written to a log.
Leave the field empty to show every row.
Terms can be combined with a comma. A row is kept if it matches any of the include terms. A term starting with - always hides a matching row.
Examples:
berlin— keep rows where any column contains that textberlin,hamburg— keep rows that contain either-test— hide rows that contain that textCall=K1JT— keep rows where the Call column contains that valueCountry=-russia— hide rows where the Country column contains that valuedB>-10— keep rows where the dB column is greater than −10
Column names match the table headers (not case-sensitive). = is a contains match on that column. >, >=, < and <= compare that column; the comparison is numeric when both sides are numbers.
1.3. Logging
Many decoders can write received data to a file. Click LOG, choose a file name, and logging starts. Click LOG again to stop.
The file is .csv when the window is a table of fields, and .log when the window is a text stream. Only traffic received after logging is started is written. The Filter field is ignored: the file contains everything, not only the rows on screen.
Logging also stops when RX is turned off or the decoder window is closed.
3. CW (Morse Code)
CW (Morse code) is still used in amateur radio, some commercial and utility services, and by stations that send Morse rather than voice.
This decoder listens to the CW audio. RX sets the demodulation mode to CW. Use a narrow bandwidth (about 1 kHz). Pitch is the tone in the speaker and the tone the decoder looks for (default 700 Hz). Speed can be a fixed WPM value or Auto.
Tune to a Morse signal. Zoom the waterfall and place the signal on the small CW marker. The decoded text is shown in the window.
False characters cannot be avoided on CW. Noise and other signals are often decoded as Morse, so some garbage in the text is normal.
LOG writes decoded text to a file.
4. HF Fax / Weather FAX
HF Fax (weather facsimile) is used to send still images over shortwave, mainly weather charts from meteorological stations. The image is sent as a slow FM tone on USB.
RX sets USB and a 3 kHz bandwidth. Use Freq to pick a catalog frequency, or tune manually. A catalog entry also sets IOC, LPM, Dev and Invert for that station.
AUTO waits for the start tone of the next image. Use START if the transmission is already in progress and the start tone has been missed.
PPM corrects clock skew (a slanted image). Phase moves the image left or right.
File saves the current image, turns on Auto Save (every completed image is written to a folder), or loads a saved image so PPM and Phase can be adjusted again. A red border on the File button means Auto Save is on.
5. POCSAG (Pager)
POCSAG is the protocol used by numeric and alphanumeric pagers. SMS largely replaced it for the public, but commercial paging still exists in some countries, and amateur operators run converted pagers on ham frequencies.
RX sets NFM and starts decoding on the current frequency. Tune to a pager channel first. Baud is 512, 1200 or 2400; 1200 is the usual rate. Polarity can be left on Auto unless the text is inverted garbage.
The table lists time, RIC (the pager address), function bits, type (tone, numeric or alpha) and the message. Type can hide kinds that are not wanted. Filter uses the same grammar as other decoder tables.
Encrypted pages are not decoded.
6. SSTV (Slow Scan TV)
SSTV sends still pictures over a voice channel. It is used mainly by amateur radio: colour images on HF (usually USB) and on VHF (usually NFM). The International Space Station (ISS) also sends SSTV on 145.800 MHz from time to time. A pass is often strong enough for an inexpensive RTL-SDR and a simple antenna.
Use Freq to pick a catalog frequency, or tune manually. Catalog entries may set the VFO and the demodulation mode. SSTV can be USB or NFM, so the mode on the main window must match the station.
RX only starts listening to the audio. Decoding starts with Start. Leave Mode on Auto VIS so the decoder reads the header and selects the picture mode. If the header has already passed, choose the mode by hand and press Start to copy the rest of the transmission.
PPM corrects clock skew (a slanted image). Phase moves the image left or right. Both are available after a complete picture, or after a saved image is loaded.
File saves the current image, turns on Auto Save (every completed image is written to a folder), or loads a saved image so PPM and Phase can be adjusted again. A red border on the File button means Auto Save is on.
7. ADS-B (Air Traffic)
ADS-B is how aircraft broadcast their own identity, position, altitude and speed. Air traffic control and other aircraft use it. The transmissions are on a fixed frequency of 1090 MHz.
RX takes the receiver over: it tunes to 1090 MHz and switches to RAW. Turning RX off restores the previous frequency and mode.
The table lists aircraft and is updated as new reports arrive.
RAW shows the incoming frames instead of the aircraft list. Map shows aircraft positions and tracks.
8. AIS (Ship Traffic)
AIS is how ships broadcast their identity, position, course and speed. Other vessels and shore stations use it to see traffic. The two worldwide channels are A (161.975 MHz) and B (162.025 MHz).
Select A or B, then RX. RX sets NFM. Manual keeps the current VFO if a different AIS frequency is used.
The table lists vessels and is updated as reports arrive.
RAW shows the incoming messages instead of the vessel list. Map shows ship positions and tracks.
9. APRS (Packet Radio)
APRS is amateur packet radio used to send positions, weather reports and short messages. Stations, cars, balloons and some satellites (including the ISS) take part.
Above 30 MHz the usual mode is 1200 baud NFM. Below 30 MHz it is 300 baud SSB. Set Baud to match.
Use Freq to pick a catalog channel, or tune manually. RX starts decoding. Packets appear in the list. Click a row for the decoded detail.
Map shows position reports.
10. ACARS (Aircraft Messages)
ACARS is a VHF data link used by aircraft to send short operational messages to the ground: departure, position, weather requests, and similar traffic. The usual channels sit around 131 MHz and depend on the region.
Use Freq to pick a channel for the current area, then RX. RX sets AM. Messages appear in the table.
An included aviation database fills in airline name, aircraft type and model where the registration is known. That database is updated from time to time with the app.
The 136.900 and 136.975 MHz entries are VDL2, not this decoder.
11. ALE (Automatic Linking)
ALE (Automatic Link Establishment) is used on HF so radios can find each other without an operator watching one frequency. Stations send short sounding calls, then set up a link and may send a text message. It is used by government, military and some amateur nets.
Use Freq to pick a catalog channel, then RX. RX sets USB or LSB and a 3 kHz bandwidth, as required by that entry. Manual keeps the current VFO.
Decoded traffic is listed with time, type, from, to and the message. Type chooses what is shown (sounding, call, to, message, command). Sounding is off by default because those bursts are frequent and usually not the traffic of interest.
12. RDS (FM Radio Text)
RDS is the data sent by many broadcast FM stations together with the audio: station name, programme type, and RadioText (the scrolling line with the song title or a station message).
Tune to an FM station in WFM, then RX. The decoder does not change the frequency or the mode. The station panel shows the current name and related fields; the list below it is RadioText as it arrives.
RAW shows the incoming RDS groups as hex instead of RadioText.
13. FT8 (Ham Digital)
FT8 is a weak-signal amateur mode from the WSJT family (Joe Taylor, K1JT). Short messages with callsigns and Maidenhead locators are sent in timed slots. It is used worldwide on HF (and some VHF) to make contacts at low power. This window also decodes FT4 (shorter slots) and FT2.
Each mode has its own published USB frequencies. Select Mode first (FT8, FT4 or FT2), then the band. RX sets USB and starts decoding.
A pass lasts 15 seconds for FT8, 7.5 seconds for FT4, and about 3 seconds for FT2. The bar at the top shows how far the current slot has run. FT8 and FT4 use even and odd UTC slots: even-slot rows are green, odd-slot rows are blue.
Map shows stations that sent a locator.
14. WSPR (Propagation)
WSPR (Weak Signal Propagation Reporter) is an amateur beacon mode from the same WSJT family as FT8. Stations send a callsign, locator and power at very low power so others can see which bands are open. There is no conversation — only these beacons.
Each pass lasts two minutes (even UTC minutes). The list stays empty until the first slot finishes.
Use Freq to pick a band, then RX. RX sets USB and a 3 kHz bandwidth.
Map shows the stations that were decoded.
15. Time Signal
Long-wave time stations send the civil time as a slow stream of bits, once per minute. Clocks and radios use them as a time reference. This decoder covers DCF77 (Germany), MSF (United Kingdom), WWVB (United States), JJY (Japan) and TDF (France).
Use Freq to pick a station, then RX. Bits of the current minute are shown at the top as they arrive. When the minute is complete, a row is added with the decoded time and the offset from the Mac clock.
Stations also send parity bits. If parity fails, that minute may be wrong.
16. Speech / Transcribe / Translate
This decoder transcribes spoken audio and can translate it, so a broadcast in another language can be followed as text.
It uses only Apple on-device speech recognition and translation (Apple Intelligence). Apple Intelligence must be enabled on the Mac. Check SDR-Receiver ▸ Settings…, AI tab.
Tune to a voice station (any mode that produces speech). Select Language, then RX. Squelch should be on so empty audio is not sent to the recognizer.
The upper strip is the live line. It may change while the recognizer is still working. When a segment is finished it is added to the lower part of the window. That lower text is what is logged, and what is translated if Translate is not None.
Timestamp starts each new block with a time. LOG writes the finished text to a file.
1. Band Plan
A band plan is a map of frequency ranges: amateur, broadcast, maritime and so on. The app includes a General plan with allocations that are the same in most of the world, plus further plans for regions or special uses.
Open Tools ▸ Band Plan. Enable a plan with its checkbox. Enabled plans appear as the coloured ribbon on the spectrum, so the current range is visible while tuning. The ribbon can also be turned off under DISP.
Band on the main window lists sections from the enabled plans. Selecting a section tunes to its centre and may set the mode.
2. Frequency list
The Frequency List holds reference catalogs of stations, not personal memories. There are no markers on the panadapter for these rows. Show ▸ Stations at VFO lists the catalog entries for the frequency currently tuned. Only catalogs that are Enabled here appear in that window.
The app includes:
General — well-known frequencies that apply in most places
EiBi — a published shortwave broadcast schedule (station names and transmission hours in UTC)
further catalogs that can be created or imported
New creates a catalog. Give it a unique ID and a title.
Import / Export can download a fresh EiBi list from eibispace.de (this replaces only the EiBi catalog), import a CSV file into a user catalog, or export a user catalog as CSV.
Add, edit and delete apply to entries in user catalogs. Right-click a row to copy, cut or paste. The same clip can be pasted into Memories, and memories can be pasted here.
Rows outside the range of the connected receiver are shown grey.
3. Memories
Memories are stored channels. Besides frequency they can keep mode, bandwidth, AGC, squelch, step and display span. Bandwidth, squelch and span are optional: if they are not stored, recall leaves the current setting as it is.
A marker is drawn above the frequency scale for each memory. Click a marker to recall it: the receiver tunes to that frequency and applies the stored settings.
Create a memory with M+ on the main window, or from Tools ▸ Memories. The list can be imported and exported as CSV.
Rows outside the range of the connected receiver are shown grey. Right-click a row to copy, cut or paste. The same clip can be pasted into the Frequency List, and frequency-list rows can be pasted here.
Change applies an edit to every memory the current filter is showing. That is useful for adding a tag to a group of memories, or setting the same mode on a range.
Example: set NFM on all memories between 100 and 200 MHz. First filter with:
frequency>100,-Frequency>200
That keeps frequencies above 100 MHz and hides those above 200 MHz. Then open Change, set Mode to Set NFM, and Apply.
4. Scanner
The Scanner hops through frequencies and records those that are busy.
Choose what to scan:
Range — from a start frequency to an end frequency, in a chosen step. The current mode and bandwidth are used.
Preset — a built-in range such as 2 m amateur FM or air-band voice. Selecting a preset also sets mode and bandwidth.
Memories — memories that match a tag filter (empty means all).
Frequency List — entries from the enabled frequency catalogs, also with an optional tag filter.
Detect is either Level (a signal stronger than the entered dB value) or SQL open (the squelch on the main window opens). For SQL open, set squelch on the VFO so it only opens on a busy channel.
Timing is Fast, Medium, Slow or Manual (how long to wait after a hop, and how long to listen). Scanning always runs from low frequency to high.
Resume after a hit:
Stay — remain on that frequency
After silence — move on when the channel has been quiet for the given time
After seconds — move on after the given time even if the channel is still busy
Loop starts again at the beginning of the list. Audio is muted while hopping and restored on a hit or on Stop.
Start begins the scan. Hits appear in the list with a count and the minimum and maximum dB seen on that frequency. Stop ends the scan. Double-click a row to go there. M+ stores the selected hit as a memory. Skip ignores that frequency for the rest of the session. Continue resumes after Stay or a double-click.
5. Audio Recording
Audio Recording writes the speaker audio, not the I/Q stream. What is heard after HPF, LPF, NR and squelch is stored as a WAV file. This is separate from I/Q recording on the main window.
Folder… chooses where files are stored. A folder is required before recording can start.
Type:
Continuous — one file, including quiet periods
Pause on SQL — one file; writing stops while squelch is closed
Split on SQL — a new file each time squelch opens
If squelch is off, Pause and Split behave like Continuous.
Filename patterns can include date, frequency, mode or a sequential number.
Use the recorder controls on the right to start, stop and play. Files in the folder appear in the list. A row can be played, renamed or deleted. Very short captures are discarded.
1. Stations at VFO
Show ▸ Stations at VFO lists frequency-list entries for the frequency currently tuned. Memories can show a marker on the spectrum; a frequency list often has several stations on the same channel, so a list is used instead of markers. The window can stay open while tuning.
Only catalogs that are Enabled in the Frequency List appear here.
If an entry has operating hours, it is highlighted green when those hours include the current time. Hours are always UTC. The UTC clock at the top of the main window is the reference.
Double-click a row to tune to that station.
2. Tune Stack
Show ▸ Tune Stack remembers frequencies visited in this session. Panning the display without changing the VFO does not add an entry.
Stay on a frequency for a few seconds and it is pushed onto the stack, with the demodulation mode. The stack holds the last ten. Click a row, or use the up and down buttons, to return there.
DELETE removes the selected entry. CLEAR empties the stack. The list is not kept after the app is quit.
Common Issues
Stuttering audio or waterfall
If the audio or the waterfall stutters, connect the receiver directly to the Mac, not through a USB hub. Try a different USB port.
Latest version
Keep both the app and macOS up to date. The app requires macOS 26 or later.
If the problem remains, see Contact Developer in the app.