Bow change detection for bowed string instruments
Project description
bowdet
Bow change detection for bowed string instruments
bowdet detects bow changes in audio recordings of bowed string instruments (viola, violin, cello) using deep learning.
Installation
pip install bowdet
Quick Start
from bowdet import detect
# Detect bow changes (returns list of timestamps in seconds)
bow_changes = detect("recording.wav")
print(bow_changes) # [1.23, 2.45, 3.67, ...]
Models
| Model | IoU@0.1 F1 | Speed | Size |
|---|---|---|---|
| MERT (default) | 0.616 | ~2 min/min audio | 378 MB |
| CNN | 0.554 | ~30 sec/min audio | 5 MB |
Parameters
detect(
audio_path, # path to wav file
model="mert", # "mert" or "cnn"
threshold=0.5, # peak detection threshold (0-1)
min_dist=0.35, # minimum distance between bow changes (seconds)
# decrease for fast passages (e.g. spiccato): min_dist=0.2
# increase for slow passages (e.g. long bows): min_dist=0.5
)
Weights
Weights are downloaded automatically on first use (~380 MB for MERT).
Cached at ~/.bowdet/weights/
Limitations
- Trained on 9 performers across diverse repertoire (Bach, Biber, Penderecki, Hindemith, etc.)
- Performance may degrade on playing styles significantly different from training data
- Evaluated on viola recordings; expected to generalize to violin and cello
- Designed for solo string instrument recordings; accompaniment or ensemble recordings may reduce accuracy
Citation
[paper pending]
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bowdet-0.1.0.tar.gz.
File metadata
- Download URL: bowdet-0.1.0.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa3ca6f0fd00e63dd2961c8221de85f79b82a20e8370b7a164841f1d8d6ee589
|
|
| MD5 |
f05dd76b42ba823deacd68604a2da48e
|
|
| BLAKE2b-256 |
c384de71b618e45b6ea61cc0608b710bd66576aa18f51860641ced4d5aa3251e
|
File details
Details for the file bowdet-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bowdet-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f05183bf863a65c21a278896a821b4209e39d25750bc4b120e2a62376260a80f
|
|
| MD5 |
10f6fee9d73dfe47a3b1a2cbaedd8dcd
|
|
| BLAKE2b-256 |
f7145503549afe8c51fff7c1f77c87718b288dfbace79dd1b59ae8b8e7a8e83e
|