Skip to content

v1.1.0

Choose a tag to compare

@harrypm harrypm released this 09 Aug 00:44

FLAC multithreaded encode + vendored hsdaoh + HSDAOH/MISRC + ChB connect fix (Linux/macOS)

Important

This release replaces the initial v1.1.0 publish (2026-07-04 15:14 UTC), which contained a regression that broke HSDAOH/MISRC connect and CXADC channel B on Linux/macOS. The tag was force-moved to the fixed commit and the release rebuilt. If you downloaded v1.1.0 before 2026-07-04 17:45 UTC, please re-download ? the earlier assets fail to connect to hardware on Linux/macOS.

image

Highlights

  • Minor GUI tweaks for both production and dev testing sanity.

  • Fixed: HSDAOH/MISRC connect + CXADC ChB on Linux/macOS. The initial v1.1.0 (PR #12, commit 2eaec01) added HSDAOH_UPSTREAM=1 as a global define, but that code path in gui_capture.c is an incomplete WIP reference implementation: it hard-disables MISRC simple-capture mode, has no stream_id==1 (ChB) handler (so channel B was silently dropped), and skips gui_capture_configure_handler (frame parser never initialized). On Linux/macOS this meant HSDAOH devices captured 0 frames with 131 errors and CXADC ChB was broken. The define is now Windows-only ? Windows keeps PR #12's connect fix verbatim; Linux/macOS restore the complete v1.0.9 MISRC raw-callback + frame-parser path (both channels). Hardware-verified against a CI-built AppImage bundling the byte-identical vendored libhsdaoh as v1.0.9: HSDAOH 24933 frames / 0 errors, CXADC 4483 frames / 0 errors. (96f6fb7)

  • FLAC multithreaded encode is now enforced. Level-8 FLAC capture was previously single-threaded per channel ? at 40 MSPS (80 MB/s/ch) it fell behind real-time and forced the record spill file to open even on fast SSDs, while the remaining cores sat idle. The build now hard-requires libFLAC >= 1.5.0 (which adds FLAC__stream_encoder_set_num_threads, libFLAC API v14) and auto-resolves the per-channel thread count to clamp(online_cores/2, 4, 8) instead of libFLAC's default of 1. On an 18-core machine this is 8 threads/ch (was 1). A stale libFLAC 1.4.x can no longer silently produce a single-threaded binary ? meson fails configure instead. (f736b5e)

  • Local builds now mirror CI's vendored hsdaoh. A bare local meson setup && ninja previously linked the stale system libhsdaoh.so.0.1.0 (pre-v1.0.9, missing the HSDAOH-RPI2350 connect fixes), causing "attempt to claim already-claimed interface 1" with no warning. meson.build now prefers .deps/install/lib/pkgconfig/hsdaoh.pc when present and links with an rpath to that libdir; CI guard tests (static + runtime ldd) added to prevent the regression recurring silently. (997cf05)

  • Resolved HSDOAH no-go (PR #12 by @machcnz) ? Windows HSDAOH connect fix preserved (Windows-only define + -lavrt/-lksuser GUI linker flags).

Build / CI

  • Linux AppImage jobs now fetch a prebuilt static libFLAC 1.5.0 from the harrypm/MISRC-ci-cache release (built on jammy/glibc-2.35, ABI-compatible with the ubuntu-22.04 runners) instead of failing on Ubuntu 22.04's stuck-at-1.3.3 libflac-dev. arm64 falls back to building from the cached upstream source tarball until its arch-specific prebuilt is uploaded. (d4cede5)

  • Fixed vendored FLAC visibility to hsdaoh's CMake: export PKG_CONFIG_PATH and CFLAGS/CXXFLAGS (-I .deps/install/include) before the hsdaoh configure so pkg_check_modules(flac) and hsdaoh_file's #include "FLAC/metadata.h" resolve against the vendored prefix, not the removed system libflac-dev. (78795fe, c12e41d)

  • Added a one-off Rebuild libFLAC CI cache workflow (flac-cache.yml) to build and upload the prebuilt libFLAC for a chosen arch to the cache release.

  • Added four HARD CI MIRROR RULES to AGENTS.MD after discovering a local-build validity gap: scripts/build-appimage-local.sh --native on a host with /usr/local/lib/libhsdaoh.so bundled a different libhsdaoh than the CI release AppImage, because the vendored-hsdaoh rpath was shadowed by the system libFLAC's /usr/local/lib rpath. Local builds that bundle system libs are not representative of the published artifact; tests against them are invalid. (96f6fb7)

  • Added hard VCS scope rules (fork-first, origin read-only, confirm push targets) to AGENTS.MD. (7ed93e0)

  • Removed obsolete CMakeLists-v1.txt. (dc7cb2a)

Downloads

Platform x86_64 (Intel / AMD) arm64 (Apple Silicon / aarch64)
Windows 10/11 windows_MISRC_v1.1.0_x86.zip windows_MISRC_v1.1.0_arm64.zip
macOS 11+ macos_MISRC_v1.1.0_universal.dmg macos_MISRC_v1.1.0_universal.dmg
Linux (Ubuntu 22.04+) linux_MISRC_v1.1.0_x86.zip linux_MISRC_v1.1.0_arm64.zip

Note

The arm64 Windows build is untested and considered experimental.

What's Changed

Full Changelog: harrypm/MISRC@v1.0.9...v1.1.0


Migration note: This release was copied from harrypm/MISRC. The attached binaries above are the original v1.1.0 artifacts (unchanged). This repo (MISRC-GUI) uses fresh clean history, so the v1.1.0 tag points at the clean codebase import commit rather than the historical source. For the historical v1.1.0 source, see the v1.1.0 tag on harrypm/MISRC.