Skip to content

Repository files navigation

Groove DSP — Real-Time Vinyl Restoration for Raspberry Pi

Groove DSP removes pops, clicks, surface crackle, and hiss from your vinyl records — in real time, as you play them. It sits between your turntable and amplifier on a Raspberry Pi 5, cleaning up the audio before it reaches your speakers.

No computer required during playback. Control everything from a web dashboard on your phone, tablet, or laptop.


What You'll Hear

  • Fewer pops and clicks — Sharp transient noises from dust and scratches are softened
  • Less surface crackle — The continuous "frying" sound of worn grooves is reduced
  • Preserved music — Bass, vocals, and cymbals stay intact; only the damage is removed
  • Adjustable strength — Dial restoration up or down from the web interface to match your record condition

What You'll Need

Item What It Is Why It Matters
Raspberry Pi 5 (4GB or 8GB) The small computer that runs everything Needs the official Active Cooler and 27W USB-C power supply. Undervolting causes audio dropouts
HiFiBerry DAC2 ADC Pro HAT A sound card that adds analog inputs and outputs to the Pi Captures your turntable's audio and sends restored audio to your amplifier
Turntable + Phono Pre-amplifier Your existing vinyl setup The pre-amp must have a line-level output (not "phono" output)
Audio Amplifier + Speakers Your existing stereo Receives the restored line-level signal
RCA-to-3.5mm adapter Connects your pre-amp to the HiFiBerry The HiFiBerry's 3.5mm jack is the input; the RCA jacks are the output

Tip

Recommended Pre-amp: iFi Zen Phono 3. Its balanced XLR output can be adapted to RCA, and paired with a passive RCA switch it provides an ultimate hardware bypass — flip the switch to hear the raw vinyl without any DSP in the path.

Important

Wiring: Connect your phono pre-amplifier's output to the 3.5mm jack on the HiFiBerry HAT (using an RCA-to-3.5mm cable). Connect the HiFiBerry's RCA jacks to your amplifier's input.


How It Works (The Simple Version)

Your turntable's signal goes into the Raspberry Pi, gets converted to digital audio, runs through cleaning stages, then converts back to analog and goes to your amplifier. The whole process takes less than 3 milliseconds — you won't hear any delay.

The web dashboard lets you turn restoration on or off, adjust how aggressive the cleaning is, and run calibration tools.


Quick Start

Option 1: One-Click Installer (Recommended)

Connect to your Raspberry Pi via SSH and run:

curl -sSL https://raw.githubusercontent.com/dubyte/groovedsp/v2.1.1/install.sh | sudo bash

This script checks for the HiFiBerry HAT, installs dependencies, configures the system, downloads the latest release, and enables auto-start services. Once finished, reboot:

sudo reboot

After reboot, open http://groovedsp.local:5000 in a browser.

Option 2: Manual Installation

  1. Install the OS — Flash Raspberry Pi OS Lite (64-bit) to an SD card, enable SSH, set hostname (e.g. groovedsp.local), and boot the Pi 5
  2. Attach the HiFiBerry HAT — Mount it on the Pi's GPIO header before powering on
  3. Install dependencies — Run the setup commands (see INSTALL.md for the full step-by-step guide)
  4. Build the software — Compile the audio processing plugin and install the web dashboard
  5. Open the dashboard — Visit http://groovedsp.local:5000 on any device on your network

For detailed installation instructions, see INSTALL.md.


The Web Dashboard

Once running, open http://<raspberry-pi-ip>:5000 or http://groovedsp.local:5000.

Restoration Engine Toggle

  • Decrackle (ON): Full processing chain — time-domain click repair and frequency-domain noise reduction in one pass.
  • Pass-through (OFF): Direct bypass routing — ADC capture connected straight to DAC playback, zero processing.

Cleaning Strength

A single slider from 0% to 100% controls the overall restoration intensity:

Level Use case
50 Everyday listening — safe for clean/medium vinyl, preserves dynamics
85 Damaged records — handles crackle without crushing punch
100 Extreme wear — strong noise reduction, some high-end trade-off
0 / pass-through True bypass — zero processing

Advanced Tuning

  • Learn Surface Noise: Drop the needle on a silent lead-in groove and click this button. The SVNR engine captures a noise profile and surgically subtracts it from the music.
  • Snapshot (/capture_snapshot): Instant 5-second metrics (RMS, crest factor, noise reduction) for quick slider checks.
  • Tuning Lab: Use capture_session.py + analyze_captures.py for data-driven tuning with real vinyl. See .ai/skills/tuning-lab/SKILL.md.

Troubleshooting

Problem Likely Cause Fix
No sound at all JACK audio server not running Check systemctl status groovedsp.service and reboot
Audio dropouts / stuttering Insufficient power Use the official Raspberry Pi 27W PSU, not a phone charger
Dashboard won't load Firewall or wrong IP Verify the Pi's IP with hostname -I; ensure port 5000 is open
Very quiet output Input gain too low Use the Auto-Calibrate feature or check INSTALL.md
Harsh, metallic sound Restoration strength too high Lower the strength slider to 30-40%

Project Overview

Component Language Purpose
run.sh Bash Main startup script — waits for hardware, starts JACK2, Carla, and the web server
deploy.sh Bash One-command dev-to-Pi deployment — syncs code, compiles, installs, restarts
plugins/svnr/ Rust The core noise-reduction audio plugin (LADSPA)
backend/ Python Web dashboard and audio engine control
systemd/ Auto-start services on boot
docs/ Technical documentation and DSP mathematics

Debian Packaging (Optional)

For deployment on Debian-based systems, you can build a .deb package:

chmod +x package_deb.sh
./package_deb.sh

Install it with:

sudo apt install ./groovedsp.deb

The package installs the Rust plugin, Python backend, systemd services, and creates a virtual environment automatically.


Further Reading


License

Groove DSP is open-source software. See the repository for license details.

About

Real-time vinyl restoration DSP for Raspberry Pi 5 — pops, clicks, sibilance & surface noise reduction with a web dashboard.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages