Giter Club home page Giter Club logo

welle.io's Introduction

  • Linux, macOS (Travis): Travis Build Status
  • Windows (AppVeyor): AppVeyor Build status

This repository contains the implementation of an SDR DAB/DAB+ receiver.
Please see the project website https://www.welle.io for a user oriented documentation.

welle.io is a fork from dab-rpi and sdr-j-dab which is now qt-dab https://github.com/JvanKatwijk/qt-dab.

Table of contents

Download

Stable binaries

  • Windows, Linux, macOS and Android
  • Debian or Ubuntu 19.04+
    • apt install welle.io, see the /usr/share/doc/welle.io/README.Debian for maintainer notes
  • macOS (requires MacPorts)
    • sudo port install welle.io
    • sudo port install welle.io +cli (if you wish to install also welle-cli)
  • FreeBSD
    • Building from sources (requires ports tree to be checked out at /usr/ports/)
      cd /usr/ports/audio/welle.io/
      make install clean
      
    • Installing the binary package
      pkg install welle.io`
      
  • Android at Google Play (outdated)

If you discovered an issue please open a new issue.

Unstable developer version

welle.io is under development. You can also try the latest developer builds. But PLEASE BE WARNED the builds are automatically created and untested.

  • welle.io nightly builds (Windows, Linux, macOS, Android)

  • macOS: welle.io devel builds on macOS MacPorts are updated periodically manually and can be installed through port welle.io-devel. The port has no maintainer so please feel free to update it yourself in case you need to use a more recent devel version

    • sudo port install welle.io-devel

Usage

The command-line parameters are:

Parameter Description
-h, --help Show help
-v, --version Show version
--dump-file Records DAB frames (.mp2) or DAB+ superframes with RS coding (.dab). This file can be used to analyse X-PAD data with XPADxpert (https://www.basicmaster.de/xpadxpert).
--log-file Log file name. Redirects all log output texts to a file.

Keyboard shortcuts & hotkeys

Keystroke Action
F1-F12, 1-9, 0, Ctrl+1-9, Ctrl+0 Play the station no. 'x' in the stations list:
1 for station no. 1,
0 for station no. 10,
Ctrl+1 for station no. 11...
S, Media Play, Media Stop, Media Pause, Media Play/Pause Start playback/Stop
N, Media next play next station in list
P, Media Previous play previous station
M, Volume Mute mute/unmute
Ctrl+Up, Volume Up Volume Up
Ctrl+Down, Volume Down Volume Down

Supported Hardware

The following SDR devices are supported

SoapySDR Notes

LimeSDR

Connect the antenna to the RX1_W port and configured SoapySDR antenna option to LNAW. SoapySDRUtil --probe=driver=lime may show other possible options.

USRP

Configured SoapySDR driver arguments option to driver=uhd. Configure also antenna and clock source option. To list possible values for antenna and clock source use the command SoapySDRUtil --probe=driver=uhd.

Building

General Information

The following libraries and their development files are needed:

  • Qt 5.10 (Qt 5.9 and below is not supported)
  • FFTW3f
  • libfaad
  • librtlsdr
  • libusb

Debian / Ubuntu Linux

This section shows how to compile welle.io on Debian or Ubuntu (tested with Ubuntu 20.04).

  1. Install the base requirements
sudo apt install git build-essential
  1. Install the following non-Qt packages
sudo apt install libfaad-dev libmpg123-dev libfftw3-dev librtlsdr-dev libusb-1.0-0-dev mesa-common-dev libglu1-mesa-dev libpulse-dev libsoapysdr-dev libairspy-dev libmp3lame-dev
  1. Install the following Qt packages
sudo apt install libqt5charts5-dev qtbase5-dev qttools5-dev-tools qtquickcontrols2-5-dev libqt5quick5 qtdeclarative5-dev qtmultimedia5-dev libqt5quick5 libqt5multimedia5-plugins qml-module-qt-labs-settings qml-module-qtquick-window2 qml-module-qtquick2 qml-module-qtquick-layouts qml-module-qtquick-dialogs qml-module-qtquick-controls2 qml-module-qtquick-controls qml-module-qtquick-templates2 qml-module-qtquick-privatewidgets qml-module-qtquick-localstorage qml-module-qtcharts qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qtcreator
  1. Clone welle.io
git clone https://github.com/AlbrechtL/welle.io.git
  1. Start Qt Creator and open the project file welle.io.pro inside the folder "welle.io".
  2. Build welle.io
  3. Run welle.io and enjoy it

Windows 10 / 11

A compiled version can be found at the release page

This sections shows how to compile welle.io on Windows 10. Windows 7 should also be possible but is not tested.

  1. Install Qt 5.10 including the Qt Charts and mingw modules by using the "Qt Online Installer for Windows" https://www.qt.io/download-open-source/
  2. Clone welle.io https://github.com/AlbrechtL/welle.io.git e.g. by using TortoiseGit.
  3. Clone the welle.io Windows libraries https://github.com/AlbrechtL/welle.io-win-libs.git.
  4. Start Qt Creator and open the project file welle.io.pro inside the folder "welle.io".
  5. Build welle.io
  6. Run welle.io and enjoy it

macOS

To build for macOS, you have have several options: Either you install everything incl. dependencies manually (not covered here and not recommended) or use Homebrew or MacPorts.

Homebrew

Assuming that you have Homebrew installed, execute the following steps:

  1. Use the welle.io repository as a "tap" (alternative package repository):
brew tap AlbrechtL/welle_io https://github.com/AlbrechtL/welle.io
  1. Install welle.io (and dependencies):
brew install AlbrechtL/welle_io/welle.io

MacPorts

You can either use the welle.io port available in macports, or compile with QT Creator.

use welle.io port

This is the easiest way and will manage the dependencies for you. Variants enabled by default are : "airspy" "rtlsdr" "soapysdr". Each enables compilation with that specific input device library.

sudo port install welle.io

Additional variants are : "cli" (to install also welle-cli) "profiling" & "kiss_fft".

With MacPorts, welle.io is installed as a bundle app in /Applications/MacPorts.

You can also use welle.io-devel port if you prefer:

sudo port install welle.io-devel

compile with QT Creator

You need to install the dependencies with MacPorts first, assuming you have MacPorts installed:

sudo port install fftw-3-single faad2 rtl-sdr libusb mpg123 lame
  1. Install Qt 5.10 with Qt Creator directly from Qt website, not through MacPorts.
  2. Clone welle.io
git clone https://github.com/AlbrechtL/welle.io.git
  1. Open welle.io.pro with Qt Creator.
  2. Make sure in Qt Creator, "Projects, Build&Run, Run" that the checkbox "Add build library path to DYLD..." is off.
  3. Build and run.

FreeBSD

This section describes how to build welle.io from sources on FreeBSD 12.2 and 13.0.

  1. You will need the following dependencies, either built from the ports or installed as a binary package. You may also build them yourself.
pkg install alsa-lib faad lame mpg123 pkgconf cmake qt5-charts \
    qt5-core qt5-declarative qt5-gui qt5-multimedia qt5-network \
    qt5-quickcontrols2 qt5-widgets qt5-buildtools qt5-qmake \
    rtl-sdr fftw3-float fftw3

For SoapySDR support, you will also need soapysdr. For AirSpy support, you will need airspy.

  1. Now follow the build instructions for CMake as indicated below.

CMake instead of Qt Creator (Windows, Linux, macOS, FreeBSD)

As an alternative to Qt Creator, CMake can be used for building welle.io after installing dependencies and cloning the repository. On Linux, you can also use CMake to build welle-cli, the command-line backend testing tool that does not require Qt.

  1. Create a build directory inside the repository and change into it
mkdir build
cd build
  1. Run CMake. To enable support for RTL-SDR add the flag -DRTLSDR=1 (requires librtlsdr) and for SoapySDR add -DSOAPYSDR=1 (requires SoapySDR compiled with support for each desired hardware, e.g. UHD for Ettus USRP, LimeSDR, Airspy or HackRF). By default, CMake will build both welle-io and welle-cli. Use -DBUILD_WELLE_IO=OFF or -DBUILD_WELLE_CLI=OFF to compile only the one you need.
cmake ..

or to enable support for both RTL-SDR and Soapy-SDR:

cmake .. -DRTLSDR=1 -DSOAPYSDR=1

If you wish to use KISS FFT instead of FFTW (e.g. to compare performance), use -DKISS_FFT=ON.

  1. Run make (or use the created project file depending on the selected generator)
make
  1. Install it (as super-user)
make install
  1. Run welle.io and enjoy it

Android

A compiled version of welle.io (APK file) can be found at at the Google Play store or at the release page.

welle.io uses the "RTL2832U driver" from Martin Marinov, to be found at the Google play store or at F-droid. Also see (sources or APK file). Please note that a recent version of this driver is needed (v3.06 or above), otherwise welle.io will not find your stick.

This sections shows how to compile welle.io for Android.

  1. Install Qt 5.12 for Android including the Qt Charts and Qt Remote Objects modules by using the "Qt Online Installer for Windows" https://www.qt.io/download-open-source/
  2. Follow the side https://doc.qt.io/qt-5/androidgs.html to install the Android build environment
  3. Clone welle.io https://github.com/AlbrechtL/welle.io.git
git clone https://github.com/AlbrechtL/welle.io.git
  1. Start Qt Creator and open the project file welle.io.pro inside the folder "welle.io".
  2. Build welle.io
  3. Run welle.io and enjoy it

welle-cli

If you compile welle-io with cmake you will also get an executable called welle-cli which stands for welle-io command line interface.

Usage of welle-cli

Receive using RTLSDR, and play with ALSA:

welle-cli -c channel -p programme

Read an IQ file and play with ALSA: (IQ file format is u8, unless the file ends with FORMAT.iq)

welle-cli -f file -p programme

Use -D to dump FIC and all programmes to files:

welle-cli -c channel -D 

Use -w to enable webserver, decode a programme on demand:

welle-cli -c channel -w port

Use -Dw to enable webserver, decode all programmes:

welle-cli -c channel -Dw port

Use -C 1 -w to enable webserver, decode programmes one by one in a carousel. Use -C N -w to enable webserver, decode programmes N by N in a carousel. This is useful if your machine cannot decode all programmes simultaneously, but you still want to get an overview of the ensemble. By default welle-cli will switch every 10 seconds. With the -P option, welle-cli will switch once DLS and a slide were decoded, staying at most for 80 seconds on a given programme.

welle-cli -c channel -C 1 -w port
welle-cli -c channel -PC 1 -w port

Example: welle-cli -c 12A -C 1 -w 7979 enables the webserver on channel 12A, please then go to http://localhost:7979/ where you can observe all necessary details for every service ID in the ensemble, see the slideshows, stream the audio (by clicking on the Play-Button), check spectrum, constellation, TII information and CIR peak diagramme.

Backend options

-u disable coarse corrector, for receivers who have a low frequency offset.

Use -t [test_number] to run a test. To understand what the tests do, please see source code.

Driver options

By default, welle-cli tries all enabled drivers in turn and uses the first device it can successfully open.

Use -F [driver][,driver_args] to select a specific driver and optionally pass arguments to the driver. This allows to select the rtl_tcp driver (which is not autodetected) and pass the hostname or IP address and port of the rtl_tcp server to it:

welle-cli -C 10B -p GRRIF -F rtl_tcp,192.168.12.34:1234
welle-cli -C 10B -P GRRIF -F rtl_tcp,my.rtl-tcp.local:9876

Right now, rtl_tcp is the only driver that accepts options from the command line.

Examples:

welle-cli -c 10B -p GRRIF
welle-cli -f ./ofdm.iq -p GRRIF
welle-cli -f ./ofdm.iq -t 1

Limitations

  • Windows 8 and older are not officially supported

Development

You can join the welle.io development. Please visit the wiki to find more information.

Profiling

If you build with cmake and add -DPROFILING=ON, welle-io will generate a few .csv files and a graphviz .dot file that can be used to analyse and understand which parts of the backend use CPU resources. Use dot -Tpdf profiling.dot > profiling.pdf to generate a graph visualisation. Search source code for the PROFILE() macro to see where the profiling marks are placed.

welle.io's People

Contributors

albrechtl avatar alexmyczko avatar andimik avatar annejan avatar athoik avatar basicmaster avatar beta-tester avatar brychlik avatar dforsi avatar fartherout avatar gvanem avatar herrhotzenplotz avatar janblaesi avatar jvankatwijk avatar karevivan avatar mattes-bru avatar meeuw avatar mitchblank avatar mpbraendli avatar muellermartin avatar orryverducci avatar probonopd avatar rabarar avatar russel avatar seife avatar sheimers avatar tenzap avatar viktorgino avatar waitsnake avatar zvpunry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

welle.io's Issues

[Suggestion] GPS, Signal Strength,... Logfile + GPS base Switch + Transponder File + Choose the SDR

Hi
a) Pls add an GPS connection for (Win) Pcs to record in a logfile the current Signal strength, Bit Error,... everything what the Software could output.
It would be very nice to collect a lot of logfiles from user who use it onboard a Car or Train, Bus,... to create a Map where the Signal/ Transponder is.

b) When a Map is created it would be very cosy to use the GPS Position to switch between the different Transponder/ Channel before the Signal get weak. (For example in the Boarder Regions and or in the Mountain)

c) It also would be nice to load a Transponder File into the System. In the most case the Channel /Transponder list is very static it would be nice.

d) It would ne nice when its possible to choose the SDR Dongle. In my case I have +2 Dongles in my System.

e) How about decoding the hole Transponder for Streaming? Is the technical possible with your knowledge about DAB(+)? Its would be nice to have an Streaming Server for the hole House.

allow choosing audio device

QAudioDeviceInfo::availableDevices() will give you a list; for each of those, put deviceName() into a combobox. Let the user choose one, and then use this constructor:

AudioOutput = new QAudioOutput(device, AudioFormat, this);

The combobox wouldn't take up too much space on the settings pane.

Appimage Linux Clock

Thanks a lot. The Appimage runs very well with Ubuntu 14.04.3. Little failor is time in the right upper corner shows 25:00h at 01:00h am

Best Regards

ui_filereader-widget.h not found

Seems in src/input/rawfiles/rawfiles.h you're still referring to ui_filereader-widget.h which is not existing.

Therefore, I cannot compile it.

If I comment out all lines (26, 48, 91, 138) pointing to rawfiles, then it works.

I'm owning an Airspy Mini and would still have the filereader (for sdr or raw files) integrated ...

No program start Win7 64 bits

Software version 20170311 installed ok on a Win7 64 bits system with Airspy connected.
During startup process Airspy is seen by program, but start gets interrupted.
Please see attached screenshot.
Any help appreciated.

Cornel
snip_20170316121008

Startmenu entry under Windows only for admin

I've installed it under Windows but only the admin gets an entry in the start menu. For security reasons I have a normal user account and obtain admin rights for installations.

[Windows 7] Bad graphic output (unstable, flickering)

I received the following question by e-mail:

The first problem is in terms of definition of the graphic fonts that appearing all unstable and flickering...

ddkpkipmdcepilmk

Second: the channel searchs never ends successfully and completely missing the sound of channels found.

You already know the problem, from other guys?
I tried it on two different computers with my AirSpy R2 both with Windows7 32-bit.

welle.io uses OpenGL for the graphic output. I suppose there is some problem with your graphic card. Can you post the command line output?

Also the second problem can be related to the graphic problem because if you CPU load is to high due the graphic problem there is no space to decode DAB.

Which CPU and graphic card do you are using?

welle.io.pro won't build on Linux Mint 18.1 if airspy.h missing

Although airspy support is shown as an optional installation, welle.io.pro won't compile on Linux Mint 18.1 if airspy.h missing. Build terminates with:

g++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DHAVE_AIRSPY -DHAVE_RTLSDR -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_CHARTS_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -D_REENTRANT -I../welle.io -I. -I../welle.io -I../welle.io -I../welle.io/src -I../welle.io/src/ofdm -I../welle.io/src/backend -I../welle.io/src/backend/audio -I../welle.io/src/backend/data -I./src/backend/data/journaline -I../welle.io/src/output -I../welle.io/src/various -I../welle.io/src/input -I../welle.io/src/gui -isystem /usr/local/include -I../Qt/5.8/gcc_64/include -I../Qt/5.8/gcc_64/include/QtQuick -I../Qt/5.8/gcc_64/include/QtCharts -I../Qt/5.8/gcc_64/include/QtWidgets -I../Qt/5.8/gcc_64/include/QtMultimedia -I../Qt/5.8/gcc_64/include/QtGui -I../Qt/5.8/gcc_64/include/QtQml -I../Qt/5.8/gcc_64/include/QtNetwork -I../Qt/5.8/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -isystem /usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../Qt/5.8/gcc_64/mkspecs/linux-g++ -o CInputFactory.o ../welle.io/src/input/CInputFactory.cpp
In file included from ../welle.io/src/input/CInputFactory.cpp:39:0:
../welle.io/src/input/CAirspy.h:44:30: fatal error: libairspy/airspy.h: No such file or directory
compilation terminated.
Makefile:12219: recipe for target 'CInputFactory.o' failed
make: *** [CInputFactory.o] Error 1
13:58:29: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project welle.io (kit: Desktop Qt 5.8.0 GCC 64bit)
When executing step "Make"
13:58:29: Elapsed time: 00:01.

[rawfile] sdr files from qt-dab not working

Dear Albrecht,

I made some sdr-recordings in Südtirol this weekend. But they are not working in welle.io

./welle-io -D rawfile -F /home/andreas/10c_dabmedia.sdr -B s16le

grafik
and I even get a seg fault here

Although sdr files seem to be s16le, I tried to load it as u8

./welle-io -D rawfile -F /home/andreas/10b_ras.sdr -B u8

Then you see a kind of spectrum (10B and 10D are used in Südtirol as well)
grafik

I had to convert them to rawfiles:

sox -e unsigned-integer -r 240000 -t raw -c 1 -b 16 /home/andreas/10c_dabmedia.sdr -t raw -e signed-integer -b 8 -r 240000 /home/andreas/10c_dabmedia.raw

grafik

Only then it worked.


Can you check if welle.io expects

unsigned-integer 2,4 MHz raw with 1ch and 16bit

as -B s16le?

Sound drops-outs with enabled expert view

With enabled expert view the sound output failed sometimes. It seems that something goes wrong with the threads (all threads are calculated on one core).
Observed on Fedora 25.

Meson or CMake build?

Is using QtCreator the only way of building this? It seems so currently, the CMake build has gone. Perhaps create a Meson build? Having a way of creating this out of tree, from a command line, without the development environment is a must.

Crash if no OpenGL 2.0 graphic card is available - opengl32sw.dll is missing

welle.io crashes of no OpenGL 2.0 graphic card is available.
It seems that opengl32sw.dll is missing in the setup https://github.com/AlbrechtL/welle.io/releases/tag/V20170311

InputFactory: Input device: "auto"
Airspy: Open airspy
Airspy: airpsy_open () failed: AIRSPY_ERROR_NOT_FOUND ( -5 )
RTL_TCP: Open rtl-sdr
RTL_TCP: No devices found
InputFactory: No valid device found use Null device instead.
Audio: ActiveState
create: Could not initialize EGL display: error 0x3001
create: When using ANGLE, check if d3dcompiler_4x.dll is available
Failed to load opengl32sw.dll (The specified module could not be found.)
Failed to load and resolve WGL/OpenGL functions
create: Could not initialize EGL display: error 0x3001
create: When using ANGLE, check if d3dcompiler_4x.dll is available
Failed to load opengl32sw.dll (The specified module could not be found.)
Failed to load and resolve WGL/OpenGL functions
GUI: AGC on
qml: dpiScaleFactor: 1
create: Could not initialize EGL display: error 0x3001
create: When using ANGLE, check if d3dcompiler_4x.dll is available
Failed to load opengl32sw.dll (The specified module could not be found.)
Failed to load and resolve WGL/OpenGL functions
create: Could not initialize EGL display: error 0x3001
create: When using ANGLE, check if d3dcompiler_4x.dll is available
Failed to load opengl32sw.dll (The specified module could not be found.)
Failed to load and resolve WGL/OpenGL functions
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options Q
Flags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, gre
enBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, sam
ples -1, swapBehavior QSurfaceFormat::SwapBehavior(DoubleBuffer), swapInterval 1
, profile  QSurfaceFormat::OpenGLContextProfile(NoProfile)) .
This is most likely caused by not having the necessary graphics drivers installe
d.

Install a driver providing OpenGL 2.0 or higher, or, if this is not possible, ma
ke sure the ANGLE Open GL ES 2.0 emulation libraries (libEGL.dll, libGLESv2.dll
and d3dcompiler_*.dll) are available in the application executable's directory o
r in a location listed in PATH.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

[macOS] How To install

Dear DAB listeners, I would like to install Welle.io on my MACOSx, but I don't know how to start from, I'm not addicted to linux line commands, only copy and paste, is there any step-by-step guide?

Thankyou!

[Windows setup] Execution failed(Unexpected exit code: 5100)

During installation at 75% when is in qlm I've this error:
Error during installation process (com.vendor.product):
Execution failed(Unexpected exit code: 5100): "C\Program Files (x86)\welle.io/
vcredist-x86_2010.exe/quiet/norestart"

The reason is that the Visual C++ Redistributable 2010 installation failed.

It happens if VC is already installed.
OS: Windows 7 64bit SP1

The reason is documented here: https://bugreports.qt.io/browse/QTBUG-27953
The welle.io installer uses an outdated Visual C++ redistributable 2010 version.

This screenshot shows a newer version but welle.io uses version 10.0.3019
knipsel

Sometimes, scanner skips channel 5C

So I have a multiplex on channel 5C. Sometimes, during scanning, the program will try to scan channel 5B for long time and afterwards completely skip channel 5C and move on to 5D.
welle io

I am unable to reliably reproduce the issue, however it happens in around 30% of scans.

P.S. Any hints on how to make this bug report more useful are welcome!

Garbled sound

Found 11 channels. Out of 11 only 2 sound fine. Rest is garbles like old days so called "cooked mp3".
The 2 channels that work have + at the end of channel name, I'm not sure whether that is significant to the issue.
Please see attached video demonstrating the issue.
Thank You.
Tom.

https://www.youtube.com/watch?v=x5jJujLJepA

[rawfile] Improvements

A user does normally not care about rawfile formats (BTW: welle-io was the first page to let me know the difference between *.sdr and *.raw file structure 👍 )

So it would be good to implement an autodetection between u8 and s16le.

Furthermore, welle-io's behavior in scanning is the same as for VHF, after pressing "Channel scan Start" 5A will be analyzed, but then suddenly the other channels (5B, etc.) follow. I would expect that only one channel is used.

AppImage support

Distributing the application as an AppImage can make easier the installation/execution under much more Linux Distributions.

Uknown option B

I found another signal that looks like DAB but it's at around 44 Mhz, Can't search for it so I decided to do it via rawfile. Unfortunately I can't do it the way it is described in manual.
Any help would be apreciated.
It's latest windows10 version.

C:\Program Files (x86)\welle.io>welle-io.exe -D rawfile -F test.raw -B s16le
Unknown option 'B'.

Thanks. Tom.

Manual gain slider not working

If the manual gain slider is used the following errors occur.

qrc:/QML/SettingsPage.qml:134: TypeError: Property 'inputEnableAGCChanged' of object RadioInterface(0xc72d50) is not a function
qrc:/QML/SettingsPage.qml:141: TypeError: Property 'inputGainChanged' of object RadioInterface(0xc72d50) is not a function
qrc:/QML/SettingsPage.qml:141: TypeError: Property 'inputGainChanged' of object RadioInterface(0xc72d50) is not a function

[Majnaro Linux] Unknown module(s) in QT: charts multimedia

Hi,

I have to machines with identical system Majnaro 64 bit, all packages are identical but on one of them I get this error: Project ERROR: Unknown module(s) in QT: charts multimedia
I don't know how to fix that, looks like something missing but I checked everything, all dependecies.
Maybe somebody know how...

Regards

No check if wrong -D command is used

If the user uses the command line parameter -D with the non-existing device (e.g. misspelling) welle.io crashes. A check for the device string is missing.

[rtl-sdr] AGC problems

I can only get welle.io working here with manual gain (12,50 or so), which results in SNR 14dB.
AGC results in unreliable rx quality, and SNR decreases !

When increasing the manual gain, I can get a better SNR. When further increasing the gain, the SNR decreases. So there appears to be a problem with AGC.

Display AAC profile used in expert mode

Thanks for creating the first sdr based receiver that I was able to compile on my mac!

I was wondering what AAC profile the stations I'm receiving with my rtl_sdr dongle are using and ended up doing a quick proof of concept hack by adding the following line at the end of the fib_processor::bind_audioService function in fib-processor.cpp.

        qDebug() << "PS Flag=" << components[firstFree].PS_flag;

As expected all the stations I was able to receive in Bern, Switzerland had the PS flag set. Since PS seems to be unique to the aacPlus v2 profile I'm reasonably sure that everyone is using it given the debug output from my change.

I think displaying the used profile would be a nice enhancement to the expert mode but my C++/Qt fu isn't strong enough to write a proper patch. Would you consider adding such a feature? I think dablin displays this info, maybe it has more logic to really figure out the exact profile.

Build on OS X using Homebrew?

Is it possible to build well.io.pro without having to install MacPorts? I prefer Homebrew but Homebrew can't find fftw-3-single. Proceeding without it results in the expected compile error:

../src/various/fft.h:42:10: fatal error: 'fftw3.h' file not found

[Linux] FAAD "Warning: No standard extension payload allowed in DRM" - Breaking audio

Hi, After having probs with Windows version I gave it a try on Linux.
Audio is horribly broken and I get this repetitive message printed in thousands of lines.

fib-processor: we found for "RTE 2FM + " serviceId 8802
DABConstants: Unknown language type
dab-audio: we have now DAB+
Warning: No standard extension payload allowed in DRM
Audio: Sample rate 48000 Hz
Audio: ActiveState
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM
Warning: No standard extension payload allowed in DRM

DAB not working

It seems that DAB is not working.
Tested with an odr-dabmod generated file.

Tuning time is very long

Doing a tuning over all the DAB channels takes a long time. DVB is similar. DVB have the idea of transmitter to limit the number of channels search for stations. This will not work the same for DB because of the way transmitters are handled. However countries do have limitations on which channels are used for DAB. If there was a notion of a country tuning file to restrict the tuning ranges, tuning would be a lot quicker. I believe commercial DAB radios do something along these lines.

Volume slider

Hi, first I wanted to thank you. welle.io is awesome !
My suggestion is to add a volume slider and optionally a mute button.

Use case : Change the volume independently of the system's mixer. For example pulseaudio/pavucontrol does not remember the app's volume because Qt generates a new name every launch like QtPulseAudio:4567. Thus you can't currently adjust the sound across runs.

A volume slider would resolve this problem.

Similar problem : https://sourceforge.net/p/wsjt/mailman/message/34166846/
QT issue : https://bugreports.qt.io/browse/QTBUG-32842

Mac OSX support?

Hi,

can I install well.io by macports like gnuradio? Or is there a pre-compiled package that runs on a mac?

Thanks in advance :-) Keep up good work !!!

Best,
adamkk

Stations with 32kHz sample rates: high pitched audio with dropouts

Currently there are some stations here audible with very high pitched audio and with dropouts. Another station on that same ensemble sounds fine. I suspect it's the difference in AAC profile but I'm not sure. (Edit: nope, I'm wrong about the AAC profile. It's the sample rate...)
It's ensemble 11B (MTVNL), transmitter Markelo, The Netherlands. The reception here in Zwolle is weak but good.

Here is some information about the versions of the dependencies on my system, maybe it helps:

  • fftw: stable 3.3.6-pl2
  • faad2: stable 2.7
  • librtlsdr: stable 0.5.3
  • libusb: stable 1.0.21
  • airspy: stable 1.0.9 (don't know if that's getting used by welle.io - I didn't enable it)

System info:

Darwin iMac-van-Hans-van-Eijsden.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar  3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64

Newest MacOS Sierra, 10.12.4 (16E195). Newest welle.io from git, compiled with this Qt Creator version:
schermafbeelding 2017-04-16 om 21 00 52
Here's NH Radio, sounding good without problems:
NH_Radio_Good.mp3.zip
nh_radio_good_screen
nh_radio_good_terminal
Here's HotRadio Hits, sounding bad with high pitch and dropouts:
HotRadio_Hits_Bad.mp3.zip
hotradio_hits_bad_screen
hotradio_hits_bad_terminal
And here's BBC Worldservice, also sounding bad with that high pitch and those dropouts:
BBC_Worldservice_Bad.mp3.zip
bbc_worldservice_bad_screen
bbc_worldservice_bad_terminal
Information about the problematic ensemble: http://radio-tv-nederland.nl/dab/mtvnl-11b.html
All the other > 50 stations here are sounding perfect. Just let me know if you need more info. I'm happy to help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.