Skip to content

francescoscalzo/WaveGrab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveGrab

WaveGrab Logo

Windows audio recorder that captures system audio and microphone simultaneously using WASAPI

FeaturesWhy WaveGrabInstallationUsageBuild


Features

  • WASAPI Loopback - Records system audio from any output device (speakers, USB headsets, Bluetooth)
  • Microphone Mixing - Combines mic input with system audio in real-time
  • Universal Compatibility - Works with USB, Bluetooth, and built-in audio devices (unlike Stereo Mix)
  • Independent Volume Controls - Separate sliders for system and microphone levels
  • Real-time Visualization - Waveform display and level meters during recording
  • MP3 Export - Automatic conversion to MP3 after recording
  • Mini Mode - Compact always-on-top window while recording
  • Pause/Resume - Pause recording without creating multiple files
  • Persistent Settings - Remembers your device selection and preferences

Why WaveGrab?

Windows doesn't natively support recording microphone and system audio together. Existing solutions have drawbacks:

Solution Problem
Stereo Mix Doesn't work with USB/Bluetooth devices
VoiceMeeter Complex virtual driver setup
OBS Studio Overkill for audio-only recording
Paid software Unnecessary cost for a simple task

WaveGrab solves this with a lightweight, single-purpose app using Windows WASAPI loopback - no virtual drivers, no complex setup.

Installation

Option 1: Download Release

Download the latest WaveGrab.exe from Releases.

Option 2: Run from Source

# Clone the repository
git clone https://github.com/yourusername/wavegrab.git
cd wavegrab

# Create virtual environment
python -m venv venv
.\venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run
python src/main_gui.py

FFmpeg (Required for MP3)

For MP3 conversion, download FFmpeg and place both ffmpeg.exe and ffprobe.exe in the bin/ folder, or add them to your system PATH.

Usage

  1. Select Loopback Device - Choose which output device to record (what you hear)
  2. Select Microphone - Choose your mic input (optional)
  3. Adjust Volumes - Set levels for system and mic independently
  4. Click REC - Start recording
  5. Click STOP - Stop and save as MP3

Tips

  • Use Test button to check audio levels before recording
  • Mini Mode keeps a small window on top while you work
  • Recordings are saved with timestamp: recording_2025-01-25_143022.mp3
  • Config is saved automatically - your settings persist between sessions

Build from Source

Requirements

  • Python 3.12+
  • Windows 10/11 (64-bit)

Build Executable

# Activate virtual environment
.\venv\Scripts\activate

# Install PyInstaller
pip install pyinstaller

# Build
.\build.bat

The executable will be created in dist/WaveGrab.exe.

Tech Stack

  • Python 3.12
  • PyAudioWPatch - WASAPI loopback support
  • NumPy - Audio processing and mixing
  • soundfile - WAV file I/O
  • pydub - MP3 conversion
  • Tkinter - GUI

Project Structure

wavegrab/
├── src/
│   ├── main_gui.py      # Entry point
│   ├── devices.py       # WASAPI device enumeration
│   ├── recorder.py      # Audio capture
│   ├── mixer.py         # Stream mixing
│   ├── config.py        # Settings persistence
│   ├── mp3_converter.py # FLAC to MP3 conversion
│   └── gui/
│       ├── app.py       # Main window
│       ├── controller.py# Recording logic
│       └── widgets.py   # Custom UI components
├── assets/              # Icons
├── requirements.txt     # Python dependencies
├── build.spec          # PyInstaller config
└── build.bat           # Build script

License

MIT License - feel free to use, modify, and distribute.

Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests

Made with Python and WASAPI

About

Lightweight Windows audio recorder that captures system audio and microphone input simultaneously using WASAPI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors