Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bowdet-0.1.0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bowdet-0.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

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

Hashes for bowdet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aa3ca6f0fd00e63dd2961c8221de85f79b82a20e8370b7a164841f1d8d6ee589
MD5 f05dd76b42ba823deacd68604a2da48e
BLAKE2b-256 c384de71b618e45b6ea61cc0608b710bd66576aa18f51860641ced4d5aa3251e

See more details on using hashes here.

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

Hashes for bowdet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f05183bf863a65c21a278896a821b4209e39d25750bc4b120e2a62376260a80f
MD5 10f6fee9d73dfe47a3b1a2cbaedd8dcd
BLAKE2b-256 f7145503549afe8c51fff7c1f77c87718b288dfbace79dd1b59ae8b8e7a8e83e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page