Skip to content

Releases

Tuitify v0.7.0 — Deezer discovery and continuous listening

Choose a tag to compare

@braces157 braces157 released this 20 Oct 12:23

Tuitify v0.7.0

Discover songs through Deezer's public catalog and keep listening as related
tracks refill the queue. Deezer supplies song, album, artist and radio metadata;
Volta, Spotify or YouTube supplies the full audio recording.

  • Search, album browsing, artist tracks, Track Radio and Smart Shuffle use Deezer
    metadata while queue entries retain their catalog identities.
  • Automatic queue continuation prepares related tracks near the end of the
    queue. Pausing, stopping, repeat settings and sleep timers take precedence.
  • Volta prepares the next recording and a small decoded buffer before transition.
    If unavailable, matching YouTube audio is tried; combined Spotify + Volta can
    then use an existing Spotify Premium streaming connection.
  • Native output negotiation retains available source resolution and uses a
    bandlimited converter when the device requires a different sample rate.
  • Wide windows use a sidebar; tall windows keep Now Playing and the spectrum
    beside the queue. Queue counts, filtering and mouse controls follow the layout.
  • Playback badges identify the audio provider alongside reported stream quality.
    Holding Space toggles once, and Windows media controls handle transport commands.

Plain tuitify prefers connected Volta with FFmpeg, then Spotify Premium, then
free YouTube Music. Explicit --source youtube selects YouTube even when Volta
is connected. Volta requests the highest available lossless stream, but the
returned recording may be lossy. The source-quality badge does not establish
bit-perfect Windows output. Restored queues start paused.

See setup and controls,
Volta setup, and
validation.

Download tuitify.exe or Tuitify-0.7.0-windows-x86_64.zip. SHA-256 sidecars and
Tuitify-0.7.0-windows-x86_64.manifest.json identify the published assets.

Tuitify v0.6.0 — Spotify libraries with Volta lossless

Choose a tag to compare

@braces157 braces157 released this 13 Oct 21:44

Tuitify v0.6.0

Use your Spotify library and discovery with matched Volta lossless audio, or open
the standalone Volta catalog. Automatic launch prefers connected Volta with
FFmpeg, then Spotify Premium, then free YouTube Music.

Create a personal Volta application and run tuitify volta login. The secret is
entered without echo and stored in Windows Credential Manager. Each user supplies
their own credentials; the release contains no shared application secret.
See Volta setup
for permissions and commands.

Spotify-to-Volta resolution tries the ISRC recording identifier first, then strict
title, artist, version and duration matching. Missing or ambiguous matches report
an error and preserve the Spotify queue. Standalone Volta keeps separate state.
Choose tuitify --source spotify or tuitify --source youtube explicitly when
you want those audio providers.

Playback and Discord presence show the available source codec, resolution and
bitrate. Volta requests its highest available lossless stream; the Windows shared
audio output can still resample it. This is not a bit-perfect output claim.

Repository history, staged source and extracted release contents are checked with
Gitleaks, including Volta-specific secret detection. Local agent notes, work logs,
credential files and development captures are excluded from publication.

See validation
for automated coverage and live-test limits.

Download tuitify.exe or Tuitify-0.6.0-windows-x86_64.zip. SHA-256 sidecars and
Tuitify-0.6.0-windows-x86_64.manifest.json identify the published assets.

Tuitify v0.5.0 — automatic Spotify and YouTube Music

Choose a tag to compare

@braces157 braces157 released this 06 Oct 19:28

Tuitify v0.5.0

Launch tuitify for Spotify Premium or free YouTube Music. The player selects
the source automatically and keeps account connections inside F6 Tools.

