daniel-c-harvey
d5ea5f52ee
Merge p11-w4-archive-url-filters into dev (P11 11.D: Archive filters in URL, GenresView repoint)
2026-06-16 12:56:20 -04:00
daniel-c-harvey
a64a5598ae
feat(visualizer): R2 lava tuning — flat fluid, melt, up+out throw, heat-driven turbulence, waveform-width knob
2026-06-16 12:48:17 -04:00
daniel-c-harvey
ca5fc5649a
feat(archive): bind search/medium/genre filters to the URL (11.D); repoint genre tiles to /archive
2026-06-16 12:39:40 -04:00
daniel-c-harvey
db7afe4ea7
feat(p10-reframe-w2): CPU wax-blob lava physics + 2D collision; smin metaball render
2026-06-16 12:19:30 -04:00
daniel-c-harvey
ed7304af1f
Merge p11-w3-t2-release-share into dev (P11 11.E: release-keyed SharePopover mode, Cut header Share)
2026-06-16 11:58:20 -04:00
daniel-c-harvey
0b2fee1520
Merge p11-w3-t1-retire-normalize into dev (P11 11.C: retire track-cardinal stack, fold Archive/Cuts cards into ReleaseGallery)
2026-06-16 11:58:06 -04:00
daniel-c-harvey
2c4bd3a394
fix(p10-reframe-w1): clip visualizer to minimized FAB height; replace LavaLamp icon with SVG Repo glyph
2026-06-16 11:53:47 -04:00
daniel-c-harvey
ce437521ee
feat(share): add release-keyed copy-link mode to SharePopover; wire Cut header (§3b, P11 W3 11.E)
2026-06-16 11:31:03 -04:00
daniel-c-harvey
ef6d21b94e
refactor(public): retire track-cardinal stack, fold Archive/Cuts cards into ReleaseGallery (P11 W3 §4)
2026-06-16 11:31:02 -04:00
daniel-c-harvey
313551ac7c
Merge p10-reframe-w1-clean into dev (Phase 10 Reframe W1: de-noise, dynamic footer clip, lava-lamp icon redraw)
2026-06-16 11:17:32 -04:00
daniel-c-harvey
ff37efea89
Phase 10 W1: de-noise Mix visualizer, clip to live player-bar height, redraw lava-lamp icon
2026-06-16 11:12:20 -04:00
daniel-c-harvey
55515981a9
feat(routing): add ReleaseRoutes.DetailHref resolver; repoint release click sites and add /tracks/{id} redirect (P11 W2 §2)
2026-06-16 10:56:28 -04:00
daniel-c-harvey
6ac943ca09
feat(cuts): wire PlayAlbum/PlayTrack to IQueueService.PlayRelease (§3.4 seam, P11 W1)
...
Header Play loads full album at index 0; row play loads at that row's index with same-track
toggle preserved; null-safe cascade fallback to direct SelectTrackStreaming when queue absent.
2026-06-16 10:22:59 -04:00
daniel-c-harvey
fbb397228e
Merge dev into p10-w4-popover-knobs (integrate concurrent Phase 11 scaffold changes)
...
# Conflicts:
# DeepDrftPublic.Client/Controls/ReleaseDetailScaffold.razor.cs
2026-06-16 00:47:58 -04:00
daniel-c-harvey
aedbe82d28
Merge p11-w1-queue-service into dev (P11 11.F: play-queue IQueueService + skip controls)
2026-06-16 00:37:31 -04:00
daniel-c-harvey
e59271aa00
feat(mix): lava-lamp popover with RadialKnob controls + wider Mix detail body (P10 W4)
2026-06-16 00:19:47 -04:00
daniel-c-harvey
294414d00a
fix(queue): guard OnTrackEnded against direct-play cross-context advance
...
Only advance when player's CurrentTrack.Id matches queue's Current.Id;
direct-play call sites (SessionDetail, StreamNowButton, resume) that
supersede the queue no longer spuriously advance the album. Adds
regression test covering the scenario.
2026-06-16 00:13:51 -04:00
daniel-c-harvey
2b42e01cd0
feat(player): add IQueueService orchestrating album playback above the single-slot player (P11 11.F)
...
Queue owns ordered tracks, current index, skip-fwd/back, and auto-advance via the player's TrackEnded hook; binds through Attach (no ctor growth, no service-locator). Player-bar skip controls; empty-queue play unchanged. Adds QueueService unit tests.
2026-06-16 00:04:44 -04:00
daniel-c-harvey
07ddc69cee
feat(public): add /cuts/{id} album-detail page
...
Compose ReleaseDetailScaffold via Header + BodyContent slots for the Cut
album view: left meta + Play/Share, right theme-bordered cover, TrackNumber-
ordered track list with per-row play. CutDetailBase carries the multi-track
prerender bridge.
2026-06-15 23:59:19 -04:00
daniel-c-harvey
bf00b7f22f
feat(visualizer): controls row + unified MixVisualizerControlState; 3 inert uniforms wired (P10 W2)
2026-06-15 23:15:44 -04:00
daniel-c-harvey
44a15bf67d
fix(review): const→static readonly Debug silences CS0162; update stale rAF comment to renderedPlayhead()
2026-06-15 22:44:20 -04:00
daniel-c-harvey
65e5e09245
fix(visualizer): ease playhead re-anchor to kill startup jitter; gate diagnostics off (P10 W1)
2026-06-15 22:32:02 -04:00
daniel-c-harvey
ad8cb7dbc0
Merge p10-w1-resolution-slider into dev (P10 W1: fix zoom slider stacking-context occlusion)
2026-06-15 21:54:43 -04:00
daniel-c-harvey
652c90979d
fix(visualizer): lift zoom slider out of fixed backdrop's stacking context so it receives pointer events again (P10 W1)
2026-06-15 21:54:22 -04:00
daniel-c-harvey
2bacf58241
Merge session-detail-hero-overlay into dev (Session detail hero-overlay redesign, NowPlaying-themed)
2026-06-15 20:38:09 -04:00
daniel-c-harvey
83c0425133
docs: note SessionDetail hero-overlay composition and scaffold divergence
2026-06-15 19:35:36 -04:00
daniel-c-harvey
0758bfe7f1
fix(css): add ::deep to .session-detail-page so Blazor isolation scope pierces MudContainer boundary
2026-06-15 19:32:34 -04:00
daniel-c-harvey
45bf5e5d37
fix(visualizer): lay Mix datum across a 2-D R8 texture to respect GL_MAX_TEXTURE_SIZE; manual texelFetch lerp avoids row-wrap seam
2026-06-15 19:28:52 -04:00
daniel-c-harvey
3c7f28b2eb
redesign(public): session detail as hero-overlay composition, NowPlaying-themed
2026-06-15 19:27:12 -04:00
daniel-c-harvey
cb6f75be5f
Merge p10-w1-renderer-swap into dev (Phase 10 Wave 1: WebGL2 fragment-shader Mix renderer at parity)
2026-06-15 13:36:01 -04:00
daniel-c-harvey
c1562dde03
Merge track-detail-play-wrong-track into dev (fix wrong-track Play on detail pages)
2026-06-15 13:34:09 -04:00
daniel-c-harvey
8b0bd6d26e
docs(client): note detail pages must load in OnParametersSetAsync under InteractiveAuto
2026-06-15 13:15:04 -04:00
daniel-c-harvey
7d23c0654b
fix(detail): capture guard fields before await to close re-entrancy window in OnParametersSetAsync
2026-06-15 12:55:15 -04:00
daniel-c-harvey
f02f370ed9
fix(detail): reload track on route-param change so Play uses the right track
...
Detail pages loaded only in OnInitialized, which doesn't re-run when an
InteractiveAuto component instance is reused across same-template navigations,
leaving a stale track that Play streamed. Move load to OnParametersSetAsync
keyed on the route id, and guard the prerender bridge restore against an id mismatch.
2026-06-15 12:47:57 -04:00
daniel-c-harvey
b451dda79e
feat(visualizer): WebGL2 fragment-shader Mix renderer at parity; datum-as-texture, shader-clock rAF, drop CSS backdrop-filter (P10 W1)
2026-06-15 12:43:56 -04:00
daniel-c-harvey
f1600023dc
feat(detail): medium release cover thumbnails on mix and session detail pages
2026-06-15 11:36:39 -04:00
daniel-c-harvey
7f1c6bdb66
Merge ui-share-relocate into dev (share button centered below detail metadata)
2026-06-15 11:13:22 -04:00
daniel-c-harvey
37608aee28
Merge ui-mix-visualizer into dev (footer above waveform backdrop; zoom slider to top)
2026-06-15 11:13:05 -04:00
daniel-c-harvey
41e3ccc9fa
fix(archive): center medium toggle between balanced search/genre side zones
2026-06-15 11:10:06 -04:00
daniel-c-harvey
709103ad71
ui: move SharePopover below metadata on all release detail pages
2026-06-15 10:45:27 -04:00
daniel-c-harvey
9f074f7350
fix(visualizer): lift footer above waveform backdrop; move zoom slider to top-right
2026-06-15 10:45:25 -04:00
daniel-c-harvey
47082591ee
refactor(archive): single flex row for search/medium/genre controls with narrow-screen reflow
2026-06-15 10:45:18 -04:00
daniel-c-harvey
2d0a565765
feat(public): scrolling Canvas 2D Mix visualizer — windowed, playback-coupled, zoomable, read-only (8.K W2)
2026-06-14 18:20:32 -04:00
daniel-c-harvey
743c2c3d02
feat(public-nav): slim appbar to ARCHIVE + inline CUTS/SESSIONS/MIXES, drop GENRES and Tracks (8.I)
...
Desktop flattens the ARCHIVE popover into inline appbar links above the medium
breakpoint; mobile keeps the indented sub-list under ARCHIVE. GENRES and /tracks
removed from nav only — routes (GenresView, TracksView) remain reachable by URL.
Retires the now-dead desktop hover-popover and its 8.J collapse-state machinery
(mobile drawer still dismisses on click).
2026-06-13 21:26:44 -04:00
daniel-c-harvey
737c423d9c
feat: replace /archive with release-cardinal searchable browser (Phase 9 §8.H)
...
Retire the three-card overview for a search + medium + genre browser over all
releases. Adds q/genre filter params to the api/release paged read path,
mirroring the existing api/track/page TrackFilter pattern.
2026-06-13 20:47:50 -04:00
daniel-c-harvey
86999cb94e
fix(nav): per-parent dropdown collapsed state; reset on focusout
...
HashSet<string> _collapsedDropdowns replaces single bool so each parent
tracks its own dismiss state independently. onfocusout added alongside
onmouseleave so keyboard users get the dropdown re-enabled without a
mouse pass after Enter-activating a child link.
2026-06-13 20:00:20 -04:00
daniel-c-harvey
c44117ccc5
fix(8.J): close ARCHIVE dropdown on child link click
...
Add dd-nav-item-collapsed CSS class toggled on child click to override the
:hover/:focus-within show rules. Cleared on mouseleave so hover-to-open
works normally on the next pass. Mirrors the existing CloseMobileMenu pattern.
2026-06-13 19:45:55 -04:00
daniel-c-harvey
bcfcc91618
wire medium cards to routes: Studio->/cuts, Live->/sessions, DJ Mix->/mixes
2026-06-13 12:55:02 -04:00
daniel-c-harvey
3ab1d77ecb
Merge p9-w5-t2-tracks-nav into dev (9.5.D)
2026-06-13 11:46:23 -04:00
daniel-c-harvey
8b62915083
Make release Medium writable via upload + meta-edit; resolve detail-page track by releaseId not album title
2026-06-13 11:34:45 -04:00