A computer vision–powered Virtual DJ controller
Turn your webcam into a virtual DJ deck! AirBeatz lets you control volume, speed, pitch, and track navigation using intuitive hand gestures in real time.
- 🎛 Intuitive Gesture Controls – Manipulate volume, speed, and pitch using natural hand movements.
- ⚡ Real-time Audio Processing – Hear changes instantly as you move your hands.
- 👁️ Visual Feedback – On-screen visualization of audio parameters and waveforms.
- 🎵 Track Navigation – Switch between tracks using hand twist gestures.
AirBeatz uses your webcam with MediaPipe Hand Landmark Detection to recognize hand gestures. Different gestures control various audio aspects:
| Control | Gesture | Effect |
|---|---|---|
| Volume | Distance between hands | 0.0 – 1.0 gain |
| Speed | Left hand pinch (thumb + index) | 0.5× – 1.5× playback speed |
| Pitch | Right hand pinch (thumb + index) | Adjusts pitch without affecting tempo |
| Next Track | Right hand twist | Moves to next track |
| Previous Track | Left hand twist | Returns to previous track |
| Reset | R key |
Returns all parameters to default |
- Python 3.11.x (recommended) – Python 3.10 also works.
⚠️ Python 3.12+ or 3.13 may cause MediaPipe installation issues. - Webcam
- Audio files in WAV format
Download Python 3.11.x.
Windows:
- Check "Install for all users"
- Enable "py launcher"
- (Optional) Skip adding to PATH
Verify installation:
# Windows
py -3.11 --version
# macOS / Linux
python3.11 --version
Expected output:
Python 3.11.x
---
### 2. Clone the repository
```bash
git clone https://github.com/akshit40/AirBeatz.git
cd AirBeatz
Windows (PowerShell):
py -3.11 -m venv .venv311
.\.venv311\Scripts\Activate.ps1Windows (Git Bash):
py -3.11 -m venv .venv311
source .venv311/Scripts/activatemacOS / Linux:
python3.11 -m venv .venv311
source .venv311/bin/activateConfirm:
python --version
# Should display Python 3.11.xIf you previously created a venv with another version, remove it first:
# PowerShell
Remove-Item -Recurse -Force .\venv
# Bash
rm -rf venv .venv .venv311python -m pip install --upgrade pip
pip install -r requirements.txtmkdir -p songs soundsWindows (PowerShell equivalent):
New-Item -ItemType Directory -Force -Path songs,sounds | Out-NullAdd your .wav music files to songs/ and optional sound effects to sounds/.
# PowerShell
pip index versions mediapipe | findstr 0.10.21
# Bash
pip index versions mediapipe | grep 0.10.21If no versions appear, ensure you are using Python 3.10 or 3.11.
Run the main application:
python src/dj_pyo.pyPosition yourself in front of the webcam. Use the gestures to control audio:
- Volume: Move hands closer/further apart
- Speed: Pinch left hand
- Pitch: Pinch right hand
- Previous Track: Twist left hand
- Next Track: Twist right hand
- Quit: Press
Q - Reset parameters: Press
R
- No camera detected: Ensure webcam is connected and free.
- No hands detected: Adjust lighting and hand position.
- Audio doesn’t play: Check
.wavfile format and location. - MediaPipe installation fails: Use Python 3.11 virtual environment.
- Activation script not found in Git Bash: Use
source .venv311/Scripts/activate - Multiple Python versions: Run with
py -3.11explicitly
AirBeatz/
├── src/
│ ├── dj_pyo.py # Main application
│ └── Trials/ # Experimental features
├── songs/ # Music tracks
├── sounds/ # Sound effects
├── requirements.txt
└── README.md
This project is licensed under the MIT License – see the LICENSE file for details.
Contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature-name) - Commit your changes
- Open a Pull Request
- Gesture-based sound effect triggers
- Multi-hand DJ support
- Advanced visualizations and GUI
🚀 With AirBeatz, your hands are the DJ — no hardware required!

