Backend:
- Install ffmpeg + numpy in Docker image
- New waveform.py: FFT-based SVG generator with 64 frequency bands
- GET /api/clips/{id}/waveform — generates on demand, caches to /data/waveforms/
- DELETE /api/clips/{id} now cascade-removes waveform SVG
- Warm amber-to-orange HSL gradient (25° to 35° hue)
- Mirrored bars: top full opacity, bottom 60% opacity
Frontend:
- DetailPanel shows waveform image beneath album art (80px height)
- Only shown for clips with status='ready'
Storage: /data/waveforms/ persisted via existing ./data volume mount
9 lines
151 B
Plaintext
9 lines
151 B
Plaintext
fastapi==0.115.0
|
|
uvicorn[standard]==0.32.0
|
|
httpx==0.27.0
|
|
aiosqlite==0.20.0
|
|
pydantic>=2.10.0
|
|
python-multipart==0.0.12
|
|
python-dotenv==1.0.0
|
|
numpy==2.2.0
|