Denny
60ffb18cd9
39 [WIP] cleans up the reusable buffers and creates both real and
...
complex variants.
2018-03-25 09:13:03 -04:00
Denny
28cb9d9407
[WIP] Updating dsp modules to accept variable sample rate I/Q streams
...
and creating a new audio resampler.
2018-02-09 05:29:07 -05:00
Denny
f2f2c92afe
[WIP] Implements reusable sample buffers across all components. This
...
produces a significant reduction in memory usage, especially for tuners
like the airspy and hackrf that produce 10/20 MSPS sample rates. This
is observed to be around 66% reduction in peak memory usage and provides
a more stable memory utilization across time reducing stress on the
garbage collector.
Use of these reusable memory buffers will be pushed further down into
the processing chain modules to ensure we keep new object creation
to the lowest levels possible.
2018-02-03 10:05:16 -05:00
Denny
e7f7d27a1f
Updates the Oscillator and LowPhaseNoiseOscillator classes to share a
...
common interface and abstract class.
2018-01-27 04:41:01 -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
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
Roman Tsypuk
7286c978da
updated gitignore
2017-12-16 10:36:04 +02:00
Roman Tsypuk
50bb96b14a
- moved dependencies to gradle
2017-12-16 00:01:23 +02:00
Roman Tsypuk
86248c511a
updated gitignore
2017-12-15 23:23:42 +02:00
Roman Tsypuk
d114282e4b
added dependencies from import folder
2017-12-15 22:53:33 +02:00
Denny
0181926fe3
WIP - polyphase channelizer
2017-10-30 19:12:14 -04:00
Denny
0e1da8fb3b
Updates intellij files and includes missing library
2017-03-23 11:31:15 +00:00
Denny
7d5371db4c
Updates build to 0.3.0 Beta 9
2017-03-20 06:12:15 -04:00
Denny
e2fe06638b
Incrementing build to version 0.3.0 beta8
2017-03-05 05:55:04 -05:00
Denny
a3e50acfe3
Incrementing build to 0.3.0-beta4
2017-02-11 09:02:35 -05:00
Denny
4c27d04120
Resolves #165 - adds ARM64 (aarch64) linux libusb support
2017-02-10 10:08:52 -05:00
Denny
767b302ed7
Adds additional unresolved address exception handler to metadata updater
2017-02-04 07:32:22 -05:00
Denny
bc8873de01
#90 [WIP] merged metadata management for channel state, decoder states and audio metadata into a new metadata class. The new metadata class is maintained for each decoding audio channel, or in the future, a decoding TDMA channel. Audio playback, recording and streaming all use the same metadata object for the channel. The list of channel processing gui panels have been deleted and channel processing status will now reside in a table where each table row is a metadata instance from the processing channel. The channel processing manager is responsible for adding/removing the channel's metadata instance to/from the metadata table. This allows the channel processing table to be the controller for the messages, events and channel spectrum views, keyed to the selected table row metadata.
...
I still have to clean up the gui components and wire in the table selection listeners.
2017-01-17 19:24:54 -05:00
Denny
42c18341b6
#30 - adds support for Shoutcast V2 (aka Ultravox 2.1) audio streams.
...
Resolves issue with MP3 framing where the remote server was disconnecting us due to bad MP3 sync. The LAME encoder was sending partial 20 byte MP3 frames initiall, then following with a 144 byte array which contained the remainder of the first frame and the header of the next frame. Adjusted the MP3SilenceGenerator to only emit complete MP3 frames.
This should be the final commit for this feature, pending merge back into master branch.
2017-01-02 16:05:00 -05:00
Denny
524a76e583
#30 WIP extracted the IcecastMetadataUpdater and merged some of the icecast configuration method into a new superclass.
2016-12-26 09:08:34 -05:00
Denny
1d7354b4a8
#30 WIP on using the new apache mina library
2016-12-18 09:09:47 -05:00
Denny
d085ecc0c9
#30 WIP on using the new apache mina library
2016-12-17 16:29:52 -05:00
Denny
ebca330730
#30 WIP - icecast 2 broadcaster cleanup
2016-12-10 10:42:59 -05:00
Denny
ef373daeef
#30 WIP - icecast 2 broadcaster cleanup
2016-12-10 10:36:38 -05:00
Denny
293dec8a1c
#30 WIP - adds radio reference web service lookup of broadcastify feed settings dialog.
2016-12-09 19:50:14 -05:00
Denny
b71415b82a
#30 WIP - broadcastify multi-channel streaming is functional.
2016-11-27 11:58:34 -05:00
Denny
ecfac83eb4
#30 WIP - adds stream manager to receive multiple audio stream's packets and convert the audio and persist to disk. Broadcaster will now receive converted audio files to stream out to the server.
2016-11-13 04:33:45 -05:00
Denny
357979a5dd
#30 - WIP - adds Icecast TCP(v2.3) and HTTP(v2.4) server support. Adds streaming tab and ability to add/delete/change streaming configurations. Adds streaming channel alias id so that aliases can be tagged to stream to one or more stream channels. Adds initial support for broadcastify streaming.
2016-11-06 09:33:49 -05:00
Denny
893cbba277
#30 - WIP on the shoutcast v2 protocol
2016-10-23 06:03:07 -04:00
Denny
ac23aea602
#30 - WIP on the shoutcast v2 protocol
2016-10-21 05:30:36 -04:00
Denny
02f470cf91
#30 - WIP on the shoutcast v2 protocol
2016-09-29 20:50:00 -04:00
Denny
6138838d60
#30 - WIP on the shoutcast v2 protocol
2016-09-14 06:07:21 -04:00
Denny
2537a71375
#30 - WIP Streaming audio support. Adds Shoutcast V1 handler.
2016-09-12 04:28:46 -04:00
Denny
9031fd78c9
#30 - WIP Streaming audio support
2016-08-21 11:41:42 -04:00
Denny
3af4b953f4
Changes internal audio sample rate from 48 kHz down to 8 kHz. Updates the P25 audio module to output 8 kHz audio. Updates the audio recorder to record at 8 kHz rate.
...
Note: required updated JMBE 0.3.3 library which supports 8 kHz audio output sample rate.
2016-08-19 21:09:39 -04:00
Denny
77cdcf1862
#72 Enhances management of wildcard values for aliases. Calculates a relative weighting for each wildcard alias id and then orders (smallest to largest) the wildcard values so that when attempting to lookup an id value, it first attempts to look for a direct match and then defaults to iterating the list of wildcard values until it finds the most specific or best matching wildcard value.
2016-08-04 19:54:43 -04:00
Denny
6af24ffa38
Closes #72 - updates alias list to maintain a map of alias id to alias and separate lists for wildcard alias id values. Alias lookup logic is changed to first look for in the alias map for a concrete match to the alias identifier. If an alias is not found, then the list of wildcard alias identifier values is iterated looking for a matching wildcard. If the wildcard is found, then the matching alias is returned from the map.
2016-07-31 09:18:25 -04:00
Denny
078a6fddce
Closes #71 - frequency controller throws exception when exceeding min/max tuning limits of a tuner.
...
Updated code to show dialog to user whenever the tuning limit has been exceeded. Added new InvalidFrequencyException that includes the requested invalid frequency and the valid frequency limit that was exceeded
2016-06-04 08:21:28 -04:00
Denny
8fec7c7314
IntelliJ and configuration updates
2016-05-30 07:29:43 -04:00
Denny
d520f43265
Adds support for Intelli-J IDE and adds missing CSS file for filter viewer
2016-05-30 07:03:31 -04:00