Two years ago I started working on Beat Maker. I thought it would take a week or two to build. Classic programmer estimate.
My goal with Beat Maker was to make the best free online drum machine on the internet. A tool that gets you going fast. Simple enough for beginners and powerful enough for serious producers. I spent a bunch of time researching existing online drum machines to figure out their issues and make sure I built something that genuinely improved on them.
Besides the standard grid based beat editor Beat Maker has some unique features:
-
Procedural sample generation. Searching through folders of samples is annoying. I wanted to improve on this so I added the ability to generate new samples with a single click, giving you an infinite supply of unique one-shot drum samples.
-
Procedural beat generation. Beat Maker can generate patterns for you as a starting point for your beat. You can then edit and tweak the beat to your liking. This is great for solving the "blank canvas" problem and giving you something good to start from.
-
Advanced export options. This is where Beat Maker really shines for producers. You can export your work as:
- A standard WAV loop
- Individual stems (ZIP)
- A MIDI file
- A ZIP file with all your samples as WAVs
- A SoundFont (.sf2) drum kit from your generated samples
- An Impulse Tracker (.it) file for use in trackers like Renoise, OpenMPT or a Polyend
-
Sample upload. Don't like the generated samples? You can import your favorite samples to use in your beats. Or mix-and-match with both generated and uploaded.
-
Pocket Operator/Volca sync. Beat Maker can output a sync signal on the left audio channel to sync with these hardware devices for perfect timing.
-
Per-Note FX. You can add effects like volume slide, repeat, and initial volume to individual notes for more complex drum phrases incorporating flam and roll.
-
Cross-device sync. You can use Beat Maker on your phone to jot down a quick idea while you're on the go. Everything is sync'ed so when you get back on your computer you can pull up the same beats, edit them, and export to your DAW.
-
Install to home-screen. Even though it's a web app, you can add Beat Maker to your homescreen on your phone and it will then launch full screen like a native app. This is handy for power users find themselves using Beat Maker on mobile a lot.
As an old school tracker guy, I'm particularly excited about the Impulse Tracker export mode. I was surprised to discover how many DAWs (including hardware like Polyend) can import this format. Of course, you can also pull up the original Impulse Tracker on DOSBox, or the more modern re-implementation, Schismtracker for that retro experience.
By the way, the procedural sample and beat generator features are not trained on any artists or anything like that. Beat Maker uses an algorithm I built from scratch myself.
Tech
Beat Maker is a client-side web app written in ClojureScript. I've been using ClojureScript for just over 10 years now and I'm all in on it. Once you get past the initial learning curve there is nothing like the developer experience of Clojure tooling, and the community is about the most warm, intelligent, and welcoming group as you can find on planet Earth.
I also think Clojure is particularly well suited to LLM driven development. Although it's less represented in the training data, you can make up for that with good context. It's a concise, logical, and easily validated language that puts particular emphasis on the tight feedback loops using the REPL. These are all properties that play into the strengths of LLMs. You're much less likely to get a difficult to maintain ball of spaghetti from an LLM using Clojure, than you are from other languages.
The audio engine is built on a declarative audio graph using virtual-audio-graph
, inspired by React's virtual DOM diffing paradigm. That makes managing the Web Audio API much cleaner. If you're building web based audio apps I highly recommend checking out this library.
I'd love for you to try out Beat Maker and let me know what you think. Every bit of feedback is useful and helps me craft a better drum machine.
You can check out the Beat Maker online drum machine on dopeloop.ai.