Radio Listening Software
There are a number of Radio devices, in particular those TV tuner devices which also contain a radio receiver/tuner, for which V4L directly supports. The following list of software applications allow one to control a radio tuner.
Gnomeradio and kradio, the most fully featured applications, are not yet available in all distributions and need to be compiled first. Some of the older applications are mature and readily available, but no longer actively developed.
- fmtools also for the command-line (most distros)
- gkrellm-radio -- minimalistic gkrellm plugin to control radio tuners
- gnomeradio -- for Gnome, capable of recording
- gnuradio -- the GNU software radio, testing phase; cf. wiki
- gradio -- in Debian, but not currently active
- kradio for KDE
- MPlayer -- media player for Linux
- radio -- a curses-based radio application by Gerd Knorr, part of xawtv; see man page (most distros)
- radioshark -- application to control the griffin radioshark
- XDRadio --- XDialog wrapper for radio listening
- xfce4-radio-plugin -- plugin for the Xfce panel
- xmms-fmradio -- plugin for XMMS, last version autumn 2004, Debian and Red Hat packages
If you're a user, post your installation and user experiences here!
The package contains two binaries, fm and fmscan. To pick up all stations even with very weak reception, I issued,
$ fmscan -d /dev/radio2 fmscan -d /dev/radio3 -t 18 -i 0.1 Scanning range: 87.9 - 107.9 MHz (0.2 MHz increments)...
Nice and clean. I added an antenna, but still got weak reception. This is very useful for testing the radio and finding the stations; does it support directing the sound to a file? I try various combinations and end up with this to get 100% volume:
$ fm -d /dev/radio3 89.9 65535 Radio tuned to 89.88 MHz at 100.00% volume
Weird. I don't see a way to record; do I need to use sox? I don't know if I'm getting any sound, as I don't have speakers on this box.
Sox is what gnomeradio uses to record and it thankfully sends commands it uses to standard out.
for wav file:
sox -c2 -w -r32000 -tossdsp /dev/audio -r 44100 -c 2 -w -twav /tmp/foo.wav
for mp3 or ogg:
sox -c2 -w -r32000 -tossdsp /dev/audio -r 44100 -c 2 -w -twav /tmp/fm_fifo &
lame -S -h -b 128 /tmp/fm_fifo /tmp/foo.mp3
oggenc -Q -b 128 -o /tmp/foo.ogg /tmp/fm_fifo
Clearly a more sophisticated application. There's only a debian package for i386, so I'll need to build from the tarball. Since I'm mainly interested in remote recording, I'll try fmtools and radio first.
I tried gradio on Debian amd64, as it's available; it's very basic. If you don't have the card on /dev/radio, start with
gradio -d /dev/radio2
No recording capability, stable gui, minimal functionality -- tuner and volume. I had to hand-edit the .gradiorc configuration file to get station presets; I may have missed some way of doing this through the gui.
You can do a lot of things with MPlayer. As example, I use this syntax for radio listening:
mplayer -rawaudio rate=48000 radio://2/capture -radio adevice=hw=2:arate=48000:channels=93.8-Radio_Zones,94.7-SSR_1
Note that this command will work even without audio cable between the output of the radio card and a line input of the audio card.
This will start mplayer with sample rate = 48 kHz (the same than the one the sound card is using give me the best result), listening to the second station onto the list, the tuner is the third sound card (ALSA device hw:2). For more examples and syntax: MPlayer radio tips.
You can add as many stations than wanted and use LIRC to control MPLayer.
I am running JACK all the time. I added
into ~.mplayer/config (for MPlayer) and mplayerplug-in.conf (for Firefox mplayerplug-in). For recording, I can use any JACK aware recording application.
I made a XDialog wrapper for radio listening using MPlayer and v4l2-ctl. I found it so good than I just made it public under the name XDRadio. You will have to make a list of your stations during the installation (very easy to do). After, it is just to run it and enjoy the radio.
The radio package has a single binary, radio. The man page says it looks for the kradio configuration file ~/.kde/share/config/kradiorc. Failing that, radio tries ~/.radio. I issue,
radio -c /dev/radio3
and get a blue and red curses screen, very cool. Arrow keys increase and decrease frequency in 0.05 intervals. I'm clearly not picking up any signal to speak of. I figure I have a lower-level issue with the tuner.