Changes

  • Use Spotify for saved, confirmed Premium accounts and YouTube Music for free
    accounts or users without a Spotify login. Unavailable account checks open free
    music while showing the cause. Checks have a three-second deadline and an
    account-scoped ten-minute cache; confirmed Premium expiry also hands off.
  • Connect Spotify or a Google music library, or update playback tools through
    F6. Account setup saves and closes the session, then returns to the player.
    Existing provider queues remain separate and restore paused.
  • Search public music, browse albums and artists, open playlist links, build
    radio queues, and optionally browse a connected Google library. Spotify tracks
    and playlists are not translated into YouTube tracks.
  • Play accessible public YouTube videos using yt-dlp/Deno and FFmpeg, with queue
    controls, lyrics, PCM visualization and Windows media controls. Prepare the
    next stream and keep a bounded, expiring stream cache; cancel obsolete work.
  • Prepare missing tools on launch and install the pinned music adapter in an
    isolated Python environment. Google library credentials are encrypted for the
    Windows user. Public catalog requests do not send optional library credentials.
  • Separate launch policy, session lifecycle, provider construction and the TUI
    runtime. Retain at most 16 parsed collections within a 32 MiB cache budget,
    preserving remote offsets. Release the metadata helper after 30 idle seconds
    without discarding cached pages or stopping audio. Publish desktop metadata
    on changes and run Tokio with two workers.
  • Update the website, README, architecture, performance evidence, release
    downloads and version metadata for the same release.

Measurements and verification

Local Windows ConPTY measurements with the saved Glass appearance showed
settled idle working set falling from 109.7 to 48.2 MiB after a 35-second wait,
about 56% lower. Cold search took 1.12 seconds, warm search 359 ms, and a cached
search after helper shutdown 154 ms. These are small local samples from the
pre-version-bump refactor build; no reliable speed improvement is established.
See BENCHMARKS.md
for methodology and VALIDATION.md
for release checks.

The saved Spotify grant was expired/revoked during live checks. Public music
search and connected-library requests succeeded, but YouTube audio attempts
reached HTTP 429/sign-in/connection-block errors even after tool updates. Real
Premium audio, successful YouTube audio, next-track latency and sustained
playback memory were not verified. Google library sign-in does not unlock
restricted videos. Private, paid, age-restricted and live videos are unsupported.

Install and upgrade

Download tuitify.exe or Tuitify-0.5.0-windows-x86_64.zip. Both have SHA-256
sidecars; Tuitify-0.5.0-windows-x86_64.manifest.json records the asset identities.
The ZIP includes documentation, release notes and scripts/install.ps1.

Run the installer, open a new terminal, then run tuitify. Reconnect an expired
Spotify login through F6 > Connect Spotify account. Quit and reopen an existing
session after upgrading; an already running process keeps its previous code.

Windows 10/11 x64 and working Windows audio are required for playback. Spotify
audio requires Premium; public YouTube Music does not require Spotify Premium.
Music catalog setup requires Python 3.10 or newer and a network connection.
The native tuitify demo needs no account or audio device. Source builds require
Rust 1.88 or newer, MSVC C++ build tools and the Windows SDK.

Tuitify v0.4.0

Choose a tag to compare

@braces157 braces157 released this 02 Oct 05:11

Tuitify v0.4.0

This release adds everyday queue controls, safer saved-state recovery, and
diagnostics that explain catalog restrictions while preserving useful results.

Changes

  • Filter the Queue by title, artist, or album while retaining original queue
    positions, duplicate occurrences, shuffle order, and undo behavior.
  • Open F6 Listening Tools for 15/30/45/60-minute sleep timers, stop after the
    current track, and undoable cleanup of played, duplicate, or unavailable tracks.
  • Use Ctrl+Enter for Play Next, Up/Down for recent-search recall, and Ctrl+R to
    recover a cleared queue filter.
  • Distinguish expired authentication, restricted access, missing items, temporary
    rate limits, exhausted quota, outages, and invalid provider responses. Catalog
    retries retain service waits and avoid repeated requests to denied resources.
  • Retain partial saved-library results and explain skipped sources with F4.
    Artist lists identify Top Tracks, verified Artist Search, or fictional Demo
    Tracks. F5 rechecks access without changing the provenance of retained rows.
  • Keep stable Web API identity, legacy IDs, and streaming usernames separate.
    Reject mismatched or ambiguous account replacements while preserving local data.
  • Create credential-free saved-state backups and preview whole-state restores.
    Inspect, back up, reset, or restore individual state files with confirmation
    tied to the preview. Preserve damaged and unsupported files and recover
    interrupted restore transactions under the instance lock.
  • Run offline doctor checks or preview a redacted JSON support report.
    F7 displays classified session errors and the report preview. Exports create
    new files outside the live data directory and never upload automatically.
  • Use tuitify version --json for embedded source/compiler identity and the
    observed executable hash. ZIP payload and external asset manifests record
    SHA-256 hashes; packaging rejects stale source builds and missing local links.
  • Declare Rust 1.88 as the minimum and check it separately from stable formatting,
    tests, and strict Clippy in Windows x64 CI.

Verification and scope

Automated checks and release evidence are recorded in
VALIDATION.md.
Live Spotify playback, account migration, and physical audio-device acceptance
were not repeated for this release. Offline and mock-provider tests do not prove
that a particular account has access to a restricted Spotify endpoint.

This release covers completed work from the first feature batch. The wider
roadmap, including installer rollback hardening, remains in progress.

Install and upgrade

Download tuitify.exe or Tuitify-0.4.0-windows-x86_64.zip. Both have SHA-256
sidecars; Tuitify-0.4.0-windows-x86_64.manifest.json describes the release assets.
The ZIP includes documentation, release notes, and scripts/install.ps1.
Run the installer to place the executable on your user PATH.

Quit and reopen Tuitify after upgrading. A process already playing music keeps
its old code until restarted. Use a fresh search or Radio session to exercise
new discovery behavior; restoring a queue retains its existing tracks.

Windows 10/11 x64 and Spotify Premium are required for playback. The native
tuitify demo requires no Spotify account or audio device. Source builds require
Rust 1.88 or newer, MSVC C++ build tools, and the Windows SDK.

Tuitify v0.3.1

Choose a tag to compare

@braces157 braces157 released this 29 Sep 20:54

Tuitify v0.3.1

This update repairs Vietnamese Radio matching and duet lyrics, completes mouse
controls in Statistics and Mix Builder, and reduces work when saving large queues
or refreshing listening statistics.

Changes

  • Vietnamese Radio: match Latin accent aliases across catalogs only after
    confirming the seed recording. Exact-name preference and artist-ID checks remain.
  • Duet lyrics: retry a missing full-credit lookup with the verified primary
    artist. Keep Unicode accents, normalize equivalent Unicode sequences, and check
    the returned title, artist, and duration before displaying the fallback.
  • Lyrics outages: retry HTTP 502–504 once with a short wait, honor longer
    cooldowns, and show concise service errors. F5 retries in the lyrics view.
  • Mouse controls: select, scroll, search, and sort Statistics; use Mix Builder
    preferences, pins, details, and recipe actions. Wrapped controls and long names
    retain correct hit regions. Enter replaces a queue; Shift+A appends.
  • Saved data: stop startup on invalid statistics or recipes, preserving the
    original files. Buffer atomic JSON writes and avoid duplicate snapshot clones.
  • Responsiveness: normalize statistics titles once, sort once, update metadata
    per track, and correct Glass idle/debounce refresh deadlines.
  • Audio visualization: map frequency bands using the actual output-device rate.
  • Artist browsing: validate requested artist IDs and limit the restricted
    endpoint fallback to HTTP 403.

Verification

Windows x64, Rust 1.95.0: 363 automated Rust tests passed, with 16 environment or
benchmark opt-ins excluded from the regular suite. Formatting and strict Clippy
passed. Website checks and packaging are recorded in
VALIDATION.md.

Live catalog checks returned 14 suggestions for Mưa — Minh Vương M4U, Thùy Chi
and 15 for Castle on the Hill — Ed Sheeran. Live LRCLIB checks returned 59 and
49 synced lyric lines respectively. These checks used live services without audio
or saved-state writes; provider coverage can change and queue sizes are not guaranteed.
New live-audio or output-device switching acceptance was not performed for this release.

