forked from alexlee188/ghpsdr3-alex
Modifications of John Melton's ghpsdr3
8cH9azbsFifZ/ghpsdr3-alex
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a modification of the excellent Software Defined Radio software by John Melton. The original sources are in an svn repo revision 1999. See: http://openhpsdr.org/wiki/index.php?title=Ghpsdr3 The changes are in trunk/src/: softrock - added an IF offset of 9khz (ala PSDR-IQ). Works with all softrocks. dspserver - added IF offset of 9khz. More robust audio and spectrum transfers. server - hpsdr protocol with full control of sdr-widget/Mobo/SR. Only for sdr-widget. receiver - Makefile modified to compile in x86_64, changed local-audio to direct alsa output, changed portaudio to use callback. To run under Ubuntu with pulseaudio: $ ./ghpsdr --local-audio 1 --audio-device pulse QtRadio - added dialog to store server ip addresses. Fixed high cpu util bug. Implemented 16 bit PCM audio. See below for codec2 encoding and decoding. Implemented a separate high priority thread for Audio with improved sound quality. There are four branches, master, new-qt, audio-thread and aconf. The master branch uses the 'old' QtMultimedia directory structure which will build in older distributions such as Ubuntu 10.04. The new-qt and other branches use the QtMobility diectory structure which will be used in the upcoming new version of Qt. Ubuntu 11.04 or later has this new QtMobility structure. The QtRadio audio quality is vastly improved with the audio codes running in a separate, high priority thread from the main GUI thread. This has been implemented in the master, audio-thread and aconf branches. Building the software ===================== If you are new to this, use the aconf branch to build all the following software: softrock, dspserver and QtRadio. $ cd ghpsdr3-alex $ git checkout aconf $ autoreconf -i $ ./configure $ make all $ sudo make install Then the 3 programs will be installed in /usr/local/bin. Note you will need some dev packages to be installed for using Qt (used by QtRadio), audio devices and USB, including: libqt4-opengl-dev glutg3-dev libportaudio19-dev libusb-dev libpulse-dev If you prefer to use qmake-qt4 for building QtRadio, you can use the audio-thread branch. Running the software ==================== To run the softrock server (defaults to using pulse for IQ input. So use pulse chooser to set the default pulse source to the IQ sound card). You also need to run pulse in network mode. Use Pulseaudio Device Chooser to set up network access by checking the various option boxes. $ softrock --si570 --iq --samplerate 48000|96000|192000 (If you find your I/Q is reversed, use --qi instead of -iq To run the dspserver: $ dspserver Then you can run QtRadio to connect to the dspserver that is running. For sdr-widget user only ======================== As an alternative to softrock server, you can use the modified "server", which has been customized to connect to the sdr-widget using the hpsdr protocol. You need to setup sdr-widget for the hpsdr protocol (with the WidgetControl.py tool), and then run server: cd ~/ghpsdr3-alex/trunk/bin ./server --si570 --receivers 1 --samplerate 48000|96000|192000 After that, you start dspserver (to connect to this server) and QtRadio etc. QtRadio with codec2 low bit rate audio encoding and decoding ============================================================ We are adding a low bit rate audio codec called codec 2 to QtRadio/dspserver. You need to download and build the codec2 library. See: http://www.rowetel.com/blog/?page_id=452 $ svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2 $ cd codec2 $ ./configure $ make $ sudo make install $ sudo ldconfig Compiling with clang instead of default gcc =========================================== If using aconf branch: $ ./configure CC=clang CXX=clang For other branches I have modified the Makefile of server, softrock and dspserver to use clang if you do: $ make CC=clang Otherwise it will use the default gcc The one big advantage of clang over gcc is the more meaningful error/warning messages and other options to help with debugging.
About
Modifications of John Melton's ghpsdr3
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 57.8%
- C++ 32.9%
- Java 4.6%
- SuperCollider 2.9%
- Python 0.7%
- Objective-C 0.6%
- Other 0.5%