All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Live playback on the terminal: Mezzo compositions can now be played back live from the terminal using an external midi synthesiser (e.g. SimpleSynth) and Euterpea.
- Empty cadences: you can use
end
as a cadential phrase to compose a chord progression without a cadence. - Score transformation: you can use the functions such as
delay
andtranspose
to manipulate music at the MIDI track level. While this allows for more flexibility, composition ofScore
s is not rule-checked, so there is no static guarantee that the resulting music will sound good.
- The melody constructor
play
has been renamed tostart
.
- Readme typos and rule set changes in examples.
- Clashes with Prelude's
min
function.
- Chord progressions: create chord progressions following the conventions of functional harmony.
- Dyads: 2-note chords (thirds, fourths, fifths and octaves), together with their doubled versions.
- Scores: break up a piece into sections that can be compiled and combined separately, and specify various attributes of the music, such as tempo, title, key and time signature.
- Triplets: play three notes in the time of two.
- Rule sets: customise the musical rules checked by the library. Includes three strictness levels, from no rule-checking to strict counterpoint.
- Several small and large examples.
- Better error messages, showing the pitches that cause errors.
- Faster rule-checking performance.
Initial Hackage release.