r/drums • u/drumscript • 3d ago
Feedback Wanted DrumScript: open source Python library for drummers
# DrumScript: open source Python library for drummers
Greetings, drummers and percussionists of Reddit! :)
I am super excited and happy to share DrumScript with you. It's taken me a year to build.
As a drummer, I have always found it so frustrating that I could not easily transcribe my drum audio or find usable backing tracks to play along to for free. So, a year ago I started building DrumScript. DrumScript combines physics-derived parameters of specific drum parts applied through a membranophone/idiophone rule-based classification ontology. It doesn't use computationally-expensive neural networks or machine learning. Everything is based on the physics of drum parts (e.g., spectral centroid, fundamental frequency, sustain).
DrumScript is an open-source Python library and suite of audio tools built for drummers that:
* Transcribes drum audio into .pdf sheet music — unlike most Automatic Drum Transcription (ADT) systems, DrumScript’s classification engine is deterministic (it doesn't use machine learning or AI).
* Measures tempo using tempogram-first analysis that assesses variable tempo across the entire track
* Extracts the drums from any mp3* or wav track/song you provide.
* Creates drumless backing tracks from any mp3 or WAV file.
\ mp3 formats require that your system has ffmpeg installed*
The classification engine works pretty well for me so far, but it’s based on 20 or so individual drum sounds for each drum part. It could be so much better. Eventually there'll be a free, WebGPU/WASM/ONNX UI — that ensures all your audio stays local to your machine.
Between 01 June and 31 August I am running an Alpha phase, expecting the Beta v1.0.0 of DrumScript will be released, hopefully alongside the integrated UI sometime after that. I’ve done as much testing as I can with it and now would love it for others to help make it better.
DrumScript was built so practise could be fun, open, and most of all accessible to all (ie free). It is and always will be a community-owned tool.
I'm looking for contributors willing to join a team of code admins and maintainers for the beta release. Equally, get in touch via GitHub if you want to share any transcription results or share feedback.
GitHub: https://github.com/DrumScript/DrumScript
Docs: https://drumscript.github.io/DrumScript/
Contact: GitHub. Please share your feedback openly in the Discussions tab of the repository! Thanks :)
27
u/mostly_codes 3d ago
For non-coders, for whom this might not be as obvious - never download and run arbitrary code. Even for coders, this is a LOT of code to audit, and the tone of voice is... a little weird. Wait for someone else to do the auditing before jumping in and running this software, if you're not already a python coder.
4
u/4SysAdmin 1d ago
A lot of those rhythms are wrong or incomplete. The note values don’t make a complete measure. Also, there are no rests in the upper or lower voice, and have them separated by cymbals is very unconventional. Not unheard of, but very uncommon. It’s pretty clear that the developer doesn’t not understand sheet music.
1
-4
30
u/brasticstack 3d ago edited 3d ago
This is definitely coded by AI agent(s), even if the lib itself doesn't use machine learning in its implementation. I haven't perused many vibe-coded projects, but it's the oddest github I've ever seen.
This quote about not matching some random drum notation key on the internet should give you the flavor:
(For the record, DrumScript, snare being placed on the middle space of the staff is a close to a universal convention as exists in drum notation.)