Go to file
Byron Gamatos 3fc077cbc1
feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6) (#541)
* feat(core): carry chord harmony fn + template voicing on the wire (§6.3.1, §6.6)

Add two OPTIONAL per-chord harmony annotations (feedpak 1.7.0), mirroring the
teaching-marks (fg/ch/sd) wire work:

- Chord.fn (instance): {rn, q, deg} harmonic-function object, key-dependent.
  Validated by _validate_fn on BOTH decode and emit so a partial / out-of-range
  fn (which would fail the schema's required-keys rule) never rides the wire.
  Default-omitted, mirroring bend bnv.
- ChordTemplate.voicing (template): key-independent voicing-type string
  ("open", "triad", "shell", "drop2", "barre", ...). Emitted only when
  non-empty; non-string wire values fall back to "".

Display/teaching only — never fed to a grader (honesty rule). fn auto-derivation
is DEFERRED (carry-only): a complete rn/q needs chord-quality analysis, and a
deg-only fn would be schema-invalid, so server.py carries author-provided fn
unchanged. GP import unchanged (no reliable per-chord function/voicing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6)

Draw the chord's harmonic-function Roman numeral (instance fn.rn) and its
template voicing string, stacked above the chord name on both highways. A shared
pure helper chordHarmonyLabels(fn, voicing) formats the two labels (empty when
absent/malformed) and is node-tested against both files.

Both labels are gated behind the EXISTING teaching-marks opt-in
(_showTeachingMarks / teachingMarksVisible bundle flag) — they're chord-level
teaching overlays, same class as sd/ch, so they stay off the default highway.
2D guards the empty-note-chord case; 3D reuses the gold chord-label sprite style.

Render only — no scoring / NoteVerifier path is touched (honesty rule).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 11:03:15 +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): carry chord harmony fn + template voicing on the wire (§6.3.1, §6.6) (#540) 2026-06-21 11:02:52 +02:00
plugins feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6) (#541) 2026-06-21 11:03:15 +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 feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6) (#541) 2026-06-21 11:03:15 +02:00
tests feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6) (#541) 2026-06-21 11:03:15 +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