Skip to content

TrackForge 1.1.0 — now on macOS

Latest

Choose a tag to compare

@barongartner barongartner released this 29 Jul 16:08
· 2 commits to main since this release

TrackForge now runs on the Mac.

It is a native SwiftUI app, not a port of the Windows UI and not Electron. The
four pages, the grab pipeline, the match scoring, the Title Case convention and
the filename patterns are the same, so a library maintained from either machine
looks identical.

Download

macOSTrackForge-1.1.0.dmg below. Universal, Intel and Apple silicon,
macOS 13 or later. Open it and drag TrackForge to Applications.

First launch: macOS will say it can't check the app for malicious software.
Right-click TrackForge → Open → Open. It launches normally after that.
Notarising needs a paid Apple Developer membership; this is a free project.

Windows — the 1.0.0 MSI from the
previous release
is unchanged and still current. Nothing in this release touches the Windows app
beyond the version number; a 1.1.0 MSI will be attached here when it is next
built.

Neither build needs anything installed first. yt-dlp and ffmpeg are fetched on
first run into TrackForge's own folder — no admin rights, no Homebrew.

What is different under the hood on macOS

  • Tags are read and written by hand. There is no Swift TagLib worth a
    dependency, and letting ffmpeg write the tags loses TKEY and TSRC — it
    demotes anything it doesn't recognise to a TXXX frame. TrackForge reads
    ID3v2.2/2.3/2.4 and writes v2.3, dropping any ID3v1 trailer. Verified against
    ffmpeg reading the results back.
  • The analyser runs on Accelerate. Same spectral-flux tempo detection and
    Krumhansl-Kessler key detection; a four-minute track now takes about three
    seconds instead of eight.
  • MP3 duration and bitrate are parsed directly from the MPEG frame header,
    plus Xing/VBRI where present. Opening an AVAsset per file made a large scan
    unusable.
  • An ffmpeg you already have wins over the downloaded one. Homebrew paths are
    searched explicitly, since an app launched from Finder doesn't inherit your
    shell's PATH.
  • djay's BPM is imported from the Mac library locations, including the
    sandboxed App Store containers.

Full notes in macOS/README.md.