Music Pattern Generator v2.1

MPG 2.1 screen

Music Pattern Generator is the new version of my old Euclidean Pattern Generator. Instead of Java it’s now written in JavaScript. So it runs in the browser. But if you prefer there are desktop installers for Linux, Windows and Mac as well.

Try online here:

Read: How to use Music Pattern Generator

Music Pattern Generator

Music Pattern Generator v2.1

Music Pattern Generator is a music program. It lets you create rhythm patterns to use in music, be it live performance or recorded composition.

The app doesn’t make any sound by itself. Instead it transmits MIDI messages. Other programs may receive the MIDI messages and respond to them by triggering sounds. These are not restricted to music programs like for example Ableton Live or Steinberg Cubase, but can also be hardware drum machines or samplers that are connected to the computer via a MIDI cable.

Modular structure

Music Pattern Generator is modular in structure. Complex rhythms are made by creating a network of modules. A module is called a Processor. There are three types of processors in this version of the app:

  1. The Euclidean processor generates rhythm patterns according to the Euclidean algorithm
  2. The Euclid FX processor listens to incoming notes and transforms one of their properties
  3. The Output processor receives notes and sends them out to a MIDI port

Processors have inputs, outputs or both. A network is created by connecting inputs to outputs. The most basic useful network would consist of two processors: A Euclidean processor connected to an Output.

The modular setup will make it easy to add more types of processors in future versions of the app.

MPG 2.1 overview and tutorial video

Online web app

Music Pattern Generator is firstly written as an online app that runs in the browser. This makes it easy and run the app without the need for download and installation.

It is restricted however to browsers that support Web MIDI, the JavaScript version of the MIDI protocol. These are currently the Chrome and Brave browsers, and soon Microsoft’s Edge. Firefox, Safari and Internet Explorer can’t be used.

Music Pattern Generator online:

Desktop versions

It can be convenient to have the app installed as a desktop program. For that reason I created installable versions for Linux, Mac and Windows. These are made with NW.js, which unfortunately means they are quite large, around 300MB. The reason is that NW.js packs the app together with a complete version of Chromium – the open source kernel of the Chrome browser – in a desktop program.

The Linux, Mac and Windows installers can be downloaded here:

Open source software

Music Pattern Generator is free and open source. All the source files are on GitHub:

Future development

Now that I have a first completed JavaScript version of the app I intend to continue development and add new features. I hope to release new versions more regularly.

I tried to test all features on different platforms, but I’m sure some bugs and errors must have escaped me. If you experience problems with the app or find bugs, please let me know through email or the form on the Contact page of this site.

It’s possible the bug was already found by someone else. I’ll try to keep a list of issues updated on on project’s issues list. If you have a GitHub account You can add new issues yourself.

Music made using the app

Finally, some music where I used the app for the rhythms. Especially the percussion in the second part in my opinion shows off how it’s possible to easily create complex rhythms and variations.



Hi Chris, yes on Windows you need to find and install an internal MIDI router application. MIDI Yoke is a well known one that I used in the past. An external hardware one is not needed when you only use software.

Chris Caudle,

I checked the app on Linux and was able to connect to an instance of Yoshimi soft synth. I tried on Windows and was not able to see an instance of ZynAddSub that was running. Does Windows allow the same MIDI routing as Linux, or does Windows require connecting a hardware MIDI interface to use the pattern generator?


Thanks! Yes I know, the syncing really misses. I will add a way in the next update but at the moment I’m just too busy with other things.


Thx a lot ! Great software .

The only thing I can’t make working is sync/link the clock neither internal or external.


Thanks, I have been looking for a native Euclidean pattern generator for Linux for AGES. So glad this exists. Thanks for making it open source. Brilliant.

Leave a Reply

Your email address will not be published. Required fields are marked *

sixteen − fourteen =