mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-22 03:36:24 -05:00
Cross-platform Software Defined Radio application. Uses SoapySDR, and has support for a wide range of dongles and strange pieces of hardware.
https://www.cubicsdr.com
679ad64a1f
- Refactored texture generation to linear wrap in GPU memory with glTexSubImage2D (1 line per frame upload max) - Texture upload per frame reduced nearly 700-800x (~2-4kb instead of ~1.6mb) |
||
---|---|---|
cmake/Modules | ||
external | ||
font | ||
src | ||
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
CubicSDR
Cross-Platform Software-Defined Radio Application
Utilizes:
- liquid-dsp (http://liquidsdr.org/ https://github.com/jgaeddert/liquid-dsp)
- FFTW (http://www.fftw.org/ https://github.com/FFTW/fftw3)
- RtAudio (http://www.music.mcgill.ca/~gary/rtaudio/ http://github.com/thestk/rtaudio/)
- Osmocom RTLSDR (http://sdr.osmocom.org/trac/wiki/rtl-sdr)
- LodePNG (http://lodev.org/lodepng/)
- BMFont (http://www.angelcode.com/ http://www.angelcode.com/products/bmfont/)
- Bitstream Vera font (http://en.wikipedia.org/wiki/Bitstream_Vera)
- OpenGL (https://www.opengl.org/)
- wxWidgets (https://www.wxwidgets.org/)
- CMake (http://www.cmake.org/)
Basic Goals and Status:
- Simple UI
- Devices
- RTL-SDR
- rtl_tcp
- HackRF
- Whatever else I can get my hands on
- Minimal configuration
- Device Selection
- Bandwidth
- Color scheme
- Load/Save session
- Default audio device and settings / preferences
- Neat Visuals
- Scope
- Spectrum
- Waterfall
- More 2D visuals
- 3D visuals
- Demodulation:
- Design a proper architecture for modular expansion :)
- Multiple demodulators per IQ stream
- Audio device selection
- Modes
- FM
- FM stereo
- AM
- LSB
- USB
- DSB
- Controls
- Display Frequency and allow manual adjustments
- Allow selection of demodulation type
- Display separate zoomed-in view of current waterfall and spectrum, allow adjustments
- Display signal level and allow squelch control
- Display audio output selection
- Volume control
- Basic noise reduction / filter controls?
- Basic Input Controls
- Drag spectrum to change center frequency
- Hold shift and click on waterfall to create a new demodulator
- Clicking waterfall adds new demodulator when none visible
- Drag center of demodulator on waterfall to change frequency
- Drag edge of demodulator on waterfall to change bandwidth
- Double-Click to move demodulator to frequency within it's current range
- Hold alt and drag range on waterfall to set demodulator frequency + bandwidth
- Hold alt+shift and drag range on waterfall for a new demodulator
- Hover demodulator on waterfall and press 's' to toggle squelch
- Hover demodulator on waterfall and press 'space' to toggle stereo
- Hover demodulator on waterfall and press 'd' or 'delete' to delete it
- Keyboard arrows adjust frequency, shift for faster change
- Undo / Redo action
- IQ Recording and playback
- Recording
- Playback
- Audio
- Recording
- Optimization
- Eliminate large waterfall texture uploads
- Update visuals to OpenGL 3.x
- Resolve constant refresh on visuals that don't change often
- Resolve driver/platform vertical sync issues
- Group and divide IQ data distribution workload instead of 100% distribution per instance
Advanced Goals:
- Support shell-based stdin/stdout tools for direct output/playback to/from CLI audio processing apps (i.e. DSD on OSX)
- Update visuals to support OpenGL ES
- Basic demodulator filter(s) that can be enabled and tweaked visually
- Support multiple simultaneous device usage
- Categorize devices by antenna connections
- Allow locked frequencies to activate unused devices to continue demodulation on same antenna
- Implement digital demodulation supported by liquid-dsp: (http://liquidsdr.org/doc/modem.html)
- PSK, DPSK, ASK, QAM, APSK, BPSK, QPSK, OOK, SQAM, Star Modem(?)
- Integrate LUA
- Expose liquid-dsp functionality
- Scriptable liquid-dsp demodulation
- Scriptable digital demodulation output handlers
- Create block output devices on *nix?
- Create socket outputs?
- Visual outputs?
- Take control of additional devices and spawning new demodulators (i.e. trunkers)
- Script manager / live editor
- Provide scriptable liquid-dsp modulation for trancievers?
- "PVR" like mode with waterfall time shifting
Target Platforms:
- OSX
- Windows
- Linux
License:
- GPL