5ed6f454e7 feat(library): smart collections as a library provider (#641)
Implements feedBack#636 item 2 (P1) — saved library filters that stay live,
the homelab primitive FeedBack was missing (Plex smart collections / Navidrome
.nsp / *arr custom filters).

A collection is a saved /api/library query surfaced as a registered library
provider, so it appears in the v3 source picker and inherits the whole Songs
UI (paging, stats, A–Z rail, art) with no new screen.

- Storage reuses the playlist subsystem: a `playlists.rules` JSON column
  (additive, idempotent migration). A row with rules != NULL is a smart
  collection; list_playlists + get_playlist filter `rules IS NULL`, so
  collections are excluded from the manual-playlist list and read-only to
  every playlist mutation that gates on get_playlist.
- SmartCollectionProvider (kind="local" — matched songs are local rows, so the
  client's play/art paths stay on the local branch) delegates query_page/
  query_stats/query_artists to the local DB with the stored rules applied;
  tuning_names/get_art delegate straight through. Registered via a boot scan +
  on create/update (replace=True) / delete.
- Rules mirror the raw /api/library query params; `_sanitize_collection_rules`
  drops unknown keys and is applied at API ingress AND on provider load, so a
  hand-edited / imported bad value can't crash a query.
- API: GET/POST/PUT/DELETE /api/collections. Frontend: a "+ Save as
  collection" action in the v3 filter drawer (local provider + active filters
  only) that names the current filter set and switches to it.

Reviewed by Codex; 3 findings fixed (local-kind playback path, save gated to
local provider, re-sanitize persisted rules).

Tests: tests/test_collections_api.py (CRUD, provider filtering, restart
re-registration, kind=local, corrupt-rule tolerance, playlist isolation),
tests/js/v3_collections.test.js.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:42:41 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
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 ...feedBack-plugin-ug.git ultimate_guitar
Import Tab Drag and drop Guitar Pro files to create songs git clone ...feedBack-plugin-tabimport.git tab_import
Practice Journal Auto-track practice time, speed, loops. Dashboard with charts git clone ...feedBack-plugin-practice.git practice_journal
Setlist Builder Create ordered playlists with sequential playback git clone ...feedBack-plugin-setlist.git setlist
Metronome Audible click and visual beat flash synced to song tempo git clone ...feedBack-plugin-metronome.git metronome
Tone Player View amp/pedal/cab signal chains with gear artwork git clone ...feedBack-plugin-tones.git tones
Fretboard View Live fretboard overlay showing active notes in real-time git clone ...feedBack-plugin-fretboard.git fretboard
Tab View Scrolling guitar tablature notation via alphaTab git clone ...feedBack-plugin-tabview.git tab_view
MIDI Amp Control Auto-switch amp/modeler presets via MIDI on tone changes git clone ...feedBack-plugin-midi.git midi_amp
Section Map Color-coded song structure minimap with clickable navigation git clone ...feedBack-plugin-sectionmap.git section_map
Arrangement Editor DAW-like visual editor for creating and editing song note charts git clone ...feedBack-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 ...feedBack-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 ...feedBack-plugin-piano.git piano
Studio Collaborative band recording and multi-track mixing git clone ...feedBack-plugin-studio.git studio
Drum Highway Lane-based drum highway with MIDI drum pad input and built-in sounds git clone ...feedBack-plugin-drums.git drums
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 ...feedBack-plugin-stepmode.git step_mode
Lyrics Sync Generate synced LRC lyrics from text + vocals stem via Whisper alignment git clone ...feedBack-plugin-lyrics-sync.git lyrics_sync
Lyrics Karaoke Per-syllable karaoke pitch ribbon for sloppak songs (Whisper alignment + librosa pYIN) git clone ...feedBack-plugin-lyrics-karaoke.git lyrics_karaoke
NAM Tone Engine In-browser amp modeling with NAM WASM, cabinet IRs, tone auto-switching git clone ...feedBack-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-guitar-theory.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 feedBack core itself git clone ...slopsmith-update-manager.git update_manager
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
Virtuoso Practice studio for guitar & bass — scale, technique, and rhythm drills, timed workouts, and jam backing that teach skills you take off the screen. git clone ...feedBack-plugin-virtuoso.git virtuoso
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
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

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
S
Description
No description provided
Readme AGPL-3.0
982 MiB
Languages
JavaScript 56.4%
Python 37.1%
HTML 3.2%
CSS 1.2%
TypeScript 1.1%
Other 1%