
This is the final version of the Euclidean Pattern Generator as a Java desktop application. I built this version five years ago, but never quite finished it. Now I want to get it out of the way to make a fresh start with a new online Javascript Euclidean patterns app that runs in the browser.
New in this last Java version is MIDI note triggering of patterns. That means individual patterns can be started and stopped by external MIDI Note On and Note Off messages. A drawback of earlier versions was that all patterns always played. There was just one button to start or stop all of them. I wanted to control patterns individually so that I could more easily make some sort of song arrangement.
I decided that the easiest way to do this was to rely on an external MIDI sequencer to create the arrangement with, and to have it interface with the Euclidean Patterns app through MIDI notes. That saved me the work of building an internal song mode, which would never have been as user friendly and full featured as existing MIDI sequencers like Ableton Live or Cubase.
Triggering patterns with MIDI notes
To use the new feature a few steps must be taken to set things up.
First some preferences must be set. This can be done by opening the preferences panel with the button in the header bar or from the Edit menu. In the Preferences panel:
- Tick the ‘MIDI In’ checkbox and select a MIDI input port from the dropdown next to it. Now the app can receive external MIDI.
- Tick the ‘Trigger by MIDI note’ checkbox under the dropdown. This lets the app listen to MIDI Note On and Note Off messages.

Preferences panel
That’s it for the preferences, the panel can be closed.
If you have selected a pattern in the window’s main area, or create one by double clicking on the area’s background, you’ll see a ‘MIDI In’ section in the Settings panel on the right. Here the settings for individual patterns can be changed:
- Tick the ‘Trigger by Note On / Off’ checkbox to bring the pattern under external note control. This makes it possible to have that pattern triggered by external notes while others run continuously.
- Use the sliders to select a MIDI channel and note pitch. The pattern will be controlled by MIDI notes on that channel with that specific pitch. This way it’s possible to control 128 different patterns on just one MIDI channel!

MIDI in settings
To graphically indicate that the pattern is triggered by MIDI notes you will notice that the shape of the pattern’s pointer has changed. Instead of a triangle it’s a diamond type of shape. Initially the pointer is short, just like when a pattern is muted. When a Note On message is received it the pointer will change to full length to indicate the pattern plays, until it’s followed by a Note Off message.

Pattern pointers
Using the new pattern trigger feature
I’ve tested the MIDI note control with Ableton Live.
On one MIDI track one clip holds the whole arrangement. It contains all the MIDI notes that start and stop the patterns. So the clip is in fact a six minute long song arrangement. The track sends its MIDI messages on channel 1 to the Euclidean Pattern Generator.

Ableton MIDI clip
In the Euclidean Pattern Generator all patterns are set to listen to channel 1, but each pattern is triggered by a different pitch.
The rhythms that are generated by the Euclidean patterns in the app are also MIDI notes. They are sent back to Ableton Live on different MIDI channels. The MIDI channels trigger instruments on various tracks within Ableton live.
So in a way you could see the Euclidean Pattern Generator used here as an external MIDI effect for Ableton Live: It receives MIDI data, processes it and sends the resulting data back to Ableton. Much like an insert effect on a mixer would, but with MIDI data instead of audio.
Here’s the result of the test, a completed track on SoundCloud:
Download the application
The Euclidean Pattern Generator is free and open source. Download the Java JAR file here or, if you’ll run it on a Mac, an APP application bundle.
Download zipped Java jar file.
Download zipped Mac app file.
The source files are available on GitHub, where you can also find older versions by using the repository’s tags.
Euclidean Pattern Generator 1.2 repository on GitHub
As it’s written in Java, it requires the Java Runtime Environment to be installed on your computer. If you haven’t already, the app should ask you to do so. On my Macbook running OS X 1.11 (El Capitan) I had to downgrade to an older JRE version.
I hope you can run the app successfully, and if not please let me know in the comments or through the Contact page.
Leave a Reply