-
v0.11.0 - 11/11/2022
- Application changes
- Fix wavfile output instantiation error caused by undefined channel count.
- Fix portaudio output instantiation error caused by undefined channel count.
- Core changes
- Add successful exit return value to
stop()
andwait()
methods of CompositeBlock.
- Add successful exit return value to
- C API changes
- Add successful exit return parameter to
luaradio_stop()
andluaradio_wait()
functions.
- Add successful exit return parameter to
- Documentation changes
- Update Ubuntu and Debian/Raspbian prerequisites in installation guide.
- Contributors
- @abutcher-gh - 8c56329
- Jay Sissom (@jsissom) - 6519586
- Mark Hills (@hills) - eabf21c
- Application changes
-
v0.10.0 - 06/09/2021
- Application changes
- Add built-in applications with rx_raw, rx_wbfm, rx_nbfm, rx_am, rx_ssb, rx_rds, rx_ax25, rx_pocsag, rx_ert, and iq_converter.
- Block changes
- Refactor to use PipeMux in ThrottleBlock and HackRFSink.
- Add support for v3 API (libsdrplay_api) to SDRplaySource.
- Refactor title option into options table and add timestamp option for PrintSink.
- Implement
tostring()
for AX25FrameType, POCSAGMessageType, and RDSPacketType types. - Fix spurious warning about block terminated on shutdown for AirspySource.
- Fix missing error check for set gain mode and fix typo in set gain error message in BladeRFSource.
- Default to autogain if no manual gain specified in RtlSdrSource and UHDSource.
- Composite changes
- Add RDSDecoderBlock to flow graph of RDSReceiver.
- Runner changes
- Add built-in application support.
- Core changes
- Add optional count argument to
read()
in PipeMux. - Add new helper functions
parse_args()
,format_options()
,array_concat()
,array_map()
,table_extend()
,table_keys()
, andtable_values()
. - Add built-in application framework.
- Add optional count argument to
- Documentation changes
- Fix minor typos in a few docstrings.
- Add PipeMux and ControlSocket description to Architecture document.
- Add Applications document.
- Application changes
-
v0.9.1 - 01/08/2021
- Block changes
- Fix spurious warning about downstream block termination on shutdown in RtlSdrSource.
- Core changes
- Fix flow graph shutdown handling on Mac OS X due to missing
sigtimedwait()
.
- Fix flow graph shutdown handling on Mac OS X due to missing
- Block changes
-
v0.9.0 - 01/04/2021
- Block additions
- PulseMatchedFilterBlock
- PulseAmplitudeModulatorBlock
- QuadratureAmplitudeModulatorBlock
- BladeRFSource
- BladeRFSink
- Block changes
- Fix support for Lua file handles with PrintSink and BenchmarkSink.
- Add support for optional reporting title to PrintSink and BenchmarkSink.
- Core changes
- Refactor read and write multiplexing of Pipes into the PipeMux class.
- Add control sockets to blocks to implement graceful shutdown and to support an asynchronous control interface in the future.
- Reimplement flow graph stop with control sockets for faster and more graceful shutdown.
- Add automatic termination of unresponsive block processes to flow graph stop.
- Fix blocking in flow graph wait when flow graph has already terminated or when running multiple flow graphs.
- Documentation changes
- Add BladeRF and PortAudio to Supported Hardware document.
- Website changes
- Improve reference manual layout and navigation.
- Improve sidebar position and layout.
- Block additions
-
v0.8.0 - 10/22/2020
- Block additions
- FrequencyModulatorBlock
- ManchesterMatchedFilterBlock
- PreambleSamplerBlock
- IDMFramerBlock
- SCMFramerBlock
- SCMPlusFramerBlock
- Composite additions
- ERTReceiver
- Block changes
- Add file locking to JSONSink to support interleaved writes to the same file from multiple instances of the sink.
- Add alternative library name candidates to PortAudioSource, PortAudioSink, PulseAudioSource, PulseAudioSink for better user experience on Debian-based platforms.
- Type changes
- Add
tobytes()
helper function to the Bit type to convert a Bit vector to bytes. - Add
tostring()
helper function to the Bit type to format a Bit vector as a string.
- Add
- Core changes
- Add support for trying multiple shared library name candidates in FFI library loads.
- Add alternative library name candidates for liquid-dsp, VOLK, and FFTW3 for better user experience on Debian-based platforms.
- Add support for copying the input data type to the output in block
type signatures with the
"copy"
sentinel. - Enforce explicit block connections are specified with the output port first and the input port second.
- Refactor hierarchical block functionality of CompositeBlock.
- Add support for type signature differentiation of hierarchical blocks.
- Add support for the
initialize()
hook for hierarchical blocks, allowing additional initialization based on the sample rates and differentiated type signatures of internal blocks. - Improve type validation of aliased ports in hierarchical blocks.
- Improve the string representation of block objects during various connectivity stages (unconnected, differentiated, connected).
- Build changes
- Add Lua module installation target to Makefile.
- Documentation changes
- Update CompositeBlock internals with hierarchical block functionality refactoring in architecture document.
- Add Lua module installation option to installation guide.
- Add note about LuaJIT 2.1.0-beta3 embedded bytecode loading bug to installation guide.
- Improve description of shared library in embedding guide.
- Website changes
- Improve formatting of headers and the sidebar.
- Contributors
- Jonas Rudloff (@kokjo) - eb5bc68, 4a16f57, 36ce479
- Paul Harrington (@phrrngtn) - for discussion, many IQ samples, and testing of the ERTReceiver composite.
- Block additions
-
v0.7.0 - 04/29/2020
- Block additions
- PortAudioSource
- AirspyHFSource
- Block changes
- Add option for direct sampling mode to RtlSdrSource.
- Fix feedback loop causing diminishing throughput in ThrottleBlock.
- Use
FFTW_ESTIMATE
in fftw DFT/IDFT initialization to reduce startup time on certain platforms (e.g. Raspberry Pi 3) when using FFT accelerated FIRFilterBlock.
- Core changes
- Improve string representation for core C structure types.
- Add
type_name
property to core types, CStructType factory, and ObjectType factory for use in error and debug reporting. - Disable call operator for constructed block instances.
- Fix method registration with
methods
table argument in ObjectType factory function. - Enforce linear connections between blocks have exactly one output and input port.
- Improve error reporting in type signature differentiation with port names and types.
- Improve flow graph debug reporting with sample rates and data types.
- Add optional
count
argument to Pipe read().
- Documentation changes
- Add macOS MacPorts package to installation guide and README.
- Improve dependency installation instructions in installation guide and README.
- Add support for
@property
docstring in reference manual. - Add mailing list link (https://groups.io/g/luaradio) to README and website.
- Add Airspy HF+ Dual Port and Discovery to Supported Hardware document.
- Block additions
-
v0.6.1 - 03/07/2020
- Block changes
- Fix gnuplot check under lua52compat LuaJIT for gnuplot plotting sinks.
- Update C API (v0.8) to fix block crash for SoapySDRSource and SoapySDRSink.
- Add library and ABI version reporting to debug dump for SoapySDRSource and SoapySDRSink.
- Migrate to new callback based API (v2.13) for SDRplaySource.
- Update C API (v3.15.0.0) for UHDSource and UHDSink.
- Add library and ABI version reporting to debug dump for UHDSource and UHDSink.
- Clean up manual gain warnings under autogain setup for UHDSource.
- Add device reporting to debug dump for RtlSdrSource.
- Make FFI cdefs more consistent with public APIs for HackRFSink, HackRFSource, UHDSource, UHDSink, and AirspySource.
- Build changes
- Improve LuaJIT library and executable discovery in Makefile.
- Documentation changes
- Fix examples in docstrings for several gnuplot plotting sinks.
- Update and simplify instructions in installation guide.
- Add macOS Homebrew package to installation guide.
- Website changes
- Update hardware and software suggestions in New to SDR guide.
- Contributors
- Jakob L. Kreuze (@TsarFox) - 1dc9f7e
- Block changes
-
v0.6.0 - 12/12/2019
- Block additions
- JSONSource
- NetworkClientSource
- NetworkServerSource
- NetworkClientSink
- NetworkServerSink
- Block changes
- Add format_utils with binary sample format conversion tables.
- Add network_utils with network server and client utility classes.
- Refactor several file sources and sinks to use format_utils: IQFileSource, RealFileSource, WAVFileSource, IQFileSink, RealFileSink, WAVFileSink.
- Move common shared utilities to radio/utilities/ folder.
- Improve memory copies in several blocks: DelayBlock, FIRFilterBlock, HilbertTransformBlock, ThrottleBlock, GnuplotSpectrumSink, GnuplotWaterfallSink, AX25FramerBlock, POCSAGFramerBlock, RDSFramerBlock.
- Remove stdout debug prints from PulseAudioSource.
- Fix partial reads in RawFileSource.
- Fix error lookups in UHDSource and UHDSink.
- Core changes
- Factor common FFI cdefs out of blocks and into platform module.
- Improve memory copies and clears in vector module.
- Default construct elements on ObjectVector instantiation in vector module.
- Remove radio.core.util export from top namespace.
- Add radio.core.vector export to top namespace.
- Fix namespacing of callback function in async module.
- Add library version lookups to platform module.
- Runner changes
- Add library versions to platform dump.
- Test changes
- Fix Python test code generators for DecimatorBlock and top level test with scipy.signal.decimate() API change.
- Rename code generated tests with .gen.lua suffix.
- Simplify unit test file structure by moving Python test code generators from tests/generator/ folder to alongside generated tests.
- Add
.busted
configuration to simplify unit testing invocation. - Add temporarily increased epsilon conditioned on liquid-dsp acceleration for FrequencyTranslatorBlock and TunerBlock tests to accommodate NCO changes in library.
- Benchmark changes
- Add library versions to platform reporting in LuaRadio benchmark results.
- Documentation changes
- Fix formatting of argument types in reference manual.
- Add README to embed/ folder.
- Add busted install instructions to project README and tests README.
- Simplify busted invocation in project README, tests README, and Creating Blocks document.
- Add REPL install instructions and FFI development tips to Creating Blocks document.
- Update links in Creating Blocks, Comparison to GNU Radio, and Supported Hardware documents.
- Thirdparty changes
- Bump lua-MessagePack version to 0.5.2.
- Bump json.lua version to 0.1.2.
- Website changes
- Merge luaradio.io website subproject into website/ folder.
- Update luaradio.io website URL with https.
- Block additions
-
v0.5.1 - 09/03/2018
- Block changes
- Fix symbol issue with libSoapySDR library load on Mac OS X in SoapySDRSource and SoapySDRSink.
- Add biastee and bandwidth options to RtlSdrSource.
- Documentation changes
- Fix minor typos in a few docstrings.
- Fix source in flow graph for benchmark example.
- Rewrite reference manual generator in Python.
- Update docstrings for new reference manual generator.
- Contributors
- Ralf Biedert (@ralfbiedert) - 49d66027
- Ralf Biedert (@ralfbiedert) - 824057ba
- Phil (@philharrisathome) - 68d6a838
- Block changes
-
v0.5.0 - 11/21/2016
- Block additions
- UHDSource
- UHDSink
- NopSink
- NopBlock
- Block changes
- Fix ThrottleBlock implementation with adaptive delay.
- Fix error reporting during initialization in PulseAudioSource and PulseAudioSink.
- Fix settings table argument in SoapySDRSource and SoapySDRSink.
- Rename NullSource to ZeroSource.
- Core changes
- Add time_us() helper to platform module.
- Documentation changes
- Fix minor typos in a few docstrings.
- Improve wording in several documents.
- Update supported hardware document with USRP support.
- Contributors
- Daniel Von Fange - 22932b1
- Block additions
-
v0.4.0 - 08/31/2016
- Block additions
- HackRFSink
- SoapySDRSource
- SoapySDRSink
- PulseAudioSource
- InterleaveBlock
- DeinterleaveBlock
- Block changes
- Fix I/Q sample conversion in HackRFSource.
- Add FFT overlap-save implementation to FIRFilterBlock.
- Improve performance of real to complex DFT in spectrum_utils.
- Refactor PSD into separate class in spectrum_utils.
- Add IDFT to spectrum_utils.
- Add error handling for process pipe writes in gnuplot plotting sinks.
- Fix default window type and columns values in GnuplotWaterfallSink.
- Benchmark changes
- Add FFT-based FIR filters to benchmarks.
- Adjust filter tap lengths in benchmarks.
- Core changes
- Improve error handling and traceback when a downstream block crashes.
- Documentation changes
- Fix minor typos in a few docstrings.
- Update supported hardware document.
- Block additions
-
v0.3.0 - 07/28/2016
- Block additions
- AGCBlock
- PowerSquelchBlock
- VaricodeDecoderBlock
- Composite additions
- BPSK31Receiver
- C API changes
- Add stack traceback to error messages.
- Documentation changes
- Add Ubuntu install instructions to installation guide.
- Fix minor typos and wording in a few documents and docstrings.
- Example changes
- Replace constant gain with automatic gain control in rtlsdr_am_envelope, rtlsdr_am_synchronous, and rtlsdr_ssb examples.
- Block additions
-
v0.2.0 - 07/16/2016
- Block additions
- AirspySource
- HackRFSource
- SDRplaySource
- Block changes
- Add proper device close to RtlSdrSource.
- Core changes
- Add asynchronous callback wrapper to support callbacks from threads and signal handlers.
- Documentation changes
- Add Supported Hardware document.
- Add Homebrew install instructons to installation guide.
- Contributors
- Martin Müller - 354cd5e0
- Dominic Spill - 26bcbf72
- Special thanks to @zeryl, @rxseger, @dominicgs for testing and fixing the HackRF source block.
- Block additions
-
v0.1.2 - 07/09/2016
- C API changes
- Use /usr/local as default prefix for installation in Makefile.
- Extract version numbers from radio package rather than git tag in Makefile.
- Examples changes
- Remove setup-specific RtlSdrSource frequency correction settings from examples, which were accidentally committed.
- Documentation changes
- Fix type signatures example figure.
- Fix minor typos and wording in a few documents and docstrings.
- Qualify a few points in the Comparison to GNU Radio document.
- Add prerequisites and dependencies to installation guide.
- Add contributing document.
- Contributors
- Kevin Mehall - 8a859261
- C API changes
-
v0.1.1 - 07/03/2016
- Block changes
- Add device index option to RtlSdrSource.
- Choose default RF gain from dongle supported gains in RtlSdrSource.
- C API changes
- Look up lua C module install path instead of presuming it in Makefile.
- Example changes
- Fix tuner filter bandwidth in rtlsdr_rds.
- Documentation changes
- Make types bold in type signatures example figure.
- Improve wording in Comparison to GNU Radio document.
- Block changes
-
v0.1.0 - 07/02/2016
- Initial release.
-
(Prototype) v0.0.20 - 07/01/2016
- Block additions
- ManchesterDecoderBlock
- Block changes
- Re-order initialization in RtlSdrSource to fix "PLL not locked" warning.
- Move type conversion blocks from Miscellaneous to their own category in their block docstrings.
- Composite changes
- Improve bit sampling and decoding, and simplify to non-coherent BPSK demodulation in RDSReceiver.
- C API changes
- Add install target to Makefile.
- Add version number fallbacks to Makefile for building out of git tree.
- Fix shared library build on Mac OS X.
- Improve portability of rds-timesync example to support Mac OS X.
- Rename fmradio example to fm-radio for consistency.
- Runner changes
- Add support for running scripts from standard in.
- Documentation changes
- Resize all figures to under 800px.
- Simplify instructions in installation guide.
- Improve wording in all documents.
- Improve formatting and wording in several docstrings.
- Improve formatting of reference manual.
- Benchmark changes
- Bump number of trials from 3 to 5.
- Add standard deviation computation.
- Shorten benchmark names.
- Example changes
- Improve bit sampling and decoding, and simplify to non-coherent BPSK demodulation in rtlsdr_rds.
- Improve plot range of RF spectrum in rtlsdr_ssb.
- Improve variable names in several examples.
- Rearrange code and add section comments for clarity in all examples.
- Block additions
-
(Prototype) v0.0.19 - 06/04/2016
- Documentation changes
- Add packaged third-party modules licenses to LICENSE file.
- Add docstrings throughout codebase and blocks.
- Add reference manual generator.
- Add documents:
- Reference Manual
- Installation
- Creating Blocks
- Embedding LuaRadio
- Architecture
- Comparison to GNU Radio
- Add tests README.
- Add examples README.
- Add project README.
- Documentation changes
-
(Prototype) v0.0.18 - 06/04/2016
- Block additions
- RealToComplexBlock
- AddConstantBlock
- SinglepoleLowpassFilterBlock
- SinglepoleHighpassFilterBlock
- FMPreemphasisFilterBlock
- Block changes
- Add return codes to error messages in RtlSdrSource.
- Improve performance of RtlSdrSource by using
rtlsdr_read_async()
. - Change gain argument to modulation index in FrequencyDiscriminatorBlock.
- Add filename and file object support to BenchmarkSink.
- Add periodic human-readable reporting to BenchmarkSink.
- Refactor FMDeemphasisFilterBlock to use SinglepoleLowpassFilterBlock.
- Rearrange optional nyquist frequency argument order in filter blocks.
- Fix overflow for sample values of 1.0 in WAVFileSink.
- Add sampling interval to BinaryPhaseCorrectorBlock to reduce computation.
- Use line style 1 for plotting in GnuplotPlotSink, GnuplotXYPlotSink, GnuplotSpectrumSink.
- Add argument assertions to all blocks.
- Refactor all blocks to use persistent output sample vectors.
- Composite changes
- Remove constant audio gain block from AMEnvelopeDemodulator, AMSynchronousDemodulator, and SSBDemodulator.
- Add DC rejection filter for carrier to AMEnvelopeDemodulator and AMSynchronousDemodulator.
- Add argument assertions to all composites.
- Example changes
- Add iqfile_converter example.
- Add DC rejection filter for carrier to rtlsdr_am_envelope and rtlsdr_am_synchronous.
- Remove autogain setting from RTL-SDR source in rtlsdr_wbfm_mono, rtlsdr_wbfm_stereo, rtlsdr_rds examples.
- Make tune offsets consistent across examples.
- Make plot ranges consistent across examples.
- Add headless running support to all examples.
- Block additions
-
(Prototype) v0.0.17 - 06/03/2016
- Core changes
- Fix deadlock in synchronous read of multiple pipes, when a slower input pipe has an indirect dependency on a faster input pipe because it shares a common upstream writer.
- Enforce all block input rates match before running in CompositeBlock.
- Enforce inputs/outputs names match previous type signatures in Block.
- Close unneeded file descriptors in block process after forking in CompositeBlock.
- Add protected call wrapper to block running in CompositeBlock.
- Add
status()
method to CompositeBlock. - Add
__tostring()
metamethod to Vector and ObjectVector. - Rename
type
property todata_type
in Vector and ObjectVector. - Return self in
resize()
,append()
methods of Vector and ObjectVector. - Refactor
run()
method in Block. - Rename
get_input_types()
,get_output_types()
methods toget_input_type()
,get_output_type()
in Block. - Improve error messages in Block.
- Improve debug and error messages in CompositeBlock.
- Add CompositeBlock control (status, wait, stop) unit tests.
- C API changes
- Rename context type from
radio_t
toluaradio_t
. - Add
luaradio_status()
function to wrap CompositeBlockstatus()
. - Add
luaradio_get_state()
function to get Lua state. - Refactor and improve C API unit test.
- Clean up fmradio and rds-timesync examples.
- Rename context type from
- Block changes
- Rename RDSFrameBlock to RDSFramerBlock.
- Rename RDSDecodeBlock to RDSDecoderBlock.
- Rename AX25FrameBlock to AX25FramerBlock.
- Rename POCSAGFrameBlock to POCSAGFramerBlock.
- Rename POCSAGDecodeBlock to POCSAGDecoderBlock.
- Rename SumBlock to AddBlock.
- Benchmark changes
- Reduce factors in downsampler and upsampler benchmarks.
- Increase buffer sizes in several file source benchmarks.
- Core changes
-
(Prototype) v0.0.16 - 05/03/2016
- Simplify class module namespacing, including blocks and basic types.
- Improve basic type names.
- Remove unused Integer32 basic type.
- Remove Pipe
vmsplice()
feature, which was problematic with blocks that use persistent sample buffers. - Change Pipe backend from UNIX pipes to UNIX sockets.
- Eliminate sleeping in CompositeBlock
wait()
. - Add
version_info
table to radio package. - Add liquid-dsp library loading to platform module.
- Add liquid-dsp implementation to the following blocks and classes:
- FIRFilterBlock
- IIRFilterBlock
- HilbertTransformBlock
- FrequencyTranslatorBlock
- DFT in spectrum_utils
- Add file object support to the following sources and sinks:
- IQFileSource
- RawFileSource
- RealFileSource
- WAVFileSource
- IQFileSink
- RawFileSink
- WAVFileSink
- RealFileSink
- Fix infinite loop bug on invalid frame sync codeword in POCSAGFrameBlock.
- Add "Multiply (Real-valued)" benchmark to benchmark suites.
- Add SIGINT handling to LuaRadio benchmark suite.
- Reduce number of filter taps in most modulation, demodulation, and receiver composite blocks.
- Reduce number of filter taps in most examples.
- Change decimators to downsamplers in several examples, where additional filtering before downsampling wasn't needed.
-
(Prototype) v0.0.15 - 04/18/2016
- Add BenchmarkSink block.
- Remove old LuaRadio and GNURadio benchmark scripts.
- Add more comprehensive LuaRadio and GNURadio benchmark suites.
- Improve performance of arg() and abs() methods of ComplexFloat32Type.
- Improve performance of several blocks:
- DelayBlock
- DifferentialDecoderBlock
- FrequencyDiscriminatorBlock
- SignalSource
- FIRFilterBlock
- HilbertTransformBlock
- Fix unit tests descriptions for DelayBlock and IIRFilterBlock.
-
(Prototype) v0.0.14 - 04/15/2016
- Fix resizing zero length vectors.
- Add get_input_types() and get_output_types() methods to Block base class.
- Simplify repeated code in some blocks with Block base class methods.
- Improve portability of several C definitions with typedefs.
- Fix C error message construction throughout the codebase.
- Fix clean up in several sinks on early exit before process() is run.
- Add install hints to error messages for library soft dependencies.
- Add CPU count, CPU model, LuaJIT version lookups to platform module and the luaradio runner platform dump.
- Fix RtlSdrSource initialization on Mac OS X platform.
- Rename RandomSource to UniformRandomSource and add support for custom range and seed.
-
(Prototype) v0.0.13 - 04/09/2016
- Add luaradio executable with help, version, platform, and verbosity options.
- Add version string and version number to radio package.
- Add version string, version number, and version info to C API.
- Add LuaJIT interpreter check to radio package init.
- Add debug module for gated printing of debug messages.
- Use debug module instead of io.stderr in several blocks.
- Remove C luaradio executable.
- Rename demos/ to examples/.
- Rename embed/demos/ to embed/examples/.
- Update C API unit test.
- Fix running certain composite block unit tests on FreeBSD.
- Refactor Python unit test generators and split them into separate files.
-
(Prototype) v0.0.12 - 04/07/2016
- Rename wbfm_rtlsdr demo to rtlsdr_wbfm_mono.
- Rename rds_rtlsdr demo to rtlsdr_rds.
- Improve plotting, variable names, and performance of rtlsdr_wbfm_mono and rtlsdr_rds demos.
- Add new protocol blocks:
- AX25FrameBlock
- POCSAGFrameBlock
- POCSAGDecodeBlock
- Refactor RDSFrameBlock and RDSDecodeBlock.
- Add new demos:
- rtlsdr_wbfm_stereo
- rtlsdr_nbfm
- rtlsdr_am_envelope
- rtlsdr_am_synchronous
- rtlsdr_ssb
- wavfile_ssb_modulator
- rtlsdr_ax25
- rtlsdr_pocsag
- Add new composite blocks:
- NBFMDemodulator
- AMEnvelopeDemodulator
- AMSynchronousDemodulator
- SSBDemodulator
- SSBModulator
- WBFMMonoDemodulator
- WBFMStereoDemodulator
- RDSReceiver
- AX25Receiver
- POCSAGReceiver
- Use composite blocks in rds-timeync and fmradio embed demos.
- Improve unit tests.
-
(Prototype) v0.0.11 - 04/01/2016
- Fix execution of composite blocks with intermediate sinks.
- Add support for aliasing a composite block input to multiple block inputs.
- Add vector_from_array() vector constructor to ObjectType.
- Move bits_to_number() helper function to BitType.tonumber() static method.
- Simplify DecimatorBlock, InterpolatorBlock, RationalResamplerBlock constructors.
- Fix scaling in InterpolatorBlock and RationalResamplerBlock.
- Fix low pass filter cutoff in TunerBlock.
- Fix output data type in FloatToComplexBlock type signature.
- Fix output data type in RawFileSource type signature.
- Fix size type bug in RawFileSource.
- Fix file repeat in WAVFileSource.
- Add RF gain and frequency correction options to RtlSdrSource.
- Add magnitude reference level option to GnuplotSpectrumSink.
- Add min/max magnitude options to GnuplotWaterfallSink.
- Disable file stream buffering in RawFileSink, JSONSink, and PrintSink.
- Add filename and file descriptor support to PrintSink.
- Add invert option to DifferentialDecoderBlock.
- Normalize passband gain to 1.0 in FIR window design functions.
- Add support for specifying a normalized nyquist frequency to filter blocks.
- Add support for complex taps to FIRFilterBlock.
- Add complex bandpass and bandstop FIR window design functions.
- Add new signal blocks:
- ComplexBandpassFilterBlock
- ComplexBandstopFilterBlock
- ComplexConjugateBlock
- ZeroCrossingClockRecoveryBlock
- Add new sink blocks:
- PortAudioSink
- Improve unit tests.
- Add composite block unit tests.
- Improve namespacing with package inits for blocks and composites.
- Simplify block imports in composite blocks.
-
(Prototype) v0.0.10 - 03/10/2016
- Add abs_squared() method to ComplexFloat32Type.
- Add cosine, sine, square, triangle, sawtooth, and constant real signals to SignalSource.
- Add file repeat option to IQFileSource, RealFileSource, WAVFileSource, RawFileSource.
- Add support for multiple channels to PulseAudioSink.
- Add support for other data types to NullSource and RandomSource.
- Add support for generating periodic windows to window utilities.
- Add FFTW3 library and feature flag to platform module.
- Add DFT and PSD spectrum utilities with Lua, VOLK, and FFTW3 implementations.
- Add new signal blocks:
- SubtractBlock
- ComplexToImagBlock
- ComplexToFloatBlock
- FloatToComplexBlock
- ComplexMagnitudeBlock
- ComplexPhaseBlock
- AbsoluteValueBlock
- MultiplyConstantBlock
- UpsamplerBlock
- ThrottleBlock
- Add new composite blocks:
- InterpolatorBlock
- RationalResamplerBlock
- Add gnuplot-based plotting sinks:
- GnuplotPlotSink
- GnuplotXYPlotSink
- GnuplotSpectrumSink
- GnuplotWaterfallSink
- Fix numerical stability problem in FrequencyTranslatorBlock and SignalSource.
- Improve unit tests.
- Add plots to RDS and WBFM demos.
-
(Prototype) v0.0.9 - 03/02/2016
- Simplify type imports in blocks.
- Fix single process execution to call block cleanup() after finish.
- Fix block initialization order.
- Extend file source and sink blocks to:
- IQFileSource / IQFileSink
- RealFileSource / RealFileSink
- RawFileSource / RawFileSink
- WAVFileSource / WAVFileSink
- Improve unit tests.
- Reorganize package init for readability.
-
(Prototype) v0.0.8 - 02/28/2016
- Add libluaradio library with a C API to the LuaRadio runtime.
- Add fmradio and rds-timesync demos for libluaradio.
- Add standalone luaradio interpreter.
-
(Prototype) v0.0.7 - 02/26/2016
- Add platform module with platform-specific constants and allocator.
- Handle missing library gracefully in RtlSdrSource and PulseAudioSink.
- Add portable implementation of Pipe for non-Linux platforms.
- Add portable Lua implementations of signal processing blocks for Volk-less platforms.
- Fix other minor portability issues.
- This release adds support for FreeBSD and Mac OS X platforms.
-
(Prototype) v0.0.6 - 02/25/2016
- Rename some blocks for consistency.
- Return nil on EOF from source blocks instead of exiting.
- Add File[IQ]DescriptorSource blocks and derive File[IQ]Source blocks from them.
- Fix s32 format in File[IQ]DescriptorSource.
- Fix bnot() operator in BitType.
- Fix overflow/underflow handling in Integer32Type.
- Use POSIX pipes in single process execution.
- Add more argument and behavior assertions to Block and CompositeBlock.
- Add unit tests.
-
(Prototype) v0.0.5 - 02/12/2016
- Change CompositeBlock run() to use multiprocesses by default.
- Use CStructType factory to build all basic types.
- Add tostring() support to Block.
- Handle pipe EOF in Block run() to stop processing and clean up.
- Update benchmarks.
- Rename SourceBlock to Source and SinkBlock to Sink.
-
(Prototype) v0.0.4 - 02/12/2016
- Add support for functions as candidate input types in block type signatures.
- Add support for variable length type serialization with ProcessPipe.
- Add ObjectType factory custom Lua object types (serialized with MessagePack).
- Add JsonSinkBlock and update the RDS demo to use it.
-
(Prototype) v0.0.3 - 02/11/2016
- Add CStructType factory for custom cstruct types.
- Add Vector class and resize(), append() methods.
- Add necessary blocks to implement RDS demodulator / decoder demo.
- Add TunerBlock and DecimatorBlock composite blocks.
- Update demos to use composite blocks.
-
(Prototype) v0.0.2 - 02/08/2016
- Add hierarchical block support to CompositeBlock.
- Add start(), stop(), wait(), run() controls to CompositeBlock.
- Add support for linear chain shortcut to CompositeBlock connect() (e.g. connect(b1, b2, b3, ...)).
-
(Prototype) v0.0.1 - 02/06/2016
- Initial prototype with wbfm demo.