This application generates rhythmic loops; polyrhythms known as Euclidean rhythms. The rhythms can be sent as MIDI or OSC data to connected sound generators that will let you actually hear the rhythms. It's important to note that this application itself doesn't produce sound. Only MIDI and OSC data.
Euclidean rhythms are polyrhythms generated by a mathematical formula. What this formula does is actually quite simple: It spreads a number of pulses as evenly as possible over a length of time, where time is divided in quantisized steps.
Sometimes this is very straightforward. 4 hits divided over 16 steps gives a basic house kick pattern (x...x...x...x...)
Other combinations produce world music rhythms; 3 hits divided over 8 steps creates a Cuban Tresillo (x..x..x.), 5 over 8 a Cuban Cinquillo (x.xx.xx.). And there's so many combinations possible many rhythms will never have been used before.
The algorithm was originally written by Eric Björklund of Los Alamos National Laboratory for a nuclear process where pulses of energy had to be distributed evenly over time. Later, Godfried Toussaint of McGill University in Montreal discovered that these patterns are the same as rhythms used in traditional music all over the world.
For more information see the external links at the bottom of the page.
The main new feature in this version is OSC (Open Sound Protocol) support. The OSC functionality was written by Michael L. Heuer, who kindly offered to collaborate
In the main empty area of the application double click on the background. This creates a new default pattern.
A default pattern is 16 steps in length and has 4 played notes. On screen that's represented as the ring of 16 circles of which 4 are filled.
Drag the pattern's center circle to move it around the screen. If there's more patterns on screen a click on the center selects that pattern for editing.
Once a pattern is created or selected, it's settings are shown in the Settings panel on the right. The selected pattern displays a double centre circle.
This application generates MIDI notes and OSC messages. To hear actual sounds you'll have to connect it to some soft- or hardware that receives MIDI or OSC and translates it to audio.
Click the Play button and you'll see the pattern play: The pointer rotates to indicate the position and steps jump out to indicate they're triggered.
If you just started the application it's likely however that you won't hear any sound. You first need to have a destination where the MIDI or OSC data can be sent to.
Tip: To quickly try out some patterns choose the Java Sound Synthesizer. This is a complete bank of (fairly low quality) General MIDI (GM) sounds, so you can immediately hear sounds without having to connect anything. Channel 10 has different percussion sounds on each key (MIDI pitch).
Use the slider or text input to change the playback speed. This is measured in Beats Per Minute (BPM).
When editing patterns while they play, you will occasionally experience 'hanging notes'. This happens when a Note On message is sent to start a note, but no corresponding Note Off message is sent later to stop the note. Especially when you use a sustained sound, you will hear it continue indefinetely. Even when you stop playback.
This button sends an 'All Notes Off' MIDI message (CC #123) to all MIDI channels. Most applications and machines that receive MIDI will respond correctly and stop all playing notes.
You can save your patterns with their position and settings as a project file, which is in fact regular XML text file. A project includes the tempo in BPM as well.
To manage projects use the File menu. You'll find the familiar New, Open, Save and Save As options with their standard keyboard shortcuts.
Several settings are automatically stored and recalled the next time you open the application.
Often you will want to connect the pattern generator to a software DAW (Digital Audio Workstation) to record the MIDI data the patterns generate or to a sound generator to translate the MIDI messages into sound.
To establish a MIDI connection between two pieces of software a small utility program usually called something like MIDI Patch Cable driver is used. This acts like a virtual MIDI cable. It's inputs and outputs appear in any software's MIDI inputs and outputs.
On Windows MIDI Yoke works very well. Or at least it used to when I worked with Windows (up to XP). There seem to be issues installing on Windows Vista and 7, though solutions are offered on the MDI-Ox forum:
Mac OS X has a built-in MIDI driver called the IAC Bus (Inter-Application Communication). This is switched off by default however, so you must activate it first.
http://www.hisschemoller.com - My website, check it for updates or other projects I work on.
http://github.com/heuermh - Michael Heuer's GitHub pages.
http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf- The original article about using the Björklund algorithm for musical rhythms by Godfried Toussaint of McGill University (Montreal, Canada).
http://ruinwesen.com/blog?id=216- Interesting article on Ruin & Wesen's website with LISP example. This is where I first read about Euclidean rhythms.
The application has depends on several third party libraries:
All source files are available on GitHub under the GPL v3 license.
https://github.com/WouterHisschemoller/Euclidean-Pattern-Generator/tree/v1.1