I just released my first VST plugin! I’ve been polishing it on music jams for about an year. In this post I’ll tell some bits about euclidean drums and why I made this at all. And write a little bit of guidelines on it’s features.
Intro
As a progmetal guitar-synth player, I have a crazy pedalboard with tons of effects:

OF COURSE that thing needed a drum module. Sometimes I do drums on synth jams, and I want to be able to play guitar or Exquis at the same time as switching drums and adding fills. Of course, the result is much better when you’re a dedicated drummer with full attention, but sometimes the drummer is away, or someone puts you in charge. Anyway, it’s a lot of fun to play harmonic instrument and switch drum pattern with odd number accents and also play that on your instrument.
But the problem was that my pedalboard was eating 100% of CPU with all these effects (there are some cool things, such as separate strings processing, I’ll show that later). Being a C++ programmer, I embarked on a quest to make the most performant drum sequencer + sampler ever…
But also, sometimes I did put all attention into drum parts - I explored the market of drum sequencer and found a ton of tools I didn’t like, and a couple of tools that I liked, but with imperfections.
I found a category of sequencers, which idea I find really cool:
Euclidean Sequencers
The core idea is that you have separate tracks for each drum sample. Then, you subdivide the notes it can play into a grid. Then, you specify steps (“pulse”) and rotation:
Usually in such sequencers, you have multiple instrument tracks and they are arranged in a circular view:
The thing is that you also can change the number of steps and the speed in which it goes. That gives you an insane polyrhythm machine!
I found that thing very interesting to play with, especially when my friend played polyrhythmic arps. Any drum beat can be expressed with euclidean sequencer, and you’re able to change things up quickly without looking at the screen.
But, all existing plugins had flaws! In one, you can’t edit individual steps for some reason. The other two are ableton-only (I absolutely hate it). The third one has very cluttered UI with important functionality scattered across pages and no ability to bind MIDI quickly. And my plugin didn’t have UI…
Long story short… let’s fucking go!!! In the age of weird new technology I can just implement the UI easily and prettily, the way I think it’s best. So I did it
Temporal Array
Yesterday I finished it and put it on itch.io! And it’s amazing that somebody is actually buying it already! I just posted in on a couple of music forums. So here is a short improv with it:
Additional Convenient Concepts I Found
Permute
It’s not flawless - drum patterns generated with euclidean polyrhythms place hits to evenly, and start to sound quite similar. You can disable steps individually, byt this is too slow. I added permute parameter that deterministically shuffles things up
Dynamics
Many drum techniques feature shifting hit velocities. With hi-hats this sounds quite awesome! So here is this “dynamics” parameter.
Fills
One of the things I wanted to do is to insert fills by holding a button with foot. One way of doing it is to bind a pattern to a momentary press. I can do that on the end of the bar and that sounds like a nice drum fill, if the pattern is composed in a specific manner. I could use the same pattern to accent polyrhythms in my playing, modulating the whole rhythm section to triplets and quintuplets.
I also had an idea of automatic fill generation. Using certain algorithms it could sound a bit more unpredictable and funky:
But recently I also made automatic fill insertion, so that it can randomly change endings of patterns with fills, making it to sound more funky. Or it could shuffle every fourth repetition of the pattern (and then go back to original pattern). Or both. It sounds really nice in certain scenarios. You can see both things on the clip above.
Procedural fill algorithms can be really anything. My favourite ones are:
- odd groups - adding shifting notes towards accents of 3s and 5s
- rolling - bursts of notes are shifted between instruments every 2-4 steps (on the video)
You can select the algorithm and it’s parameters by right clicking the fill pad.
Sampling
I was surprised to not find a very simple and high performant sampler plugin on the internet as well… So I built in a zero-cost sampler into the plugin as well.
By modifying sounds a bit you still can change things up without transforming the whole vibe.
- low/high pass (not included in my plugin) - put some high pass on the whole drum track and then remove it on the drop to make it sound more intense. You can apply the cut really slowly so that it’s not noticeable that the bass is gone, and then BOOM!!!
- reverb (not included in my plugin) - very situational, but sometimes very effective. Usually needs low/high pass controls as well
- pitch (included) - drum sounds change so much if you pitch-shift them! Completely different hats or snares just by changing the pitch
- playrate (included) - very useful for all kinds of cymbals and snares. Slow the snare down and you’ll get a huge insane dubstep snare, and quick tight snare is useful for faster feel
- send - sometimes it’s necessary that one drum or note come with another. I usually trigger kick by crash cymbal. That way you can accents beginnings of bars and put polyrhythmic kicks on top of that
Grid Controllers
I find the ability to bind stuff to midi knobs really important. Also I’m missing a proper midi step sequencer, so I needed an ability to bind any grid-based instrument to show what’s currently playing and what’s enabled. For example, this one:
To set this up, go to settings and change these parameters:
Basically, you need to set the first note of your grid, and grid dimensions. Then you need to feed that output channel back to hardware midi output so that it highlights the notes. This is very easy to do in REAPER in routing menu, all other serious DAWS should support that too.
Outro
While I’m not doing it with the group this came to life (I moved to another country), it’s still used every week by my friends :) I will still be improving it in case of new ideas. Let me know if you have any!