Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

rtlmic: Wireless microphone receiver for RTL-SDR

rtlmic is a multichannel FM microphone receiver/demodulator for RTL-SDR cards. It outputs realtime audio to JACK.



  • libjack
  • libvolk
  • librtlsdr

To build and install, just use make && sudo make install.


Basic usage is simply:

$ rtlmic [channel 1 frequency] [channel 2 frequency]...

You can capture as many channels as your CPU can handle, as long as they all fit within the capture bandwidth of the RTL-SDR.

Use rtlmic --help to see all available options.

In order to get back correct audio, you should know certain parameters about your microphones: the companding ratio (-e), the companding tau (-E), the deemphasis tau (-M), and the FM deviation (-w).

Most microphones use 2:1 companding (the default ratio). The companding tau is usually determined by an R-C filter in the microphone, connected to the compressor chip. In my case, the component values are 10kΩ and 1µF, which gives 10kΩ * 1µF = 10ms tau. The deemphasis tau just affects the frequency response: the higher the tau, the less high-end the microphone will have. If you do not know the exact values for your microphone, you can just try and see what sounds best.

By default, the RTL-SDR will be tuned to the frequency in between the highest and lowest channel specified. However, if you have a channel near that point (e.g. if you are only capturing one channel, or an odd number of evenly spaced channels) then you may experience additional noise, as the RTL-SDR does not perform well near DC. You can work around this by choosing a different center frequency with -f.

You may want to play around with other parameters, e.g. adjusting the tuner gain (-g) and squelch threshold (-s), as well as the audio gain (-a). If your channels are spaced closely together, lower the transition width (-t) and use a tight deviation (-w). Note that lowering the transition width increases CPU usage significantly.

If you have persistent buffer over/underrun problems, you should try changing the buffering settings -b and -B, as well as the JACK period size in the JACK server. A few under/overruns on startup are normal, as it takes some time for rtlmic to lock onto the exact ratio between the true SDR and JACK frequencies.


Wireless FM microphone receiver for RTL-SDR







No releases published


No packages published