How Mod Works

From ModWiki
Revision as of 09:54, 31 March 2015 by Amounra (talk | contribs) (Amounra moved page How Monomodular Works to How Mod Works: Changed project name)
Jump to: navigation, search

Monomodular is the hub of all communcations between Mods and the Monomodular capable controllers. Each client control script works in its own way, but the Monomodular standard is shared between all of them.

Monomodular controllers all have the capability of controlling a Monome256 workspace. Each one does it in its specific way. The only necessity required to integrate a controller with the Monomodular design is that it has an 8x8 grid of buttons. Other functionality is present on some controllers, but mainly, it works like this:


The Grid

There is an 8x8 grid, which represents one quadrant of the Monome256 workspace in its normal mode.

In addition, it will display generic information about the status of Monomodular and its connected Mods when using the other controls below.

If you are not familiar with how a monome works, you might want to check this out:

http://en.wikipedia.org/wiki/Monome

and this:

http://monome.org/

But chances are if you've made it this far, you probably already know about monomes (and want one of your own!). Good thing for you, here it is.....


The Shift Button

There is a Shift button, which, when pressed, does the following:

It allows navigation to one of those 4 quadrants by pressing one of the center 16 buttons, which will be lit to indicate which area is currently selected (either by colors or by different flashing states).

It causes the top row of buttons to indicate which of the 16 possible Mods is currently selected. The button on column 1, row 3 allows the user to select Mod 9-16 according to its toggle status.

It causes the second row of buttons to indicate which of the 16 possible channels the currently selected Mod is transmitting on (if it is a mono-channel instrument). The button on column 8, row 3 allows the user to select Mod 9-16 according to its toggle status.

It causes the bottom row of buttons to change over to 'Key Mode', and their status to be updated accordingly. The Key buttons are patch specific in functionality, but there are general conventions about how they are used in most of the plugins. Most of the time the left four will indicate and change the Mods 'mode', and the second four control timing of the Mod if it is slaved to its internal clock.

As of b993, the left column sixth button will toggle into/out of MonoLink mode, and will indicate whether the control surface has that mode engaged or not.

8x8 shift.png


The Lock Button

There is a Lock button, which toggles whether the bottom row is 'shift-locked' to permanently be used in 'Key Mode'.

8x8grid locked.png


The Alt Button

By pressing the dedicated "alt" button on the controller, it is possible to access additional functionality from the "Key" buttons. If there are no dedicated key buttons, the user can either engage "lock", or hold "shift" before pressing pressing "alt" and use the bottom row of grid buttons to access these functions.

The first four buttons have no built in functionality, but may trigger a behavior that is specific to the mod that is currently selected.

The last four buttons always perform the following functions:

5: View mod in Live. This will bring up the mod's device in Lives detail view, and consequently select the track that it's on. There is unfortunately no way to navigate to it if its nested in a Device Rack, but this will select the Rack that its contained in.

6: Toggle mod Mute. If the mod has embedded mute functionality, this button will toggle whether it is muted. It will be lit if unmuted while "alt" is depressed.

7. Toggle mod Power. This will toggle the device on/off parameter of the currently selected mod Device in Live.

8. Select mod Device. On controllers that offer device control, this will select the mod's parameters as the currently controlled device for the dials on the controller.

8x8grid alt.png


MonoLinkComponent

A new component has been added to the Monomodular MIDI Remote Script as of b993 which allows the user to connect to monome-based patches with no need for m4l or any other 'bridge' applications running in the background. The MonoLinkComponent is currently considered "beta" (er....more beta than the rest of Monomodular), so test it thoroughly on your system before depending upon it. That said, most of the prerelease testers have had success with it.

For more info: MonoLinkComponent


Mod Order

A Mod can be used simply by placing it on an appropriate track in your Live set. It will automatically be configured consecutively as the next Mod, and its position on the nav-grid will be indicated by a numbered block on the top left of the Mod's user interface (white block means 1-8, black block means 9-16). You can, however, change this enumeration manually in the plugin's UI, and other Mods positions will be adjusted accordingly. These changes are persistent so that the next time you load your set, everything will be in the same place.

Block1.png


Mod Timing

Most of the Mods have their own internal timing engine that is sync'ed to Live's clock. This, however, may be disengaged in order to trigger the timing process of the plugin from an external source (see below).

For most of the Mods, timing can be controlled by the last four Keys. The first of these changes the timing to Quarter note divisions, the second to Eighth note divisions, and the third to Sixteenth note divisions. The last button toggles Triplet timing.

Grid timing.png

In addition to the key controls, most Mods also have a 'Timing Multiplier', which speeds the timing engine up by the chosen amount.


Input and Output Settings

Each Mod has its own idea of how to get things in and out. For most, however, there is a fairly standard MIDI settings dialog which allows the user to change how things are routed.

To change these settings, press the 'MIDI' button. This will bring up a floating window with that Mod's MIDI settings.

Mod midi settings.png

By default, a Mod will transmit its output to the TrackOutput of its plugin. That means the data is going to be delivered to whatever is after it in the track its situated in. In this case, the Mod's channel setting has no effect, since Live does not care at all which channel MIDI data is transmitted on internally.

However, it is possible to use 'NomeOut' nodes to channelize data within Live. By placing a NomeOut patch elsewhere in the Live set, and setting a Mod's output destination to that Nome patch, you can select where a Mod's output is received merely by changing its channel in Shift-mode. NomeOut is crossplatform, however it is likely to be less accurate for timing than using the default output or MIDI.

If you are using OSX, it is also possible to transmit and receive via the lh_midi external created by Leigh Hunt. This object is included with the Monomodular installation, and will allow you to choose (for instance) an IAC bus as the destination for your Mods data. You can then route that IAC bus as a Track input back to your project, with much lower and more predictable amounts of latency.

In addition, some Mods use MIDI for input as well. Their input source may be changed in the same way. In a situation where you would like to use another timing engine to drive the Mod, you should assign an appropriate source for that input, and define what its clock beat will be. Also, make sure to toggle off the 'Internal' button on the MIDI configuration page.


Supported Controllers

For more detailed descriptions of controller-specific functionality, please refer to the links below: