Show HN: I built a website for sharing drum patterns
179 comments
·March 23, 2025sarreph
This kinda reminds me of Funklet[0] that Jack Stratton (Vulfpeck) + Rob Stenson made a long time ago... A true gem if you're into funk + like midi drums.
wesz
Woah, thank you for this! It's pure gold:)
metalman
thats all right messing with the back beat, and drum sounds, and whatever the reverse signal thing is vera extra funky
flakes
Please allow triplets! You're missing out big without a basic shuffle! I also second the other comments about ordering. Cymbals on top, snare and toms in middle, bass and other pedals on the bottom. e.g.
hh |x-x-x-x-x-x-x-x-|
S |----o-------o---|
B |o-------o-o-----|
wesz
Is order CH, OH, CY, CB, MA, CL, HC, MC, LC, SD, BD, AC fine or need any other adjustments?
There will be support for triples, soooon.
flakes
Some other ideas:
- 2 bar patterns would also be great. Many patterns repeat over 8 quarters.
- Allowing accents (dynamics). A lot of drum patterns involve just a few drums, where accents are what bring the pattern to life.
With accents and triplets, you can have the Purdie shuffle [1], which is one of my favorite patterns ever :)
:[1] https://tomtommag.com/wp-content/uploads/2011/10/Purdie-Shuf...
wesz
Could you provide some kind of mockups of different bar patterns you would like to see implemented?
unnamed76ri
I’ve never seen a drum pattern setup where the kick and snare are at the top.
Usually from bottom to top it is something like: Kick, Snare, hihat, toms, various cymbals
wesz
Just reversed it. Check it out.
nxpnsv
I guess you could make a 3x16 pattern but interpret it as a 4x12, so each beat is three steps...
badmintonbaseba
They don't roll over to the next 16 on playback automatically, which makes this very awkward.
chaosprint
I would be happy to port some patterns to Glicol (https://glicol.org/)
only suggestion: support https...
phyzix5761
Honest question. What is the current obsession with https for things that don't need to be secure like looking at drum patterns?
lemax
ISPs / other middlemen can monitor and modify unencrypted traffic. In Egypt, Syria and Turkey for example ISP’s injected malware into unencrypted sites that led people to install spyware when attempting to download legitimate programs (link). Other state actors have changed the content of news media, etc. Without HTTPS you lose the ability to trust the integrity of a given webpage.
https://www.bitdefender.com/en-us/blog/hotforsecurity/turkis...
ctxc
I would rather everyone use HTTPS than have them individually decide if it "needs to be secure".
phyzix5761
Why is that?
jtafurth
I worked for an authority that issued digital certificates for SSL and digital signatures. It's not only about providing encryption but also about trust, when a top level entity issues a SSL certificate, a number of identity validations are carried out, adding an extra layer or confidence on that website.
This may seem inconsequential for static websites without PII, however most browsers consider it important as it reduces the risk for all parties involved when encrypted communication is used and the content providers has taken basic steps for Identity verification.
There are logic flaws with this approach to security imo, but it's the most commonly used technique at the moment.
sergiotapia
you didn't answer the _why do we need all that for a drum beat making website_?
whstl
For me: wi-fi and mobile providers injecting ads. Rarer these days but still happens.
webprofusion
Chrome labelled sites as Not Secure if they didn't user https since 2018. Most people didn't like that label showing on their website address, so it was a clever way to shift everyone.
Years before that the free certificate authority Let's Encrypt was established (there are now several more), so for most people using https with your website is just configuration, not an extra cost. On top of that some http protocol versions are now https only.
pbreit
That ship has sailed. http has been retired.
bigstrat2003
It hasn't been retired. Using HTTPS everywhere is cargo cult nonsense. Most sites do not benefit from it, and the push to have it everywhere is obnoxious as hell.
pacifika
Interest based advertising.
CPLX
Browsers seem to lose their mind when presented with not HTTPS content these days right?
hirako2000
Perhaps they shouldn't but that forced the hands of many who would have otherwise dragged their feet for another century.
I get bothered by it, Chrome doesn't even allow to confirm and proceed at the boom of the warning page anymore, but there is some flag you may disable if you feel safe about all your visits.
Hopefully Google will start flagging ipv4 servers too. And one day block them by default.
phyzix5761
Exactly
dr_kiszonka
Hi! I was very confused about Glycol until I discovered that the desktop version of your site shows way more information than the mobile one. At least in Chrome for Android, you can only select demos to play and click the GitHub link. And GitHub recommends visiting glicol.org, so why do so many people rave about Glycol? Now I know :)
I was wondering if you would be adding any IDE-like features. I like a few features in Sonic-Pi and noticed a few attempts to make a VS Code plugin for it. (I wish I could contribute myself, but my music production skills are atrocious and I mostly rely on GUI-based software to carry me.)
Congrats on an awesome project! (And you, OP, too!)
chaosprint
there is also a cli:
dr_kiszonka
You are not an IDE person, are you? : ) Sonic's default one has a few very useful features. Although, I personally don't like its keyboard shortcuts and they don't seem to be editable.
michaelmior
Very cool! Reminds me a bit of this visualizer I built a few years ago.
adentranter
This is actually really cool way to show it.
Love it.
bqmjjx0kac
Nice work! It might be nice to hint to iOS users that they should disable silent mode via the little side toggle if they want to hear anything. Just a quirk of iOS that took me literally years to figure out -- I assumed it just didn't support the Web Audio API and went on with my life.
donbrae
Or as the developer you can play some silent audio in the background via an `<audio>` element: https://github.com/donbrae/onscreen-piano-keyboard/blob/main.... This will ensure the Web Audio API produces sound even with the ‘silent’ switch active.
matteason
I hit this on https://ambiph.one - my solution ended up being similar (use an <audio> element) but because I also wanted audio to play in the background and when the screen is off there's an extra step of tricking Safari into thinking it's playing a livestream, since apparently that's the only kind of audio Apple thinks should be allowed to play in the background.
Coincidentally someone asked me about this the other day so I put together a minimal demo here in case it's useful to anyone: https://codepen.io/matteason/pen/VYwdzVV
wesz
Interesting, i already do something similar and never had a chance to check if it really works. Here is my code:
var buffer = dm.audio.createBuffer(1, 1, dm.samplerate); var source = dm.audio.createBufferSource();
source.buffer = buffer; source.connect(dm.audio.destination);
if (source.start) { source.start(0); } else { source.noteOn(0); }
jaflo
I believe you need to use the audio element specifically. The Web Audio API is subject to different restrictions than the audio element. I used a similar approach on Audjust: https://www.audjust.com/blog/unmute-web-audio-on-ios/
(nice site you created btw! I love seeing audio stuff for the web)
MomsAVoxell
Do you mean the hardware slide toggle? I’m on an iPad on iOS and I can’t get sound working, no matter what. My iPad doesn’t have a mute toggle.
bqmjjx0kac
Yes, exactly. This is on an iPhone, to be clear. Maybe the control center on iPads has an equivalent software toggle? Sorry, that probably isn't very helpful.
moritzwarhier
Thanks, I fiddled with the volume and would have given up without your advice.
And this web app is indeed very cool. Enviable idea & execution!
omneity
This is amazing! Please consider adding PWA support so it can be installed as a mobile app.
It’s super easy, just a manifest.json file to add which you can generate here [0].
Also are you considering adding more drumkits? Or maybe allow a user to set their own samples (stored locally, just for themselves) like you can change the header color in HN.
wesz
No problem, just added PWA to my todo list.
Regarding the different drum kits, this is actually on the top of todo list, right know i'm working on Yamaha RX5 and Oberhiem DMX. They should be available in a day or two. Any drum machines you recommend?
omneity
Thanks! I’m a fan of 8-bit synthesizers but also classics like the Roland TR series (707, 808, 909, 08, 09)
spoonfeeder006
https://drumpatterns.onether.com/doofusbeatz666s-yowzah-2/
Ohhh yeah baby, this hits!
wesz
That's dope!
wesz
New stuff!
- Fixed another thing with desync between audio and visual
- Hi-Hat choking - when open and closed hat are placed on the same beat, the open hat is ignored and closed one is played on two channels as shorter note
- You can now hold mouse down to paint pattern
- Clicking on instrument label besides changing some instruments should also play a sound
- Fixed cymbal spelling
- Added clear and delete pattern buttons in "Create" mode
- Ability to paste text (CTRL+V) representation in "Create" mode, it doesn't have to be the full list of instruments, but the pasted pattern should have 16 beats, here is the example:
CH X-X-X-XXX-XXX-XX
SD ---X-XX-----XXX-
BD XX------XX------
AC X-XX--X-X-X-X-X-
jader201
Nice site!
One bit of feedback I don’t see mentioned. This may be an iPhone thing, but my experience is that the visuals are about a quarter beat ahead of the audio (at 60 BPM, so about 200-250ms off).
Not a big deal, but definitely enough to make it feel a bit off.
Again, could be just the nature of audio in Safari on iPhone.
wesz
I think i can see it now too. I see a couple of things that can cause this, here are 3 solutions, could you check them out and see if it's any better? My best bet is on the third link.
http://drumpatterns.onether.com/?audio=1 http://drumpatterns.onether.com/?audio=2 http://drumpatterns.onether.com/?audio=3 <- check this one out first
padenot
Hi, https://blog.paul.cx/post/audio-video-synchronization-with-t... (I'm the author) will have some info about what is happenning and what to do.
You're out of luck on Safari because it seems that the important APIs aren't implemented yet: https://developer.mozilla.org/en-US/docs/Web/API/AudioContex... (scroll down). This means this cannot be made correct, e.g. there will always be a desynchronization when using high latency audio output devices such as anything wireless. Their handhelds (on which non Safari is not allowed) and their MacBooks, in wired/built-in speaker mode have excellent latency figures and we can get away with not doing anything explicit there, granted the audio is not happening somehow before the visuals, that is jarring for a human. A bit late is a lot more natural if it can't be exact.
lmk if you need further details on tight synchronization of real time audio and visuals, padenot@mozilla.com, happy to help, and congratulations on the delightful websites!
wesz
Thanks, sent you an email.
ozornin
Yes, I experience the same on desktop Safari.
wesz
Maybe this helps? http://drumpatterns.onether.com/?audio=3
codedokode
I hate such sites. You open it to play for a minute and hours get lost.
Also, when creating a new variation, a blank pattern is created. It would be cool if I could copy one of previous patterns and modify it instead of recreating it from scratch.
Also, drums seem to not be balanced perfectly - in some patterns, when several sounds are playing simultaneously I cannot hear all of them. Are some drums too loud or is it a problem with me maybe?
wesz
That makes sense, will fix that. Regarding the balance of the sound i've also experienced that, not sure if it's sample pack i've used or something else, will investigate that.
tttym
Nice enjoyed playing with it. How long did it take you to write it? I have been involved in a couple of simmilar projects and I was surprised how much It took us, (we used TypeScript) on Next.js
wesz
Everything took probably around 3-4 weeks, but it was spread around a couple of months. I wrote custom web crawler for web archived 808.pixll.de, pattern extraction tool from crawled data. Then i worked on the pattern player and finally started working on the website. Originally i planned to write website from the scratch, but in the end i decided to use WordPress. I have too much side projects already:)
dmje
I really, really liked that you use WordPress - in my opinion it's a hugely overlooked platform for making really solid products / software. I've built a bunch of dashboards, SaaS tools and other things - once you understand the templating it's so easy to knock out stuff. Nice work!
_spduchamp
Anyone here doing rhythm work without sequencers?
I've been noodling with a side project for a couple years trying to figure out how to replicate folk drumming patterns by adding LFOs together and doing beats at the zero crossing. My aim is to create drumming patterns that can flow and evolve. Results are so-so. I cant seem to find much info on other doing this sort of thing.
rrherr
Check out "African Polyphony and Polyrhythm", a presentation by Chris Ford at Strange Loop 2016. He uses Clojure to model traditional central African drumming patterns with variations.
scarecrowbob
I'd think that the problem with LFOs is that they don't make it easy to think about rhythm- they are tied to specific times. So it's a hard tool for that kind of work.
I've been enjoying tools like "euclidian rhythms" where you have a variety of sounds that all have a fundamental division of beat that they share but have differing numbers of beats-per-bar. I have a squarp pyramid sequencer that implements that quite well.
You might look in that direction if you haven't already.
Originally started as a project to restore patterns from now defunct website 808.pixll.de just for myself, but eventually i decided to share it with others. I've seen this website mentioned a couple of times on HN:)
Currently it only supports Roland TR-808, but there will be more.