Repository navigation
v0.3.0
Immutable
release. Only release title and notes can be modified.
Breaking
- CLI and desktop packages require macOS 15 or later on both Apple silicon and Intel. CLI users on older macOS versions must upgrade the OS to use these packages.
- The CLI executable is
auditorylab(auditorylab.exeon Windows), installed from packageauditory-cli; replaceauditory-labcommand invocations and install fromcrates/auditory-cli. Release CLI archives/folders useauditorylab-VERSION-PLATFORM; desktop archives useauditorylab-gui-VERSION-PLATFORM. No old executable alias is provided. - CLI commands
describeandrecipereplaceaboutandshow.describe,inspect,playandexportaccept exactly one positional built-in ID,--file PATH, or--stdin;recipeaccepts only a built-in ID. Punctuation, existing paths and piped input no longer select sources implicitly. Update file/stdin invocations and consumers of changed human reports. No command aliases or compatibility modes are provided; schema 2's[about]table is unchanged. - Recipe path loading accepts only regular files and symlinks to regular files; use CLI
--stdinorauditory_app::load_readerfor intentional streams. FIFOs, devices and directories reject before reading. This does not impose deadlines on stalled regular-file filesystems. - Rust callers must replace
auditory_wav::export(session, path, cancel)withauditory_wav::encode(session, writer, cancel)or useauditory-appexport preparation/execution. The encoder no longer owns file creation, syncing, publication or cleanup, andExportError::DestinationExistsandExportError::IncompleteFileLeftare removed. Update exhaustive matches. - Rust
Renderer::renderreturnsRenderedSpaninstead of an active-frame count; use.frames()for the count and.start()/.end()for source coverage.ComponentErrorvariants with field identifiers useparameter: Parameterinstead of free-formfieldstrings. Direct device callers must pass the observation argument toOutput::play(session, cancel, observation)(Nonefor ordinary playback).auditory_device::ListeningAdviceis removed; shared application descriptions/playback views supply typedNoticevalues. Update callers and exhaustive matches.
Added
- A native
auditorylab-guidesktop frontend with a Compact session layout, selectable research/diagnostic text, native/manual recipe paths, validation, WAV export and explicit Play/Stop. Close and ordinary macOS Quit wait for the actual operation and worker. Packages provide an ad hoc signed, unnotarized macOS.app, a console-free Windows application and an optional Linux desktop launcher. Slint enables native accessibility and GPU-capable drawing with software recovery; enabled accessibility is not screen-reader qualification. GPU drawing does not offload audio, use every installed GPU or promise recovery from every later graphics failure. See the desktop guide for platform and source-build prerequisites, including Windows import-library preparation and Linux system FreeType/Fontconfig requirements, andSLINT_BACKEND=winit-softwarerecovery. - Optional Generated signal observation and separate-ear waveform detail/two-second recent Peak range views, with actual source coverage, gaps, freshness, bounded live/frozen displays and reduced-motion presentation. Charts show mixed/faded generated samples before output conversion, not microphone input, sound pressure or an audible playhead. Freeze display leaves audio running; observed samples cannot establish playback completion.
auditory-appsupplies both frontends' input/catalog workflows, immutable declared descriptions and resolved facts, typed diagnostics, bound preparation views, listening notices and contextual completion reports. Synthesis/validation and signal analysis remain shared; WAV encoding accepts a caller-owned writer and application workflows own publication and cancellation.- Shared product/build identity and a narrow standalone
--build-infoartifact-verification response on both products. Local and candidate archives carry explicit local/development markers; candidate identities retain the full source revision. Read-only development qualification uses the release workflow's native checks and isolated final builds without publishing or inventing a next version.
Changed
- Running the CLI with no arguments shows help successfully. Commands share concise help/error rules and accept native equals-form paths.
listshows human durations and readable Sound records;describeadds declared routes/advice; inspection retains exact frames/rates, round-trip technical peak bounds and declared/resolved duration and fade. Preparation/completion reports retain their bound context, with explicit stream-rate labels and stop cues. - Three van Eeckhoutte AM titles state the configured 39.0625 Hz modulation instead of nominal 40 Hz. The Lahijanian adaptation retains the source's approximately -40 dB statement with its unspecified reference and participant comfort adjustment. Preset IDs, numeric parameters and generated samples are unchanged.
- Recipe saving and WAV export stage complete output in the destination folder, sync it and publish without replacement. These operations create no final file before commit and never replace an existing destination; cancellation and failure clean only the owned stage, and cleanup failures retain both causes. Successful publication remains successful if cancellation or reporting fails afterward. Abnormal termination can leave a stage; no-overwrite publication is not universally atomic and file sync does not guarantee directory-entry persistence after power loss.
Internal
- Sample callback terminal publication uses a fixed atomic outcome; asynchronous backend diagnostics are stored separately, and synchronous setup errors retain their original cause without waiting for a diagnostic writer. This covers application sample processing, not every native backend callback. Optional preallocated SPSC observation drops visual data without blocking audio; shared analysis/history and polling have explicit frame/work bounds, with caller-owned presentation capacity checked against the 8 MiB product-owned monitoring-buffer limit. This is not a process-RSS or native-graphics memory bound.
- Required architecture tests check exhaustive workspace roles, dependency directions, anchored source/resource roots and frontend syntax boundaries. Qualification checks nonempty positive/rejection-control execution and a freestanding core build with a std-dependency rejection control. Product/platform/archive/source/kind assignments and product-bound Windows native evidence are verified before release assets are combined; package checks inspect the extracted copy. Windows CLI tests exercise native Ctrl-C/Ctrl-Break during silent export and pre-input waits, plus forced exit on a second interrupt; these are Cargo test binaries rather than packaged-interruption or acoustic qualification.
- Portable
libmarithmetic is forced across GUI dependency feature unification. Independent numerical, conversion, long-stream and callback characterization checks retain their own evidence limits. Third-party notices distinguish runtime dependencies, retained host code-generation material, generated resources and source-bound patches.