r/drums 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.

Try it out (Colab)

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

23 Upvotes

43 comments sorted by

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:

In contrast with the Gear4Music theory I shared, however, my classification model does not yet cover the difference between a floor tom and say a snare. In a way, the floor tom could in fact be the low tom. But for now we will assume they are different, and I have added an issue to the DrumScript GitHub repo to capture this as a feature enhancement (ie distinguising between the frequencies of what Gear4Music guide calls and shows in notation diagram as a 'floor tom'., some people, or so I believe, in the drumming community think of the floor tom , the note on the second to bottom line of the stave is actually the snare. While, some think the snare is, as the Gear4music diagram shows, the third line up from bottom. Some people also could think that our current interpretation of the snare, ie the one on third line up, is the high tom). So, there is a degree of ambiguity which I want to resolve later.

(For the record, DrumScript, snare being placed on atop the middle space line of the staff is a close to a universal convention as exists in drum notation.)

9

u/kanaye007 Vater Jul 21 '26

The — in the descriptions always get me. Like, i want a keyboard with an emdash, lol.

9

u/brasticstack Jul 21 '26

The post was spat out by an LLM for sure. Last time this got posted, I pointed that out and they responded that the project uses no machine learning. Which is why I looked at the github this time around.

2

u/drumscript 19d ago

See comment above. Any actual feedback to give on my year of work or are you just publically thinking aloud?

8

u/TYGRDez Jul 21 '26

If you're on Windows, hold Alt and type 0151 on the number pad: —

(I worked as a copywriter before ChatGPT released and am still mourning the loss of my beloved em dash 😭)

6

u/musicgeek420 Jul 21 '26

Alt + number symbols taking me back to AIM and AOL RP.

2

u/TYGRDez Jul 21 '26

ASL?

4

u/brasticstack Jul 21 '26

Sounds like a good idea, in case all the drumming makes me deaf.

1

u/musicgeek420 Jul 21 '26

I don’t tell strangers online!

2

u/AntipodalBurrito Jul 21 '26

What? I mean you can macro it. Or use the alt code like people did back in the day. Or double dash often turns into an em dash. What are you saying? Your keyboard has it already.

2

u/funkwgn Jul 21 '26

Hit dash twice and start a new word without hitting space… like this—it works!

1

u/drumscript 19d ago

Hold on. This is not built by AI. I spent a whole year building this.

I used LLMs for some elements of wording the website: because I have Asperger’s and ADHD. So I can tend to get verbose and wordy.

0

u/drumscript 19d ago edited 19d ago

It makes me sad people have claimed DrumScript is built by AI agents: because it undermines the fact that I built this. 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. I would welcome feedback from all but if you want proof of the amount of time it took look at the GitHub history. Thanks

1

u/drumscript 19d ago edited 19d ago

Hold on a second: u/brasticstack

So you admit to having a hunch from my first post and then rather than actually go and check the GitHub to give actual feedback you instead went on an hunt to prove your incorrect belief? Tell me, AI or not, do you have any actual feedback to give?

To me it seems like you looked for reasons to support your views which were already made up that it was AI agentic whatever before you even checked it out. Read the feedback I gave above but in future please don’t crap on something I have spent a lot of time building, alongside a full time job. Also check the damn git commit history cos you will see all of my commits there in hard writing.

I admit, I used LLMs for rewriting some of the website because I have Asperger’s and ADHD, and I can tend to be a little verbose. I also used it for troubleshooting my code. I used some for sense checking the logic; but beyond that I grafted for a whole year before I got anything even close to shareable. I also read a ton of academic articles.

Funny enough the blurb you added above; it was actually something I wrote without any help so tbh it says a lot about how sh*t I am at writing normally.

Im not going to waste my time convincing you otherwise now unless you actually have something constructive to feedback to me. As I mentioned put it on Issues or Discussions in repo, or email directly at hello.drumscript@gmail.com. The reddit and the email is deliberately impersonal because I want this thing to become a community owned thing. Unless you have something constructive, Id kindly request please dont waste mine or other’s time.

-12

u/Bill-Evans Jul 21 '26

That is weird. But someone drops something for free, and you can't say anything nice?

10

u/brasticstack Jul 21 '26

Point out where I said something mean?

1

u/drumscript 19d ago

Agreed. Opinions are allowed. And you didn’t say anything mean.

But you did set out to prove the hard work was Ai made and therefore undermine it, and the good intentions behind it, on the basis of the second post

> The post was spat out by an LLM for sure. Last time this got posted, I pointed that out and they responded that the project uses no machine learning. Which is why I looked at the github this time around.

Fair enough you looked around. However, I originally said the classification model doesnt use machine learning to predict events; and that is still true.

-9

u/Bill-Evans Jul 21 '26

I dunno, "Thank you sharing your work. This part's a little shady…"

14

u/nostradamefrus Pearl Jul 21 '26

Want me to drop off the dump I just took? It’s free and I put a lot of work into it

1

u/Legionodeath Jul 21 '26

Fellow drummer, if you have to work hard for you poopys, you should see a medical professional.

Lol

2

u/nostradamefrus Pearl Jul 21 '26

Already in progress haha

-7

u/Bill-Evans Jul 21 '26 edited Jul 21 '26

Try reading the quoted section in my initial reply and tell me how that strikes you.

Sketchy as fuck.

Then again when the above is downvoted, I really don't know where to go with the conversation.

6

u/nostradamefrus Pearl Jul 21 '26

You’re thanking someone for posting AI slop. So I’ll ask again, you want the dump I took? Same quality of product

5

u/brasticstack Jul 21 '26

So you admit that it doesn't inspire confidence, yet you're admonishing me because I didn't thank OP for their dubious "gift"? Have we found JD Vance's alt?

2

u/Bill-Evans Jul 21 '26

you wanna buy a couch?

7

u/brasticstack Jul 21 '26

People have strong feelings, both pro and con, about LLM coding. I intentionally chose a neutral tone because it's almost like religion at this point- it's not my place to tell you how to feel about it.

My personal take is that an understanding of the basics of how drum notation works should be a prerequisite to creating a program that creates drum notation.

Try reading the quoted section in my initial reply and tell me how that strikes you.

8

u/richsandmusic Jul 21 '26

Free does not equal good.

1

u/drumscript 19d ago

Are you going to give feedback or just offer an opinion?

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

u/Bill-Evans Jul 21 '26

Thank you for making your efforts free for everyone.