Giter Site home page Giter Site logo

mcanthony / cubicsdr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cjcliffe/cubicsdr

2.0 2.0 0.0 25.42 MB

Cross-Platform Software-Defined Radio Application

Home Page: http://www.cubicsdr.com

License: GNU General Public License v2.0

CMake 14.56% C++ 85.22% C 0.22%

cubicsdr's Introduction

CubicSDR

Cross-Platform Software-Defined Radio Application

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 trancievers?
    • 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
  • Accessability / Control
    • USB/MIDI control surfaces
    • Joystick / gamepad input
    • Vibration / force-feeback
  • 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

cubicsdr's People

Contributors

bodrick avatar cjcliffe avatar mryndzionek avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.