feat(web): My Wave button, mood picker and endless wave playback (M4)
- WaveButton: TypeScript port of the prototype's canvas animation (orb and liquid), breathing at rest, pulsing to the track's BPM and energy in the cover palette, following the cursor, pressing with a spring; reduced motion and hidden tabs slow or stop it - home: the wave in the centre with activity and mood chips; changing them while playing rebuilds the upcoming tracks without stopping - player wave mode: asks for the next batch when two tracks are left, sends complete / skip / early skip / like / dislike as feedback and refreshes the queue right after a reaction or an early skip - tracks expose bpm, energy and loudness once analysed; library page shows analysis progress and 7-day wave metrics; wave style setting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3908814cda
commit
eaedd1fc62
24 files changed
+1193
-244
No files matched your search
+19
-1
@@ -1763,7 +1763,7 @@ components:
|
||||
type: string
|
||||
Track:
|
||||
type: object
|
||||
required: [id, title, duration_ms, artists, album, genres, disc_no, track_no, available, stream_url, reaction]
|
||||
required: [id, title, duration_ms, artists, album, genres, disc_no, track_no, available, stream_url, reaction, features]
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
@@ -1799,6 +1799,11 @@ components:
|
||||
nullable: true
|
||||
allOf:
|
||||
- $ref: "#/components/schemas/Reaction"
|
||||
features:
|
||||
nullable: true
|
||||
description: Аудиопризнаки (после анализа) — для анимации волны и выравнивания громкости
|
||||
allOf:
|
||||
- $ref: "#/components/schemas/TrackFeatures"
|
||||
Artist:
|
||||
type: object
|
||||
required: [id, name, album_count, track_count]
|
||||
@@ -1904,6 +1909,19 @@ components:
|
||||
next_cursor:
|
||||
type: string
|
||||
nullable: true
|
||||
TrackFeatures:
|
||||
type: object
|
||||
required: [bpm, energy, loudness_lufs]
|
||||
properties:
|
||||
bpm:
|
||||
type: number
|
||||
nullable: true
|
||||
energy:
|
||||
type: number
|
||||
nullable: true
|
||||
loudness_lufs:
|
||||
type: number
|
||||
nullable: true
|
||||
StreamQuality:
|
||||
type: string
|
||||
enum: [auto, original, high, medium, low]
|
||||
|
||||
Reference in new issue
Block a user