Giter Club home page Giter Club logo

vcvrack-rtlsdr's People

Stargazers

 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

vcvrack-rtlsdr's Issues

older GCC 5.3.1 requires cstring include

Adding cstring to the includes for SDR.cpp resolves this error:

src/sdr/SDR.cpp: In member function ‘virtual void SDR::step()’:
src/sdr/SDR.cpp:64:27: error: ‘strlen’ was not declared in this scope
if(!strlen(radio.filename)) {
^
src/sdr/SDR.cpp: In member function ‘void SDR::openFile()’:
src/sdr/SDR.cpp:101:28: error: ‘strlen’ was not declared in this scope
if (!strlen(radio.filename)) {
^
../../compile.mk:53: recipe for target 'build/src/sdr/SDR.cpp.o' failed
make: *** [build/src/sdr/SDR.cpp.o] Error 1

Libusb is missing while trying to compile for Mac (without Homebrew)

Hi, cool thing!!

However; Libusb is missing while trying to compile for Mac

This what the compiler says. I did run git submodule update --init --recursive

Package libusb was not found in the pkg-config search path. Perhaps you should add the directory containing libusb.pc'`

Improve the panel layout

I'm hoping to have this branded the same as my non-GPL modules, but someone could fix the panel layout.

Scanning support

  • Ability to "seek" channels like in a fancy car. 🚐
  • CV out of scanned channels?

cool project !

Greetings ! I saw this project and wondered what it's about, so I read up on rtlsdr. I was a ham radio operator when I was a boy (a very long time ago), so I'm excited to read about your work. What's its current status wrt any specific hardware, i.e. can you suggest any particular dongle to buy ? I'm on Linux, btw, if it makes any difference. Anyway, I look forward to the module in Rack, I'll be checking in the project to see (and hopefully hear) how it's going.

Is there a readme that tells what packages must be installed? Can't build on windows.

this got me closer: mingw-w64-x86_64-libusb-compat-git
this was a help: mingw-w64-x86_64-pkg-config
adding this the the makefile seemed to help, but was probably a mistake: PKG_CONFIG_PATH ?= ./src/sdr

I now get this error:

Package librtlsdr was not found in the pkg-config search path.
Perhaps you should add the directory containing `librtlsdr.pc'
to the PKG_CONFIG_PATH environment variable
No package 'librtlsdr' found
g++  -Wsuggest-override -std=c++11  -DSLUG=PulsumQuadratum-SDR -fPIC -I../../include -I../../dep/include -DVERSION=0.6.0dev -MMD -MP -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/src/sdr/SDR.cpp.o src/sdr/SDR.cpp
In file included from src/sdr/SDR.cpp:2:0:
src/sdr/rtl-sdr.h:3:10: fatal error: rtl-sdr.h: No such file or directory
 #include <rtl-sdr.h>

Problems building static library on Linux

ok, installed the deps via apt. now i get this:

Makefile:29: warning: overriding recipe for target 'dist'
../../plugin.mk:36: warning: ignoring old recipe for target 'dist'
g++ -I/usr/include/libusb-1.0 -I/usr/include/ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_LIN  -Wsuggest-override -std=c++11 -c -o build/src/sdr/SDR.cpp.o src/sdr/SDR.cpp
cc -I/usr/include/libusb-1.0 -I/usr/include/ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_LIN  -c -o build/src/sdr/rtl-sdr.c.o src/sdr/rtl-sdr.c
src/sdr/rtl-sdr.c: In function ‘polar_disc_lut’:
src/sdr/rtl-sdr.c:648:31: warning: left shift of negative value [-Wshift-negative-value]
   return (cj > 0) ? 1<<13 : -1<<13;
                               ^~
src/sdr/rtl-sdr.c: In function ‘mark_shared_buffer’:
src/sdr/rtl-sdr.c:959:9: warning: statement with no effect [-Wunused-value]
  ss_busy[0];
  ~~~~~~~^~~
src/sdr/rtl-sdr.c: In function ‘RtlSdr_init’:
src/sdr/rtl-sdr.c:1858:21: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
  radio->rack_buffer = &demod.rack_buffer;
                     ^
src/sdr/rtl-sdr.c:1804:8: warning: unused variable ‘freq’ [-Wunused-variable]
  char* freq = "99.5M";
        ^~~~
cc -I/usr/include/libusb-1.0 -I/usr/include/ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_LIN  -c -o build/src/sdr/convenience.c.o src/sdr/convenience.c
g++ -o plugin.so build/src/PQ.cpp.o build/src/sdr/SDR.cpp.o build/src/sdr/rtl-sdr.c.o build/src/sdr/convenience.c.o /usr/lib/x86_64-linux-gnu/libusb-1.0.a /usr/lib/x86_64-linux-gnu/librtlsdr.a -shared
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/librtlsdr.a(librtlsdr.c.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
../../compile.mk:43: recipe for target 'plugin.so' failed
make: *** [plugin.so] Error 1

build fail with latest Rack [SOLVED]

Fedora 23 Linux
Rack master (0.6.x dev)

Alas, the latest Rack pull causes the following build error. Apologies for the long error list, it seems to be a repeated error (multiple definitions) but I thought I should include the complete report:

[Never mind, I resolved the issue by removing the multiple definitions of RACK_DIR and the plugin.mk include in the Makefile.]

g++ -o plugin.so build/src/PQ.cpp.o build/src/sdr/SDR.cpp.o build/src/sdr/rtl-sdr.c.o build/src/sdr/convenience.c.o build/src/PQ.cpp.o build/src/sdr/SDR.cpp.o build/src/sdr/rtl-sdr.c.o build/src/sdr/convenience.c.o -shared -L/usr//usr/lib64 -lusb-1.0 -lrtlsdr -lusb-1.0 -shared
build/src/PQ.cpp.o: In function init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/PQ.cpp:6: multiple definition of init'
build/src/PQ.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/PQ.cpp:6: first defined here
build/src/PQ.cpp.o: In function init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/PQ.cpp:6: multiple definition of plugin'
build/src/PQ.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/PQ.cpp:6: first defined here
build/src/sdr/SDR.cpp.o: In function SDR::onSampleRateChange()': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:146: multiple definition of SDR::onSampleRateChange()'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:146: first defined here
build/src/sdr/SDR.cpp.o: In function rack::Module::toJson()': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:150: multiple definition of SDR::getFreq(float)'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:150: first defined here
build/src/sdr/SDR.cpp.o: In function SDR::getMegaFreq(long)': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:154: multiple definition of SDR::getMegaFreq(long)'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:154: first defined here
build/src/sdr/SDR.cpp.o: In function rack::SVGScrew::~SVGScrew()': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:68: multiple definition of SDR::step()'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:68: first defined here
build/src/sdr/SDR.cpp.o: In function SDRWidget::SDRWidget(SDR*)': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:161: multiple definition of SDRWidget::SDRWidget(SDR*)'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:161: first defined here
build/src/sdr/SDR.cpp.o: In function SDRWidget::SDRWidget(SDR*)': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:161: multiple definition of SDRWidget::SDRWidget(SDR*)'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:161: first defined here
build/src/sdr/SDR.cpp.o: In function SDR::onSampleRateChange()': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:146: multiple definition of sdrModule'
build/src/sdr/SDR.cpp.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/SDR.cpp:146: first defined here
build/src/sdr/rtl-sdr.c.o: In function usb_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: multiple definition of usb_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: first defined here
build/src/sdr/rtl-sdr.c.o: In function lsb_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:738: multiple definition of lsb_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:738: first defined here
build/src/sdr/rtl-sdr.c.o: In function raw_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:747: multiple definition of raw_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:747: first defined here
build/src/sdr/rtl-sdr.c.o: In function am_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:712: multiple definition of am_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:712: first defined here
build/src/sdr/rtl-sdr.c.o: In function usage': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:245: multiple definition of usage'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:245: first defined here
build/src/sdr/rtl-sdr.c.o: In function rotate_90': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:357: multiple definition of rotate_90'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:357: first defined here
build/src/sdr/rtl-sdr.c.o: In function translate_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:374: multiple definition of translate_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:374: first defined here
build/src/sdr/rtl-sdr.c.o: In function translate': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:425: multiple definition of translate'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:425: first defined here
build/src/sdr/rtl-sdr.c.o: In function low_pass': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:446: multiple definition of low_pass'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:446: first defined here
build/src/sdr/rtl-sdr.c.o: In function low_pass_simple': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:468: multiple definition of low_pass_simple'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:468: first defined here
build/src/sdr/rtl-sdr.c.o: In function low_pass_real': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:485: multiple definition of low_pass_real'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:485: first defined here
build/src/sdr/rtl-sdr.c.o: In function fifth_order': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:507: multiple definition of fifth_order'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:507: first defined here
build/src/sdr/rtl-sdr.c.o: In function generic_fir': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:540: multiple definition of generic_fir'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:540: first defined here
build/src/sdr/rtl-sdr.c.o: In function multiply': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:566: multiple definition of multiply'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:566: first defined here
build/src/sdr/rtl-sdr.c.o: In function polar_discriminant': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:571: multiple definition of polar_discriminant'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:571: first defined here
build/src/sdr/rtl-sdr.c.o: In function fast_atan2': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:584: multiple definition of fast_atan2'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:584: first defined here
build/src/sdr/rtl-sdr.c.o: In function polar_disc_fast': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:603: multiple definition of polar_disc_fast'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:603: first defined here
build/src/sdr/rtl-sdr.c.o: In function atan_lut_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:610: multiple definition of atan_lut_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:610: first defined here
build/src/sdr/rtl-sdr.c.o: In function polar_disc_lut': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:623: multiple definition of polar_disc_lut'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:623: first defined here
build/src/sdr/rtl-sdr.c.o: In function esbensen': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:675: multiple definition of esbensen'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:675: first defined here
build/src/sdr/rtl-sdr.c.o: In function fm_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:679: multiple definition of fm_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:679: first defined here
build/src/sdr/rtl-sdr.c.o: In function deemph_filter': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:755: multiple definition of deemph_filter'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:755: first defined here
build/src/sdr/rtl-sdr.c.o: In function dc_block_filter': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:773: multiple definition of dc_block_filter'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:773: first defined here
build/src/sdr/rtl-sdr.c.o: In function mad': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:787: multiple definition of mad'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:787: first defined here
build/src/sdr/rtl-sdr.c.o: In function rms': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:810: multiple definition of rms'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:810: first defined here
build/src/sdr/rtl-sdr.c.o: In function squelch_to_rms': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:826: multiple definition of squelch_to_rms'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:826: first defined here
build/src/sdr/rtl-sdr.c.o: In function software_agc': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:842: multiple definition of software_agc'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:842: first defined here
build/src/sdr/rtl-sdr.c.o: In function full_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:889: multiple definition of full_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:889: first defined here
build/src/sdr/rtl-sdr.c.o: In function usb_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: multiple definition of cic_9_tables'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: first defined here
build/src/sdr/rtl-sdr.c.o: In function mark_shared_buffer': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:953: multiple definition of mark_shared_buffer'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:953: first defined here
build/src/sdr/rtl-sdr.c.o: In function usb_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: multiple definition of ss_busy'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: first defined here
build/src/sdr/rtl-sdr.c.o: In function unmark_shared_buffer': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:967: multiple definition of unmark_shared_buffer'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:967: first defined here
build/src/sdr/rtl-sdr.c.o: In function clone_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1198: multiple definition of clone_demod'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1198: first defined here
build/src/sdr/rtl-sdr.c.o: In function optimal_lrmix': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1220: multiple definition of optimal_lrmix'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1220: first defined here
build/src/sdr/rtl-sdr.c.o: In function frequency_range': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1317: multiple definition of frequency_range'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1317: first defined here
build/src/sdr/rtl-sdr.c.o: In function dongle_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1337: multiple definition of dongle_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1337: first defined here
build/src/sdr/rtl-sdr.c.o: In function demod_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1350: multiple definition of demod_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1350: first defined here
build/src/sdr/rtl-sdr.c.o: In function demod_cleanup': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1385: multiple definition of demod_cleanup'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1385: first defined here
build/src/sdr/rtl-sdr.c.o: In function output_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1393: multiple definition of output_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1393: first defined here
build/src/sdr/rtl-sdr.c.o: In function output_cleanup': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1407: multiple definition of output_cleanup'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1407: first defined here
build/src/sdr/rtl-sdr.c.o: In function controller_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1418: multiple definition of controller_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1418: first defined here
build/src/sdr/rtl-sdr.c.o: In function controller_cleanup': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1428: multiple definition of controller_cleanup'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1428: first defined here
build/src/sdr/rtl-sdr.c.o: In function sanity_checks': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1434: multiple definition of sanity_checks'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1434: first defined here
build/src/sdr/rtl-sdr.c.o: In function agc_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1458: multiple definition of agc_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1458: first defined here
build/src/sdr/rtl-sdr.c.o: In function generate_header': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1479: multiple definition of generate_header'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1479: first defined here
build/src/sdr/rtl-sdr.c.o: In function usb_demod': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: multiple definition of main'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:727: first defined here
build/src/sdr/rtl-sdr.c.o: In function RtlSdr_init': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1790: multiple definition of RtlSdr_init'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1790: first defined here
build/src/sdr/rtl-sdr.c.o: In function RtlSdr_end': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1858: multiple definition of RtlSdr_end'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1858: first defined here
build/src/sdr/rtl-sdr.c.o: In function RtlSdr_tune_thread_fn': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1880: multiple definition of RtlSdr_tune_thread_fn'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1880: first defined here
build/src/sdr/rtl-sdr.c.o: In function RtlSdr_tune': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1885: multiple definition of RtlSdr_tune'
build/src/sdr/rtl-sdr.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/rtl-sdr.c:1885: first defined here
build/src/sdr/convenience.c.o: In function atofs': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:41: multiple definition of atofs'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:41: first defined here
build/src/sdr/convenience.c.o: In function atoft': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:68: multiple definition of atoft'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:68: first defined here
build/src/sdr/convenience.c.o: In function atofp': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:94: multiple definition of atofp'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:94: first defined here
build/src/sdr/convenience.c.o: In function nearest_gain': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:113: multiple definition of nearest_gain'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:113: first defined here
build/src/sdr/convenience.c.o: In function verbose_set_frequency': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:140: multiple definition of verbose_set_frequency'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:140: first defined here
build/src/sdr/convenience.c.o: In function verbose_set_sample_rate': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:152: multiple definition of verbose_set_sample_rate'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:152: first defined here
build/src/sdr/convenience.c.o: In function verbose_direct_sampling': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:164: multiple definition of verbose_direct_sampling'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:164: first defined here
build/src/sdr/convenience.c.o: In function verbose_offset_tuning': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:183: multiple definition of verbose_offset_tuning'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:183: first defined here
build/src/sdr/convenience.c.o: In function verbose_auto_gain': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:195: multiple definition of verbose_auto_gain'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:195: first defined here
build/src/sdr/convenience.c.o: In function verbose_gain_set': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:207: multiple definition of verbose_gain_set'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:207: first defined here
build/src/sdr/convenience.c.o: In function verbose_ppm_set': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:226: multiple definition of verbose_ppm_set'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:226: first defined here
build/src/sdr/convenience.c.o: In function verbose_ppm_eeprom': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:238: multiple definition of verbose_ppm_eeprom'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:238: first defined here
build/src/sdr/convenience.c.o: In function verbose_reset_buffer': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:266: multiple definition of verbose_reset_buffer'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:266: first defined here
build/src/sdr/convenience.c.o: In function verbose_device_search': /home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:275: multiple definition of verbose_device_search'
build/src/sdr/convenience.c.o:/home/dlphilp/src/Rack-master-031318/plugins/vcvrack-rtlsdr/src/sdr/convenience.c:275: first defined here
collect2: error: ld returned 1 exit status
../../compile.mk:53: recipe for target 'plugin.so' failed
make: *** [plugin.so] Error 1

EXPERIMENT: Don't wait on hopping mutex to improve tuner granularity.

Idea for improving the number of tuning operations per second #8

The current implementation of RtlSdr_tune signals s->hop_m to let the tuning thread know to tune the SDR. Why not try moving controller_thread_fn's mutex wait out of the loop body.

safe_cond_wait(&s->hop, &s->hop_m);
  1. Instrument code to count frequency transitions per second.
  2. Pop in code that makes step call the tuner every time.
  3. Record the performance.
  4. Remove the mutex (safe_cond_signal in RtlSdr_tune & safe_cond_wait in the loop body) and record again.
  5. Report back here.

In the shipping version of the code, the tuning thread should keep track of what it tuned to and only tune again (ie call optimal_settings & rtlsdr_set_center_freq) if the frequency has changed.

If we're thinking of calling optimal_settings & rtlsdr_set_center_freq directly inside RtlSdr_tune, remember that rtlsdr_set_center_freq will hang Rack & glitch the audio if you call it as fast as you can.

error and questions

Hi Jon ! I got my USB dongle set up and 'rtl_test -t' returns what it should. However, when I load your module I receive a series of messages with this error:

Reading error; count was 0

The Gqrx radio application isn't working either, so I think I've still a step or two to take before I'm there. Any suggestions what I might have missed ? I installed the rtl_sdr stuff from the Fedora 23 repos, perhaps I should build and install from source instead ?

module crashes Rack without device

Linux Fedora 23
Rack 0.5.x

Just a note to suggest that a check & workaround might be a good idea:

📻 RtlSdr_init at sample rate 48000
No supported devices found.
Skipping rtl-sdr intiailization since we dont have a device
Makefile:50: recipe for target 'run' failed
make: *** [run] Segmentation fault (core dumped)

Btw, I love the little graphic on the init. :) Also, I have a dongle on order, should be here by the weekend, I'll be able to test the module then.

Replace rtl_fm with UDP or REST implementation

rtl_udp or rtl_fm_python allow us to control an rtl_fm process over a UDP or TCP control socket respectively. Leaning towards the UDP implementation as it should be simpler.

Advantages

  • Easily allows multi dongle setups; right now rtl_fm has statically allocated structures that need to be converted to be per device. I'm not in the business of refactoring rtl_fm.
  • removes threading code; we'll just select on a file handle streaming PCM.
  • Additional tuning parameters:
    • controllable with CV: gain, squelch, decoding mode (FM,AM,USB,LSB)
    • controllable with panel control: auto gain enable
    • will require rtl_fm restart (use context menu): dongle index
  • Removes hacked rtl_fm code from repository; will be included as a submodule & packaged with zip.
  • potentially add other fm decoding modules to the mix
  • Moves all that I/O out of Rack
  • rtl_fm crashes won't crash Rack
  • Allows BSD license for entire module and maintains my copyright, so I can distribute this module linked against my proprietary code for the Pulsum Quadratum module pack.
  • Circumvents GPL licensing issues for adding panel graphics copyrighted by me. I will use a license similar to the Fundamental SVGs. See VCVRack/Rack#854
  • Fixes static linking issue on Linux #26

Disadvantages

  • Neither implementation has a network transport for PCM data, so we won't be able to add an option to stream from a remote dongle.
  • Potential increase in latency for both PCM data and tuning. Tuning granularity over time is bad right now; you may only tune ~10 times a second. I believe I also modified the rtl_fm sources to not clear the audio buffer after a tuning event. We may need to include a patch to the rtl_fm implementation to replicate this behavior.

Write a README.md

Some ideas:

  • include a screenshot
  • explain modes of operation
  • link to VCVRack
  • embed a video
  • include compilation instructions

Problem statically linking libusb and librtlsdr

Daniele Zerbini Hi Jon, the makefile works for me, just having to add the env path to pkg-config, and change the libusb name into libusb-1.0 (that's the name of the library installed on Windows). The plugin works, but there are still calls to the external dlls, i.e. if I remove the installed dlls, the plugin won't load. I'll try to investigate some more, may be other win-specific flags could do the trick?

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.