MAIDENS 1.4: Atonal Harmony Generator, configuration and generated music

The Atonal Harmony Generator

What It Is

This is a module dedicated to synthesizing free atonal, homophonic chorals.

What It Does

The module mixes stochastic procedures with chord progression algorithms to make melodic, rhythmic and harmonic decisions that yield homorhythmic textures, which are stylistically valid in the atonal realm.

Implementation Summary

The Atonal Harmony Generator operates in two stages. It first builds a list of possible chords using stochastic means, and then employs deterministic processes to segregate/arrange the best of them as part of an harmonic progression.

Configuration Parameters

A significant share of the processes employed by Atonal Harmony are non-deterministic. As a direct consequence, there will be situations where musical output does not seem to reflect the current configuration (if not defy it, altogether). You must consider the results statistically, and only amend the configuration when several chorals generated by the same set of parameters fail to meet your expectations.

Atonal Harmony uses 8 configuration parameters, which are described below.

Harmonic Ranks

A harmonic rank is a group of semantically related harmonic intervals. Available flavors range from most consonant (thirds and sixths) to most dissonant (seconds and sevenths). Weigh out the harmonic ranks you want the program to consider using. Note that perfect octaves (doubling) will be employed automatically, whenever they seem fit.


The rhythmic durations you want the program to consider using, along with their weights. There are no sixteenths in this table as they only serve polyphonic textures or sung lyrics, which are neither provided by this module.

Lowest Permitted Note

The lowest pitched note that should ever be allowed in the resulting choral, as a MIDI note number. For example, middle C is 60 in MIDI; the E of the bass operatic voice is 40.

Highest Permitted Note

The highest pitched note that should ever be allowed in the resulting choral, as a MIDI note number. For example, middle C is 60 in MIDI; the C of the coloratura soprano operatic voice is 84.

Analysis Window

Chord progressions are carried out considering (among other factors) the already existing material. This controls how many chords to observe prior to the current one.

Deterministics Strength

This parameter is related to Analysis Window. Controls how important rules are in any decision-making where randomness is also a factor.

Use Seeded Randomness

Whether to use a species of pseudo-randomness that produces consequential results (based on a given value, referred to as a seed). Useful for testing.

Seed Number

The value to base seeded randomness on (if employed).

What o Use It For

You use the Atonal Harmony Generator to synthesize free atonalhomorhythmic textures. Statistically, generated progressions are good enough to serve as a starting point for non-thematic surfaces, or as raw material for background harmonic sequences.

Note: the complete list of pending bugs, features and epics is available in Jira.

Search Documentation

Hint: use the browser's search feature to search within results (use Ctrl+F on Windows or  ⌘+F on macOs).