Professional Real-Time Audio Spectrum Analyzer & Visualizer for Linux
A modern, high-performance audio analysis application built with Electron + Svelte 5, featuring studio-grade metering, advanced visualizations, and Spotify integration.
AUDIO_PRIME is a Linux-only application.
| Platform | Status | Reason |
|---|---|---|
| Linux | ✅ Supported | Native PulseAudio/PipeWire access via parec |
| macOS | ❌ Not Supported | Chromium limits system audio to mono only |
| Windows | ❌ Not Supported | No viable system audio capture path in Electron |
Professional audio analysis requires stereo capture for features like the goniometer, stereo correlation, and M/S metering. After extensive development effort, we found:
Linux: Direct access to PulseAudio/PipeWire via parec subprocess provides full stereo audio capture outside of Chromium's sandbox.
macOS: Apple's ScreenCaptureKit API supports stereo, but Chromium's getDisplayMedia() implementation only returns mono audio. Native Swift subprocesses can't inherit TCC (screen recording) permissions. A proper fix would require a native Node.js addon—significant complexity for uncertain results.
Windows: Similar limitations exist with WASAPI loopback capture in Electron's sandboxed environment.
For cross-platform pro audio applications, native development (Swift/C++) is the appropriate choice. Electron excels for many use cases, but system audio capture for professional analysis isn't one of them.
Note: AUDIO_PRIME currently supports Linux only due to limitations with system audio capture in Electron on macOS and Windows.
Download the latest release from Releases:
chmod +x AUDIO_PRIME-*.AppImage
./AUDIO_PRIME-*.AppImage
# Recommended: Use dpkg directly to avoid apt sandbox warnings
sudo dpkg -i AUDIO_PRIME-*-linux-amd64.deb
# Install any missing dependencies
sudo apt-get install -f
sudo rpm -i AUDIO_PRIME-*-linux-x86_64.rpm
parec command# Prerequisites: Node.js 18+ and npm
# Clone repository
git clone https://github.com/magicat777/AUDIO_PRIME.git
cd AUDIO_PRIME
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
Spotify integration requires you to create your own Spotify Developer application (free):
http://127.0.0.1:8888/callback as a Redirect URI~/.config/audio-prime/.env:SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
See the User Guide for detailed instructions.
Note: Spotify Premium is required for playback controls. Free accounts can view now-playing info.
| Key | Action |
|---|---|
Space |
Start/Stop capture |
M |
Toggle menu |
F |
Toggle fullscreen |
ESC |
Exit fullscreen / Close menu |
Q |
Quit application |
| Key | Action |
|---|---|
S |
Spectrum |
U |
VU Meters |
B |
Bass Detail |
W |
Waterfall |
L |
LUFS |
T |
Tempo/BPM |
V |
Voice Detection |
C |
Stereo Correlation |
G |
Goniometer |
O |
Oscilloscope |
N |
Frequency Bands |
D |
Debug |
Alt+Shift+S |
Spotify |
| Key | Action |
|---|---|
Shift+B |
3D Bars (Cylinder) |
Shift+W |
3D Waterfall |
Shift+F |
Frequency Sphere |
Shift+S |
3D Stereo Space |
Shift+T |
Tunnel Effect |
Shift+L |
Terrain Landscape |
| Key | Action |
|---|---|
Alt+L |
Lock/Unlock all panels |
Alt+T |
Toggle grid |
Alt+S |
Toggle snap |
Alt+A |
Auto-arrange |
Alt+R |
Reset layout |
Use the sidebar toggles to show/hide panels:
Shift+A to auto-arrange all panels~/.config/audio-prime/parec subprocess captures system audio via PipeWire/PulseAudio| Component | Technology |
|---|---|
| Framework | Electron 35 |
| UI | Svelte 5 |
| Build | Vite 6 |
| Language | TypeScript 5.7 (strict mode) |
| 2D Rendering | Canvas 2D + WebGL2 |
| 3D Rendering | WebGL2 (custom shaders) |
| Audio | PulseAudio/PipeWire (parec) |
| Testing | Vitest |
| Linting | ESLint + Security plugins |
AUDIO_PRIME/
├── electron/ # Main process
│ ├── main.ts # Electron entry, IPC handlers, auto-updater
│ ├── preload.ts # Context bridge
│ └── audio/ # Audio capture module
│ ├── AudioCapture.ts
│ ├── LinuxCapture.ts
│ ├── types.ts
│ └── index.ts
├── src/
│ ├── components/ # Svelte 5 components
│ │ ├── layout/ # AppShell, ErrorBoundary
│ │ ├── panels/ # Spectrum, LUFS, BPM, Voice, etc.
│ │ └── spotify/ # Spotify integration
│ ├── core/ # AudioEngine, PerformanceMonitor
│ ├── analysis/ # LUFSMeter, BeatDetector
│ ├── stores/ # Svelte stores
│ └── types/ # TypeScript definitions
├── tests/ # Vitest test suites
├── docs/ # Documentation
│ ├── USER_GUIDE.md # Comprehensive user documentation
│ ├── INSTALLATION.md # Installation instructions
│ └── TROUBLESHOOTING.md # Common issues & solutions
├── .github/workflows/ # CI/CD
│ └── security.yml # Automated security scanning
├── CHANGELOG.md # Version history
├── LICENSE # MIT License
└── THIRD_PARTY_LICENSES.md
| Platform | Format | Status |
|---|---|---|
| Linux | AppImage | ✅ Supported |
| Linux | .deb | ✅ Supported |
| Linux | .rpm | ✅ Supported |
| macOS | .dmg | ❌ Not supported (audio capture limitations) |
| Windows | NSIS | ❌ Not supported (audio capture limitations) |
npm run dev # Start dev server with hot reload
npm run build # Build for production
npm run test # Run test suite
npm run lint # Run ESLint
npm run type-check # TypeScript validation
See CONTRIBUTING.md for guidelines.
MIT License - See LICENSE file for details.