audio_visualizer_rs
audio_visualizer_rs
MCP-сервер, который даёт Claude возможность слышать музыку.
Укажите Claude на любой аудиофайл — и он сможет назвать тональность, темп, динамику, тембр, перкуссионный характер, стереополе, структурные секции и то, как музыка развивается во времени. Всё это — из анализа сырого аудио, без изображений, без догадок, менее 1% контекстного окна.
Сравнивайте два трека бок о бок. Определяйте, где музыка меняется на уровне структуры — интро, куплет, припев, бридж — и приближайте важные моменты.
Что это?
LLM умеют видеть (зрение) и читать (текст), но не умеют слышать. Этот проект закрывает этот пробел: он выполняет настоящий аудиоанализ — те же методы DSP, что используются в исследованиях по музыкально-информационному поиску (music information retrieval), — и возвращает структурированные числовые данные, с которыми Claude может рассуждать.
Это MCP-сервер, который предоставляет аудиоанализ в виде инструментов, которые Claude может вызывать по требованию. Попросите Claude проанализировать песню — и он декодирует аудио, выполнит спектральный/гармонический/ритмический/перкуссионный анализ и вернёт результат в виде компактного текста. Никаких спектрограмм, изображений и длярья потраченных токенов.
Полный анализ 60-секундного трека завершается менее чем за 2 секунды (включая разделение источников). Чистый Rust. Никакого Python, никакого FFmpeg, никаких системных зависимостей.
Related MCP server: Claud-Ear
Возможности
Декодирование аудио — mp3, wav, flac, ogg, aac через Symphonia (чистый Rust)
Спектральный анализ — центроид (яркость), ширина спектра (насыщенность), спад (rolloff), флэтнес (тональность)
Энергия частотных полос — RMS-энергия в 7 стандартных продюсерских полосах (от саб-баса до «brilliance») для диагностики микса
Спектральный контраст — пик против впадины по каждой полосе в дБ, показывает ясность в противовес грязности
Динамический диапазон — пик-фактор (crest factor), диапазон громкости (95-й–5-й перцентили), пик в dBFS
Громкость LUFS — интегрированная громкость EBU R128 (суммирование стереоканалов по ITU-R BS.1770-4), истинный пик (dBTP), диапазон громкости (LRA), целевые уровни стриминговых платформ. Проверено с точностью 0,0 дБ от FabFilter Pro-L 2
Анализ стереополя — фазовая корреляция (моно-совместимость), ширины стерео (соотношение mid/side), баланс L/R, оценка моно-совместимости. Поведровая временная серия, чтобы находить места с фазовыми проблемами
Временные параметры — RMS-энергия (громкость), скорость пересечения нуля (текстура)
Тембр — 13 MFCC (мел-частотные кепстральные лэффициенты)
Гармонический анализ — хромаграмма, определение тональности (алгоритм Крумхансла–Шмуклера), tonnetz
Ритмический анализ — оценка темпа, отслеживание ударов, выявление атак (onset detection), стабильность темпа
Перкуссионный характер — разделение на гармоническую/перкуссионную составляющие (HPSS), милость атаки, плотность атак
Обнаружение границ секций — многофакторный анализ новизны (новизны) находит структurnые изменения (энергия, спектр, гармония, текстура). Дается рабочий процесс «сводка → зум»: получите карту, затем детально изучите интересующие моменты
Сравнение A/B — анализируйте два трека рядом, получайте компактную таблицу диффов, выделяющую различия в громкости, динамике, спектральном балансе, стереополе, тональности и темпе
Временные series — отслеживайте, как каждый показатель развивается во времени, с выражаемым разрешением
Экономия токенов — продержанные (прорежённые) выходные данные, откалиброванные так, чтобы компактно уместиться в контекстном окне
Посмотрите в действии
Посмотрите, как свежий Claude анализирует четыре трека за одну сессию — оrigинальная композиция для фортепиано / лёга, полная карта структуры Bohemian Rhapsody с границами секций, сравнение миксов A/B с продюсерскими советами, и полевая запись грозы, где он сортирует музыкальные показатели как «бессмысленное» и «физически реальное». Все четыре анализа помещаются в одно контекстное окно.
Установка
Claude Desktop — установка в один клик
Скачайте .mcpb-пакет для платформы из Релизы GitHub и откройте его. Остальное Claude Desktop сделает в разуме, без подхода к терминале и ведь без конфиг-файлов.
Платформа | Файл |
macOS (Apple Silicon) |
|
macOS (Intel) |
|
Windows |
|
Linux |
|
Claude Code — Homebrew (macOS)
brew tap JuzzyDee/tap
brew install audio-analyzer
claude mcp add --scope user audio-analyzer -- $(which audio-analyzer-mcp)Claude Code — установка вручную (все платформы)
Скачайте бинарник mcp-server для платформы из Релизы GitHub, затем:
claude mcp add --scope user audio-analyzer -- /path/to/mcp-serverСборка из исходников
git clone https://github.com/JuzzyDee/audio-analyzer-rs.git
cd audio-analyzer-rs
cargo build --release
claude mcp add --scope user audio-analyzer -- target/release/mcp-serverПерезапустите Claude Desktop. Инструменты анализа аудио появятся в ваших разговорах.
Примечание: это локальный MCP-сервер на stdio-транспортека, поэтому требуются Claude Code или Claude Desktop. Он не работает с clai.ai в браузере или мобильных приложениях.
Использование
Важно: этот инструмент анализирует у файлы на вашем локальном компьютере. Дайте Claude полный путь (например, /Users/you/Music/song.mp3) — не пытайтесь загружать файл в чат как вложение. Claude прочитает файл прямо с диска.
CLI (отдельность)
cargo run --bin cli -- /path/to/song.mp3
cargo run --bin cli -- compare /path/to/mix_v1.mp3 /path/to/mix_v2.mp3Инструменты MCP
Как только настроено, Claude может обращаться этому:
Инструмент | Назначение |
| Базовая информация о файле: длительность, частота дискретизации, число сэмплов |
| Яркость, насыщенность, громкость, текстура, тембр (MFCC), энергия по частотным полосам, спектральный контраст, динамический диапазон, громкость LUFS, стереополе |
| Определение тональности, распределение классов высот, tonnetz |
| Темп (BPM), положения бита, стабильность темpa |
| Всё из группы в одном вызове, плюс перкуссионный характер (HPSS), стереополе, границы секций. Рекомендуемая тра того: сначала вызов без |
| A/B двух треков — анализирует оба и возвращает компактную таблицу расхождений |
Примерк: вывод full_analysisная
Вот что full_analysis возвращает для 60-секундного трека джазового трио:
═══ Full Audio Analysis ═══
File: /music/jazz_trio.mp3
Duration: 60.62 sec | Sample rate: 48000 Hz | Samples: 2909952
Analysis completed in: 2.02s
── Spectral/Temporal Features ──
Centroid (brightness): 2812 Hz — moderate
Bandwidth (richness): 3933 Hz — complex
Rolloff (energy focus): 6489 Hz
Flatness (tonality): 0.0824 — strongly tonal
RMS Energy (loudness): 0.1160
Zero Crossing Rate: 0.0402 — mixed
MFCCs (timbre): [-141.3, 13.7, 0.9, 7.7, -2.5, 3.1, -1.7, 2.3, -0.9, 1.0, -0.5, 0.9, 0.6]
── Frequency Band Energy ──
Sub bass (20–60 Hz): 0.007803
Bass (60–250 Hz): 0.013043
Low-mid (250–500 Hz): 0.004906
Mid (500–2k Hz): 0.002165
Upper-mid (2k–4k Hz): 0.000203
Presence (4k–6k Hz): 0.000166
Brilliance(6k–20k Hz): 0.000089
── Spectral Contrast (peak–valley dB) ──
Sub bass (20–60 Hz): 10.4
Bass (60–250 Hz): 20.4
Low-mid (250–500 Hz): 26.0
Mid (500–2k Hz): 30.9
Upper-mid (2k–4k Hz): 19.4
Presence (4k–6k Hz): 16.6
Brilliance(6k–20k Hz): 55.2
── Harmonic Content ──
Estimated key: E minor (confidence: 0.538)
Top pitch classes:
1. G 0.627 ███████████████
2. E 0.561 ██████████████
3. C 0.512 ████████████
4. D# 0.495 ████████████
5. F# 0.487 ████████████
6. C# 0.459 ███████████
── Rhythm ──
Tempo: 84.0 BPM (confidence: 0.316)
Beats detected: 69
Mean tempo: 84.3 BPM | Median: 84.0 BPM
Stability: 0.951 (0=free, 1=locked)
── Percussive Character ──
Percussive ratio: 0.277 — harmony-dominated
Onset density: 7.0/sec — very dense
Peak attack sharp: 1.000
── Dynamic Range ──
Peak: -0.44 dBFS
Crest factor: 16.2 dB — very dynamic
Loudness range: 76.4 dB — very dynamic
Quiet sections: -87.5 dBFS | Loud sections: -11.1 dBFS
── Loudness (EBU R128) ──
Integrated: -12.1 LUFS
True peak: 0.0 dBTP
Loudness range: 3.7 LU
Spotify (-14): turned DOWN 1.9 dB | Apple (-16): turned DOWN 3.9 dB | YouTube (-14): turned DOWN 1.9 dB
── Stereo Field ──
Phase correlation: 0.257 avg, -0.822 min — some phase issues
Phase warnings: 20.6% of frames have negative correlation
Stereo width: 0.812 avg, 2.747 max — wide
Balance: -0.095 — slightly left
Mono compatibility: 0.620 avg, 0.117 min — significant mono loss
── Section Boundaries ──
Working BPM: 84 (confidence: 0.32)
Boundaries: 2
0:18.3s energy+spectral+texture (confidence: 0.85)
0:42.1s energy+harmonic (confidence: 0.67)Если добавить resolution: "medium", вывод сверх того включает ДНК времени series таблицу, показывающую, как каждый признака изменяется по долгезву трека — Claude видит нарастающее интро, динамичную сольную секцию и спокойный аутро.
Разрешение временного ряда
Все анализаторы принимают опциональный resolution параметр, контролирующий временный ряд:
Пресет | Точек в сек | Сценарий / использование |
| ~0.5/сек | большой масштаб, соответствует человеческой глазам просмотр спектрограммы |
| ~1/сек | хороший дефолт для большинства аналитических задач |
| ~4/сек | детальный вид для коротких фрагментов или продвижения к переходам |
Можно также передать числовую строку (например, "20") для кастомной частоты.
Без resolution инструменты возвращают только сводную статистику (среднее по всему треку). С resolution — компактная TSV-таблица с эволюцией признаков: центроид, RMS, динамический ряд, chroma, сила попытки начало, доля перкуссии, энергии, спектральный ряд, и др., выстраивание к одной временной оси.
Пресеты рассчитаны на экономность токенов. Трек в 3 минуты на разрешении "medium" — примерно 180 строк данных: достаточно для прослеживаниятельной музыкальной структуры, не раздувая контекст.
Архитектура
audio file
|
+---> load_audio() -- Symphonia decodes to mono f32 samples
| |
| v
| compute_spectrogram() -- STFT via rustfft, time-frequency matrix
| |
| +---> spectral.rs -- centroid, bandwidth, rolloff, flatness, MFCCs, band energy, contrast
| +---> temporal.rs -- RMS energy, zero crossing rate, dynamic range
| +---> harmonic.rs -- chromagram, key detection, tonnetz
| +---> rhythm.rs -- onset detection, tempo, beat tracking
| +---> percussive.rs -- HPSS (source separation), attack sharpness, onset density
| +---> sections.rs -- section boundary detection (multi-feature novelty)
|
+---> load_audio_stereo() -- preserves L/R channels
|
+---> stereo.rs -- phase correlation, width, balance, mono compatibility
+---> temporal.rs -- LUFS loudness (ITU-R BS.1770-4 stereo channel summing)
|
v
downsample.rs -- bin-average to target resolution, format as TSVДве бинарники используют одну и ту же библиотеку анализа:
cli(src/main.rs) — выполняет все анализы и печатает результат
mcp-server(src/mcp_server.rs) — публикует инструменты через stdio JSON-RPC с помощью rmcp
Ключевые зависимости: symphonia (декодирование аудио), rustfft (FFT), rmcp (MCP SDK).
Изменений
История версий — в CHANGELOG.md.
Лицензия
MIT License. Подробности — в LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
MCP server for Producer/Riffusion AI music generation
The Listenetic MCP server is a remote, cloud-hosted server that enables AI assistants like ChatGPT and Claude to convert articles, documents, websites, and videos into high-quality AI-generated audio. It provides multi-format support for text and binary files, natural-sounding text-to-audio conversion using AI, and specialized processing for SSML, markup, markdown, and various media formats through three core tools: listentic_supported_mimetypes, listentic_add_content_text, and listentic_add_content_binary.
Transcribe audio and video with Speechmatics speech-to-text from Claude and any MCP client.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for the Spotify Web API — gives Claude and other AI assistants tools to search music, control playback, manage playlists, library, and podcasts.472MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents the ability to listen to and understand music/audio files, enabling semantic analysis, stem separation, lyrics transcription, and signal processing via tool calls.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables audio transcription, intelligent splitting, and meeting analysis for MCP-compatible clients like Claude Desktop.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables extracting metadata from Beatport track URLs, including preview audio, cover art, and track info, via an MCP server integrated with Claude Desktop.MIT