What's Changed
- Network streaming: Send and receive samples with UDP, TCP, ZeroMQ, and WebSocket blocks.
- Recording formats: Read and write SigMF and WAV recordings, with automatic format detection in File Reader.
- Independent branches: Unrelated source branches keep running while stalled branches wait, with frame-aligned joins.
- Sample conversion: Cast supports integer and floating-point outputs, centers unsigned samples, and clips integer outputs.
- Complex signals: Split and merge CF32 samples as real/imaginary or magnitude/phase components.
- Python yielding: Use
YIELD(seconds)to wait without blocking unrelated branches or the display.
Pull-Requests
- fix: run source branches independently with frame-aligned joins by @luigifcruz in #408
- feat: add UDP receiver and transmitter blocks by @luigifcruz in #410
- feat: add WebSocket transmitter and fix scheduler present stalls by @luigifcruz in #411
- feat: add TCP receiver and transmitter blocks by @luigifcruz in #412
- feat: add ZeroMQ receiver and transmitter blocks by @luigifcruz in #413
- feat: add Complex Split and Complex Merge blocks by @luigifcruz in #414
- feat: cast between any real and complex sample types by @luigifcruz in #415
- feat: align IO block readouts and flag the ones that need attention by @luigifcruz in #416
- feat: support sub-millisecond Throttle intervals by @luigifcruz in #417
- perf: optimize circular buffers and UDP transmission by @luigifcruz in #418
- feat: add stream input, SigMF support, and non-blocking pacing by @luigifcruz in #420
- feat: let Python blocks yield without blocking the scheduler by @luigifcruz in #421
- feat: add WAV, auto format, and sample rate pacing by @luigifcruz in #422
Full Changelog: v1.17.0...v1.18.0