A Software Radio for the Web

webradioThere’s no shortage of good Software Defined Radio (SDR) apps for RTL2382-based dongles, but wouldn’t it be nice if they could be driven remotely?  WebRadio is a project I have been working on which aims to be a fully functional SDR with a user interface that runs in a browser.

The front-end is separated cleanly from the signal processing server by a (fairly) RESTful JSON API, so alternative GUIs are also an option (smartphone apps being the obvious one).

A key feature of the design is server-side decoding of data modes.  Since the original impetus for WebRadio was my involvement with a local school’s high altitude balloon project, initial focus will be on making it decode RTTY, but the modular design makes it easy to add other decoders.

Currently the project builds and runs on a Linux PC, but with only basic functionality (tuning for a single receiver and selection of AM and FM).  Channel filtering also needs some improvement, after which SSB will work as well – this is next on the list.  The GUI is known to work properly in Chrome; for other browsers, for now, YMMV.  Take a look.

30 thoughts on “A Software Radio for the Web

  1. Sven

    Thanks for that nice project! Got it running on a 2 GHz Sempron with 8 GB of RAM which seems a bit slow. What is your minimum recommended setup?

  2. Mike Post author

    Hi. I haven’t benchmarked yet, nor is it very well optimised. I’m working on this at the moment so check back soon to see how things have improved. Ultimately I’d like to get it running at least a single receiver on a raspberry pi!

  3. barry

    Nice projekt!!!

    Do happen to know howto start it with less bandwith?
    taken from log
    samplerate set to 2400000 Hz –> i quess 2,4 mhz
    centre frequency set to 124325000 Hz
    frequency correction set to 25 ppm
    AGC mode set to 1

    where do you store these settings i must have overlooked
    would be great if we could manage, 2,4 mhz is way to big for my setup

    anyway keep developing looks promissing allready!!

  4. Mike Post author

    Hi. They’re hard coded in main.cxx for now. Remember the rtl sticks only accept certain rates – try 1.2 Meg.

  5. Ben Zandstra

    Hi Mike, trying to get webradio running on a HP laptop, dual core with Ubuntu 12.04 LTS fresh install. After installing a number of compilers, tools and libraries I can not get it to Make without errors. The error is:

    In file included from web/httpserver.h:34:0,
    from main.cxx:32:
    /usr/include/microhttpd.h:830:5: error: ‘uint64_t’ has not been declared
    /usr/include/microhttpd.h:868:46: error: ‘uint64_t’ has not been declared
    /usr/include/microhttpd.h:1085:57: error: ‘uint64_t’ was not declared in this scope
    /usr/include/microhttpd.h:1086:64: error: expected primary-expression before ‘block_size’
    /usr/include/microhttpd.h:1088:57: error: expected primary-expression before ‘crc’
    /usr/include/microhttpd.h:1088:62: error: expected primary-expression before ‘void’
    /usr/include/microhttpd.h:1090:57: error: expected primary-expression before ‘crfc’
    /usr/include/microhttpd.h:1090:61: error: expression list treated as compound expression in initializer [-fpermissive]
    In file included from main.cxx:32:0:
    web/httpserver.h:117:51: error: ‘uint64_t’ has not been declared
    web/httpserver.h:140:32: error: ‘uint64_t’ has not been declared

    Can you give any clue on this problem ?

    Kind regards,
    Ben

  6. Mike Post author

    Hi Ben. This looks a bit like the usual one where libmicrohttpd is too old, but it’s not quite the same. Someone recently commented that you can get the .deb for libmicrohttpd from the latest Ubuntu and install that manually without any adverse effects. Maybe give that a try?

  7. Ben Zandstra

    Mike, indeed after manually installing libmicrohttpd (from source, could not get the deb to install without errors) “make” does succeed without errors, starting webradio gave on error which pointed to libmicrohttpd10 after which webradio does start, finds the dongle(s), chooses the right one and starts sending messages in the terminal screen about waterfall and so on. Chrome however (both locally on this Ubuntu server and remote from my livingroom PC) does show the webradio, plays audio (FM, FMW, AM) noise but shows no waterfall or frequency on the screen. Any hint on that ?

    Thanks a lot,
    Ben

  8. Mike Post author

    Jquery installed? I didn’t want to bundle it until I’d checked out licensing. There’s a readme in the html subdirectory which explains installation.

  9. Ben Zandstra

    Got it running now. Indeed I did have to install Jquery which I did install on the laptop I started the installation on, but after moving to my Ubuntu dual monitor system I did completely forget to install it there also.

    Nice work !! Now I’m gonna play with it….

    TnX,
    Ben

  10. kayaman123

    hello,
    nice work
    i’ve lost bytes error messages
    and in my browser
    Error 404 Not found
    do you have a hint?
    Thanks
    kayaman

    io/rtlsdrtuner.cxx(47): Found 1 devices
    io/rtlsdrtuner.cxx(54): Device 0: 77771111153705700
    dsp/dspblock.cxx(75): Added block SpectrumSink:0000 as consumer of RtlSdrTuner:0000
    radio.cxx(132): Created front-end 0000
    dsp/dspblock.cxx(219): Setting RtlSdrTuner:0000 input sample rate to 2400000
    dsp/dspblock.cxx(247): Setting RtlSdrTuner:0000 source block size to 204800
    dsp/dspblock.cxx(75): Added block LowPass:0000 as consumer of DownConverter:0000
    dsp/dspblock.cxx(75): Added block AMDemod:0000 as consumer of LowPass:0000
    dsp/dspblock.cxx(75): Added block LowPass:0000 as consumer of AMDemod:0000
    dsp/dspblock.cxx(75): Added block AudioStreamManager:0000 as consumer of LowPass:0000
    radio.cxx(89): Created receiver 0000
    dsp/dspblock.cxx(75): Added block DownConverter:0000 as consumer of RtlSdrTuner:0000
    radio.cxx(155): Added rx 0000 to front-end 0000
    web/httpserver.cxx(288): Registered handler for URL:
    web/httpserver.cxx(288): Registered handler for URL: static/**
    web/httpserver.cxx(288): Registered handler for URL: audio/*
    web/httpserver.cxx(288): Registered handler for URL: config
    web/httpserver.cxx(288): Registered handler for URL: tuners
    web/httpserver.cxx(288): Registered handler for URL: tuners/*
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/control
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/waterfall
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/receivers
    web/httpserver.cxx(288): Registered handler for URL: receivers
    web/httpserver.cxx(288): Registered handler for URL: receivers/*
    web/httpserver.cxx(288): Registered handler for URL: receivers/*/audio.mp3
    web/httpserver.cxx(288): Registered handler for URL: receivers/*/audio.ogg
    web/httpserver.cxx(274): HTTP interface started on port 8080
    dsp/dspblock.cxx(113): Starting block RtlSdrTuner:0000
    Found Rafael Micro R820T tuner
    io/rtlsdrtuner.cxx(213): RTL2832 xtal frequency = 28800000 Hz
    io/rtlsdrtuner.cxx(214): Tuner xtal frequency = 28800000 Hz
    io/rtlsdrtuner.cxx(217): Manufacturer: Generic
    io/rtlsdrtuner.cxx(218): Product: RTL2832U
    io/rtlsdrtuner.cxx(219): Serial: 77771111153705700
    io/rtlsdrtuner.cxx(228): samplerate set to 2400000 Hz
    io/rtlsdrtuner.cxx(129): centre frequency set to 124325000 Hz
    io/rtlsdrtuner.cxx(142): frequency correction set to 25 ppm
    io/rtlsdrtuner.cxx(155): AGC mode set to 1
    dsp/dspblock.cxx(219): Setting SpectrumSink:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting SpectrumSink:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block SpectrumSink:0000
    dsp/dspblock.cxx(219): Setting DownConverter:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting DownConverter:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block DownConverter:0000
    dsp/downconverter.cxx(81): phaseStep = 0 for 0 Hz
    dsp/dspblock.cxx(219): Setting LowPass:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting LowPass:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block LowPass:0000
    dsp/dspblock.cxx(219): Setting AMDemod:0000 input sample rate to 240000
    dsp/dspblock.cxx(228): Setting AMDemod:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block AMDemod:0000
    dsp/dspblock.cxx(219): Setting LowPass:0000 input sample rate to 240000
    dsp/dspblock.cxx(228): Setting LowPass:0000 input channel count to 1
    dsp/dspblock.cxx(113): Starting block LowPass:0000
    dsp/dspblock.cxx(219): Setting AudioStreamManager:0000 input sample rate to 48000
    dsp/dspblock.cxx(228): Setting AudioStreamManager:0000 input channel count to 1
    dsp/dspblock.cxx(113): Starting block AudioStreamManager:0000
    web/mp3encoder.cxx(33): Configuring for 48000 Hz 1 channels
    dsp/dspblock.cxx(182): Resizing RtlSdrTuner:0000 buffer to 102400 frames (2 channels)
    io/rtlsdrtuner.cxx(73): starting async capture
    dsp/dspblock.cxx(182): Resizing SpectrumSink:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing DownConverter:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 10240 frames (2 channels)
    io/rtlsdrtuner.cxx(100): Lost 24576 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    dsp/dspblock.cxx(182): Resizing AMDemod:0000 buffer to 10240 frames (1 channels)
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(182): Resizing AudioStreamManager:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(99): RtlSdrTuner:0000 358 ns/frame
    dsp/dspblock.cxx(99): SpectrumSink:0000 775 ns/frame
    dsp/dspblock.cxx(99): DownConverter:0000 238 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 1077 ns/frame
    dsp/dspblock.cxx(99): AMDemod:0000 202 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 654 ns/frame
    dsp/dspblock.cxx(99): AudioStreamManager:0000 3 ns/frame
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes

  11. Mike Post author

    Did you read the readme about jquery?

    Lost bytes implies your CPU isn’t fast enough. Are you trying to run on raspberry pi?

  12. Michael

    Raspberry pi not work ?? i have lost bytes too cpu 750 or 1200mhz lost bytes 🙁
    why it work websdr with pi ? the rtl2832u ist the problem ??

  13. Mike Post author

    Ah right. He’s using a Softrock SDR – the sample rate is 48 kHz compared with 2.4 MHz for the default build of WebRadio. WebRadio has to process 50 times more data running from the RTLSDR (although you could try reducing the sample rate – it does support some lower rates).

  14. Dennis

    Unfortunately compiling on Ubuntu 14.04 gives:

    dennis@dennis-pc:~/webradio/webradio$ LANG=C make
    make all-recursive
    make[1]: Entering directory `/home/dennis/webradio/webradio’
    Making all in src
    make[2]: Entering directory `/home/dennis/webradio/webradio/src’
    g++ -Wall -Werror -I. -Idsp -Iio -Iweb -Idecoders -I/usr/include/ -I/usr/include/libusb-1.0 -D_REENTRANT -I/usr/include/jsoncpp -g -O2 -o webradio main.o radio.o web/audiostream.o web/confighandler.o web/tunerhandler.o web/tunercontrolhandler.o web/receiverhandler.o web/waterfallhandler.o web/filehandler.o web/redirecthandler.o web/httpserver.o web/mp3encoder.o io/randsource.o io/pulseaudio.o io/rtlsdrtuner.o io/spectrumsink.o dsp/dspblock.o dsp/lowpass.o dsp/downconverter.o dsp/demodulator.o -lm -lmp3lame -lmicrohttpd -lfftw3f -lrtlsdr -lusb-1.0 -lpulse-simple -lpulse -ljsoncpp -lmp3lame -lm
    /usr/bin/ld: io/rtlsdrtuner.o: undefined reference to symbol ‘pthread_create@@GLIBC_2.2.5′
    //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    make[2]: *** [webradio] Error 1
    make[2]: Leaving directory `/home/dennis/webradio/webradio/src’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/dennis/webradio/webradio’
    make: *** [all] Error 2

  15. Mike Post author

    Interesting. Try making this change in src/Makefile.am:

    webradio_LDADD = -lm -lmp3lame -lpthread \

    Then run autoreconf and configure/make again.

    Not tested – if it doesn’t work let me know and I’ll try it in a virtual machine.

  16. Lasse

    The change in src/Makefile.am:
    – webradio_LDADD = -lm -lmp3lame -lpthread \
    works.

    Call from chrome to http://127.0.0.1:8080 return error 404:
    (http://127.0.0.1:8080/static/ui.html)

    See listing below from terminal (Ubuntu 14.04):

    web/httpserver.cxx(176): status = 302
    web/httpserver.cxx(197): Handler supplied location: /static/ui.html
    web/httpserver.cxx(201): Full URL for redirect: http://127.0.0.1:8080/static/ui.html
    web/httpserver.cxx(134): GET /static/ui.html
    web/filehandler.cxx(72): path: html/ui.html, content-type: text/html
    web/filehandler.cxx(82): Error opening file: basic_ios::clear
    web/httpserver.cxx(176): status = 404
    web/httpserver.cxx(134): GET /favicon.ico
    web/httpserver.cxx(176): status = 404

  17. Oscar

    Hi,

    I got this error message … what can i do ?

    web/httpserver.cxx(176): status = 302
    web/httpserver.cxx(197): Handler supplied location: /static/ui.html
    web/httpserver.cxx(201): Full URL for redirect: http://127.0.0.1:8080/static/ui.html
    web/httpserver.cxx(134): GET /static/ui.html
    web/filehandler.cxx(72): path: html/ui.html, content-type: text/html
    web/filehandler.cxx(82): Error opening file: basic_ios::clear
    web/httpserver.cxx(176): status = 404

  18. Toni

    Hi All,

    I installed the program. There was no problem, starts normally.
    When I open the page in a browser, the following error message I get.

    web/httpserver.cxx(134): GET /static/ui.html
    web/filehandler.cxx(72): path: html/ui.html, content-type: text/html
    web/filehandler.cxx(82): Error opening file: basic_ios::clear
    web/httpserver.cxx(176): status = 404

    Mi Linux is a Debian Wheezy.

    Thank you!

    Toni

  19. dimitris

    dsp/dspblock.cxx(219): Setting AudioStreamManager:0000 input sample rate to 48000
    dsp/dspblock.cxx(228): Setting AudioStreamManager:0000 input channel count to 1
    dsp/dspblock.cxx(113): Starting block AudioStreamManager:0000
    web/mp3encoder.cxx(33): Configuring for 48000 Hz 1 channels
    dsp/dspblock.cxx(182): Resizing RtlSdrTuner:0000 buffer to 102400 frames (2 channels)
    io/rtlsdrtuner.cxx(73): starting async capture
    dsp/dspblock.cxx(182): Resizing SpectrumSink:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing DownConverter:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 10240 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing AMDemod:0000 buffer to 10240 frames (1 channels)
    io/rtlsdrtuner.cxx(100): Lost 24576 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(182): Resizing AudioStreamManager:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(99): RtlSdrTuner:0000 344 ns/frame
    dsp/dspblock.cxx(99): SpectrumSink:0000 699 ns/frame
    dsp/dspblock.cxx(99): DownConverter:0000 141 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 1055 ns/frame
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    dsp/dspblock.cxx(99): AMDemod:0000 146 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 593 ns/frame
    dsp/dspblock.cxx(99): AudioStreamManager:0000 198 ns/frame
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes

    how i fix this

  20. dimitris

    pi@raspberrypi ~ $ cd webradio-master
    pi@raspberrypi ~/webradio-master $ src/webradio
    io/rtlsdrtuner.cxx(47): Found 1 devices
    io/rtlsdrtuner.cxx(54): Device 0: 00000001
    dsp/dspblock.cxx(75): Added block SpectrumSink:0000 as consumer of RtlSdrTuner:0000
    radio.cxx(132): Created front-end 0000
    dsp/dspblock.cxx(219): Setting RtlSdrTuner:0000 input sample rate to 2400000
    dsp/dspblock.cxx(247): Setting RtlSdrTuner:0000 source block size to 204800
    dsp/dspblock.cxx(75): Added block LowPass:0000 as consumer of DownConverter:0000
    dsp/dspblock.cxx(75): Added block AMDemod:0000 as consumer of LowPass:0000
    dsp/dspblock.cxx(75): Added block LowPass:0000 as consumer of AMDemod:0000
    dsp/dspblock.cxx(75): Added block AudioStreamManager:0000 as consumer of LowPass:0000
    radio.cxx(89): Created receiver 0000
    dsp/dspblock.cxx(75): Added block DownConverter:0000 as consumer of RtlSdrTuner:0000
    radio.cxx(155): Added rx 0000 to front-end 0000
    web/httpserver.cxx(288): Registered handler for URL:
    web/httpserver.cxx(288): Registered handler for URL: static/**
    web/httpserver.cxx(288): Registered handler for URL: audio/*
    web/httpserver.cxx(288): Registered handler for URL: config
    web/httpserver.cxx(288): Registered handler for URL: tuners
    web/httpserver.cxx(288): Registered handler for URL: tuners/*
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/control
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/waterfall
    web/httpserver.cxx(288): Registered handler for URL: tuners/*/receivers
    web/httpserver.cxx(288): Registered handler for URL: receivers
    web/httpserver.cxx(288): Registered handler for URL: receivers/*
    web/httpserver.cxx(288): Registered handler for URL: receivers/*/audio.mp3
    web/httpserver.cxx(288): Registered handler for URL: receivers/*/audio.ogg
    web/httpserver.cxx(274): HTTP interface started on port 8080
    dsp/dspblock.cxx(113): Starting block RtlSdrTuner:0000
    Found Rafael Micro R820T tuner
    io/rtlsdrtuner.cxx(213): RTL2832 xtal frequency = 28800000 Hz
    io/rtlsdrtuner.cxx(214): Tuner xtal frequency = 28800000 Hz
    io/rtlsdrtuner.cxx(217): Manufacturer: Realtek
    io/rtlsdrtuner.cxx(218): Product: RTL2838UHIDIR
    io/rtlsdrtuner.cxx(219): Serial: 00000001
    io/rtlsdrtuner.cxx(228): samplerate set to 2400000 Hz
    io/rtlsdrtuner.cxx(129): centre frequency set to 124325000 Hz
    io/rtlsdrtuner.cxx(142): frequency correction set to 25 ppm
    io/rtlsdrtuner.cxx(155): AGC mode set to 1
    dsp/dspblock.cxx(219): Setting SpectrumSink:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting SpectrumSink:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block SpectrumSink:0000
    dsp/dspblock.cxx(219): Setting DownConverter:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting DownConverter:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block DownConverter:0000
    dsp/downconverter.cxx(81): phaseStep = 0 for 0 Hz
    dsp/dspblock.cxx(219): Setting LowPass:0000 input sample rate to 2400000
    dsp/dspblock.cxx(228): Setting LowPass:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block LowPass:0000
    dsp/dspblock.cxx(219): Setting AMDemod:0000 input sample rate to 240000
    dsp/dspblock.cxx(228): Setting AMDemod:0000 input channel count to 2
    dsp/dspblock.cxx(113): Starting block AMDemod:0000
    dsp/dspblock.cxx(219): Setting LowPass:0000 input sample rate to 240000
    dsp/dspblock.cxx(228): Setting LowPass:0000 input channel count to 1
    dsp/dspblock.cxx(113): Starting block LowPass:0000
    dsp/dspblock.cxx(219): Setting AudioStreamManager:0000 input sample rate to 48000
    dsp/dspblock.cxx(228): Setting AudioStreamManager:0000 input channel count to 1
    dsp/dspblock.cxx(113): Starting block AudioStreamManager:0000
    web/mp3encoder.cxx(33): Configuring for 48000 Hz 1 channels
    dsp/dspblock.cxx(182): Resizing RtlSdrTuner:0000 buffer to 102400 frames (2 channels)
    io/rtlsdrtuner.cxx(73): starting async capture
    dsp/dspblock.cxx(182): Resizing SpectrumSink:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing DownConverter:0000 buffer to 102400 frames (2 channels)
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 10240 frames (2 channels)
    io/rtlsdrtuner.cxx(100): Lost 24576 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    dsp/dspblock.cxx(182): Resizing AMDemod:0000 buffer to 10240 frames (1 channels)
    dsp/dspblock.cxx(182): Resizing LowPass:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(182): Resizing AudioStreamManager:0000 buffer to 2048 frames (1 channels)
    dsp/dspblock.cxx(99): RtlSdrTuner:0000 332 ns/frame
    dsp/dspblock.cxx(99): SpectrumSink:0000 738 ns/frame
    dsp/dspblock.cxx(99): DownConverter:0000 226 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 1043 ns/frame
    dsp/dspblock.cxx(99): AMDemod:0000 133 ns/frame
    dsp/dspblock.cxx(99): LowPass:0000 560 ns/frame
    dsp/dspblock.cxx(99): AudioStreamManager:0000 3 ns/frame
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 57344 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes
    io/rtlsdrtuner.cxx(100): Lost 262144 bytes

  21. dimitris

    i install it on dual core pc.it is working 6% usage.everything is workin. the only problem is that i have sound in chrome explorer for 5 seconds and after i loose the sound. also mr Mike please inform me where i can change the center frequency and sample rate?
    thanks

  22. DE8MSH

    Hi All.

    Don’t try to use the toolchain on RPi or even BPi. I don’t works. Even if you set a samprate of 250kS you only get dropouts (Lost bytes). So no chance on Arm RPi/BPi CPUs.

    73 de DE8MSH

  23. BenG

    Hi All,

    First thanks to Mike for Webradio development! I run Webradio on my Raspberry Pi2 with Raspbian Jessy.
    It works well with my SDR-RTL Stick. I know it is very time time-consuming to develop such apps.
    My question is : any plans / motivation to continue this nice project. Hamlib Integration would be a plus.

    There is websdr but the owner of this software won’t give the software for testing 🙁

    Hopefully this project will continue.

    Best regards,

Leave a Reply

Your email address will not be published. Required fields are marked *