KRadio - The Linux and KDE AM/FM/Internet Radio Application

Frequently Asked Questions (FAQ)

Welcome
Lego & Povray
KRadio
News
Station Presets
Requirements
FAQ
Bug Tracker
Mailing Lists
Forums
Download
git Repository
Screenshots
Optware/ipkg on DSM4.2
Junges Sinfonieorchester Aachen
Brucknerorchester Coburg
Photos
Our project is also present at Get KRadio at SourceForge.net. Fast, secure and Free Open Source software downloads

  • 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   
    cs856856 (100%)0 (0%)0 (0%)
    de858858 (100%)0 (0%)0 (0%)
    es858471 (54%)185 (21%)202 (23%)
    is858403 (46%)212 (24%)243 (28%)
    it858858 (100%)0 (0%)0 (0%)
    pl85830 (3%)47 (5%)781 (91%)
    pt858295 (34%)205 (23%)358 (41%)
    pt_BR858478 (55%)286 (33%)94 (10%)
    ru858858 (100%)0 (0%)0 (0%)
    sk858429 (50%)173 (20%)256 (29%)
    sr@latin858603 (70%)243 (28%)12 (1%)
    tr858273 (31%)101 (11%)484 (56%)
    uk858858 (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 contribute:

    Become a contributer or sponsor of KRadio! Here are some ideas how to contribute:

    • translations
    • 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!

    How?

    • 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 pull request.
    • If you like to be come an active maintainer of KRadio4, please write an email in order to get git write access.
    • Just contact me by mail, icq, jabber, etc. if you have some questions how the things work internally in KRadio, how you could contribute, ...!

    Why?

    • 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.

        KRADIO_VERSION=kradio4-4.0.8
        KRADIO_BUILD=$KRADIO_VERSION-build
        KRADIO_ARCH=$KRADIO_VERSION.tar.gz
        KRADIO_SRC=$KRADIO_VERSION
        KRADIO_BUILD_TYPE=Release
    
        tar -xvzf $KRADIO_ARCH
    
        mkdir $KRADIO_BUILD
        cd $KRADIO_BUILD
    
        cmake -DCMAKE_BUILD_TYPE=$KRADIO_BUILD_TYPE  \
              -DCMAKE_INSTALL_PREFIX=$KDEDIR         \
              ../$KRADIO_SRC
    
        make
        make install
    	    	
    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 system.
        KRADIO_VERSION=kradio4-4.0.8
        KRADIO_BUILD=$KRADIO_VERSION-build
        KRADIO_ARCH=$KRADIO_VERSION.tar.gz
        KRADIO_SRC=$KRADIO_VERSION
    
        # 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             \
                        libboost-dev libavresample-dev
    
        # become a normal user again
        tar -xvzf $KRADIO_ARCH
        cd $KRADIO_SRC
        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 location (usually $KDEHOME/share/apps/kradio/stations.krp). Otherwise, please specify the proper location in the KRadio4 configuration dialog.

  • 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.

    • Simple Setup (discouraged, without a .lircrc file or without LIRC modes): Typically, you don't need to do anything else than opening the LIRC config page of KRadio and associate the KRadio actions with the remote control command strings of your choice. To do this, just double click on the LIRC string (or alternative LIRC string). When you now press a button on your remote control, the LIRC string should automatically appear as LIRC command string in the KRadio LIRC setup page. Because you don't have a .lircrc file or no specific block for KRadio inside your .lircrc file, KRadio will prefix all lirc key string with "raw::" in order to be able to distinguish keys presses that are intended to reach KRadio. Please be aware, that using KRadio with a simple stateless LIRC setup, this might cause interference with other lirc applications!
    • Advanced Setup (with LIRC modes, recommended!): A complex .lircrc configuration with states (alias modes) could look like the following excerpt:
          #! lircrcd
      
          begin
              flags = startup_mode
              mode  = radio-off
          end
      
      
          begin radio-off
      
              begin
                  button = RADIO
                  repeat = 0
                  prog   = irexec
                  config = kradio4 &
              end
      
              begin
                  button = RADIO
                  mode   = radio-on
                  flags  = quit
              end
      
              [...]
      
          end radio-off
      
      
          begin radio-on
      
              begin
                  prog   = kradio
                  config = eventmap
                  repeat = 1
              end
      
              begin
                  button = RADIO
                  mode   = radio-off
                  flags  = quit
              end
      
          end radio-on
      
          [...]
      
      	    	    
      Basically, the setup of the link between KRadio actions and LIRC command strings works in the same way as in the simple setup. If you use a complex .lircrc configuration file including modes like the example above, please be aware of the following additional points:
      • Please be aware, that the LIRC mode/state transitions are handled internally in the liblirc_client instance linked into KRadio in lirc versions before 0.8.0. This typically caused inconsistencies between the lirc states of applications using lirc (e.g. between irexec and KRadio).

        In lirc 0.8.0 a synchronization mechanism/daemon (lircrcd) has been added that synchronizes the states of multiple lirc applications. It automatically starts when prefixing the .lircrc file with the line

        #! lircrcd
        Therefore, it is highly recommended to use lirc 0.8.0 or higher!

      • Because KRadio can also change it's own state without the knowledge/influence of lirc, it needs to synchronize the lirc state. Therefore, it is highly recommended to enable the configuration options for lirc synchronization on the lirc config page including the proper selection of power on/off lirc states.
      • Please ensure, that, when entering LIRC command strings in the Kradio LIRC configuration page, the liblirc_client linked into KRadio is in the right mode. This is important, because KRadio (as any lirc application) will also receive all lirc commands even when it is not in the "radio-on" mode. However, kradio is able to "detect" the difference and will thus internally add a "raw::" prefix to the LIRC commands received when not receiving it via an .lircrc block statement containing a prog = kradio line.

  • 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.

    1. 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.
    2. 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.
    3. 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.
    4. 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 stations.

    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 by:

    	    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!):

        cd $KRADIO_BUILD
    
        cmake -DWITH_RDS_DEBUG_EMULATE=on            \
              -DCMAKE_BUILD_TYPE=$KRADIO_BUILD_TYPE  \
              -DCMAKE_INSTALL_PREFIX=$KDEDIR         \
              ../$KRADIO_SRC
    
        make
        make install
    	    

  • 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:

    1. 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
    2. 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.
    3. Done.
      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 Q/A.

  • 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.
      1. 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 class list.
      2. 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 configuration page.
      3. 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.
      4. Important: Apply the changes in the configuration dialog.
      5. 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.
      6. In the V4L plugin configuration page, please select the proper PCM/Wave playback channel as playback mixer device.
      7. Done. It should be working now.
      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".

  • 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 net.sourceforge.kradio. 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 \
                --print-reply                              \
                /KRadio4/Instance1                         \
                net.sourceforge.kradio.powerOn
      dbus-monitor "type='signal',\
                    sender='net.sourceforge.kradio4-$KRADIO_PID',\
                    path='/KRadio4/Instance1',\
                    interface='net.sourceforge.kradio'"
      	    
    • 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      powerOn();
    void      powerOff();
    void      recordingStart();
    void      recordingStop();
    void      playbackPause();
    void      playbackResume();
    void      setVolume(float v);
    void      increaseVolume();
    void      decreaseVolume();
    void      nextStation();
    void      prevStation();
    void      setStation(int idx);
    void      setStation(const QString &stationid);
    void      searchNextStation();
    void      searchPrevStation();
    void      startSleepCountdown(int seconds);
    void      stopSleepCountdown();
    void      showAllWidgets();
    void      hideAllWidgets();
    void      restoreAllWidgets();
    void      quitKRadio();
    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);
    void      sleepCountdownStopped();
    void      sleepCountdownZeroReached();
    	    
  • I have multiple instances of a plugin (e.g. ALSA). How can I distinguish them in the config dialog?

    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 pressing enter.

  • Why are no icons included in the preset file archive? Will icons be included in future?

    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 tracking system:

    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: See Ubuntu Bug 776065

emw@nocabal.de
Letzte Änderung: 23.10.2018 21:33