Seq is a very unusual *hierarchical* and *modular* sequencer designed for building songs out remixes, variations, and combinations of musical chunks. Music itself is often constructed as a hierarchy of reused and remixed elements at many levels, such as motifs, phrases, melodies, and drum patterns. Seq tries to explore the exact same notion in a sequencer.
In Seq, you create small sequences of MIDI music, step sequences, etc., then combine those sequences in different ways, then combine the combinations, and so on, until you have a full sequenced song. To combine elements you could put them in sequence (like song mode), or in different random orderings, or in parallel with different delay offsets, or in a multithreaded finite-state automaton, and so on. You can even launch them as if they were clips from a Novation Launchpad. You can take a sequence or combination and create variations of it to be used different ways at higher levels in the combination hierarchy. You can even bundle whole sequences up as a single node in the hierarchy.
Seq is open source and written in Java. It runs well on MacOS where it was developed, but should also run on Windows and Linux as well.