Audet is an open-source tool that detects tempo (BPM), musical key, mood, and genre of your audio files using librosa
and Essentia
. It supports Camelot/DJ key notation, batch analysis, waveform previews, and drag-and-drop GUI — making it the ideal analyzer for DJs, producers, and audio engineers.
- 🎼 Key Detection (Major/Minor + Confidence)
- 💽 DJ Camelot Notation (e.g., 8A, 9B)
- 🎵 Tempo Detection (BPM)
- 🎯 Key Change Detection over time
- 🎨 Mood Estimation (Energetic, Calm, Sad, Dark)
- 🎸 Genre Classification (Electronic, Ambient, Rock, Other)
- 📊 Energy Level Analysis throughout the track
- 🥁 Beat Grid Analysis with quantization detection
- 📂 Batch Analysis of Folders
- 🖱️ GUI with Drag & Drop support
- 🌊 Waveform Plot Export (PNG)
- 🔀 Harmonic Mixing Suggestions
- 🎯 Mix Compatibility Analysis between tracks
- 📋 Smart Playlist Generation with mood-based sorting
- 📊 Detailed Analysis Reports (HTML/JSON)
- 📈 Interactive Visualizations of key changes and energy levels
pip install librosa matplotlib essentia tkinterdnd2
⚠️ essentia
may require additional setup. See Essentia install guide.
python audet.py <yourfile.mp3|wav>
python audet.py /path/to/folder
Just run:
python audet_gui.py
The GUI provides three main tabs:
-
Analysis Tab
- Drag and drop audio files or folders
- View detailed analysis results
- Export HTML/JSON reports
- View waveform visualizations
-
Playlist Generator
- Add multiple tracks
- Select target mood
- Generate optimized playlists
- View transition scores
-
Mix Compatibility
- Compare two tracks
- Analyze tempo, key, and energy compatibility
- Get overall mix score
Analyzing: Echoes.wav
Estimated Tempo: 127.84 BPM
Estimated Key: F minor (Confidence: 0.93, Camelot: 4A)
Primary Mood: energetic
Genre: electronic
Key Changes: 3 detected
Also creates:
Echoes.wav_waveform.png
— waveform visualizationEchoes.wav_report.html
— detailed analysis reportanalysis.json
— detailed analysis dataanalysis.csv
— summary in spreadsheet format
The HTML report includes:
- Basic track information
- Key changes over time (interactive chart)
- Mood analysis (radar chart)
- Energy levels throughout the track
- Beat grid analysis
- Genre classification
- Tempo + Key detection
- Camelot notation support
- Folder batch processing
- GUI frontend with drag & drop
- Waveform export
- Harmonic mixing hints
- Key changes over time
- Mood detection
- Genre classification
- Mix compatibility analysis
- Smart playlist generation
- Upload to Mixcloud/Spotify crates (future)
- Real-time analysis during playback
- Advanced beat matching suggestions
- Fork this repo
- Make changes
- Submit PR
All improvements to audio analysis, UI/UX, or ML mood modeling are welcome!
MIT