Install and upgrade

Download tuitify.exe or Tuitify-0.3.1-windows-x86_64.zip; SHA-256 files accompany
both downloads. The ZIP includes guides, release notes, and scripts/install.ps1.
Run the installer to put the player on your user PATH.

Quit and reopen Tuitify after upgrading. Start a fresh search or press R to
generate new Radio suggestions; restoring an old queue retains its existing tracks.
Open lyrics with l and use F5 to retry. Settings and saved-state formats are unchanged.

Windows 10/11 x64 and Spotify Premium are required for playback. The native demo
(tuitify demo) requires no Spotify account or audio device. Related-artist
suggestions are supplied by Deezer and verified in Spotify; they do not reproduce
Spotify's private personalization or guarantee a song's language, mood, or energy.

Tuitify v0.3.0

Choose a tag to compare

@braces157 braces157 released this 15 Sep 04:58

Tuitify v0.3.0

Tuitify 0.3.0 introduces Glass, a wallpaper-backed terminal theme designed for
Windows Terminal while retaining a portable fallback for other modern terminals.

Highlights

  • Adds a sixth theme, Glass, with a full-window wallpaper treatment and readable
    opaque selection and shortcut surfaces.
  • Adds tuitify background [IMAGE] --dim <0-85> for the current Windows wallpaper
    or a custom JPEG, PNG, WebP, or BMP image.
  • Adds tuitify --glass for the portable Unicode quadrant renderer and
    tuitify --glass-window for a dedicated native-resolution Windows Terminal tab.
  • Preserves crisp lyrics, multilingual queue metadata, playback controls, and the
    real-time FFT visualizer over detailed artwork.
  • Ensures the dedicated Glass tab relaunches the exact Tuitify build that created it,
    even when another installation exists on PATH.

Visual review

The release was reviewed in Windows Terminal across the queue, lyrics, and retro
visualizer views at 2844 × 1701. The supplied captures confirm continuous wallpaper
coverage, legible high-contrast table headings and durations, opaque selected rows,
readable playback/status controls, and correct Chinese, Japanese, and Korean text.

These screenshots were captured from the final pre-release UI build, before the
displayed version label was advanced from v0.2.9 to v0.3.0. The published binaries
and package metadata identify the release as v0.3.0.

Lyrics over Glass

Tuitify Glass lyrics view

Real-time spectrum visualizer

Tuitify Glass retro visualizer

Requirements and limitations

  • Windows 10 or 11, x86-64.
  • Spotify Premium is required for live playback; tuitify demo requires no Spotify
    account, network connection, or audio device.
  • The executable is unsigned. Windows may show a SmartScreen warning.
  • The native Glass profile is specific to Windows Terminal. Other terminals use the
    Unicode cell renderer when Glass is selected.

Checksums

SHA-256 files are attached for both the ZIP package and standalone executable.

Tuitify 0.2.9

Choose a tag to compare

@braces157 braces157 released this 14 Sep 22:55

Tuitify 0.2.9

Tuitify 0.2.9 upgrades Track Radio and Smart Shuffle with related-artist discovery,
stronger queue diversity, safer retry behavior, and improved Windows audio device
handling.

Highlights

  • Related-artist Radio: Track Radio uses Deezer's public related-artist metadata
    to discover artists, then searches and verifies the actual tracks in Spotify.
    Refills stay anchored to the original seed instead of drifting into suggestions.
  • More varied batches: Radio adds up to 15 tracks per batch with at most three
    per primary artist, rejects duplicate recordings and unavailable tracks, and
    keeps unrelated Spotify search noise out of the queue.
  • Smarter Smart Shuffle: Smart Shuffle prefers new artists around each insertion
    slot and rebalances only the unplayed portion of the queue. Played history and the
    current track remain fixed.
  • Bounded failure handling: Similarity failures and rate limits are cached and
    surfaced instead of triggering request storms or filling the queue from a single
    artist. Radio errors stay visible until retry or a new Radio session.
  • Windows output-device refresh: Playback can follow a changed default Windows
    output endpoint and rebuild its resampler for the new sample rate.
  • PATH installer hardening: The installer keeps the canonical Tuitify directory
    first on the user PATH and detects another tuitify executable shadowing it.
  • Provider/privacy documentation: The README and validation docs now describe
    what is sent to Deezer and how recommendation discovery differs from Spotify's
    private personalization.

