Skip to content

Releases: sanchezfauste/fauste-player

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 09:30
805f911

0.7.0 (2026-10-15)

Features

  • analysis: measure and cache each track's loudness (392d7dc)
  • analysis: measure each file's loudness and cache it (8dbcaf8)
  • analysis: run loudness-only jobs below every analysis (7a03837)
  • app: measure the loudness of tracks analysed before (f65dbf6)
  • backends: report the frames a stream holds before the device plays them (b459bc8)
  • control: ignore a MIDI fader bound to a locked player (a50a00b)
  • decode: refuse encoded bitstreams stored as PCM (a6903be)
  • dsp: add fp-dsp with a gated integrated loudness meter (05bb677)
  • dsp: measure the gated integrated loudness of a programme (12e100a)
  • engine: follow the rate under a hard start on a bit-perfect bus (1563566)
  • engine: give each mixer slot a fixed gain (4dafd85)
  • engine: play each source at its loudness normalization gain (551464d)
  • engine: play each source at its normalization gain (3671658)
  • engine: prepare the next track at the rate of a planned cut (7ce125a)
  • engine: reopen a bit-perfect device between two tracks (366b377)
  • engine: reopen bit-perfect devices at each track's rate (9417adb)
  • engine: report each bus's stream rate and refused rates (9ba5121)
  • model: add limits.max_log_file_mb and limits.max_log_files (1c9a379)
  • model: add the loudness normalization settings (3561e7b)
  • model: decide each source's loudness normalization gain (c802f39)
  • model: decide the normalization gain of a track (272edd4)
  • model: exclude a track from normalization or trim it (104c532)
  • model: hold a bit-perfect player's fader at 100 % (90e133a)
  • model: keep each device's stream rate (1dce66c)
  • model: keep each source's gain while it sounds (3101716)
  • model: keep each track's loudness measurement (e0ced2e)
  • model: list the faders Apply now would reset (67e404e)
  • model: plan bit-perfect players hard and lock their fader (6913310)
  • model: plan every transition of a bit-perfect player hard (f543338)
  • model: send each source's normalization with its request (b9feced)
  • model: start Next and Previous hard on a bit-perfect player (c2c9eb9)
  • model: tell bit-perfect players and the rate a cut reopens at (65fa2b2)
  • new app icon (9adcae0)
  • new app icon (d030af5)
  • remote: read the loudness and set a track's loudness edit (daa2574)
  • remote: respect the locked fader of bit-perfect players on MIDI and remote control (2fa2500)
  • remote: show and enforce the locked fader of bit-perfect players (8b27053)
  • store: read the log limits before logging starts (ebc626a)
  • ui: add a one-line hint to every analysis setting (8b7c1a6)
  • ui: add the Loudness tab to Settings (7191ab6)
  • ui: create a playlist from the player's tab strip (8b1802f)
  • ui: describe the normalization of a player and a track (918a308)
  • ui: drain a bar on Fade stop while a fade runs (b802ed8)
  • ui: draw a bit-perfect player's fader locked at 100 % (de6f194)
  • ui: exclude a track from normalization or trim it (c4f07c3)
  • ui: fader level, analysis hints, new playlist button and fade progress (82bd95e)
  • ui: name the faders Apply now resets to 100 % (83aa4fa)
  • ui: say in Settings what bit-perfect output costs (4d684db)
  • ui: show and control loudness normalization (555b563)
  • ui: show that a bit-perfect player does not mix (4842921)
  • ui: show the author, the licence and a disclaimer in About (58ccb43)
  • ui: show the locked fader and what bit-perfect output costs (7876b14)
  • ui: show the normalization gain and a track's loudness (47fb32b)
  • ui: show the volume level under the player's fader (ab51890)

