Our project is also present at
How to translate KRadio?
The easiest way is to download
the most recent kradio4-localization-<release>.tar.gz
file. This file only contains .po and .pot files for KRadio4
and can serve as a base for translation. You do not need to
worry about the xgettext stuff.
If you did some modifications on the sources and want to
generate new .pot/.po files, please run the scripts
extract-messages.sh and merge-messages.sh
from and within the top-level KRadio4 source directory. The
new .pot and updated .po file will be generated in the
KRadio source directory.
Current translation status (git master/HEAD):
| Language || Strings || Translated Strings || Fuzzy Strings || Untranslated |
|cs||856||856 (100%)||0 (0%)||0 (0%)|
|de||858||858 (100%)||0 (0%)||0 (0%)|
|es||858||471 (54%)||185 (21%)||202 (23%)|
|is||858||403 (46%)||212 (24%)||243 (28%)|
|it||858||858 (100%)||0 (0%)||0 (0%)|
|pl||858||30 (3%)||47 (5%)||781 (91%)|
|pt||858||295 (34%)||205 (23%)||358 (41%)|
|pt_BR||858||478 (55%)||286 (33%)||94 (10%)|
|ru||858||858 (100%)||0 (0%)||0 (0%)|
|sk||858||429 (50%)||173 (20%)||256 (29%)|
|sr@latin||858||603 (70%)||243 (28%)||12 (1%)|
|tr||858||273 (31%)||101 (11%)||484 (56%)|
|uk||858||858 (100%)||0 (0%)||0 (0%)|
How to report bugs?
First things first: Before submitting a bug, please
check if it is already known and if it still appears with
the most recent KRadio snapshot/release.
The best way to report KRadio bugs is via the SourceForge
Bug Tracking Portal. Please try to make your bug reports
as verbose as possible. This is very important because it is
sometimes very difficult to reproduce a bug due to quite
different setups on the different machines. Therefore, here
is a brainstormed list (without the pretention of
completeness;-) of things that would help the developers:
- A most verbose description how to reproduce the bug. Really - as verbose as possible, please.
- KRadio Version
- Versions of KDE, Qt, the kernel, alsa, lame, ogg/vorbis,
etc. you are using
- KRadio Debug output from the command line
- The kradiorc configuration file
- The station file
- Stack traces if KRadio crashes
- The dmesg output of your kernel related to radio/tv
cards (please not the complete dmesg output!)
- The .lircrc configuration file if your problem is
related to LIRC
- Some RDS dump (see below) of your problem is related to RDS
Can I contribute to KRadio?
Yes of course, your help is needed!
Since there is still lot of work todo with KRadio and since
time is always short and my test equipment in terms of radio
cards is quite short, namely exactly one ancient
line-loopback radio card, here are some suggestions, how to
Become a contributer or sponsor of KRadio! Here are
some ideas how to contribute:
source code patches
build system improvements
graphics enhancements (e.g. SVG icons!)
sponsor radio/tv cards to allow the coders extensive
testing of your not yet properly supported cards!
... what ever you want to contribute!
You can create you own private git branch with git and send a
patchset by email. See
git format-patch ...
You can create your own public git branch / fork
(e.g. with the sourcefore infrastructure) and send me a git
If you like to be come an active maintainer of
KRadio4, please write an email in order to get git write
Just contact me by mail, icq, jabber, etc.
if you have some questions how the things work
internally in KRadio, how you could contribute, ...!
KRadio will improve much more and faster!
Your name will be in the list of KRadio authors/sponsors!
- How/where do I get the
most recent git version of KRadio4?
git clone git://git.code.sf.net/p/kradio/code kradio-git
- How to compile/install KRadio4?
KRadio4 can be compiled like most KDE4 applications using
cmake/make. For the example below, let's assume that your
KRadio source tar file is
kradio4-4.0.8.tar.gz. If you are using the a git
repository, you can directly use this directory as $KRADIO_SRC.
Please note: You need to install various development packages
of your distribution in order to be able to compile KDE
applications. Those packages vary widely among distributions and
cannot be listed here completely. You will need for sure make,
cmake, g++. Packages with required headers typically end with
-dev or -devel. Please read the output of cmake (see below)
carefully in order to identify missing packages.
The following code is a bash/sh based example how to build
KRadio4 on your own. Important: Please
ensure that all environment variables are set
correctly. This is particularly important for KDEDIR and if
your prefix differs from the kde installation directory,
also set up KDEDIRS (please note the plural "s") properly.
tar -xvzf $KRADIO_ARCH
cmake -DCMAKE_BUILD_TYPE=$KRADIO_BUILD_TYPE \
If you detect a bug in KRadio, please recompile kradio (remove
the build dir first) with the build type set to "debug" in
order to get a proper stack trace for bug submission.
- How to create Debian/Ubuntu packages for KRadio4?
For the example below, let's assume that your
KRadio source tar file is
kradio4-4.0.8.tar.gz. If you are using the a git
repository, you can directly use this directory as $KRADIO_SRC.
Please note that you'll need to install several development
packages. You need at least dpkg-dev. The dpkg-buildpackage
command will let you know which other packages are
missing. Furthermore, you might want to check the output of
cmake in order to identify optional packages.
The example below contains some typical packages to be
installed, but further packages might be required for your
# become root or use sudo:
apt-get install dpkg-dev git libglib2.0-dev kdelibs5-dev liblircclient-dev \
libsndfile1-dev libasound2-dev libavformat-dev \
libavcodec-dev libmms-dev cdbs cmake libmp3lame-dev \
libogg-dev libvorbis-dev automoc libdbus-1-dev \
# become a normal user again
tar -xvzf $KRADIO_ARCH
dpkg-buildpackage -uc -us
# become root or use sudo
dpkg -i kradio4_4.0.8-1_<architecture>.deb
- How to upgrade from KRadio3 to KRadio4?
When you upgrade to KRadio4, your KRadio3 kradiorc file will
not be touched. The new configuration file will be called
kradio4rc. However, this currently implies (additionally to
some other internal changes), that the old configuration
files cannot be read any more. Therefore, you have to
configure KRadio4 from scratch when starting it. I'm sorry
for this inconvenience, but perhaps we can see the advantage
in getting a clean kradio4rc file free of legacy stuff :)
Please be aware, that other than the configuration
file, your station preset file (which made
probably much more work than the kradio configuration) can
still be used by KRadio4 without any changes. It will most
probably be loaded automatically if it is at the standard
$KDEHOME/share/apps/kradio/stations.krp). Otherwise, please
specify the proper location in the KRadio4 configuration
How do I get LIRC working with KRadio?
It is highly recommended to use lirc 0.8.0 or later together
with the lircrcd daemon. Please read further for details.
- What is the problem if I
get errors as "kradio: could not connect to socket" or "kradio:
No such file or directory"?
When KRadio initializes the lirc plugin, the library liblircclient issues these warnings:
kradio: could not connect to socket
kradio: No such file or directory
These warnings only give an indication that the LIRC daemon
is not running on your system and that thus LIRC will not be
working. All other KRadio functionality is unaffected.
- How can I setup KRadio
with RDS support?
Some side note here: The advices here are pure
theory. Unfortunately, I don't have an RDS enabled radio
card, thus everything written here is some summary of what I
found in the WWW and V4L source code.
- Check that your radio card really supports RDS. This is
usually the most difficult part, since tv/radio card vendors
are not that specific in their product descriptions and
typically not even in their specs.
- Check that your V4L/V4L2 kernel module supports
RDS. Particularly some quite recent external "cards" seem to
have RDS support (at least advertised with it) but checking
most recent V4L/V4L2 source code repositories, RDS support
seems not to be in the driver yet.
- Load your RDS modules separately if your
distribution/kernel doesn't do this automatically. This is
typically the case for bttv cards. The module typically
required is saa6588.
- Done. When your radio card sees an RDS stream, the
standard radio display should have a bright RDS indicator
(like the stereo and AM/FM indicators). RDS Radio Text
should be visible in the standard radio display and the
tooltips of the systray icon. RDS station names are used in
the station scan dialog when naming the newly found
If RDS support is not working for you although you are
150% sure that your card and driver supports RDS,
please send me a dump of RDS binary data from your radio
card. You can get such dump of about one minute RDS data
dd if =/dev/radio0 of=/tmp/rdsdump.bin bs=3 count=3000
Please send me then the file /tmp/rdsdump.bin (together
with the version of kradio you are using:).
If you want to get an impression, how KRadio4 integrates
RDS, please enable the RDS emulation by compiling KRadio4 with the flag
"-DWITH_RDS_DEBUG_EMULATE=on" added to your cmake call
(but please be aware this will break RDS if KRadio+RDS is already working for you!):
cmake -DWITH_RDS_DEBUG_EMULATE=on \
How should I setup KRadio for PVR cards?
Currently there is not yet any auto-configuration. I'd need
your help/feedback/input/PVR-sponsorship in order to
determine a proper way because I don't have such a
card. However, you can easily manage to set up kradio to use
your card properly:
Configure the Streaming Plugin:
add your device to the capture URLs (/dev/video24,
/dev/video32 and /dev/urandom should already be there)
configure the right sound sample format/rate/... for
your radio card
Configure the V4L2 Plugin:
Select your favourite PCM Sound Card as playback device
Select your favourite PCM Mixer Channel as playback channel
Select the Streaming Plugin as Capture Device
Select the radio/video device (e.g. /dev/video24) as
capture mixer channel
enable the active playback checkbox. KRadio will now
record from the capture channel internally (not to a file)
and send the data to the playback PC channel.
Your kradio should be now usable for PVR cards. If
not, please provide me details on your setup or perhaps
even a card to test it.
I have a radio card sending the
sound via PCI or USB, not via LineIn. What should I do?
Please check the Active Playback
- When do I need active
playback and what do I need to setup?
You need Active Playback if you have a radio card
not sending its sound data via a cable connected to the
line-in jack of your sound card. In that case there are
typically two options
The data is sent via a special devices, such as
/dev/video24. In this case, please check the PVR cards Q/A.
The data is provided via a classical sound device. You'll
probably have already one ALSA plugin instance loaded in
KRadio configured to use your default sound card. In this
case, I'd recommend to create a new instance of the ALSA
plugin within the "Plugins" configuration page.
Please note, that you can also skip the step of creating
an additional ALSA plugin instance. In this case you have
to specify the radio pseudo sound device as "PCM Capture
Card" of your default ALSA plugin instance but keep your
standard sound card as "PCM Playback Card".
Create a new instance of the ALSA plugin: Select the
plugin class "AlsaSoundDevice" in the Plugin Class
List (not the instance list!) and press the "Create
new instance" button on the right side of the plugin
You will find now a new ALSA plugin configuration
page. Setup this ALSA plugin configuration. It should
use the sound device that delivers your radio PCM
sound stream. Please don't forget to
setup the default capture mixer settings in the
"Capture Mixer Settings" tab of the ALSA plugin
You might need to enable the "Override Capture Format"
feature in the ALSA configuration page of your
V4L/ALSA pseudo sound device. E.g. for some Avermedia
cards (which sometimes seem to not tell the right
sampling frequency to KRadio), you can tell KRadio the
real capture sampling rate here. This should solve
skipping and frequency shift problems when e.g. 32kHz
sound stream is played at the default 44.1kHz.
Important: Apply the changes in the
Go to the configuration page of the V4L plugin. Select
the new ALSA plugin as the capture mixer device and
select the proper mixer channel.
In the V4L plugin configuration page, please select
the proper PCM/Wave playback channel as playback mixer
Done. It should be working now.
How to control KRadio4 via D-Bus?
The D-Bus service name for KRadio is net.sourceforge.kradio4-<pid>.
The methods to control KRadio are below the path /KRadio4/Instance1 with the interface name
There are several ways to access the KRadio D-Bus methods:
- qdbusviewer: This GUI allows you to browse and call the various methods interactively.
- command-line: E.g. (bash syntax):
KRADIO_PID=$(ps -C kradio4 -o pid=)
dbus-send --dest=net.sourceforge.kradio4-$KRADIO_PID \
- Dedicated D-Bus enabled application. You can find very good Qt/KDE D-Bus tutorials at http://techbase.kde.org/Development/Tutorials
No matter which method you are using, the following methods are available.
void setVolume(float v);
void setStation(int idx);
void setStation(const QString &stationid);
void startSleepCountdown(int seconds);
bool isPowerOn() const;
bool isPaused() const;
bool isRecording() const;
bool isSleepCountdownRunning() const;
time_t getSleepCountdownEnd() const;
float getVolume() const;
int getStationsCount() const;
int getCurrentStationIndex() const;
QString getStationName(int idx) const;
QString getStationShortName(int idx) const;
QString getStationLongName(int idx) const;
QString getStationDescription(int idx) const;
The following D-Bus signals are available:
void powerChanged(bool on);
void currentStationChanged(int idx);
void RDSStateChanged (bool enabled);
void RDSRadioTextChanged (const QString &s);
void RDSStationNameChanged(const QString &s);
void sleepCountdownStarted(time_t time_until);
I have multiple instances of a
plugin (e.g. ALSA). How can I distinguish them in the config
If you have multiple plugin instances of one plugin class
(e.g. ALSA), you will have one configuration page for each
instance. Each instance has it's own name. The default name
offered by KRadio (e.g. "AlsaSoundDevice1") will not be
shown below the Icons in the Configuration Dialog, all other
names will. If you have multiple instances, you will find
e.g. names like "AlsaSoundDevice2" below the second instance
(and so on).
Since these names are most probably not that meaningful for
you, you can rename the plugins: Open the Plugin
Configuration Page and double click on the plugin instance
name. Your change will be directly become active when
Why are no icons included in the
preset file archive? Will icons be included in
The issue is unfortunately, that many station icons might be
affected by copyrights and trademarks. This makes the
public distribution of such logos a big legal problem. Since
I'm not that eager having trouble with lawyers, icons are
currently excluded from the official distribution and most
probably will be excluded in future, too.
Why does my v4l/v4l2 radio
tuner not tune any more?
Unfortunately, this is no KRadio issue. Other linux radio
applications (mplayer, gnomeradio, xawtv) are affected as
well. Furthermore, it seems that this is not an issue of the
V4L1 support dropped in recent kernels since KRadio properly
supports V4L2 already for a long time.
Recent Linux kernels (apparently starting with 2.6.39) have
a bug in the radio tuner control. In general, it seems that
the ioctl commands sent to the driver do not get considered
any more, thus the selected frequency is not tuned. People
report that this causes either noise to be heard or the
previously tuned TV station in case you have a combined
radio/TV card. Unfortunately, only very few notes on this
bug can be found on the net, but at least recently, two
messages have been posted on the LKML and the Ubuntu bug
Unfortunately, the LKML postings didn't get replies yet and
I couldn't find any information about a bugfix yet (as of
Feb. 15, 2012).
Update (Jan. 26, 2013): Seems that the problem is fixed
in linux kernel 3.5.7 used in Ubuntu: