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
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
daniel-c-harvey
a40d82fa22
nav: add Tracks entry to public MenuPages
2026-06-13 11:05:52 -04:00
daniel-c-harvey
af724ce570
Phase 9 Wave 4: ARCHIVE nav + Cuts/Sessions/Mixes pages + MixWaveformVisualizer
...
Replaces flat RELEASES/SESSIONS/MIXES nav with ARCHIVE dropdown (PageRoute.Children,
one-level cap, dual-role node). Adds /archive overview, /cuts (AlbumsView + medium
filter; /albums redirects), /sessions + /sessions/{id} (hero-dominant), /mixes +
/mixes/{id} (MixWaveformVisualizer full-page background). Extracts ReleaseDetailScaffold
from TrackDetail (invariant trio). PersistentComponentState bridge on all new pages.
Click-to-seek seam designed on MixWaveformVisualizer (inert until wired).
2026-06-12 23:05:25 -04:00
daniel-c-harvey
80ebc80a2a
fix: Home Page Styles Cleanup
Deploy DeepDrftPublic / Build & Publish (push) Failing after 3m27s
Deploy DeepDrftPublic / Deploy (push) Has been skipped
2026-06-11 19:59:08 -04:00
daniel-c-harvey
a6e565e445
feat: replace home genre cards with Music through Every Medium image section
2026-06-11 17:55:13 -04:00
daniel-c-harvey
e077b8ec7b
Merge branch 'p8-w12-release-track-normalize' into dev
2026-06-11 15:55:10 -04:00
daniel-c-harvey
63bdc5ee93
feature: Home Pictures part 1
2026-06-11 13:47:41 -04:00
daniel-c-harvey
f767d288c5
feat: normalize release-cardinal fields out of track into a Release entity (Phase 8 §8.0)
2026-06-11 12:51:21 -04:00
daniel-c-harvey
9d7f2ff003
feat(home): wire ParallaxImage hero to homepage; tweak crossfade to 700ms
2026-06-11 12:12:35 -04:00
daniel-c-harvey
0439d3da4f
docs: record Phase 1.2 Wave 2 progress; update PLAN.md and DeepDrftPublic.Client CLAUDE.md
2026-06-11 09:13:04 -04:00
daniel-c-harvey
c835a54652
docs: record Phase 1.2 Wave 1 progress; update processor, client, and API CLAUDE.md
2026-06-11 08:23:56 -04:00
daniel-c-harvey
009f565b73
fix: remove dead CalculateByteOffset C# shim; guard AudioPlayer.calculateByteOffset on parsed format
2026-06-11 06:13:52 -04:00
daniel-c-harvey
0b0bcb3dee
refactor(audio): extract IFormatDecoder/WavFormatDecoder and wire Content-Type to JS format selection
...
StreamDecoder is now format-agnostic; WavFormatDecoder delegates to WavUtils; contentType flows C# to JS.
2026-06-11 06:08:09 -04:00
daniel-c-harvey
8b94a5fdf7
fix: assign seek CTS synchronously and guard load finally to stop seek/load race
2026-06-10 14:30:12 -04:00
daniel-c-harvey
fb27918ed6
fix: guard LoadTrackStreaming OCE catch with loadCts identity so an in-flight seek isn't clobbered mid-load
2026-06-10 14:22:35 -04:00
daniel-c-harvey
f25d0f624f
Merge branch 'seek-hardening' into dev
2026-06-10 13:25:17 -04:00
daniel-c-harvey
43f54cb950
Merge branch 'p2-w1-filter-views' into dev
2026-06-10 12:43:33 -04:00
daniel-c-harvey
f40940b957
fix: guard SeekBeyondBuffer OCE catch with when(seekCts.IsCancellationRequested) so timeout OCEs fall through to error handler
2026-06-10 11:08:54 -04:00
daniel-c-harvey
6fe7663667
fix: harden seek — timeout no longer swallowed as cancel, rapid seek-on-seek no longer clears active seek flag
2026-06-10 10:55:49 -04:00