Validation balanced accuracy
400 validation clips
A machine-learning model identifies how a guitar is being played from compact audio windows, using MFCC, RMS energy, zero-crossing rate, and spectral features.
No WAV uploaded
The baseline logistic-regression model is trained on session metadata splits and evaluated on a held-out recording session.
400 validation clips
428 held-out test clips
16 kHz mono features
| actual / predicted | background | chords | palm muted | single note |
|---|---|---|---|---|
| background | 118 | 1 | 1 | 0 |
| chords | 1 | 89 | 3 | 8 |
| palm muted | 0 | 2 | 86 | 11 |
| single note | 2 | 5 | 10 | 91 |

From recordings to predictions, each step is reproducible from the repository scripts.
Split raw WAV sessions into one-second clips with metadata-controlled splits.
Flag silence, clipping, duration drift, duplicate clips, and amplitude outliers.
Resample to 16 kHz mono, then compute MFCC, RMS, zero-crossing, and spectral features.
Run the balanced logistic-regression classifier and return label probabilities.
The repository includes a live prediction script for a guitar interface on macOS.
$ python3 src/live_predict.py --device 3 --channels 1
single_note confidence=0.82 rms=0.04123 peak=0.512
single_note: 0.82 | palm_muted: 0.10 | chords: 0.06 | background: 0.02