Install

Download and extract Tuitify-0.2.9-windows-x86_64.zip, then run:

.\scripts\install.ps1
tuitify

Or download tuitify.exe directly. Spotify playback requires a Premium account;
tuitify demo requires no Spotify credentials, network, Discord, or audio device.

Verification

  • cargo fmt --check passed.
  • cargo test --locked: 301 passed, 0 failed, 11 ignored.
  • cargo clippy --all-targets --locked -- -D warnings passed with zero warnings.
  • cargo build --release --locked produced the optimized 0.2.9 Windows executable.
  • npm test: 11 Microsoft Edge Playwright tests passed.

Live recommendation and audio acceptance details from the development cycle are
documented in docs/smart-shuffle-validation.md.

Tuitify 0.2.8

Choose a tag to compare

@braces157 braces157 released this 13 Sep 04:41

Tuitify 0.2.8

Tuitify 0.2.8 introduces native album tracklist browsing, artist top tracks
discovery, dynamic breadcrumb navigation with history back-tracking, track context
menu actions, instant search resolution for Spotify web links and URIs, and
offline native demo catalog datasets.

Highlights

  • Native Album Browsing: Press a on any selected track or right-click to
    choose "View Album" to view the complete ordered tracklist with track numbers,
    durations, and playability indicators.
  • Artist Top Tracks Discovery: Press Shift+A (or A) or choose "View Artist"
    to inspect an artist's top popular tracks and explore their catalog.
  • Breadcrumb Navigation & History Stack: Multi-level browsing preserves your
    view stack and displays dynamic breadcrumbs (e.g. Search › OK Computer › Thom Yorke).
    Press Esc to navigate backward, seamlessly restoring your prior view, selection
    cursor, and scroll offset without re-fetching network data.
  • Instant Search URL & URI Resolution: Paste or type Spotify Album and Artist
    web links (open.spotify.com/album/..., localized /intl-.../ links) or URIs
    (spotify:album:...) directly into Search to instantly jump to that view.
  • Context Menu Expansion: Right-click track context menus now include explicit
    "View Album" and "View Artist" actions across Search, Liked Songs, Queue, and
    catalog views.
  • Offline Demo Runtime Parity: tuitify demo includes fictional album and
    artist datasets, allowing users to fully test album/artist browsing and
    breadcrumb navigation without Spotify credentials or internet access.
  • Contextual Play Next: Press p within Album and Artist views to add the
    selected track as Play Next in the queue.

Install

Download and extract Tuitify-0.2.8-windows-x86_64.zip, then run:

.\scripts\install.ps1
tuitify

Or download tuitify.exe directly. Spotify playback requires a Premium account;
tuitify demo requires no Spotify credentials, network, Discord, or audio device.

Verification

  • 278 offline Rust tests passed (cargo test --locked); 5 environment-specific
    tests were intentionally ignored.
  • Rust formatting (cargo fmt --check) and Clippy with warnings denied
    (cargo clippy --all-targets --locked -- -D warnings) passed cleanly.
  • All 11 Microsoft Edge Playwright website tests passed (npm test).
  • The release executable reported tuitify 0.2.8, and the native demo was
    exercised in a real terminal across album/artist views and breadcrumb navigation.

Live Spotify catalog/playback, audible output, physical media keys, LRCLIB, and
Discord presentation remain environment acceptance checks and were not exercised
for this build.

Tuitify 0.2.7

Choose a tag to compare

@braces157 braces157 released this 12 Sep 04:18

Tuitify 0.2.7

Tuitify 0.2.7 gives the terminal player a cohesive semantic design system and
hardens several queue, authentication, and Mix Builder edge cases.

