|
1 | 1 | # Subsequence |
2 | 2 |
|
3 | | -**A Stateful Algorithmic MIDI Sequencer for Python.** Subsequence is a generative engine for your studio. Engineered for rock-solid timing and efficiency, it uses cognitive harmony (chord progressions that follow how listeners expect music to move) and stateful patterns to drive your hardware synths and VSTs. It gives you a palette of algorithmic building blocks - Euclidean rhythms, cellular automata, L-systems, Markov chains-and a stateful engine that lets them interact and evolve over time. It is designed for **the musician who wants to build compositions that surprise them** - where patterns combine, react to context, and develop in ways that reward exploration. |
| 3 | +**A Stateful Algorithmic MIDI Sequencer for Python.** Subsequence is a professional-grade generative MIDI sequencer and algorithmic composition engine for your studio. Engineered for rock-solid timing and efficiency, it uses cognitive harmony (chord progressions that follow how listeners expect music to move) and stateful patterns to drive your hardware synths and VSTs. It gives you a palette of advanced algorithmic building blocks - Euclidean rhythm generators, cellular automata, L-systems, Markov chains-and a stateful engine that lets them interact and evolve over time. It is designed for **the professional musician who wants to build generative music that surprises them** - where patterns combine, react to context, and develop in ways that reward exploration. |
4 | 4 |
|
5 | 5 | Unlike tools that loop a fixed pattern forever, Subsequence rebuilds every pattern fresh before each cycle, granting macro-level structural control and narrative evolution. Each rebuild has full context - the current chord, the composition section, the cycle count, shared data from other patterns. A Euclidean rhythm can thin itself as tension builds; a cellular automaton can seed from the harmony. |
6 | 6 |
|
7 | | -Use your own gear. Subsequence provides the logic; your Eurorack, Elektron boxes, or DAW provide the sound. There are no fixed limits on complexity or length. |
| 7 | +Use your own gear. Subsequence provides the logic; your Eurorack, Elektron boxes, or DAW provide the sound. Serving as a boundless software alternative to hardware sequencers, there are no fixed limits on tracks, polyphony, complexity, or pattern length. |
8 | 8 |
|
9 | | -> **What you need:** Basic Python knowledge and any MIDI-controllable instrument. Subsequence generates pure MIDI data; it does not produce sound itself. |
| 9 | +> **What you need:** Basic Python knowledge and any MIDI-controllable instrument. Whether you are an experienced coder or a musician tempted to learn Python for the first time, the API is intuitive and accessible. Subsequence generates pure MIDI data; it does not produce sound itself. |
10 | 10 |
|
11 | 11 |
|
12 | 12 | ## Contents |
@@ -58,14 +58,14 @@ Use your own gear. Subsequence provides the logic; your Eurorack, Elektron boxes |
58 | 58 |
|
59 | 59 | ### Introduction |
60 | 60 |
|
61 | | -Subsequence is a generative engine for your studio. Engineered for rock-solid timing and efficiency, it uses cognitive harmony (chord progressions that follow how listeners expect music to move) and stateful patterns to drive your hardware synths and VSTs. It gives you a palette of algorithmic building blocks - Euclidean rhythms, cellular automata, L-systems, Markov chains - and a stateful engine that lets them interact and evolve over time. |
| 61 | +Subsequence is a professional-grade generative MIDI sequencer and algorithmic composition engine for your studio. Engineered for rock-solid timing and efficiency, it uses cognitive harmony (chord progressions that follow how listeners expect music to move) and stateful patterns to drive your hardware synths and VSTs. It gives you a palette of advanced algorithmic building blocks - Euclidean rhythm generators, cellular automata, L-systems, Markov chains - and a stateful engine that lets them interact and evolve over time. |
62 | 62 |
|
63 | | -It is designed for **the musician who wants to build compositions that surprise them** - where patterns combine, react to context, and develop in ways that reward exploration. |
| 63 | +It is designed for **the professional musician who wants to build generative music that surprises them** - where patterns combine, react to context, and develop in ways that reward exploration. |
64 | 64 |
|
65 | 65 | ### Why Subsequence? |
66 | 66 |
|
67 | 67 | - **Precision and efficiency.** Built for live performance and serious studio use. A highly-optimized hybrid timing strategy achieves typical pulse jitter of **< 5 μs** on Linux, while a comprehensively tested codebase provides rock-solid stability. |
68 | | -- **Accessible Python, no CS degree required.** If you can configure a synth, you can write generative music here. Simple building blocks mean you can get started with tiny scripts and learn as you go. |
| 68 | +- **Accessible Python, no CS degree required.** If you can configure a synth, you can write generative music here. It is the perfect project to tempt a musician into learning basic Python. Simple algorithmic building blocks mean you can get started with tiny scripts and learn as you go. |
69 | 69 | - **Not just for algorithms.** You can program traditional basslines or fixed drum grooves without any generative variation. Use Subsequence as a highly precise, Python-driven standard MIDI sequencer alongside your evolving patterns. |
70 | 70 | - **Implicit Compositional Structure.** Subsequence understands predefined sections, bringing overarching musical form to a piece without getting stuck in infinite loops. Patterns rebuild each cycle with full context - chord, section, history - so music can grow and develop across defined movement. |
71 | 71 | - **Built-in harmonic intelligence.** Optional chord graphs with weighted transitions, gravity, voice leading, and Narmour-based melodic cognition (big leaps tend to reverse, small steps tend to continue). The engine writes melodies that sound *human* because it models deep listener expectations. |
|
0 commit comments