bongozone / vcvrack-rtlsdr Goto Github PK
View Code? Open in Web Editor NEW📻 FM radio for rtl-sdr USB dongles in the VCVRack environment
Home Page: https://vcvrack.com/plugins.html#SDR
License: GNU General Public License v2.0
📻 FM radio for rtl-sdr USB dongles in the VCVRack environment
Home Page: https://vcvrack.com/plugins.html#SDR
License: GNU General Public License v2.0
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
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'`
re: #29
move towards using git submodules on every platform. Both of those libraries are semi-complex to build, so I'm keeping my eyes open for a plugin that builds stuff along the lines of ext (and dep to some extent) in the main build.
I'm hoping to have this branded the same as my non-GPL modules, but someone could fix the panel layout.
DHE-Modules has a branch right now that builds using Appveyor. I'd ask that if we decide to use external scripts we use a standard layout. We could also stand to put Travis scripts in this layout.
v0.6.0
Linux blocked by: #26
@davephillips, @dizzisound: want to take a look at this and chime in on the feel of the knob?
Looks like the crash is on pthread_mutex_trylock
Should include displaying which device corresponds to each instance of the module
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.
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>
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
See discussion of Center frequencies
A suggestion would be a three-way quantization switch: off, 100khz, 10khz
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
relates to #13
As noted on the FB group page, sched.h is sometimes installed in /usr/include and not in /usr/include/pthread. I'm not sure how you can check for that, but it's an easy fix at the user level.
On hold!
rtl_fm increments wb_fm frequencies by 16000.
We should increment our CV controlled frequency by the same so that the displayed tuning frequency matches our day-to-day perception of what the center of FM tuning looks like.
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);
step
call the tuner every time.safe_cond_signal
in RtlSdr_tune & safe_cond_wait
in the loop body) and record again.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.
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 ?
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.
see VCVRack/Rack#258
I could use a maintainer for Windows and Linux packages. Apply within!
Linux: blocked by #26
Windows: @dizzisound built recent rev
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.
select
on a file handle streaming PCM.Some ideas:
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?
see Wikipedia
The FM broadcast band in Japan uses 76 to 95 MHz. The International Radio and Television Organisation (OIRT) band in Eastern Europe is from 65.8 to 74.0 MHz
What is a reasonable range for all RTLSDR devices?
Will this make manual tuning too difficult?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.