Highlights

  • Redesign the complete Ratatui interface around semantic background, surface,
    text, border, accent, warning, and error tokens for every theme.
  • Keep keyboard focus, row selection, the currently playing track, and playback
    state visually distinct, including when those states overlap.
  • Refine the header, contextual shortcut footer, navigation, catalog and queue
    tables, Now Playing, Mix Builder, Help, Stats, Lyrics, Visualizer, empty states,
    and compact layouts.
  • Rework Cyberpunk around cyan and subdued blue/slate tones instead of competing
    cyan and magenta accents.
  • Cancel stale Track Radio work when its current seed is removed and invalidate
    in-flight Smart Shuffle recommendations after queue removal.
  • Detect mismatched saved catalog and streaming accounts during setup, finish
    account cleanup, and request the correct streaming authorization.
  • Apply search and filter limits by Unicode character count rather than UTF-8
    byte length.
  • Release Mix Builder pins safely when a regenerated source pool becomes too
    small, with a clear warning in the preview note.
  • Add an idempotent PowerShell installer that copies Tuitify to a stable per-user
    directory, adds it to user PATH, and verifies the installed command.
  • Align the GitHub Pages demo with the Rust application's theme names and order.

Install

Download and extract Tuitify-0.2.7-windows-x86_64.zip, then run:

.\scripts\install.ps1
tuitify

Or download tuitify.exe directly. Spotify playback requires a Premium account;
tuitify demo requires no Spotify credentials, network, Discord, or audio device.

Verification

  • 193 offline Rust tests passed; 5 environment-specific or benchmark tests were
    intentionally ignored.
  • Rust formatting, Clippy with warnings denied, and the locked optimized build
    passed.
  • All 11 Microsoft Edge Playwright website tests passed; npm audit reported no
    vulnerabilities.
  • The release executable reported tuitify 0.2.7, and the native demo was
    exercised in a real terminal across all five themes and major overlays.

Live Spotify catalog/playback, audible output, physical media keys, LRCLIB, and
Discord presentation remain environment acceptance checks and were not exercised
for this build.

Tuitify 0.2.6

Choose a tag to compare

@braces157 braces157 released this 10 Sep 10:56

Tuitify 0.2.6

Tuitify 0.2.6 adds an inspectable Mix Builder, Smart Shuffle, and a native
credential-free demo inside the real Rust/Ratatui terminal application.

Highlights

  • Build a duration-targeted mix from the current queue or an accessible Spotify
    playlist, with a preferred suggestion percentage and artist spacing.
  • Inspect source and recommendation provenance, including the actual seed track
    and provider used for suggestions.
  • Pin preview positions and deterministically regenerate the remaining tracks.
  • Save and reopen named mix recipes locally.
  • Explicitly replace or append the queue, with existing one-step queue undo.
  • Retain usable source-only previews when recommendations fail and label partial
    playlist data after page failures or safety caps.
  • Cycle Smart Shuffle alongside normal shuffle while preserving current playback
    and duplicate queue occurrences.
  • Run tuitify demo with bundled fictional data, simulated playback, Mix Builder,
    lyrics, queue editing, undo, and themes—without Spotify credentials, network,
    Discord, or an audio device.
  • Use responsive Mix Builder layouts down to the supported 32x10 terminal size.

Try the native demo

.\tuitify.exe demo

Press Shift+M to open Mix Builder. The first demo recommendation request fails
intentionally; press g to show graceful recovery, then pin, regenerate, apply,
and undo the mix.

Verification

  • 185 offline Rust tests passed; 5 environment-specific/benchmark tests ignored.
  • Rust formatting, Clippy with warnings denied, and locked optimized build passed.
  • 11 Microsoft Edge Playwright website tests passed.
  • Native PTY acceptance covered recommendation recovery, pin/regenerate,
    replace/undo, normal quit, and terminal restoration.

Live Spotify catalog/playback, audible output, physical media keys, LRCLIB, and
Discord presentation remain environment acceptance checks and were not exercised
for this build.