Go to file
Byron Gamatos 6ee5da3d8b
feat(core): teaching marks fg/ch/sd — wire + GP import + sd derivation (§6.2.2) (#536)
Add the three OPTIONAL per-note feedpak 1.5.0 teaching marks — fg (fret-hand
finger), ch (strum-group key), sd (scale degree) — to the Note model and wire
format, mirroring the bend-shape work (#531). These are DISPLAY/TEACHING ONLY:
nothing in the scoring / note-verification path reads them.

- lib/song.py: Note.fret_finger / strum_group / scale_degree, default-omitted
  on the wire (fg/ch/sd) and decoded via _wire_int_optional; _parse_note reads
  the GP-written fretFinger XML attr. Pure helpers key_to_tonic_pc (§7.7 key
  name -> tonic pitch class) + scale_degree_for_pitch, plus base_open_string_midis
  / pitch_from_base / note_pitch_midi (tuning offsets + capo + fret -> MIDI,
  mirroring app.js _TUNING_BASE_MIDI).
- lib/gp2rs.py: GP5 note.effect.leftHandFinger -> fg (RsNote field + fretFinger
  XML attr), reusing the chord Fingering value convention.
- lib/gp2rs_gpx.py: GP8/GPIF per-note <LeftFingering> (p-i-m-a-c letter codes,
  verified against real GP8 exports) -> fg.
- server.py highway_ws: derive sd for notes + chord notes from the active
  keys.json key + sounding pitch when the author didn't author one (author value
  wins); base hoisted out of the per-note loop.

Tests: round-trip + omit-when-default + malformed-tolerance for fg/ch/sd;
key_to_tonic_pc + scale_degree_for_pitch + note_pitch_midi (standard/drop-D/
capo/bass) units; GP5 leftHandFinger and GP8 <LeftFingering> import.

Part of got-feedback/feedback#334

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 07:57:50 +02:00
.claude/skills Clean release snapshot 2026-06-16 18:47:13 +02:00
.github Repoint dead slopsmith URLs -> got-feedback 2026-06-17 11:02:04 +02:00
.specify docs: point format spec to the external feedpak-spec repo 2026-06-19 13:02:24 -04:00
data/progression Clean release snapshot 2026-06-16 18:47:13 +02:00
docs docs: point format spec to the external feedpak-spec repo 2026-06-19 13:02:24 -04:00
lib feat(core): teaching marks fg/ch/sd — wire + GP import + sd derivation (§6.2.2) (#536) 2026-06-21 07:57:50 +02:00
plugins fix(bend): GP8 short-bend curve loss + 2D curve timing + 3D bnv gating (#535) 2026-06-21 00:46:36 +02:00
scripts Clean release snapshot 2026-06-16 18:47:13 +02:00
specs feat(onboarding): input-device setup step + core-owned midi-input domain (#526) 2026-06-19 16:31:16 +02:00
static fix(bend): GP8 short-bend curve loss + 2D curve timing + 3D bnv gating (#535) 2026-06-21 00:46:36 +02:00
tests feat(core): teaching marks fg/ch/sd — wire + GP import + sd derivation (§6.2.2) (#536) 2026-06-21 07:57:50 +02:00
.dockerignore Clean release snapshot 2026-06-16 18:47:13 +02:00
.gitattributes Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
.gitignore feat(onboarding): input-device setup step + core-owned midi-input domain (#526) 2026-06-19 16:31:16 +02:00
build-proxmox-ct.sh Clean release snapshot 2026-06-16 18:47:13 +02:00
CHANGELOG.md Repoint dead slopsmith URLs -> got-feedback 2026-06-17 11:02:04 +02:00
CLAUDE.md docs: point format spec to the external feedpak-spec repo 2026-06-19 13:02:24 -04:00
CONTRIBUTING.md Repoint dead slopsmith URLs -> got-feedback 2026-06-17 11:02:04 +02:00
docker-compose.nas.yml Clean release snapshot 2026-06-16 18:47:13 +02:00
docker-compose.yml Clean release snapshot 2026-06-16 18:47:13 +02:00
Dockerfile Clean release snapshot 2026-06-16 18:47:13 +02:00
LICENSE Clean release snapshot 2026-06-16 18:47:13 +02:00
main.py Clean release snapshot 2026-06-16 18:47:13 +02:00
package-lock.json Clean release snapshot 2026-06-16 18:47:13 +02:00
package.json Clean release snapshot 2026-06-16 18:47:13 +02:00
playwright.config.ts Clean release snapshot 2026-06-16 18:47:13 +02:00
pyproject.toml Clean release snapshot 2026-06-16 18:47:13 +02:00
README.md Repoint dead slopsmith URLs -> got-feedback 2026-06-17 11:02:04 +02:00
requirements-test.txt Clean release snapshot 2026-06-16 18:47:13 +02:00
requirements.txt Make the library loader sloppak/loose-only 2026-06-16 19:09:53 +01:00
server.py feat(core): teaching marks fg/ch/sd — wire + GP import + sd derivation (§6.2.2) (#536) 2026-06-21 07:57:50 +02:00
SUPPORTERS.md Clean release snapshot 2026-06-16 18:47:13 +02:00
tailwind.config.js Remove the v3 Support Us! donate button (no funding surface) 2026-06-17 11:52:44 +02:00
TODO.md Clean release snapshot 2026-06-16 18:47:13 +02:00
uv.lock Clean release snapshot 2026-06-16 18:47:13 +02:00
VERSION Update VERSION 2026-06-20 11:29:12 +02:00

fee[dB]ack

Plugins

Plugin Description Install
Create from Tab Search Ultimate Guitar for GP tabs and convert to playable songs git clone ...slopsmith-plugin-ug.git ultimate_guitar
Import Tab Drag and drop Guitar Pro files to create songs git clone ...slopsmith-plugin-tabimport.git tab_import
Practice Journal Auto-track practice time, speed, loops. Dashboard with charts git clone ...slopsmith-plugin-practice.git practice_journal
Setlist Builder Create ordered playlists with sequential playback git clone ...slopsmith-plugin-setlist.git setlist
Metronome Audible click and visual beat flash synced to song tempo git clone ...slopsmith-plugin-metronome.git metronome
Tone Player View amp/pedal/cab signal chains with gear artwork git clone ...slopsmith-plugin-tones.git tones
Fretboard View Live fretboard overlay showing active notes in real-time git clone ...slopsmith-plugin-fretboard.git fretboard
Tab View Scrolling guitar tablature notation via alphaTab git clone ...slopsmith-plugin-tabview.git tab_view
MIDI Amp Control Auto-switch amp/modeler presets via MIDI on tone changes git clone ...slopsmith-plugin-midi.git midi_amp
Section Map Color-coded song structure minimap with clickable navigation git clone ...slopsmith-plugin-sectionmap.git section_map
Arrangement Editor DAW-like visual editor for creating and editing song note charts git clone ...slopsmith-plugin-editor.git editor
MIDI Capo MIDI capo control for real-time transposition git clone ...slopsmith-plugin-midi-capo.git midi_capo
Note Detection Real-time pitch detection and scoring against highway notes git clone ...slopsmith-plugin-notedetect.git note_detect
Find More Search for more songs by the same artist git clone ...slopsmith-plugin-find-more.git find_more
Piano Highway Scrolling piano/keyboard view for Keys arrangements with MIDI input git clone ...slopsmith-plugin-piano.git piano
Studio Collaborative band recording and multi-track mixing git clone ...slopsmith-plugin-studio.git studio
Drum Highway Lane-based drum highway with MIDI drum pad input and built-in sounds git clone ...slopsmith-plugin-drums.git drums
Split Screen 2-4 highway panels side-by-side for multi-arrangement practice git clone ...slopsmith-plugin-splitscreen.git splitscreen
Stems Mixer Per-stem mute/volume controls for .sloppak songs git clone ...slopsmith-plugin-stems.git stems
Invert Highway Flip the highway note direction git clone ...slopsmith-plugin-invert-highway.git invert_highway
Jumping Tab Yousician-style 2D horizontal tab with trajectory arcs and hopping ball git clone ...slopsmith-plugin-jumpingtab.git jumpingtab
Step Mode Step-by-step practice mode — highway freezes at each note until played (via Note Detection) or Space git clone ...slopsmith-plugin-stepmode.git step_mode
Lyrics Sync Generate synced LRC lyrics from text + vocals stem via Whisper alignment git clone ...slopsmith-plugin-lyrics-sync.git lyrics_sync
Lyrics Karaoke Per-syllable karaoke pitch ribbon for sloppak songs (Whisper alignment + librosa pYIN) git clone ...slopsmith-plugin-lyrics-karaoke.git lyrics_karaoke
NAM Tone Engine In-browser amp modeling with NAM WASM, cabinet IRs, tone auto-switching git clone ...slopsmith-plugin-nam-tone.git nam_tone
Guitar Theory Lab Explore scales, chords, intervals, tunings, and voicings on a fully interactive fretboard git clone ...slopsmith-plugin-nam-tone.git guitar-theory-lab
Themes Offers several basic recolorings of the interface git clone ...slopsmith-plugin-themes.git themes
Update Manager Installs, updates, and uninstalls other plugins and the slopsmith core itself git clone ...slopsmith-update-manager.git update_manager
Tuner Floating tuner with customizable tunings git clone ...slopsmith-plugin-tuner.git tuner
Simplify Chords Changes complex chords on the note highway to simpler ones. Inspired by Ultimate Guitar's Simplify button. git clone ...slopsmith-plugin-simplify-chords.git simplify-chords
Key Bindings Highway key bindings for keyboard and TV remote git clone ...slopsmith-plugin-key-bindings.git key_bindings
Folder Organizer Organize your sloppak DLC songs into a folder tree view, grouped by subfolder name git clone ...slopsmith-plugin-folder-organizer.git folder-organizer
SlopScale Scale, arpeggio, and sweep-arpeggio practice routines with 3D highway, 2D highway, and tab renderers. Pathway selector, CAGED shape-run arpeggios, and generated audio backing. git clone ...slopsmith-plugin-slopscale.git slopscale
NAM Rig Builder Map tones to chained NAM neural-amp rigs (tone3000 captures + IRs) — full pedal→amp→cab playback, per-stage bypass, and a gear catalog git clone ...slopsmith-plugin-nam-rig-builder.git nam_rig_builder
Audio Preview Quick audio previews from library cards with configurable start time, volume, and duration git clone ...slopsmith-plugin-audio-preview.git audio_preview
Song Mastery Auto-adjusts difficulty based on your rolling note accuracy and saves the slider position per song git clone ...slopsmith-plugin-song-mastery.git song_mastery
Song Preview Quickly hear previews of songs in your library with a clean visual indicator of what's playing. Supports .sloppak and loose folders song formats, with the visual indicator matching up to whatever theme you are using! git clone ...slopsmith-plugin-song-preview.git song_preview
Mobile Note Highway Touch-optimized player with collapsible controls, highway gestures, and device-adaptive layouts for phones and tablets git clone ...slopsmith-plugin-mobile-note-highway.git mobile_note_highway
Shuffle Random playback from your library — artist & tuning filters, auto-advance with countdown popup, note_detect compatible git clone https://github.com/Erikcb91/Slopsmith-Shuffle-Mode.git shuffle

Install any plugin by cloning it into your plugins/ directory and restarting:

cd plugins
git clone https://github.com/got-feedback/feedback-plugin-ug.git ultimate_guitar
docker compose restart