Main Page
Contents
Monomodular
Monomodular is a modular environment for using grid-style controllers with Max For Live plugins, as well as a framework for M4L plugin development. It began as a multi-color monome experiment over two years ago. It was designed with live musical performance as its most important goal. It is still under active development, and is being offered as beta, but is being used for both production and performance by its author and many others (you should, too!).
Monomodular is roughly based on a server/client principle, with Monomodular acting as an intermediary between different plugins and grid controllers.
[This should probably be simplified, with the bulk being moved to a more technical page] The basic idea is that Monomodular offers multiple simultaneous controllers access to multiple simultaneous plugins, and does so in a seamless and transparent fashion. Monomodular stores the states of all its clients, and is capable of interpreting a library of standard functions which are called from each individual control surface type in such a manner so that it does not need to be aware of what kind of control surface is connected to it in order to interpret its calls or correctly format its returns to the receiving component. The type of data its stores is fairly generic and conforms to the monome standard in some ways, but is also fairly arbitrary in that the core can be easily modified to store different types of data to suit the situation (for instance, it has been easily adapted to handle data types and addresses for both the Livid Code and CNTRL:R hardware devices).
As of version b99, the core of Monomodular is a Python control surface plugin which runs in Ableton Live's proprietary Python environment, contains a basic framework for communicating with several types of hardware. It allows communication between up to 5 grid controllers with up to 16 client patches directly from the surface of the controller. It gives basic functionality of navigating and displaying a Monome256 workspace, and provides the base functionality for quickly writing or converting new plugins to work with its format.
As of version b993, the Monomodular Python script also contains socket functionality which allows it to natively communicate with devices designed to work with monome hardware without any further component needs. It publishes via Bonjour its address and ports, and communicates directly from the Python workings within Live.
There are many client patches included with the suite. Most of the early patches were ports of popular monome patches, but now the release includes many of amounra's own creations. The majority are for MIDI generation and generative processes, but the capabilities for using Monomodular are only limited by the imagination of the scripter.
On the MaxMSP side of things, the Monomodular format is largely dependent upon a single javascript object, which can be manipulated in many different ways. In addition to using the prebuilt mods, it offers the capability of creating one's own custom patches easily in MaxforLive and using them within the framework of Monomodular, or adapting patches which you've already built to be used with a grid controller.
Installation
How?
Download the installer and use its "Subversion" button to install the most recent version (recommended):
If you are using Windows, you will need to install the command-line subversion tool, SlikSVN (or something else which takes svn commands).
SVN installation is not yet available in b993, so just download the complete Monomodular b993 Content package (which contains installers for Win and OSX), unpack it somewhere convenient, then either double-click the appropriate .amxd for your platform, or drop same into an open Live set.
If you run into trouble, the Installation page contains a few tips and gotchas, as well as a more detailed explanation of how the installer works, for the curious.
What?
The Installer patch is a fairly simple M4L utility which reads information about your Live and Max installations and tries to determine where files should be put on your system. Because Monomodular is not an application in itself, but is instead a collection of scripts and Max patches, it needs to be installed a bit differently than most things. The installer patch gets some information from Ableton's log and the currently running instance of Live. This process is not perfect, however, and under certain circumstances you'll have to locate the correct installation paths manually. The installer will alert you if it is unable to locate something it needs.
If you have a persistent problem with installation, please contact amounra with the specifics, and a copy of Ableton's log.txt, so that the installer can be improved.
The installer installs three main categories of files:
- Mods
- M4L patches which "do stuff" in conjunction with a grid controller. The list is growing, but you can go to the Mods page to learn a little bit about what's currently available. You can also access an information page on this wiki from within the plugin itself by hitting the Help button.
- Framework Scripts
- These are the Python scripts which
- Allow your grid controller to interact with Live and link to the main Monomodular script.
- Set up the main Monomodular script, the "hub" which controls interactions among the grid controller, Live, and Mods.
- Other Stuff
- Miscellaneous files which need to be here or there in order for things to work correctly.
Where?
If you need to know where certain files are located, or would like to change some things with the installation, please refer to the Manual Installation page.
How Monomodular Works
You can read a description of the basic functionality of every Monomodular-enabled control script on the How Monomodular Works page. More detailed information is available at each controller's page.
Supported devices
What Comes with Monomodular
The Mods page lists all current mods. It's an evolving work-in-progress instruction and commentary on each plugin, so it's a good idea to check back from time to time for new information.