MCPcopy Index your code
hub / github.com/casantosmu/audiodeck

github.com/casantosmu/audiodeck @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
56 symbols 141 edges 35 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AudioDeck

A modern, self-hostable web spectrogram analyzer for your music library.

What is AudioDeck?

AudioDeck is a self-hosted web application that lets you visually analyze the audio quality of your music files. Think of it as a web-based, modern version of the classic Spek spectrogram analyzer.

Perfect for checking if your "high-quality" FLAC files are genuine or just upconverted low-quality MP3s.

Why Do I Need This? The Visual Proof

Sometimes audio files aren't what they claim to be. A spectrogram reveals the truth:

🟢 Real FLAC (Lossless) 🔴 Fake FLAC (MP3 > FLAC)
Spectrogram of a real FLAC file showing full frequency range Spectrogram of a fake FLAC file showing a 16kHz cutoff
Full frequency range up to 20-22 kHz Clear frequency cutoff around 16 kHz
Rich, detailed spectrum "Brick wall" effect above cutoff

If you see a hard cutoff around 16 kHz, someone converted a low-quality MP3 to FLAC. Real lossless audio preserves the full frequency range.

Key Features

  • 🔋 Ultra Lightweight: Go backend idles at ~15MB RAM
  • ⚡ Zero Server Load: Spectrograms generate 100% in your browser
  • 🛡️ Secure by Design: Path traversal resistant, read-only volume mounts
  • 📱 Responsive: Works perfectly on desktop and mobile
  • 🐳 Docker Ready: Minimal size image
  • 🎵 Format Support: MP3, FLAC, WAV

Quick Start: Docker Compose

Create a docker-compose.yaml file:

services:
  audiodeck:
    image: casantosmu/audiodeck
    container_name: audiodeck
    user: "1000:1000"
    restart: unless-stopped
    ports:
      - "4747:4747"
    volumes:
      - /path/to/your/music:/media:ro

Then run:

docker-compose up -d

Important: Replace /path/to/your/music with the actual path to your music library on your server.

🎵 Support Artists

This tool is useful for verifying your library's quality, regardless of where your music comes from. However, music is art and artists deserve support. If you discover new artists or love certain tracks, please consider buying their music, merchandise, or attending their concerts.

LONG LIVE MUSIC!

License

This project is licensed under the GNU Affero General Public License v3.0.

Extension points exported contracts — how you extend this code

TopBarProps (Interface)
(no doc)
frontend/src/components/TopBar/TopBar.tsx
ApiError (Interface)
(no doc)
frontend/src/core/ApiError.ts
AudioMetadata (Interface)
(no doc)
frontend/src/core/AudioMetadata.ts
Features (Interface)
(no doc)
frontend/src/core/Features.ts
FileItem (Interface)
(no doc)
frontend/src/core/FileItem.ts

Core symbols most depended-on inside this repo

serverErrorResponse
called by 13
backend/cmd/api/errors.go
badRequestResponse
called by 7
backend/cmd/api/errors.go
writeJSON
called by 4
backend/cmd/api/helpers.go
errorResponse
called by 4
backend/cmd/api/errors.go
notFoundResponse
called by 3
backend/cmd/api/errors.go
logError
called by 2
backend/cmd/api/errors.go
createItemPath
called by 1
frontend/src/components/FileBrowser/FileBrowser.tsx
renderContent
called by 1
frontend/src/components/FileBrowser/FileBrowser.tsx

Shape

Function 29
Method 12
Interface 7
Struct 7
TypeAlias 1

Languages

TypeScript54%
Go46%

Modules by API surface

backend/cmd/api/errors.go6 symbols
backend/internal/media/format.go4 symbols
backend/cmd/api/handlers.go4 symbols
backend/cmd/api/dtos.go4 symbols
frontend/src/hooks/useScaleToggle.tsx3 symbols
frontend/src/context/Theme/ThemeProvider.tsx3 symbols
frontend/src/components/FileBrowser/FileBrowser.tsx3 symbols
backend/cmd/api/main.go3 symbols
frontend/src/hooks/useFiles.tsx2 symbols
frontend/src/hooks/useFeatures.tsx2 symbols
frontend/src/hooks/useAudioMetadata.tsx2 symbols
frontend/src/components/TopBar/TopBar.tsx2 symbols

For agents

$ claude mcp add audiodeck \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact