Visual diff tool for Guitar Pro 7/8 (.gp, .gp7, .gp8) files. Load two versions of a song and see exactly what changed — notes, tempo, time signatures — highlighted directly on the sheet music and tablature.
Use Riff-Diff in your browser — no installation needed.
Windows (portable .exe) — standalone desktop app, no installation needed. Requires Windows 10 1803+ or Windows 11 (WebView2).
See all releases for installers (MSI, NSIS).
- Load two GP files into the top (File A) and bottom (File B) panes — click the Open button or drag-and-drop files onto each pane
- Colored overlays appear on beats that differ between the two files:
- Green — bar added in File B
- Red — bar removed from File A
- Yellow — beat changed (different notes, rhythm, or articulation)
- Purple — tempo or time signature changes
- Comparison direction — toggle A → B / B → A to swap the meaning of added and removed
- Switch tracks to compare individual instruments (guitar, bass, drums, etc.)
- Diff minimap a color-coded bird's-eye overview — click or drag to seek
- Filter toggles in the header let you show/hide Changed, Added/Removed, and Tempo/TimeSig diffs
- Notation toggle — show or hide the standard notation stave via the header button
- Bar width — adjust with +/- buttons so both panes use uniform bar widths for easier visual alignment
- Zoom — zoom in/out via header buttons or Ctrl/Cmd +/-/0; both panes zoom together; preference is persisted
The diff engine uses similarity-based alignment at two levels: bars are aligned across measures using a Needleman-Wunsch algorithm that scores content similarity (not just exact match), and beats within each matched bar pair are aligned via LCS (Longest Common Subsequence). Phantom (empty) bars are inserted to visually align added/removed measures between panes.
React, TypeScript, Vite, Tailwind v4, alphaTab, Vitest, Tauri v2.
npm install
cp node_modules/@coderline/alphatab/dist/alphaTab.{worker.*,core.mjs} public/
mkdir -p public/assets && cp public/alphaTab.{worker.*,core.mjs} public/assets/
mkdir -p public/font && cp node_modules/@coderline/alphatab/dist/font/Bravura.{eot,otf,svg,woff,woff2} public/font/
npm run devOpen http://localhost:5173. Click "Open File A" / "Open File B" to load .gp files into the top and bottom panes. Use the track tabs to switch between instruments.
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server |
npm run build |
Type-check + production web build |
npm test |
Run tests (Vitest) |
npm run test:ui |
Vitest browser UI |
npm run tauri:dev |
Tauri desktop dev (hot reload) |
npm run tauri:build |
Build desktop installer |
npm run buildOutput: dist/ — static files ready for any web server. Serve with npm run preview to test locally.
Requires Rust and Visual Studio Build Tools with "Desktop development with C++" (includes Windows SDK).
npm run tauri:buildOutput:
- Portable:
src-tauri/target/release/riff-diff.exe— standalone, no installation needed - MSI installer:
src-tauri/target/release/bundle/msi/Riff-Diff_0.1.0_x64_en-US.msi - NSIS installer:
src-tauri/target/release/bundle/nsis/Riff-Diff_0.1.0_x64-setup.exe
The portable .exe is fully self-contained (frontend embedded in the binary) and can be run directly without installation. The installers add Start Menu shortcuts and register for uninstall. All variants require WebView2 (pre-installed on Windows 10 1803+ and Windows 11).
Requires Rust and Xcode Command Line Tools.
npm run tauri:buildOutput:
src-tauri/target/release/bundle/dmg/Riff-Diff_0.1.0_aarch64.dmg(Apple Silicon)src-tauri/target/release/bundle/macos/Riff-Diff.app
Requires Rust and system dependencies (libwebkit2gtk-4.1-dev, libappindicator3-dev, etc.).
npm run tauri:buildOutput:
src-tauri/target/release/bundle/deb/riff-diff_0.1.0_amd64.debsrc-tauri/target/release/bundle/appimage/riff-diff_0.1.0_amd64.AppImage
Note: Desktop builds are platform-specific — you can only build for the OS you're currently running on.
GPL-3.0
