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
Go to file
Tom Swartz 6fa22147bc Add brief instructions where to find build steps
Upon initial visit, it's not immediately obvious where to find the build
instructions and build requirements.

Add a short line to direct new visitors to the wiki so that one may
find the building instructions.
2015-10-19 15:07:15 -04:00
cmake/Modules Better initial sample rate setup, remove hard-coded default rate and use device info matching /w fallback 2015-03-22 20:47:07 -04:00
external MSVC / Win32 x86 fixes 2015-08-31 20:26:17 -04:00
font Added frequency labels, 100khz intervals 2014-12-09 21:28:08 -05:00
icon exe / shortcut icon, NSIS branding header 2015-03-05 21:02:38 -05:00
src Fix crash in AudioThread::setActive 2015-10-07 20:18:29 +01:00
.gitignore Updated cmake for Visual C++ 12 2015-01-25 16:57:23 -05:00
CMakeLists.txt set patch release version 2015-09-11 00:09:43 -04:00
CubicSDR.desktop Add desktop launcher info for linux 2015-07-26 19:47:43 -04:00
cubicsdr.rc Set app frame icon 2015-03-07 20:29:25 -05:00
LICENSE Update LICENSE 2014-10-27 21:32:29 -04:00
README.md Add brief instructions where to find build steps 2015-10-19 15:07:15 -04:00

CubicSDR

Cross-Platform Software-Defined Radio Application

Please see the CubicSDR GitHub Wiki for build instructions.

Utilizes:

Features and Status:

  • Simple UI
  • Devices
    • RTL-SDR
    • rtl_tcp client
    • gr-osmosdr
  • Basic Features
    • Device Selection
    • Bandwidth
    • Color scheme
    • Load/Save session
    • Audio sample rate
    • Device PPM
    • Default preferences
      • Audio defaults
      • Device defaults
    • Bookmarks
    • History
    • Run as rtl_tcp server and visualize control
  • Neat Visuals
    • 2D visuals
      • Y Scope
      • Spectrum
      • Waterfall
      • Add faint grid for sense of scale
      • Audio Spectrum
      • X/Y Scope
      • Indicate outer spectrum edges when zoomed
    • 3D visuals
      • I/Q helix
  • Demodulation:
    • Basic modular expansion
    • Multiple demodulators per IQ stream
    • Audio device selection
    • Modes
      • FM
      • FM stereo
      • AM
      • LSB
      • USB
      • DSB
      • I/Q
    • 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
      • Direct frequency input
      • Mute
      • Waterfall speed
      • RTL-SDR Gain
  • 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 '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
  • I/Q Recording and playback
    • Recording
      • Record waterfall output to PNG file chunks of desired height
      • Record I/Q input data
      • Simultaneously record demod decimated I/Q and audio
    • Playback
  • Audio
    • Recording
  • Implement digital demodulation supported by liquid-dsp: (http://liquidsdr.org/doc/modem.html)
    • Demodulator Lab
      • Demodulator I/Q input filtering
      • Audio output filtering
      • Toggle current demodulator exclusively into "Lab" mode
        • Additional visualizations for audio and I/Q stream
          • Audio Spectrum
          • Constellation / X-Y Scope
        • Digital demodulation status and controls
        • Demodulator AGC, Equalization controls
          • Lock AGC and Equalization when digital lock obtained
        • Digital output
          • Output console
          • Capture file (auto?)
          • Network output
          • Block device output
    • Digital modes available to implement
      • PSK
      • DPSK
      • ASK
      • QAM
      • APSK
      • BPSK
      • QPSK
      • OOK
      • SQAM
      • Star Modem
      • MFSK
      • CPFSK
  • Optimization
    • Eliminate large waterfall texture uploads
    • Update visuals to OpenGL 3.x / OpenGL ES
    • Resolve constant refresh on visuals that don't change often
    • Resolve all driver/platform vertical sync issues
    • Group and divide IQ data distribution workload instead of 100% distribution per instance

Advanced Goals and ideas:

  • Design a plan for expansion via modules (dylib/dll/lua)
  • 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
  • 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 transceivers?
    • Allow scripts to launch/run headless (no UI)
  • "PVR" like mode with waterfall time shifting
  • L/R and surround-sound balance settings for separating and listening to mono streams
  • Add tool for converting decimated I/Q recording to video
    • Select video features such as title/demodulation/scope/waterfall/etc.
    • Render to video from GL frames->ffmpeg/mencoder /w demodulated audio
  • Accessibility / Control
    • USB/MIDI control surfaces
    • Joystick / gamepad input
    • Vibration / force-feedback
  • Investigate compilation via emscripten using rtl_tcp for input
    • Create web server+rtl_tcp bundle for embedded devices
    • Use emscripten compiled CubicSDR via embedded web server

Target Platforms:

  • OSX
  • Windows
  • Linux
  • HTML5

License:

  • GPL