Hex
Overview
Hex is a step-based sequencer, combining the most of the ergonomics of the Livid Stepp:r with the versatility and speed of the "binary" mod I wrote for the Code last year. It is still a work in progress, and some features are still being fleshed out (among them are polyphonic step mode, solo mode, and trigger mode). While borrowing heavily from both of its predecessors, it yet promises a lot of unrealized potential under the hood. A great deal of the underpinnings of "binary" have yet to be implemented.
Hex is currently built for the CNTRL:R, but it's functionality can be accessed from any controller by using Live's MIDI Mapping capabilities. It will include support for other grid-based controllers that are compatible with Monomodular with future releases. Eventually, the idea is to replace the functionality of Polygome, TR256, and Binary with a single patch that is accessible from multiple controllers at once.
Three main areas of control are delineated in the patch UI, and are controllable in different ways with their corresponding controls on the CNTRL:R.
The Grid - this describes the 4x4 RGB buttons in the center of the CNTRL:R.
The Keys - this describes the 16x2 RGB buttons on the bottom of the CNTRL:R. They are broken into two sections, the Top Row and the Bottom Row.
The Encoders - this describes the top endless rotary encoders and their corresponding buttons.
Each area can be assigned different functionality based on the two assignment menus on the UI. You can select a way to work from the UI itself, or you can use the "Mode" button on the bottom row of encoders to step through the available modes.
The Grid
select
In its default position, the grid is in "select" mode. Each of the buttons corresponds to a sequence. You can select which sequence you are currently editing by pressing one of the sixteen buttons. The UI and the CTNRL:R will automatically update to reflect the data contained in your selection. If an appropriate instrument is configured, the encoders will control and reflect the current value of its parameters.
add
In "add" mode, pressing one of the grid buttons will add a note event to its corresponding sequence at its current time position. It will also play the note if the transport is running. It will always select the new sequence.
freewheel
In "freewheel" mode, the grid operates in the same manner as "select" mode. However, the encoders rings reflect the current position and data for each of the grids highlighted 8 sequences, and the encoders themselves control the unquantized speed of each of the sequences.
The green LED of each encoder ring indicates whether or not a sequence is currently quantized.
A quantized sequence will become unquantized if it's corresponding speed dial is turned, or if it is synced to another unquantized sequence (see "wheel syncing").
An unquantized sequence can become quantized if it is selected and one of the speed buttons are pressed. It will lock to the nearest quantization value, depending on which direction you've nudged it. It can also become quantized if it is synced to another quantized sequence (see "wheel syncing").
mute, preset, global
The "mute", "preset", and "global" modes correspond to the key modes of the same name. They are provided for convenience when creating sequences and editing. They are NOT available via "quick-select".
Here are the header comments from the core js file, which describe a bit more what is going on for the curious among you:
This script is the result of collaboration with Peter Nyboer @ Livid Instruments and represents a great deal of effort to gain some speed and stability from the original Steppr without sacrificing too much readability. The majority of the functionality for the entire patch can be modified in this js or the accompanying poly~ object, "steppr_wheel", without ever opening the actual containing patch in the m4l editor (this is crucial for speeding up the development process). Because of this, the functionality of the patch can be radically altered merely by modifying the poly~ or adding some lines of code in to this js. As an example, the poly~ used as the base for this patch is only a slightly modified version of the "binary" mod (from Monomodular), and the majority of processes in this script are maintained between both versions.
Although the original ideas came from the Stepp:rs, this patch is in fact a complete recoding of those ideas.