Repository navigation
Releases: 3zcurdia/ampwire
Releases · 3zcurdia/ampwire
Release list
0.1.0 - Initial public release
Release Notes
Added
- Hi-fi playback: no transcoding, no resampling, no normalization. The output
stream opens at the track's own sample rate and channel count; a device that
cannot play that format is reported, not converted. Lossless sources show a
bit-perfectmarker whenever the DSP stage is fully bypassed. - Formats: FLAC, WAV/PCM, M4A (AAC or ALAC) and MP3, decoded with Symphonia and
played through cpal — one local decode path for bytes from disk, Jellyfin or
SMB. - Gapless playback between tracks that share a sample rate and channel count:
the next decoder is pre-opened and swapped into the running stream at EOF —
same ring, same DSP/EQ state, no silence, no click, no device reopen. - 10-band equalizer (peaking biquads + preamp, ±12 dB) with an on-screen curve,
live presets picker (p) and[eq]persistence; works in every source mode,
including while streaming. - Volume, balance and channel swap with click-free smoothing in the audio
callback, persisted in[audio]and restored on startup. - Live sync: the LCD clock, seek bar and spectrum follow what is actually being
heard — the clock counts frames the audio callback delivered,←/→seek by
reloading the stream at that offset, and the bars are a 2048-point Hann FFT
in 32 log-spaced bands (40 Hz → 16 kHz). - Play order: ordered (default) or full-permutation shuffle (
s), repeat
(r); editing the playlist mid-shuffle keeps the shuffle state. - Jellyfin streaming:
jprogressively loads the whole server library in the
background while the playlist stays usable, withcache(rolling 3-ahead /
3-behind window),stream(seekable HTTPRange) andstream_pure(EQ
bypassed) modes; always the original file (static=true), never transcoded,
and the API key never appears in URLs, errors or logs. - Native SMB2/3 shares:
smb://server/share/pathis accepted anywhere a path
is — a pure-Rust client, no kernel mount, nolibsmbclient. Directory URLs
scan recursively (tags read over the wire, progress every 50 files) into
cacheorstreammode; credentials come from[smb]only, never the URL. - Linux MPRIS2 service (
org.mpris.MediaPlayer2.ampwire): media keys, Omarchy's
media widget, lock screen andplayerctl. --status [--json]and--ctl <command>over an owner-only Unix socket;
--status --jsonreports the format and bit-perfect state for bar widgets.- Single-instance guard: a second launch forwards its paths to the running
session and exits instead of opening a second sound card. --version/--help(and-V/-h) CLI flags,--demomock player and
--dump WxHframe renderer (with golden-frame tests).- Failures never stop the run: a bad file shows
skipped <name>: <reason>and
playback moves on; if every track fails, the reason names the output device. - Idle-CPU draw loop: 30 fps while playing, 2 fps paused, 1 fps stopped or under
an overlay, 5 fps during a background load — while still draining remote
commands every 100 ms. - Release distribution: cargo-dist configuration, generated release workflow,
GitHub Pages site and shell installer (macOS Apple Silicon/Intel, Linux
x86_64/arm64). - A loaded batch sorts by album → disc → track number: tracks group by their
album tag (<album artist> - <album>, folder when the tag is missing), then
disc (missing = 1), then track number. Tracks with no track number keep the
artist - title/ path order exactly; Jellyfin pages now arrive
server-sorted byAlbumArtist, Album, ParentIndexNumber, IndexNumber, SortName.
Install ampwire 0.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/3zcurdia/ampwire/releases/download/v0.1.0/ampwire-installer.sh | shDownload ampwire 0.1.0
| File | Platform | Checksum |
|---|---|---|
| ampwire-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ampwire-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ampwire-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ampwire-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo 3zcurdia/ampwireYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> --repo 3zcurdia/ampwire