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
macOS — TrackForge-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 losesTKEYandTSRC— it
demotes anything it doesn't recognise to aTXXXframe. 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 anAVAssetper 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'sPATH. - djay's BPM is imported from the Mac library locations, including the
sandboxed App Store containers.
Full notes in macOS/README.md.