You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Umbrella for extending the feedpak format and tooling so authored musical data is richer, renderable, and editable end-to-end. The format is governed by the public spec got-feedback/feedpak-spec (v1.2.0); changes there go through the FEP process (vendor-neutral, additive/MINOR). Implementation lives in feedback (core + bundled plugins/highway_3d/ + 2D static/highway.js) and the feedback-plugin-* repos.
Principles
Definition of done = spec/impl carries it + a renderer draws it + the editor authors it. No converter-only dead data.
Chart vs state: feedpak holds the authored chart only. Progress/session/loop/timbre stay in app stores.
Already in the spec: centOffset, sections/beats, keys.json (= key/mode regions), song_timeline.json tempos/time-signatures, per-chart tempos.
Song-level harmony track (intended progression) — FEP RFC open (feedpak-spec#28): proposed harmony.json sibling side-file (time-ordered {t,root,quality,rn?,bass?} events); resolves the fn as-played/intended boundary (Why two DLC folder settings? #24 Q5); awaiting maintainer input on keys.json-vs-new-file + root encoding before a spec PR. Foundation for ↓
(dependent on the harmony track; needs design w/ maintainers) Band/backing model (band.json performer roster + backing config; hole-proof / single-bass / mirror-not-grade / never-invents-the-player's-line invariants) — opens as its own FEP once the harmony track settles
Umbrella for extending the feedpak format and tooling so authored musical data is richer, renderable, and editable end-to-end. The format is governed by the public spec
got-feedback/feedpak-spec(v1.2.0); changes there go through the FEP process (vendor-neutral, additive/MINOR). Implementation lives infeedback(core + bundledplugins/highway_3d/+ 2Dstatic/highway.js) and thefeedback-plugin-*repos.Principles
centOffset,sections/beats,keys.json(= key/mode regions),song_timeline.jsontempos/time-signatures, per-chart tempos.Editor + render + import track — ✅ COMPLETE
slu) — PR feat(highway-2d): render unpitched slides (slu) #524slu, arp framing were already in current core.Core backlog — consume what the 1.2.0 spec already defines (no FEP needed)
keys.json(loader + WS) — unblockssd— PR feat(core): consume keys.json — song-level key/scale track (loader + WS) #528song_timelinetempos/time-signatures + per-chart tempos — PR feat(core): consume song_timeline tempos + time_signatures + per-chart tempos (1.2.0) #529feedpak_version— PR feat(core): adopt feedpak_version — read on load + stamp on manifest writes (§4) #530Format FEPs (public spec repo; coordinate with topkoa/mogul)
bnv+bt) — spec ✅ merged (feedpak-spec#17, 1.4.0); impl ✅ complete: core wire + GP5/GP8 import (feat(core): per-note bend shape (bt + bnv) — wire + GP import (PR-A) #531) · 2D/3D highway render (feat(highway): render per-note bend curve (bnv) on 2D + 3D (PR-B) #532) · editor authoring (feedback-plugin-editor#13); Codex follow-up fixes ✅ merged (core fix(bend): GP8 short-bend curve loss + 2D curve timing + 3D bnv gating (Codex follow-ups) #535: GP8 short-bend + 2D/3D bnv gating · editor Keyboard shortcuts needed for all sliders #15: bn/bnv desync)fg/ch/sd) — spec ✅ merged (feedpak-spec#21, 1.5.0; FEP Bundle Tailwind #19) + honesty rule. Impl ✅ complete: core wire+GP fingering import+sdderive (feat(core): teaching marks fg/ch/sd — wire + GP import + sd derivation (§6.2.2) #536) · 2D/3D highway render (feat(highway): render teaching marks fg/ch/sd on 2D + 3D (§6.2.2) #538) · editor authoring (editor#16). Review-loop fixes: range-guard (editor#17), fg hideable toggle (fix(highway): make fret-hand finger (fg) hints hideable, default on (review follow-up to #538) #539), undo-on-save reset (editor#19 + atomic-rebuild hardening Address AppImage packaging warnings #20, closes editor#18)fn+voicing(MIDI record: capture velocity (requires sloppak wire-format change) #25, 1.7.0) +caged+guideTones(MIDI record: Quantize 1/16 (and other grids) on a recorded arrangement #27, 1.8.0). Impl: core wire feat(core): carry chord harmony fn + template voicing on the wire (§6.3.1, §6.6) #540/feat(song): wire caged + guideTones chord-template fields (§6.6) #544 (+ emit-guard fix(song): sanitize caged + guideTones on emit, not just decode (#544 follow-up) #547) · 2D/3D render feat(highway): render chord harmony fn.rn + voicing on 2D + 3D (§6.3.1, §6.6) #541/feat(highway): render caged + guideTones teaching labels (§6.6) #545 · editor authoring feature: Replace sliders with number entry+popup #16/MIDI record: capture velocity (requires sloppak wire-format change) #25 (+ fn-rides-notes Reinitialize input/output options without restart #22, range-guards Plugins should always run in a read-only filesystem #17)harmony.jsonsibling side-file (time-ordered{t,root,quality,rn?,bass?}events); resolves thefnas-played/intended boundary (Why two DLC folder settings? #24 Q5); awaiting maintainer input on keys.json-vs-new-file + root encoding before a spec PR. Foundation for ↓band.jsonperformer roster + backing config; hole-proof / single-bass / mirror-not-grade / never-invents-the-player's-line invariants) — opens as its own FEP once the harmony track settlesDesign notes maintained locally (
feedpak-format-extension-plan.md).