Difference between revisions of "Hex"
(→mute) |
(→Advanced Settings) |
||
Line 143: | Line 143: | ||
===Advanced Settings=== | ===Advanced Settings=== | ||
+ | |||
+ | [[File:Hex pic settings.png]] | ||
'''Select + Hold Temporarily Reveals:''' | '''Select + Hold Temporarily Reveals:''' |
Revision as of 02:16, 17 July 2012
Contents
Overview
Hex contains sixteen sequences, or parts, that can be edited and manipulated in real time in various ways from the controller. When linked to a properly configured DrumRack, the controller's encoders control parameters belonging to each of it's chains. Each of the sequences contains sixteen different presets, which can be chosen and stored directly from the controller. Loop begin and end points can also be set using the controller. All of the sequences speed settings can be set changed independently in either quantized or unquantized amounts. Sequence timing can be synchronized between different parts in an easy fashion. Different behavior definitions can be made for each step of each sequence directly from the controller. Part-mute and preset changes can be recorded directly into the currently playing MIDI clip on the same track that the mod is present, even while playing back previously recorded automation data in the same clip.
Hex combines 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 which 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. The idea here is to eventually replace the functionality of Stepp:r, Polygome, TR256, and Binary with a single patch that is accessible from multiple controllers at once, while improving the speed, efficiency, and capabilities of the originals.
The User Interface
The currently selected sequence data is displayed in the center pane. To change what data is being viewed, select a new new view mode. The default view shows the active state of each step in the currently selected sequence. Active state can be changed via the controller, but other types of data can currently only be changed from the UI (duration, velocity, rulebends, pitch). This will change when Ohm/Block integration is finished (but probably won't matter to you unless you own a CNTRL:R and another grid-based controller).
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").
The encoder's will automatically be updated to reflect the currently selected sequences region any time the sequence you've chosen is outside the bounds of the last one you'd selected. The encoder's assignments will always be reflected by the highlighted (magenta) area of the Grid.
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".
quick-select
Quick-select allows an alternate method of stepping through different modes and functionalities in the patch. Any time you hold down a Grid button while selecting a part, several things change:
1) An alternate assignment of the upper keys appears, and will remain until the button is released. The default mode entered in quick-select is "single preset", but it can be changed in the settings menu to any of the available key modes.
2) Pressing the mode button (one of the encoder buttons) will step through the available Grid modes instead of the key modes. Caveat: pressing the mode button while in "add" mode will ALWAYS cause the Grid to return to "select" mode.
3) Pressing the button corresponding to another part will synchronize the timing of that part to the current timing of the chosen sequence (see "wheel syncing").
4) Alternate encoder-button functionality is available:
---Speed buttons change notetype, ---Repeat button steps through direction. ---Rotate buttons change the active sequence view.
The Keys
Lower Keys
The lower keys always represent whether or not a current step is active. The active state of a step can be toggled off/on with its corresponding button.
Upper Keys
mute
In it's default mode, the upper keys control the mute state of each part. Mute data can be recorded into a playing or recording clip (see "Automation").
length
The length of a sequence can be changed on the fly by pressing one of the buttons corresponding to the position in the timeline where you wish the part loop. By holding down the loops end-point and selecting a button at an earlier position, you can also change the loops start point.
behavior
The behavior assigned to each step can be changed. Any current assignments are also reflected for the selected sequence. See "Behaviors", below.
single preset
The currently selected part's preset can be chosen by pressing one of the buttons. Each time you change to a new preset, the currently selected preset is stored (however, this behavior is defeated when the "Lock" feature is enabled. This can speed things up considerably, see the section about "Lock").
global preset
In global mode, selecting a preset recalls the corresponding preset for EVERY part. It's important to understand that (currently) when changing global presets, only the currently selected part's preset data is stored. (I've tried it the other way, it's just too darned slow)
Other Controls
The modVolume dial controls the master output of the entire patch.
The "Mode" button steps through all available Key modes, making it easy to work in a different way.
Wheel Syncing
It is easy to synchronize the speed of two different parts. Select the part to which you want to synchronize, and while holding down its button, press the button corresponding to the sequence you wish to change.
Automation
Hex allows recording of automation directly to a clip that is playing or recording on the track it's on. To enable this, either create a MIDI clip on its track and start playing it, or start recording a new clip on its track. Then, press the REC button on its UI. Any "mute" or "single preset" changes that you make will be recorded in the clip as you make them.
In order to play back this data, just play the clip and make sure that PLAY is turned on in the UI. You can have both PLAY and REC enabled at the same time in order to overdub new changes (however, this will not currently erase older data).
Hex uses note-based automation. It's important to understand a little about this: any note event arriving at the mod's input can be interpreted as automation data. Hex reserves note numbers above 113 for use with automation. As long as "Play" is not enabled, nothing dire will happen. However, be sure not to send unintentional notes to Hex when it's in play mode, or some wacky things will probably happen. Any notes below its automation range will just be passed through to Hex's output.
Behaviors
In order to create more variability in a sequence's sound, you can assign behaviors to each step of a sequence. This allows changing how a step acts over the space of 8 bars of 16 beats.
There are seven user definable behaviors. They can be assigned in the advanced settings. Each behavior has 8 steps. Each step corresponds to one cycle of a loops sequence.
By default, each behavior is filled with one type of action. This can be changed by clicking on the Behavior grid in the settings menu. The available actions are:
1) No Action. When no action is chosen, nothing will be played on the assigned cycle even if a step is active in the sequence the behavior is assigned to. 2) Trigger. When trigger is chosen, if a step is active on the assigned cycle, a note will be played in the sequence the behavior is assigned to. 3) Random. When random is chosen, the step may or may not trigger a note based on chance. In addition, the corresponding 'rulebend' for the step determines the how likely the note will trigger. 4) Sympathy. If another rulebend in the current step of any other sequence is equal to the currently selected sequence step's rulebend, the note will play. 5) Dominate. If active, the note will play. In addition, it will mute any other notes played by other sequences unless those sequences are also set to dominate. The length of dominance is determined by the corresponding step's rulebend value. 6) Delay. If active, the note will play, but a delay will occur before it is triggered corresponding to that steps rulebend value. 7) Repeat. If active, the note will play, and will be repeated. The interval and number of repeats is determined by the rulebend value. 8) Plink. Not currently implemented, but this will link to Plinko for some generative craziness.
Advanced Settings
Select + Hold Temporarily Reveals:
Changing this setting allows cusomization of what mode Quick-view snaps to.
Timing Changes Happen:
If set to "immediately", quantized changes will happen when they are made. Otherwise, timing changes will not be triggered until the beginning of the part's next loop.
Global Chain Offset
This one's important. And a little tricky. All you need to know: set this value to the lowest note in your DrumRack, and don't allow any gaps in the your Rack. You can always insert an empty InstrumentRack in blank spaces, but there can't be any gaps or the parameter controls will not lock to the correct chain when you select a new sequence.
Because there is no way to determine the note-assignment of a DrumRack's chain, it is necessary to order your DrumRack with no gaps. It's not important which note it starts on, but if you start at a note higher than 0 (C-2), you'll need to compensate for chain detection by changing this setting.
Transpose Steps
You can change the number of steps that are changed when using the "-1st" and "+1st" encoder buttons by changing this value.
Capture Currently Selected Instrument"
If you wish to use Hex with an instrument or DrumRack that is not immediately adjacent to it, you can select the instrument you wish to control in Live and then press this button. Hex will detect the new instrument, and should store it's id for your concurrent sessions.
MIDI Remote Assignment
You can use Live's MIDI Learn functionality to assign any controller to the CNTRL:R's controls.
Initialize Preset
Clear the currently selected preset's data. This clears all sequences in the currently selected preset slot, not just the selected sequence.
In order to clear all presets in all sequences, make sure the "Global" button is active in the Randomize section below, then press the Initialize Preset button. It'll take a few seconds.
Behaviors
Assign new actions for each type of behavior by clicking the squares on the grid. Each step will cycle through all available actions.
You can use the Randomize button in the top right corner to shake things up a bit.
Randomize
Randomize individual data types for the current global preset. You can randomize all data types in the current preset by pressing the "All" button.
If "Global" is active, any randomization or initialization changes will affect all global presets (that means every single preset in every single sequence). Be carefull....it takes a little while.
Technology
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.
More to come shortly....