At the outset, the title of Gregory Taylor's tutorial book on making step sequencers with Cycling '74's Max graphical programming environment presents us with a delightful pun: the book is ostensibly about step-based sequencing tools and how to build them, but at a deeper level it's about incrementally developing a craft and a way of thinking. This isn't a manual such as one might expect for a complex Lego kit or a self-assembly wardrobe. Instead, you're treated to a discussion of a measured iterative process, as Max is explored step by step in a succession of sequencer examples with various features and behaviours. The introduction to the book states that there is no "next big thing": the process is not linear, many of the examples are surprisingly simple given their functionality, and there is no single end goal; exploration is a goal in itself.
There is, however, a common starting point, which is returned to on numerous occasions prior to each departure in a new direction. Every example starts with a Max patcher constructed around a built-in object called 'live.step', which provides a graphical user interface and data storage for a step sequencing patcher but doesn't do any actual note generation. This allows for a number of incremental interventions: an added row of switches for note gating; step randomisation; longer step lengths and jumps with alternating direction; transposition, scales and modes; and even polyphony.
The tutorials lead into topics like repeated steps and pattern phasing techniques, all presented with a sense of discovery, as if the author has only recently come across some surprising, serendipitous technique and is keen to share it. Note gates become percentage probabilities, random numbers become drunken walk algorithms. An important part of the journey is revealing a new kind of thinking: using simple Max objects and basic features in new combinations to yield complex results, all outlined in clear, documented stages. After each excursion, we're brought back to the original step-sequencing patcher to begin another journey, but not before generating a musical idea which feels like it belongs on a record label for Reichian minimalists.
[It's] all presented with a sense of discovery, as if the author has only recently come across some surprising, serendipitous technique and is keen to share it.
For the first half of the book, the examples use Max's metronome object to crank out notes on a regular beat, which is how all the cool kids used to build step sequencers back in the days of MIDI sound modules, before computers were fast enough to process audio. The topic of swing and groove generation, in particular the challenge of playing notes ahead of the beat, steers the discussion into deeper, richer waters, with the use of audio waveforms as timing sources, and waveshaping to shift events against the beat. Triplet timing and Euclidian sequences make an appearance, and another serendipitous realisation results in a patcher which can sequence in two dimensions.
The patcher code explored in the book is equally at home emitting MIDI notes, playing a VST instrument, or sending data out of Max for Live into an Ableton Live session. Eventually, the examples move beyond the sequencing of notes and into sequencing of instrument parameters, to generate rhythmic, shifting timbral effects in a DAW environment. Anything that can be controlled can be step-sequenced, and this book shows the potential in doing just that.
This isn't a 'teach yourself Max' book. It is pitched squarely at an intermediate level of skill, although at no point is it doing anything truly complicated: every step is modest, though it's assumed that you know enough Max to follow along. All the example code is provided online. There are copious screen grabs throughout the book to illustrate the process, although they would underline my only minor criticism: many illustrations are scaled down almost to unreadability (at least in the printed version), and are sometimes used where a simple table or diagram might indicate a concept more clearly. But since everything is illustrated using Max, you are at least encouraged to experiment practically to understand what's going on.
I've been using Max in one form or another for almost three decades and have built an uncountable number of step sequencers in that time, but Step By Step has given me a shift of perspective, and a push for simplicity, which has opened up some new avenues of exploration... which I should probably embark on step by step.