Denny
0cf964fa98
Updates test tuner to cleanup the buffer reuse settings
2018-01-20 04:26:53 -05:00
Denny
b6f282a85a
Polyphase Channelizer Viewer is fully functional again, now using the
...
TestTuner and TestTunerController implementations. This implementation
only has support for channels that are completely centered within a
channelizer output. Two output slice stitching to form a composite
channel will be implemented next.
Initial profiling indicates that the FFT function within the polyphase
channelizer is now the dominant processing workload - 28% cpu loading
when channelizing a 10 MHz sample rate input into 800 channels running
at 25.0 kHz each. This is ideal for offloading to an OpenCL kernel and
running on a GPU.
2018-01-19 12:44:31 -05:00
Denny
32ab0598e8
Updates sample generator and test tuner controller to support multiple
...
complex buffer listeners. Removes complex buffer broadcast support from
the source manager and renames it to channel source manager to convey
that it's only responsible for providing channels from the tuner.
2018-01-15 05:34:36 -05:00
Denny
5ae3cb38e1
Merge master and re-apply the source event structures to the DFT processor.
2018-01-15 05:03:03 -05:00
Denny
78205bb1bf
Merge branch 'master' into 39-polyphase-channelizer
...
# Conflicts:
# src/main/java/io/github/dsheirer/spectrum/DFTProcessor.java
2018-01-15 04:56:16 -05:00
Denny Sheirer
3d9b38bef5
Merge pull request #319 from DSheirer/318-dft-processor-non-blocking-queue
...
318 DFT Processor Non-Blocking Queue redesign
2018-01-15 04:54:40 -05:00
Denny
d5b377b1af
Resolves #318 . Redesigns DFT processor to use a non-blocking queue approach to
...
access incoming buffer streams coupled with a overflowable queue that
limits the quantity of complex buffers that are cached for the DFT
processor.
2018-01-14 12:05:39 -05:00
Denny
a7a0c26b38
#39 WIP - changes for testing of the channelizer viewer.
2018-01-14 08:40:34 -05:00
Denny
d4761be00a
#39 WIP - rolls back embedding source events in buffers. The channel
...
calculator must be updated immediately any time the tuner's center
frequency changes so that a channel can be allocated immediately. So,
I changed source event handling to two parts where the channel calculator
is immediately updated and the channelizer configuration is deferred so
that it can happen on the buffer processor execution thread and we can
avoid any sync() locking on the channelizer or polyphase channel
sources.
2018-01-13 11:43:26 -05:00
Denny
05fa5c25fd
#39 WIP - adds support for timestamped complex buffers so that decoded
...
messages and events can be accurately timestamped, and more importantly,
allocated traffic channels can request to be pre-loaded with buffered
samples to ensure that traffic channels don't miss any samples that
are currently missed due processing latency inherent in current buffer
sizing. This should reduce the clipping of starting messages or voice
on the traffic channels.
Restructures processing path for tuner frequency and sample rate change
events. The tuner now embeds these events in the sequence of buffers
that are generated immediately after the event occurs since those are
the buffers that will be impacted by the change. Previously, the change
event would be broadcast throughout the system and would impact any
buffered/cached buffers. This also reduces the number of source event
change listeners that have to be managed. Note: this change is not yet
implemented in all tuners ... only in the TestTuner implementation.
Updates the polyphase channelizer to now buffer channel results and then
dispatch the buffer to the channel output processors to improve efficiency
of using float arrays versus single value complex float processing.
2018-01-13 09:10:57 -05:00
Denny Sheirer
69e9bed2af
Updated readme
2018-01-12 03:50:57 -05:00
Denny
d2e7f008c8
WIP - implements tuner source manager to calculate and update the tuner's
...
center frequency each time we allocate a new DDC/channel. Adds
support for broadcasting channel count change source events so that the
tuner can accurately convey sourced channel counts via tuner events.
Completes changeover of polyphase channel manager to support arbitrary
bandwidth channels. The new approach provides greater compatibility
across any tuner sample rates. Likewise, all decoders will have to be
updated to adapt to any channel sample rate, although channel bandwidths
will be at least 12.5 kHz and likely no more than 25.0 kHz, with a 2x
oversampling that produces channel sample rates in range 25.0 - 50.0
kHz.
2018-01-07 07:46:41 -05:00
Denny
ddad4b6fb0
Updates readme
2018-01-01 13:16:20 -05:00
Denny
b65dd7e414
Updates readme
2018-01-01 08:20:30 -05:00
Denny
b076587f30
Updates readme
2018-01-01 08:17:42 -05:00
Denny
336669f1d5
Updates build version to 0.3.3 beta 3
v0.3.3-beta.3
2018-01-01 07:26:42 -05:00
Denny Sheirer
46cf7f4193
Merge pull request #309 from DSheirer/308-icon-manager-npe
...
308 IconManager throws NPE when loading external icons
2018-01-01 07:25:29 -05:00
Denny
e9aeb09011
Resolves issues with NPE handling and loading external icons.
2018-01-01 07:24:37 -05:00
Denny
236df8f3f4
Merges from master branch.
2017-12-27 10:10:51 -05:00
Denny
667c50174d
Merge branch 'master' into 39-polyphase-channelizer
...
# Conflicts:
# .idea/dictionaries/denny.xml
# .idea/libraries/imports.xml
# sdrtrunk.iml
# src/audio/AudioModule.java
# src/audio/broadcast/StreamManager.java
# src/buffer/FloatCircularBuffer.java
# src/channel/state/AlwaysUnsquelchedDecoderState.java
# src/channel/state/ChannelState.java
# src/channel/state/DecoderState.java
# src/channel/traffic/TrafficChannelManager.java
# src/controller/channel/Channel.java
# src/dsp/filter/FilterFactory.java
# src/dsp/filter/Window.java
# src/dsp/filter/design/FilterView.java
# src/dsp/filter/design/FilterViewer.java
# src/dsp/filter/fir/FIRFilterSpecification.java
# src/dsp/filter/fir/remez/RemezFIRFilterDesigner.java
# src/dsp/gain/AutomaticGainControl.java
# src/dsp/gain/ComplexFeedForwardGainControl.java
# src/dsp/mixer/Oscillator.java
# src/dsp/psk/LSMDemodulator.java
# src/gui/control/JFrequencyControl.java
# src/instrument/tap/stream/BinaryTapViewPanel.java
# src/module/Module.java
# src/module/ProcessingChain.java
# src/module/decode/Decoder.java
# src/module/decode/am/AMDecoder.java
# src/module/decode/fleetsync2/Fleetsync2Decoder.java
# src/module/decode/fleetsync2/Fleetsync2DecoderState.java
# src/module/decode/lj1200/LJ1200Decoder.java
# src/module/decode/lj1200/LJ1200DecoderState.java
# src/module/decode/ltrnet/LTRNetDecoder.java
# src/module/decode/ltrnet/LTRNetDecoderState.java
# src/module/decode/ltrstandard/LTRStandardDecoder.java
# src/module/decode/ltrstandard/LTRStandardDecoderState.java
# src/module/decode/mdc1200/MDCDecoder.java
# src/module/decode/mdc1200/MDCDecoderState.java
# src/module/decode/mpt1327/MPT1327Decoder.java
# src/module/decode/mpt1327/MPT1327DecoderState.java
# src/module/decode/nbfm/NBFMDecoder.java
# src/module/decode/p25/C4FMSymbolFilter.java
# src/module/decode/p25/P25Decoder.java
# src/module/decode/p25/P25DecoderState.java
# src/module/decode/p25/P25_C4FMDecoder.java
# src/module/decode/p25/P25_LSMDecoder.java
# src/module/decode/p25/audio/P25AudioModule.java
# src/module/decode/passport/PassportDecoder.java
# src/module/decode/passport/PassportDecoderState.java
# src/module/decode/tait/Tait1200Decoder.java
# src/module/decode/tait/Tait1200DecoderState.java
# src/module/demodulate/am/AMDemodulatorModule.java
# src/module/demodulate/audio/DemodulatedAudioFilterModule.java
# src/module/demodulate/fm/FMDemodulatorModule.java
# src/module/log/EventLogger.java
# src/record/AudioRecorder.java
# src/record/RecorderManager.java
# src/record/wave/ComplexBufferWaveRecorder.java
# src/record/wave/RealBufferWaveRecorder.java
# src/sample/Broadcaster.java
# src/sample/OverflowableTransferQueue.java
# src/sample/SampleType.java
# src/source/ComplexSource.java
# src/source/ISourceEventProvider.java
# src/source/InvalidFrequencyException.java
# src/source/RealSource.java
# src/source/Source.java
# src/source/config/SourceConfigRecording.java
# src/source/config/SourceConfigTuner.java
# src/source/heartbeat/Heartbeat.java
# src/source/heartbeat/IHeartbeatListener.java
# src/source/heartbeat/IHeartbeatProvider.java
# src/source/mixer/RealMixerSource.java
# src/source/recording/Recording.java
# src/source/recording/RecordingSourceManager.java
# src/source/tuner/ITunerChannelProvider.java
# src/source/tuner/Tuner.java
# src/source/tuner/TunerClass.java
# src/source/tuner/TunerController.java
# src/source/tuner/TunerEditor.java
# src/source/tuner/TunerManager.java
# src/source/tuner/TunerModel.java
# src/source/tuner/TunerSourceEditor.java
# src/source/tuner/TunerType.java
# src/source/tuner/airspy/AirspyTuner.java
# src/source/tuner/airspy/AirspyTunerController.java
# src/source/tuner/airspy/AirspyTunerEditor.java
# src/source/tuner/configuration/TunerConfigurationModel.java
# src/source/tuner/fcd/FCDTuner.java
# src/source/tuner/fcd/FCDTunerController.java
# src/source/tuner/fcd/proV1/FCD1TunerController.java
# src/source/tuner/fcd/proV1/FCD1TunerEditor.java
# src/source/tuner/fcd/proplusV2/FCD2TunerController.java
# src/source/tuner/fcd/proplusV2/FCD2TunerEditor.java
# src/source/tuner/hackrf/HackRFTuner.java
# src/source/tuner/hackrf/HackRFTunerController.java
# src/source/tuner/hackrf/HackRFTunerEditor.java
# src/source/tuner/rtl/RTL2832Tuner.java
# src/source/tuner/rtl/RTL2832TunerController.java
# src/source/tuner/rtl/e4k/E4KTunerController.java
# src/source/tuner/rtl/e4k/E4KTunerEditor.java
# src/source/tuner/rtl/r820t/R820TTunerController.java
# src/source/tuner/rtl/r820t/R820TTunerEditor.java
# src/source/tuner/usb/USBTransferProcessor.java
# src/source/wave/ComplexWaveSource.java
# src/source/wave/RealWaveSource.java
# src/spectrum/ChannelSpectrumPanel.java
# src/spectrum/DFTProcessor.java
# src/spectrum/OverlayPanel.java
# src/spectrum/SpectralDisplayPanel.java
2017-12-26 08:35:33 -05:00
Denny
c7f00ea124
Updates version to 0.3.3 beta 2
v0.3.3-beta.2
2017-12-26 07:19:06 -05:00
Denny Sheirer
1759f4a804
Merge pull request #306 from DSheirer/305-gradle-icons-missing
...
305 Icons missing from gradle build
2017-12-26 07:17:12 -05:00
Denny
3d9044802e
Resolves issue with including icons in gradle build product. Updates
...
all icon handling code to use absolute path for bundled icons.
2017-12-26 07:13:15 -05:00
Denny
42aec490bd
Updates build version and changelog.
2017-12-25 07:42:56 -05:00
Denny Sheirer
c3f5c1c70e
Merge pull request #303 from DSheirer/278-wave-metadata
...
278 Add Metadata to WAV audio recordings
v0.3.3-beta.1
2017-12-25 07:17:08 -05:00
Denny
188a521770
Adds wave file ID3 metadata chunk to audio recordings.
...
Updates wave writer to add the metadata LIST and ID3 chunks to the end
of the recording so that the file contains the final/complete set of
metadata that was accumulated over the call lifecycle.
2017-12-25 07:08:55 -05:00
Denny
6e352143d2
Adds wave file LIST metadata chunk to audio recordings.
...
Note: the metadata chunk may be added multiple times over the life span
of an audio call, as additional metadata details are added.
2017-12-24 06:51:09 -05:00
Denny Sheirer
7391265949
Merge pull request #302 from DSheirer/tsypuk-SDR-build
...
Gradle Build System
2017-12-21 20:55:44 -05:00
Denny
26b97f09b7
Updates SettingsManager to use jackson xml serialization. Final
...
testing on all changes to xml serialization.
2017-12-21 19:59:11 -05:00
Denny
1d2d9e8630
Updates IconManager to use faster jackson XML serialization.
2017-12-21 13:42:03 -05:00
Denny
ee6aeafa84
Updates PlaylistManager to use faster jackson XML serialization.
...
Removes native xml.bind serialization for improved compatibility with
Java 9.
Global optimize imports on the entire project.
2017-12-21 07:18:27 -05:00
Denny
47cc194415
Resolves issue with runtime exception when identifying application
...
version string from jar manifest
2017-12-17 07:34:47 -05:00
Denny
9316599dec
Updates pull request from Roman Tsypuk to convert the build system from
...
ant to gradle. Removes linux and windows application launch scripts and
produces an executable jar with all resources included.
2017-12-17 07:28:06 -05:00
Roman Tsypuk
a1535c4157
updated README, gitignore, moved styles
2017-12-16 11:12:59 +02:00
Roman Tsypuk
b478068475
- cosmetics naming changes
2017-12-16 10:44:54 +02:00
Roman Tsypuk
7286c978da
updated gitignore
2017-12-16 10:36:04 +02:00
Roman Tsypuk
628d514462
- updated to current version
2017-12-16 01:05:07 +02:00
Roman Tsypuk
3478702845
- removed scripts
2017-12-16 01:04:14 +02:00
Roman Tsypuk
695d622603
- added fatJar task
2017-12-16 00:57:44 +02:00
Roman Tsypuk
e8e47bfb40
- moved to package in.ua.smartjava
2017-12-16 00:56:22 +02:00
Roman Tsypuk
c1a4425969
- cleanup
2017-12-16 00:27:12 +02:00
Roman Tsypuk
4fa1a1aa81
- moved dependencies to gradle
2017-12-16 00:23:12 +02:00
Roman Tsypuk
4e1f9bcf97
- moved dependencies lib4java to gradle
2017-12-16 00:09:43 +02:00
Roman Tsypuk
50bb96b14a
- moved dependencies to gradle
2017-12-16 00:01:23 +02:00
Roman Tsypuk
51ea70f279
moved resource files
2017-12-15 23:57:27 +02:00
Roman Tsypuk
e15f271a54
- moved dependencies to gradle
2017-12-15 23:56:28 +02:00
Roman Tsypuk
605475c98b
- moved dependencies to gradle
2017-12-15 23:38:22 +02:00
Roman Tsypuk
86248c511a
updated gitignore
2017-12-15 23:23:42 +02:00
Roman Tsypuk
b1e07f762c
fix src folder structure
2017-12-15 23:22:32 +02:00
Roman Tsypuk
f2d1ac7e48
- commons moved to gradle
2017-12-15 22:56:38 +02:00