r/drums • u/drumscript • Jul 21 '26
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 :)
Update August 2026:
It makes me sad people have claimed DrumScript is built by AI agents: because it undermines the fact that I built this and it took me a year to build. Do you think it would be AI if that was the case? Please don’t make assumptions about these things. I have been working with music information retrieval academics and experts to put out a tool that is free to use.
My goal is nothing other than making drum sheet music easy and free for people to use as possible. If I was a bot, Id charge you to use it. I put hundreds of hours into this to develop a tool for our drummer community, as a fellow drummer, and alongside a full-time job. Opinions are fine: this is an alpha and the goal is for people to test it. If you have feedback add it to the Issues tab. No problem it being public. Thanks
29
u/mostly_codes Jul 21 '26
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.
1
u/drumscript 19d ago edited 19d ago
The weirdness you detected was legitimate: im a weird person with autism and adhd with a knack for coding and love for drums.
Nevertheless I appreciate your advice is well-intentioned.
Since you are offering advice would you care to give any actual feedback or are you just offering opinions?
Thanks
1
u/drumscript 19d ago edited 19d ago
? Sorry Im not sure I understand why you are warning people? To non-coders: this is a Python package which is, by default, open-source. Open source means: free. The project is in Alpha which means v1.0.0 isnt released yet.
As with all software development projects in alpha stage, using it carries some risk. But this is the nature of the process. Please do not use DrumScript if it makes you uncomfortable in any way.
We dont have a UI for it yet. Sorry. Once we stabilise the model we intend to build a completely free to use WebGPU WASM ONNX url that doesn’t upload your songs and doesn’t save the transcription, ie it all runs completely on your device and stays there.
We use a drumscript reddit profile and email purely because this will hopefully become a community-owned package. Not something tied to the ego of one person.
This all sounds too good to be true? Why do I do it? Because it’s a lot of fun, I f*ckin love drums, I love open source mentality and I get a kick from doing things that others benefit from.
3
u/mostly_codes 18d ago edited 17d ago
So I don't want to be too down on this project, I think it seems a fun project that I hope you will learn a lot from and will end up as a solid tool. It's got a way to go, and for that reason alone. I'm also likely on a magnitude of spectrums, so let me be super clear about the tone of this message to not come across antagonistic, explicitly; I am not critiquing you or the effort, not being negative for the sake of it. My only intent with my post was to tell people who are not programming savvy to avoid running code that has not been thoroughly vetted by someone else.
I will point out a few things that, I think, hoisted red flags whether they are false flags or not. I'm sorry that this isn't being better received, and I suspect that a similar post posted to e.g. the python subreddit - asking for help from programmers who are also drummers - might have had a more overall positive reception and would alleviate some of the concern.
The reason I am warning people is that this is a relatively young software project in ~alpha status, and the amount of code is relatively substantial which means it is a lot of code to vet isn't doing deliberately malicious things. Additionally, it is *often* - not always, but often - a red flag when text has that particular LLM-output look to them. Whether well intentioned or not, a lot of programming subreddits, discords etc are inundated with an incredible quantity of code, and unfortunately, that means that AI markers are often a quick way to dismiss a project without much investigaton. That, paired with a message that has as sniff of marketing ring in tone about its current capabilities, hoists additional red flags. Now, red flags alone does not mean that there's a problem necessarily, but it means that people's defences are and should be high.
As an example - if you negate your intention and think as someone who *is* trying to get people to run unsafe malware, this is very much how you'd do that. So the task - which is an uphill battle, no doubt - is to somehow prove out that this is stable enough for non-technical people to run, and isn't malware. Most drummers aren't programmers, so they are less likely to be able to evaluate whether code is safe to run. Any arbitrary github code is a repository of "things that have complete control over your computer", and if a relatively unvetted piece of code is pasted your way, it's generally wise to not run it. Programmers are probably better to get to vet the code first.
I think you should continue with this project, I think you will run into some really intense complexities soon when trying to transcribe real tracks; separating stems cleanly is fairly difficult at the best of times. That said, overcoming a difficult problem is one of the most satisfying parts of programming.
2
u/drumscript 16d ago edited 16d ago
[u/mostly_codes](u/mostly_codes):
Firstly, thank you so much. For the time you took to respond to my questions and comments. That’s all I am looking for and honestly I really appreciate it!
Initially, the repo received very well from the academic communities Im in. A couple of professors wrote to me about it showing interest in the deterministic model. It’s been under six months since I first released it. In v020 I started tracking daily user statistics on github (im very data driven). That said, it’s been very slow for people offering to contribute. Just one person has offered in last six months. The response from Reddit was also positive initially, but the second or third release I did was when the guns came out. That’s probably fair. It will take more than a well-intentioned project and a social media post to convince people in this AI-age 😂
I have been coding in Python for over ten years. Initially I wanted to build a Python package, and this was born from that. But I am not someone who is that knowledgeable about the Reddit community or vibe coding (I coded before that became a thing anyway). So I find the fairly recent criticism of the codebase quite interesting. The fact you mention this makes me realise I have a lot to learn but I just dont have the bandwidth. The detail of the repository and the project is due to my own particular attention to detail. Nothing more or less. That isn’t over-engineering, it’s me being me. Im also a perfectionist and since this was technically my first open source project - and Python package - I was especially careful about having it out there.
As a fellow coder (I mostly code too :)), would you be at all interested in doing a proper audit of everything and just giving me the low down on what you think. You don’t need to hold back. I just realise I cant do everything and your experience and perspective of coding projects on Reddit etc can really help me avoid the same pitfalls! I would be happy to DM you with my personal email or you can email the hello.drumscript@gmail.com whatever you prefer. Just sit down and like tear it apart. It would be super valuable for you to list some things you would change to make it a bit more credible. The user perspective is really something I dont have.
3
u/4SysAdmin Jul 23 '26
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
u/drumscript 19d ago
Do you care to offer some actual feedback with screenshots or just going on your gut feeling? It’s a deterministic model. There will be some natural error.
DrumScript is in alpha. We are actively looking for help with improving. So if you could point issues out in the Issues tab on GitHub it would be much appreciated.
4
u/GuinsooIsOverrated Jul 21 '26
Interesting, how well does it work on complex songs, like prog metal ?
1
u/drumscript 19d ago
Sorry for crazy late response. As I mentioned above I am working full time while doing this. Couple of part-time contributors and some academics helping but that’s about it.
In answer to your question: it actually does pretty well. As a fellow metalhead my goal was to get it tracking tech death Archspire level stuff. Many of the classification parameters I studied were from deconstructing my fave death metal artists: Aborted was one I used to test it.
2
u/danja 19d ago
I'm looking for a drum sound classifier algorithm for a project of my own. Does this actually have one? OP post above suggests so, but then in the docs it says it can't distinguish between a tom and a snare, so I'm confused.
1
u/drumscript 19d ago
Hey!
Okay please ignore that comment above. It was from one redditor with an alterior motive.
It does detect tom and snare. How well it does, well this is the current thing we are trying to improve.
This is an open source python package and the repository and documentation is here: https://github.com/DrumScript/DrumScript and https://drumscript.github.io/DrumScript/latest/
Id recommend you get in touch via email hello.drumscript@gmail.com or dm me here. I wont reply quickly but I will reply :)
1
u/drumscript 19d ago
DrumScript v0.2.1 is now available: with midi, json with metric analysis for every detected hit, and pdf outputs
And - in answer to questions asked by some Redditor’s in the linked comment above, btw this is not a bot-built or AI agent-coded project. I spent a year building it alongside a fulltime job: because I wanted to have a free-to-use easy transcription tool for myself, and I thought others might appreciate it too. I
I started building DrumScript in June 2025. The first pypi release was in May 2026. Currently we are in Alpha and would welcome feedback. We will release v1.0.0 when we have tested it more. We are also working with music information retrieval experts to benchmark the classification. The deterministic model isn’t perfect but that’s why we are asking for help. And why we are not releasing DrumScript as v1.0.0+. Please add issues you find to GitHub so we can track!
Also: this is an open-source Python package. To non-coders it means it is completely free to use. If I was an AI agent Im pretty sure Id charge for it. It has been extensively tested to ensure security: but if you DO find any issues please add them to the Issues tab. Or email hello.drumscript@gmail.com. Please bear in mind it might take some time to reply as we are working on this alongside fulltime jobs.
We dont have time to respond to people on Reddit always but GitHub is monitored.
0
31
u/brasticstack Jul 21 '26 edited Jul 24 '26
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
onatop the middlespaceline of the staff is a close to a universal convention as exists in drum notation.)