Bug Fixes

  • analysis: cache only real loudness answers and re-measure old entries (e0ad8f4)
  • analysis: drop a loudness measurement that is not finite (8c85bc7)
  • analysis: never analyse a promoted track twice, and make the analysis tests timing-free (c11edf3)
  • analysis: never start a track again that ends while it is promoted (a62e7c8)
  • app: bound the log: quiet pulseaudio, collapse repeats, cap file size ([fc7f6e0](fc7f6e02d0...
Read more

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 22:48
c31aba4

0.6.0 (2026-10-08)

Features

  • analysis: follow the configured limits while running (fb08eb9)
  • analysis: take new cover and tag limits while running (7f466d5)
  • app: add nine AI-translated European languages (6932087)
  • app: add the Basque translation (bb9a22e)
  • app: add the Catalan translation (8554987)
  • app: add the Dutch translation (0b62057)
  • app: add the French translation (c6e575a)
  • app: add the Galician translation (dc19d3c)
  • app: add the German translation (3a78c3b)
  • app: add the Italian translation (2c7f9fc)
  • app: add the Polish translation (ef45d20)
  • app: add the Portuguese translation (8966ff3)
  • app: follow the configured crash report cap (066dce4)
  • app: prepare the interface for more European languages (ffe3b5f)
  • app: read each new track's length from its file header (bb9866e)
  • decode: the length a file's header declares (7255747)
  • engine: apply a device change once nothing sounds on it (2c936b8)
  • engine: apply output changes while running when nothing they affect plays (de03623)
  • engine: keep the running settings on a refusal, the new ones for an absent device (edbf23f)
  • engine: leave DSD before a device change (099437e)
  • engine: let the mixer take new tuning while it runs (25e34d2)
  • engine: move a player or the cartwall to another output while running (5afaa5e)
  • engine: open each device at its own rate and buffer (38c47eb)
  • engine: report placements and keep each bus's running settings (2ac0898)
  • engine: report placements and take new settings while running (f8dc6d2)
  • engine: switch the audio system while running (5c3f335)
  • engine: take new settings and tuning while running (109db4f)
  • model: a seek on a stopped player sets where Play starts (770e8c4)
  • model: a track's length from its file header until its analysis (f38fd81)
  • model: add the live settings state and device settings (3dff01f)
  • model: apply output changes now on request (14ef7b3)
  • model: forget a device's own settings when it leaves every route (e9cbaf7)
  • model: give each output device its own rate and buffer (0d3e13d)
  • model: keep a stopped player's pending start across a restart (d97d457)
  • model: keep what the engine reports about its outputs (28ccb88)
  • model: list the output changes the engine does not run yet (37a11e8)
  • model: rules for applying restart settings live (102baeb)
  • model: say why a DSD mode is not offered (2d6fcc4)
  • model: say why a holder or a device is busy (da5d1a4)
  • model: send output changes as soon as nothing they affect plays (c717b49)
  • play before analysis and choose where Play starts (feedback 4, plan 2) (50cc55c)
  • remote: seek a stopped player to choose where Play starts (cb1a810)
  • site: open the guide in the browser's language (69a8d41)
  • site: open the guide in the browser's language with localized screenshots (c0a24eb)
  • ui: a muted hourglass marks a track whose analysis is pending (ca3a78c)
  • ui: a Re-analyse item in the track row menu (f53eb9b)
  • ui: basic and advanced outputs settings with per-device rate and buffer (94d2090)
  • ui: click a stopped player's waveform to choose where Play starts (72627d1)
  • ui: countdown and seek before the analysis; an unknown total reads a dash (d2757fc)
  • ui: describe pending output changes and what they wait for (e20c8d4)
  • ui: give each device its rate, buffer and DSD row (37ac076)
  • ui: give the CUE window view its markers and badges (ed73536)
  • ui: label the digital meter scale more densely when it is tall (5ae7361)
  • ui: lay the meter out with a ruler on each side (7afb8b5)
  • ui: pure geometry for the drop index of a dragged entry (2f92fea)
  • ui: scroll a playlist table while dragging over it (38ed70b)
  • ui: scroll a table while dragging and label the digital meter more densely (482bbb8)
  • ui: show pending settings and apply them now instead of restarting (8437d58)
  • ui: show pending settings and apply them now instead of restarting (7136a8b)
    ...
Read more

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 18:00
982c88b

0.5.0 (2026-10-03)

Features

  • analysis: read and write the whole tag sheet and its cover through the safe copy (bd030ca)
  • analysis: read more tags and write them through a synced copy (999b064)
  • app: a tag worker and the tag-only pass for tracks with unread tags (e358e3b)
  • app: build the Windows release as a GUI program without a console (a86dee7)
  • app: list No output (silent) after the real audio systems (O27) (bd94f26)
  • app: start again after Restart now (a16d8eb)
  • app: the tag worker reads and writes whole tag sheets and loads covers (b5f385a)
  • audio path audit and DSD output on bit-perfect devices (O25, O26, O27, O34) (8cf858b)
  • backends: DoP and native DSD encoders and the DSD stream flag (O25) (281d789)
  • backends: native DSD output through ALSA on Linux (O25) (00bba3a)
  • decode: a thread priority module over thread-priority (O21) (79858fc)
  • decode: raw DSD reading and the DSD rate of analysed files (O25) (528632f)
  • engine: decoder threads above normal priority, the analysis pool low (O21) (50d4792)
  • engine: DSD reaches bit-perfect devices as DoP or native DSD (O25) (9b77218)
  • engine: DSD sources carry raw words beside their PCM conversion (O25) (96259e0)
  • engine: seek and pause the player CUE (5476856)
  • engine: the mixer copies DSD words and the renderer encodes DoP (O25) (deb70cd)
  • model: add the use_cue_markers setting and Track::play_range (fabd331)
  • model: allow stop after current in Single mode while the entry repeats (302d685)
  • model: DSD output settings per bit-perfect device (O25) (7e60275)
  • model: let players ignore cue-in and cue-out (1ec5a60)
  • model: list the settings that wait for a restart (e2b009f)
  • model: list what is on air (5748bbb)
  • model: play the entry on air once more when it is set as next (352a1fb)
  • model: players play the whole file when cue markers are off (7d0367c)
  • model: replay the entry on air once and stop after current in Single mode for a repeating entry (15ffce0)
  • model: ResetPlayed clears the played marks of a playlist (O22) (c601f9a)
  • model: restore one settings section to its defaults (62ce785)
  • model: rules for DSD reaching a device unchanged (O25) (7a34468)
  • model: the table column list and its rules (O24) (fe39535)
  • model: the tag sheet, its 36 fields, its cover and its pure rules (866ac15)
  • model: track tag fields, ApplyTags and the tag edit rule (de29844)
  • site: landing page with per-platform downloads (5907db4)
  • site: project website, user guide online and screenshots (57a704c)
  • track tooltip and tag editor with front cover (88c3cd1)
  • ui: a Reset played button with a question (O22) (a2c8708)
  • ui: a single click moves a running CUE to the clicked row (bfff0fc)
  • ui: a tooltip with the tags, format and path on each table row (5530a72)
  • ui: add a cartwall Stop all button and one icon table for transport actions (1f8df9e)
  • ui: add a CUE window, per-entry notices and click-to-seek waveform (2ace796)
  • ui: add a Stop all button with a count to the cartwall bar (ea87ea7)
  • ui: add the CUE window with seek, pause, stop and load as next (a4b8c12)
  • ui: add the Use cue-in and cue-out switch to Settings (1c42cf8)
  • ui: an About button in the top bar (cc5402a)
  • ui: ask before closing while audio is on air (2f84376)
  • ui: click seeks on the waveform and a drag pans the zoomed view (d405831)
  • ui: configurable track table columns, live resize, reset played and scroll to next (dbcd8b6)
  • ui: confirm before closing while on air, About button, Wayland window buttons (2785473)
  • ui: countdowns and the remote API follow the play range (4b77fcc)
  • ui: dim the cue marks on the waveform while they are ignored (9126227)
  • ui: DSD mode per bit-perfect device, the DSD badge and the muted notice (O25) (255ac10)
  • ui: edit a track's tags and cover from the row menu, saved off the UI thread (052d14e)
  • ui: hide the silent backend from the audio systems (4f540b9)
  • ui: mark the playing row as next and allow Set as next on it (a72ac3c)
  • ui: reorder, show and hide the table columns (O24) (b4e4e51)
  • ui: restore defaults per settings section (e39690c)
  • ui: settings restore defaults, fixed window and restart now ([15bb1d1](https://github.com/sanchezfauste/fauste-player/comm...
Read more

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:32
a7260ab

0.4.0 (2026-10-01)

Features

  • analysis: trimming never removes audio; shorter segues (c8fa45b)
  • app: ask before analysing tracks of an older version (08212f1)
  • app: look for missing files again (4de2bb4)
  • app: start the remote control server (0c6f587)
  • control: a control-surface crate that reads MIDI messages (c88dae5)
  • control: a MIDI service with hot-plug, feedback and learn (c87a68e)
  • control: LED feedback for bound buttons (76418d6)
  • control: MIDI faders move volumes with soft takeover (5a4fb66)
  • control: route MIDI buttons to player commands (0696431)
  • control: which control a message offers to MIDI learn (bd5f32c)
  • MIDI control surfaces (24bf6a0)
  • missing files explained and recovered, loaded waveforms first, stopped players show their next (47dba88)
  • model: insert and assign tracks already in the library (a2e0728)
  • model: MIDI configuration and a shared fader curve (5eda331)
  • model: OSC remote configuration and source allow-lists (775725d)
  • model: record each player's history (53f7414)
  • model: remote control configuration (f2c2b93)
  • model: repeat an entry until the operator moves on; stop after it (ff56fbf)
  • model: repeat and stop-after flags on playlist entries (a0f9659)
  • model: restart the current entry and go back to the previous one (04d91d8)
  • model: say which transport actions are available (f1a35ba)
  • model: tuning.missing_recheck_ms (6ef70b4)
  • per-track repeat and stop after (75003af)
  • remote: crate with the control trait and the API's JSON contract (03b02aa)
  • remote: edit playlists, cart pages and markers (d8a774d)
  • remote: editing routes and Settings > Remote (3338789)
  • remote: event stream over SSE (be49a10)
  • remote: HTTP API to read and operate the player (ee97a9e)
  • remote: HTTP routes to read and operate players and carts (0085f00)
  • remote: live events over SSE and OSC control (4c2a5ed)
  • remote: OSC addresses, values and subscriptions (fb0e6bb)
  • remote: OSC server with subscriptions (e8f1bae)
  • remote: reduce a waveform to n buckets, and send it without a JSON tree (68dd94a)
  • remote: resource events from snapshot diffs (ec53675)
  • remote: server thread that follows the configuration (9f1bffc)
  • remote: token, origin and host checks with CORS and limits (5ed95c2)
  • remote: turn operations into checked model commands (88ae81f)
  • restart and previous with button availability (8704ec2)
  • store: drop config fields this version does not use (953dd24)
  • ui: a stopped player shows the track Play will start (756a3bc)
  • ui: a view mapping for waveform zoom (417a2da)
  • ui: drag on the waveform to seek on release; dim trimmed audio (a98031a)
  • ui: elapsed / total under the waveform (a543b08)
  • ui: give the meter muted zone colours (e6dde85)
  • ui: interface polish from operator feedback (bc576b2)
  • ui: make slate the default waveform colour (e5803f7)
  • ui: meter and fader column with a dB scale (d9d16f0)
  • ui: move the meter and fader into a column on the right (bcf9d3e)
  • ui: own icons for missing files and outdated analyses (bf9fe46)
  • ui: proportional playlist columns (81739e5)
  • ui: proportional playlist columns and follow the current track (075da68)
  • ui: repeat and stop-after in the track table (e726520)
  • ui: restart and previous buttons, dimmed when unavailable (9d9d855)
  • ui: restart and previous shortcuts, ignored when unavailable (12e9a5d)
  • ui: say why a track is unavailable (c6db4c1)
  • ui: Settings > MIDI and MIDI control at start-up (9acba92)
  • ui: Settings > Remote (ab35d3c)
  • ui: show the version and an About window (34fc916)
  • ui: the playlist follows the current track (8f39032)
  • ui: waveform drag, zoom and trimmed regions (a038b48)
  • ui: zoom and pan the waveform with the wheel ([7de230a](7de230a...
Read more

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 17:09
fe7fbf8

0.3.1 (2026-09-30)

Bug Fixes

  • ui: settle the meter and waveform review minors (821044c)
  • ui: settle the meter and waveform review minors (c926384)

Documentation

  • record the follow-up review's minors (104e511)
  • refresh the main screen screenshot (819fce8)

Unsigned installers

  • the Windows installer (SmartScreen warns about an unknown publisher)
  • the macOS app (not signed or notarised: macOS asks before its first start)

How to open them: Getting started.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 23:43
d18e00c

0.3.0 (2026-09-29)

Features

  • analysis: keep the RMS level of each waveform bucket (a806936)
  • app: accept the new audio formats, read DSF tags, document decoding (59715d2)
  • decode: play DSD, WavPack, Monkey's Audio and Opus (9149106)
  • engine: K-System meters and a maximum level per player (bc68eea)
  • ui: draw the waveform continuously with its RMS body (df8bd1c)
  • ui: meters on their standard's scale, with a maximum readout (0373c72)
  • ui: standard meter scales, the K-System and a maximum readout (de93d65)
  • ui: waveform with a peak outline and an RMS body, drawn continuously (b345cef)

Bug Fixes

  • analysis: read the INTRO tag from Opus, WavPack, Monkey's Audio and DSF (3555ca0)
  • ci: build the release packages on every platform, and run the nightly fuzz (0a2b870)
  • decode: look past a leading ID3v2 tag, and never guess a format (91075a5)
  • decode: place surround DSD channels by their layout (0622f2d)
  • decode: refuse DSDIFF property chunks that overrun their parent (493cdcb)
  • decode: trim encoder delay once, in the decoder (1bc8c8b)
  • packaging: give each installer notice its own component (759dcd2)
  • ui: mark the alignment level on every meter, and turn red where each scale does (7e77951)

Documentation

  • describe the standard meter scales and the K-System (57c3bfe)
  • record the waveform plan's ruling and deferred minors (ab5e9b0)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 16:26
a4346e5

0.2.0 (2026-09-27)

Features

  • analysis: read the INTRO tag as the intro end (b2772ab)
  • app: application id, icon, desktop entry and playlist arguments (184399e)
  • backends: Core Audio hog mode for bit-perfect devices on macOS (cb19d50)
  • backends: exclusive access, real sample formats and exclusive-capable devices (ac5036e)
  • backends: offer every audio system of the platform (d29f5af)
  • backends: WASAPI exclusive mode for bit-perfect devices on Windows (cd3a7a8)
  • engine: a VU that moves like IEC 60268-17 (18af556)
  • engine: bit-perfect buses follow the file rate while idle (6cd5387)
  • engine: bound worker sources and loop them gaplessly (c41ec6a)
  • engine: loudness that meets EBU Tech 3341 as a live meter (44e2e5b)
  • engine: measure what each source puts out for the level meters (c9df38b)
  • engine: play the cartwall on its own routes (cd7e825)
  • engine: programme meters that meet EBU Tech 3205 (31d4c14)
  • engine: report when a player is bit-perfect, and prove the output is bit-exact (50299c2)
  • engine: standard meter ballistics and EBU R128 loudness (c4f5099)
  • engine: the conductor runs each player's meter and publishes its reading (a31cb0f)
  • engine: true peak with the ITU-R BS.1770-5 interpolator (4478418)
  • model: add cartwall pages, carts and rules C1–C10 (c12a941)
  • model: add configurable keyboard shortcuts (cb724ed)
  • model: add manual marker commands (b25218f)
  • model: configurable level meters (e642051)
  • model: record each file's rate and sample size and pass it to the engine (577fa28)
  • store: persist cart pages and the cartwall session (d57d115)
  • store: read M3U/M3U8/PLS and cart page files, write M3U8 (039b0db)
  • ui: add Cartwall and Keyboard shortcuts settings, and a language selector (a174e64)
  • ui: add the cartwall strip (6a30ccd)
  • ui: dispatch keys from the configured shortcuts (6ba70f7)
  • ui: edit markers on the waveform (039af23)
  • ui: import M3U/M3U8/PLS playlists and export M3U8 (7d4cc05)
  • ui: light the BP badge and choose bit-perfect devices in Settings (3f85b0c)
  • ui: standard level meters and a Meters section in Settings (855d532)

Bug Fixes

  • address review of hardening, docs and release pipeline (e675712)
  • address review of the Phase 2 engine and analysis (405103e)
  • address review of the Phase 2 model and store (6d87c9d)
  • app: one instance per data folder, and packaging fixes from review (21c2a49)
  • backends: harden the exclusive modes after review (7b716df)
  • backends: treat systems without output devices as unavailable and recover lost hosts (ea1fdb4)
  • close Phase 1 review minors and avoid duplicate on-air next (aa44115)
  • engine: a transition at the next frame to play has not happened yet (e03d5ad)
  • engine: make bit-perfect output work on real devices (c78b56d)
  • engine: meter review fixes (c4e1ed5)
  • engine: meter review fixes for the standards work (4e893d2)
  • model: players are independent, even on the same playlist (da2f331)
  • model: players are independent, even on the same playlist (315d865)
  • store: bump the playlists schema for per-player played marks (4ae97d8)
  • ui: address review of the Phase 2 interface (850d39c)

Code Refactoring

  • engine: time every source in the frames of its own bus (9394b44)

Documentation

  • add Phase 1 plan 5 (hardening, documentation, release) (41eaca7)
  • add Phase 2 plan 2 (engine and analysis) (a12b706)
  • add README, user guide, technical docs and agent guides (128e53b)
  • bit-perfect output on Windows and macOS (3d9f55b)
  • design and plan standard level meters (f4b09fc)
  • design Phase 4 (bit-perfect output) and plan its portable core (5eb2736)
  • document bit-perfect output for users and developers (fe7f583)
  • document carts.json, shortcuts, cartwall config and playlist files (6a9ed59)
  • document the cartwall, shortcuts, marker editing and playlist files (9f686bd)
  • level meters for users and developers (5e373e9)
  • meters faithful to ITU-R BS.1770-5, EBU Tech 3341 and Tech 3205 (81ba542)
  • plan Phase 3 (native audio systems through cpal hosts) ([e2b7808](https://github.com/sanchezfauste/fa...
Read more