tidalcycles.org
Tidal Cycles is a free/open-source live coding environment for making algorithmic patterns, written in Haskell. It uses SuperCollider for synthesis and MIDI and includes notation for rhythmic sequences with patterning functions. By default sound is made with the SuperDirt synth/sampler, and other synths can be controlled with OSC or MIDI.