Skip to main content
minimodem is a command-line software audio FSK modem for encoding and decoding digital data using frequency-shift keying over audio channels.

Basic Syntax

minimodem [--tx|--rx] [options] {baudmode}

Command Structure

The minimodem command consists of three main components:
  1. Mode flag: Specify transmit (--tx) or receive (--rx) mode
  2. Options: Various configuration flags and parameters
  3. Baudmode: The data rate and protocol specification

Mode Selection

You must specify either transmit or receive mode:
minimodem --tx 1200
Receive mode (--rx) is the default if no mode is specified.

Quick Start Examples

Send Data

echo "Hello World" | minimodem --tx 1200
Transmit text at 1200 baud using audio output

Receive Data

minimodem --rx 1200
Receive and decode 1200 baud audio input

File Input

minimodem --rx --file audio.wav 1200
Decode data from an audio file

Custom Frequencies

minimodem --tx -M 1200 -S 2200 1200
Transmit with custom mark and space frequencies

Command-Line Flags

All options can be specified using short or long form:
ShortLongDescription
-t--tx, --transmit, --writeTransmit mode
-r--rx, --receive, --readReceive mode (default)
-f--file {filename}Read from or write to audio file
-q--quietSuppress status messages
-V--versionDisplay version information

Input/Output

minimodem in transmit mode reads data from stdin and outputs audio:
# From a file
cat message.txt | minimodem --tx 1200

# Interactive typing
minimodem --tx 1200
# Type your message and press Ctrl+D to end

# To an audio file
echo "test" | minimodem --tx --file output.wav 1200

Audio Backends

minimodem supports multiple audio systems:
By default, minimodem uses your system’s default audio interface (ALSA, PulseAudio, or sndio depending on your system).
minimodem --rx 1200
Direct ALSA device access:
minimodem --rx --alsa 1200
minimodem --rx --alsa=plughw:1,0 1200
OpenBSD sndio support:
minimodem --rx --sndio 1200
minimodem --rx --sndio=snd/0 1200
Read from or write to WAV/FLAC files:
minimodem --rx --file recording.wav 1200
minimodem --tx --file output.flac 300

Status Messages

When not in quiet mode, minimodem displays status information to stderr:
### CARRIER 1200 @ 1200.0 Hz ###
[decoded data appears here]
### NOCARRIER ndata=42 confidence=2.145 ampl=0.850 bps=1200.00 ###
  • CARRIER: Signal detected and decoding started
  • NOCARRIER: Signal lost or transmission ended
  • confidence: Signal quality metric
  • ampl: Signal amplitude
  • bps: Actual detected bit rate

Exit Status

CodeMeaning
0Success
1Error (invalid arguments, audio device failure, etc.)

See Also

Modes

Transmit and receive modes

Baud Modes

Available protocols and speeds

Options

Complete options reference

Build docs developers (and LLMs) love