Skip to content

Feature/bbs boom feed#5

Merged
Hornfisk merged 18 commits into
masterfrom
feature/bbs-boom-feed
May 19, 2026
Merged

Feature/bbs boom feed#5
Hornfisk merged 18 commits into
masterfrom
feature/bbs-boom-feed

Conversation

@Hornfisk

Copy link
Copy Markdown
Collaborator

No description provided.

Hornfisk and others added 18 commits May 18, 2026 22:46
Replaces the scrolling ring buffer with a trigger-locked linear capture
that maps exactly one full waveform (body + tail) to the full display width.
Tail length is measured per-cycle via a silence floor tracker so even short
kicks fill the display without silent headroom.

On each new trigger the previous waveform is frozen as a dim ghost (22%
alpha); the new capture overwrites it left-to-right at full brightness with
an amber playhead hairline at the live/ghost boundary — useful for A/B
comparison while dialing in the sound.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers architecture, 7-tap nose activation sequence, Boom Feed
RANDOM/MUTATE mechanic, 5-level progression system, SYSOP content,
My Downloads screen, BomboLookAndFeel foundation, and test plan.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers PersistentState keys, ProgressionManager, BoomFeed engine,
SysopContent, BBSScreens, NoseComponent, GlitchState, BBSLookAndFeel,
all three BBS screens, FaceplatePanel wiring, and force-reset gesture.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds ProgressionManager (PersistentState-backed) with level thresholds
at 5/15/30/50 saves, per-level SYSOP unlocks, weekday rotation, force
reset, and onLevelUp callback. 4 new JUCE unit tests, all passing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds BoomFeed class that generates kick parameter snapshots (random or
mutate-from-current), applies them to APVTS, fires a trigger callback,
and maintains a 5-entry ring buffer for PREV undo. 14 unit tests pass
covering bounds, NaN safety, filename format, waveform glyph count, and
history ring behaviour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Transparent overlay component on the nose region. First-time: 7 taps
with 2s idle timeout; subsequent opens: single tap. Crack/glow overlay
escalates through 5 levels with UTF-8 tooltip per level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… sequence

Adds GlitchLevel enum (None/Flicker/Garble/BlackFlash/StaticNoise/RedFlash/GreenPulse),
triggerGlitch(), paintGlitchOverlay(), and timerCallback() to BomboEditor.
BomboEditor now inherits juce::Timer; overlay is painted at end of paint().
…creen routing, Boom Feed + My Downloads UI

- Replace scaffold with full BBSComponent: typewriter intro, SYSOP header
  bar, cracktro scroller, TAB-routed BoomFeed / MyDownloads screens.
- Move PersistentState + ProgressionManager onto BomboProcessor (survive
  editor close/reopen); editor references via processorRef.persistentState().
- BBSComponent takes ProgressionManager* (pointer, default-constructible)
  wired via setProgressionManager() in BomboEditor ctor alongside
  setApvts / setTriggerCallback / setPresetBank.
- BBS overlay now uses BBSLookAndFeel (phosphor TUI palette), 40 ms
  timer drives typewriter + scroller tick, Esc / Tab / N / P / S / M /
  arrow / Enter / Delete all handled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…election on show

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ve, remove temp bbsButton_

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Ctrl+Shift+B dev shortcut

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- NoseComponent: remove single-tap BBS re-open after first unlock;
  add Ctrl+Shift+B shortcut as the re-open path until HeaderBar ships
- BBSComponent: N/P now work on first press (intro fallthrough to BoomFeed
  handler); hide() returns focus to parent so Space/T restore immediately
- BBSComponent/LookAndFeel: switch from Courier New to JetBrains Mono
  Nerd Font Mono (runtime detection + Courier New fallback) — fixes glyph
  rendering for block chars and middle-dot in MOTD/scroller text
- FaceplatePanel: add getRackBounds() (union of all Section::rectBounds)
  and getChassisRectArea() public accessors
- PluginEditor: size BBS overlay to getRackBounds() * scale so it covers
  only the FX rack, not header/scope/nose; fixes bleed-through on
  transparent window edges
- PluginEditor visibilityChanged: move MIDI-enable block here from ctor
  (StandalonePluginHolder was null in ctor on Windows); add second pass
  in callAsync lambda as a guaranteed-late fallback
- PluginProcessor: loop-off tail-kill now schedules 1 beat (not ~23 ms)
  so the current kick's tail plays through once before silence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Hornfisk Hornfisk merged commit d48637e into master May 19, 2026
0 of 3 checks passed
@Hornfisk Hornfisk deleted the feature/bbs-boom-feed branch May 19, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant