Skip to content

0.GTRSnipe

ScottVR edited this page Nov 4, 2026 · 1 revision

In this wiki we will explore detailed usage patterns from start to finish using various input and output file types. We will demonstrate the effects of the FretboardMapper tunables and discuss its algorithm, and show how making changes to various weights, penalties, and bonuses can help you get the perfect tablature transcription you are after that suits your playing style and ear.

Pages

Page What it covers
1. FretboardMapper Algorithm Configuration and Tunables Reference: every mapper and tuning option, its default, and the --optimizer choice.
2. Example ‐ Mr Crowley organ intro Picking one track of a MIDI file, the sweet spot, --ignore-open, bass parts.
3. Example ‐ Bach Cello Suite #1 (Prelude) The string-switch penalty and the sweet spot on a single melodic line.
4. Example Asturias (Leyenda), aka Prelude Tuning the weights step by step; why --let-ring-bonus and --diagonal-span-penalty exist.
Barney Miller Theme: audio to tab A bass line from a recording: stem separation and pitch detection.
Tablature editors already exist; how is gtrsnipe any better? How the mapper scores a fingering.
v0.2.0 Development log of the first audio-to-tab pipeline.

Pages 2 to 5, the FAQ and the v0.2.0 log were written for gtrsnipe v0.2. Each starts with a note on what has changed since.

Since v0.3

What gtrsnipe can do now that the example pages don't show. The README and the CHANGELOG have the details.

  • Whole-piece fingering (v0.3.0). The mapper finds the best-scoring fingering for the whole song by dynamic programming, instead of choosing chord by chord. --optimizer greedy gives the old behavior. See page 1.
  • Optional extras (v0.3.0). The base install handles MIDI, tab, ABC and VexTab files. Audio input needs pip install 'gtrsnipe[audio]', and stem separation (--stem-track) also needs [separation]. The Basic-Pitch engine and --remove-fx were removed; librosa's pYIN is the pitch detector.
  • Player (v0.4.0; --play since v0.5.0). --play shows the song on an animated fretboard, or as a scrolling tab with --view tab, instead of writing a file. --audio midi or --audio fluidsynth --soundfont FILE.sf2 adds sound. gtrsnipe-play is a shortcut.
  • Chord charts (v0.4.0; -o since v0.5.0). -o song.chords.md writes a chord sheet: a bar-by-bar progression and a diagram of each chord. gtrsnipe-chords is a shortcut.
  • Profiles (v0.5.0). --save-args NAME saves the options you set, and --profile NAME applies them later. A profile named defaults is applied automatically.
  • Custom tunings (v0.5.0). --tuning-pitches defines any tuning with any number of strings, lowest string first; --drop-low-string N lowers the lowest string. Tabs gtrsnipe writes record their tuning, and since v0.6.0 a tab input is read back in it.
  • Tuning solver (v0.5.0). --solve-tuning NOTES finds a tuning in which a tab of only open strings plays the melody.
  • Tab homographs (v0.6.0). --homograph A B looks for one tab that plays song A in one tuning and song B in another.
  • Tuning ranking (v0.6.7). --analyze fingers the song in every tuning that fits it and ranks them by how playable the result is.
  • Note lengths (v0.6.8). Playback keeps each note's length, and rests are silent. A tab says when to strike a string, not when to stop, so for tab input --sustain decides: legato (the default) holds each note until the next one starts, and string lets it ring until its own string is struck again.
gtrsnipe -i song.mid -o song.tab                                  # a tab
gtrsnipe -i song.mid --play --view tab                            # watch it as a scrolling tab
gtrsnipe -i song.mid -o song.chords.md                            # a chord chart
gtrsnipe -i song.mid --analyze                                    # rank the tunings that fit
gtrsnipe -i song.mid -o song.tab --tuning-pitches "A1,E2,A2,D3,F#3,B3"   # a custom tuning
gtrsnipe -i song.mid -o song.tab --sweet-spot-high 7 --save-args mine    # save the options
gtrsnipe -i other.mid -o other.tab --profile mine                 # reuse them
gtrsnipe -i song.tab --play --sustain string                      # let a tab's notes ring
gtrsnipe --solve-tuning "C4,C4,G4,G4,A4,A4,G4"                    # open strings play the melody
gtrsnipe --homograph "C4 C4 G4 G4 A4 A4 G4:2" "E4 D4 C4 D4 E4 E4 E4:2"   # one tab, two songs

Clone this wiki locally