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
|
70f110bed7
|
fix: use Content Update to suppress tsconfig.json from publish output
|
2026-06-11 20:55:43 -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
|
c6078a3e71
|
assets: add studio, live, and DJ mix images for home medium section
|
2026-06-11 18:50:07 -04:00 |
|
daniel-c-harvey
|
a2f9742f8a
|
fix(parallax): prime parallax position with pre-Blazor init script to kill Server->WASM position pop
|
2026-06-11 16:08:55 -04:00 |
|
daniel-c-harvey
|
612b21b1e7
|
Merge branch 'p7-w5-parallax-prerender-pos' into dev
|
2026-06-11 15:47:48 -04:00 |
|
daniel-c-harvey
|
ae531116b7
|
fix(parallax): animate background-position-y directly so SSR parallax works pre-WASM
|
2026-06-11 14:45:30 -04:00 |
|
daniel-c-harvey
|
63bdc5ee93
|
feature: Home Pictures part 1
|
2026-06-11 13:47:41 -04:00 |
|
daniel-c-harvey
|
5d9ba1c953
|
feat(audio): wire Mp3FormatDecoder and FlacFormatDecoder into AudioPlayer factory
|
2026-06-11 09:32:33 -04:00 |
|
daniel-c-harvey
|
86e1243eba
|
Merge branch 'p1.2-w2-t2-flac-decoder' into dev
|
2026-06-11 09:08:49 -04:00 |
|
daniel-c-harvey
|
879c30a5e5
|
fix(flac): add FLAC frame-sync scan to getAlignedSegmentSize; extend IFormatDecoder rawData param
StreamDecoder peeks candidate bytes; FlacFormatDecoder scans backward for 0xFF/0xF8 sync. Fixes mid-stream decode failure where segments started mid-frame.
|
2026-06-11 09:08:33 -04:00 |
|
daniel-c-harvey
|
a2771c71aa
|
fix(mp3): guard sub-frame tail in getAlignedSegmentSize to prevent over-read past availableBytes
|
2026-06-11 09:04:53 -04:00 |
|
daniel-c-harvey
|
c4930e80ba
|
feat(audio): add FLAC IFormatDecoder for chunked streaming + seek
|
2026-06-11 08:40:53 -04:00 |
|
daniel-c-harvey
|
b04081b960
|
feat(audio): add Mp3FormatDecoder streaming strategy
Implements IFormatDecoder for MP3: ID3v2 skip, MPEG Layer III frame-sync + header decode, Xing/Info/VBRI detection, CBR frame alignment, and VBR TOC seek interpolation. Wiring lands in Wave 3.
|
2026-06-11 08:40:52 -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
|
88ac5b2c88
|
fix(audio): support WAVE_FORMAT_EXTENSIBLE PCM WAVs, normalizing them to standard PCM on upload
|
2026-06-10 15:20:34 -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
|
10256677ac
|
docs: close Phase 2.2/2.3 — move to COMPLETED.md, update DeepDrftPublic proxy CLAUDE.md
|
2026-06-10 10:58:16 -04:00 |
|
daniel-c-harvey
|
5cae83b9ed
|
feat: add search/album/genre filtering and /albums + /genres browse pages
|
2026-06-10 10:54:56 -04:00 |
|
daniel-c-harvey
|
b372bee365
|
Merge branch 'stream-now-button' into dev
|
2026-06-09 07:25:25 -04:00 |
|
daniel-c-harvey
|
9be35e5a58
|
refactor: extract StreamNowButton component shared by hero and nav menu
|
2026-06-09 07:00:37 -04:00 |
|
daniel-c-harvey
|
aaa9f732ae
|
feat: replace ?offset= seek with HTTP Range streaming across API, proxy, and client
- API: enableRangeProcessing true on no-offset FileStream path
- Proxy: transparent Range relay, forwards 206/416/Content-Range verbatim
- TrackMediaClient: Range: bytes=X- replaces ?offset=X; response disposed via TrackMediaResponse
- StreamDecoder: reinitializeForRangeContinuation retains wavHeader, counts raw PCM against 206 Content-Length
- AudioPlayer: seekBeyondBuffer adds headerSize for file-absolute offset; duration guard prevents continuation overwriting full-track duration
- StreamingAudioPlayerService: seek guard corrected to >= 0 (file-absolute offset contract)
|
2026-06-09 07:00:35 -04:00 |
|
daniel-c-harvey
|
760e9a1982
|
fix: Adjust Spectrum Bar Colors
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m37s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m23s
|
2026-06-09 06:23:23 -04:00 |
|
daniel-c-harvey
|
58725c4646
|
feat: true RMS dBFS level measurement for LevelMeterFab via getFloatTimeDomainData
|
2026-06-08 14:40:11 -04:00 |
|
daniel-c-harvey
|
2e165d0aef
|
feat: render album art in track detail cover slot, falling back to gradient placeholder
|
2026-06-08 07:09:39 -04:00 |
|
daniel-c-harvey
|
9015411f12
|
Merge branch 'p2-w5-stream-now' into dev
|
2026-06-07 18:35:37 -04:00 |
|
daniel-c-harvey
|
0d4ef369b9
|
feat: Stream Now instant-play of a random track from the nav button
|
2026-06-07 18:33:08 -04:00 |
|
daniel-c-harvey
|
ea535e0c7e
|
Merge branch 'frame-player-cors' into dev
|
2026-06-07 17:19:38 -04:00 |
|
daniel-c-harvey
|
ceb0984262
|
fix: force FramePlayer to WASM-only render mode; document CORS policy intent
|
2026-06-07 17:16:49 -04:00 |
|
daniel-c-harvey
|
7cd85f0bb1
|
fix: convert absolute pause position to buffer-relative on resume after seek-beyond-buffer
|
2026-06-07 16:55:31 -04:00 |
|
daniel-c-harvey
|
465cb1ff6c
|
feat: allow /FramePlayer to be embedded in external iframes via CORS + CSP frame-ancestors
|
2026-06-07 16:53:49 -04:00 |
|
daniel-c-harvey
|
c766cdf5b8
|
Merge branch 'p2-w2-t1-public-image' into dev
|
2026-06-07 16:41:39 -04:00 |
|
daniel-c-harvey
|
fa28bfb5cc
|
feat: add Share popover to track detail page
|
2026-06-07 16:38:37 -04:00 |
|
daniel-c-harvey
|
10cb96ef7c
|
feat: add public image proxy and wire TrackCard cover art to api/image/{entryKey}
|
2026-06-07 16:33:24 -04:00 |
|
daniel-c-harvey
|
858110306c
|
fix: preserve full-track duration after seek-beyond-buffer reinit
|
2026-06-07 15:09:48 -04:00 |
|
daniel-c-harvey
|
daa334a947
|
fix: seek lower-bound guard and pointer-down callback ordering
AudioPlayer.ts: route seeks below bufferStart to seekBeyondBuffer;
previous missing lower-bound caused clamped playback after first seek.
WaveformSeeker: fire OnSeekStart/OnSeekChange before capturePointer
await to prevent fast-click race that locked _isSeeking true.
Latent: WavOffsetService encodes remaining-only DataSize, overwriting
JS this.duration after seek — not fixed here, scope separately.
|
2026-06-07 15:02:34 -04:00 |
|
daniel-c-harvey
|
bd15b66aee
|
feature: Home Page & Footer Mobile Friendly
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 1m56s
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m3s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m22s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m33s
Deploy DeepDrftManager / Deploy (push) Successful in 1m27s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m29s
|
2026-06-07 13:48:12 -04:00 |
|
daniel-c-harvey
|
9ce2631bf4
|
feature: AudioPlayer Enhancements
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 1m59s
Deploy DeepDrftManager / Build & Publish (push) Successful in 59s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m30s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m33s
Deploy DeepDrftManager / Deploy (push) Successful in 1m27s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m28s
|
2026-06-06 20:17:50 -04:00 |
|
daniel-c-harvey
|
0dd33a5dfc
|
Add track detail page with clickable cards
|
2026-06-06 16:33:57 -04:00 |
|
daniel-c-harvey
|
c83b132522
|
feature: Embed Frame Player
|
2026-06-06 15:43:09 -04:00 |
|
daniel-c-harvey
|
7d3da58573
|
Style Polish
|
2026-06-06 11:52:41 -04:00 |
|
daniel-c-harvey
|
d055c2a548
|
WASM State Fixes
|
2026-06-06 09:59:43 -04:00 |
|
daniel-c-harvey
|
9c916245c1
|
refactor(css): scope track card styles; apply NowPlayingCard color vocabulary
|
2026-06-05 17:35:16 -04:00 |
|
daniel-c-harvey
|
7c89220667
|
Merge branch 'waveform-w1-t2-api' into dev
|
2026-06-05 16:58:59 -04:00 |
|
daniel-c-harvey
|
b3473aa37e
|
refactor(css): consolidate track-view layout and card text color rules; switch genre chip to Outlined variant
|
2026-06-05 16:58:07 -04:00 |
|
daniel-c-harvey
|
de4583b759
|
Add waveform profile HTTP transport: API endpoint, public proxy, content client method
|
2026-06-05 16:57:42 -04:00 |
|
daniel-c-harvey
|
61c5bee5d7
|
refactor(track-card): replace MudCard/MudPaper shells with plain divs, drop !important from section 8 backgrounds
|
2026-06-05 16:26:17 -04:00 |
|
daniel-c-harvey
|
1986aed902
|
fix(css): eliminate track card flash — transparent container, stable fallback base color, unconditional text defaults
|
2026-06-05 16:15:27 -04:00 |
|
daniel-c-harvey
|
b22b57069d
|
style(track-card): glass theming — remove MudBlazor color overrides, add theme-scoped CSS for title/artist/meta hierarchy and navy-glass fallback panel
|
2026-06-05 15:18:56 -04:00 |
|