How to use Monomodular

From ModWiki
Jump to: navigation, search

Before we get started with the nitty gritty, you should make sure you have a couple of things installed to make the best use of the plugins.

First off is the midiOut plugin. I've made use of this to facilitate channelizing plugin output for rerouting within Live. It works very well in my experience, although I haven't tried this out on Windows, so I'd love some feedback.

The plugin is here:

http://thepiz.org/dl/?p=vst#midiOut

Install it wherever you keep your VST plugins. Monomodular will work without it, but some of the functionality will be broken. I'll explain how to use it later.

Also, its a good idea to install the OSCBonjour external. There are several versions of this. I've included the most recent with the Monomodular package that's downloadable on the main page under bleeding edge. The OSX version is an updated build by Remy Muller, and the version included in the package was the most recent build the last time I checked (I compiled it myself, but you can always go through the trouble for a more recent version if you like). I've included both Windows and OSX versions, but of course haven't been able to test on Windows, so feedback is desired on this. This external basically just facilitates autodetection of your iPad if TouchOSC is running. I also discovered after publishing the last revision that it will allow me to autodetect Monomodular from TouchOSC (that feature will be added shortly). Its not necessary, but it is definitely desirable. I imagine you will get some errors in the Max window if its missing, but that should be it.

If you are using Windows, you will need to install Bonjour itself, as its not included with the OS (its already part of OSX). Its a good thing to have it on your machine anyway. Here you go:

http://support.apple.com/kb/DL999

The first steps to actually using Monomodular will depend upon what hardware you'll be utilizing with it. I'll cover each of them first.

If you are using a Launchpad, you don't need to do a whole lot. Make sure your controller is connected to your machine, and its probably a good idea to make sure that you don't have anything assigned in MIDI settings for input or output (turn off track, sync, and remote for the Launchpad in Live's preferences). Monomodular, when loaded, should autodetect which surface(es) is connected and you can choose it from the dropdown on the bottom right of the plugin window. You can check in the Max window to make sure everything worked correctly.

One caveat: monomodular can detect which device instances are loaded in your preferences, but it doesn't have anyway to know whether they are physically present. If you select a control_surface that isn't present (Launchpad or APC), it may cause some problems. Its not a bad idea to create a new instance of the monomod plugin when this happens, although its not always necessary.

If you are using an APC40, the procedure is similar. If you plan on using the alternative script, however, you should be using the one provided by me (not the one available directly from Hanz Petrov's website), as I've changed a few minor details and things won't work quite right with the original version of "APC40 22".

The changes I've made to the script:

Mute and record are switched: I wanted to be able to mute tracks even when I was using the grid, and din't care so much about the record functionality.

The track control buttons control the first 4 sends instead of pan and the first three....does anyone really use pan during a performance? You can still get to pan by holding down shift and the second mute (the old record) button.

I've included my script with the package. I'll try to post a new link to the single file, as well.

If you are using an iPad, you will just need to install the custom template. Its available in the package, and also as a single downloadable file in the downloads section. Once its installed, make sure to assign the outgoing port in TouchOSC to 9000, and incoming port to 9001. Take note of the ip address assigned to your iPad, and make sure that its Host address is the same as the computer that you are using monomodular on.

Now, click on the assignment list, and select the controller that you are using. If you are using multiple controllers, they should be listed in the order that you connected them in Live's preferences.

One note about assignments: since monomodular saves the settings of the controller you have connected, if you option-drag and drop a plugin to copy it to another slot, it is automatically going to have the same assignment as the one you dragged it from. So, I don't recommend doing this. Any time you want to create a monomod instance of a host, you should drag it from the browser, not another instance of monomod. Its bound to be a bad idea (and in practice, its definitely not a good idea).

Basic Functionality:

Each type of control surface is somewhat different in the way it operates. I'll try to start with the functions that are common to all of them.

Monomod is a host plugin. That means it can have up to eight clients connected to it. It should autodetect which clients are present, and then automatically assign the first eight that you've loaded.

If you want to have a look at what clients are in your project, click on the "clients" button. This will bring up a small floating window with eight menus. Each menu, from top to bottom, represents the selected client for one of the eight banks. If nothing is showing up, its because no clients are loaded in your Live set. If for some reason monomod has not detected any clients and you've loaded them, just delete the host and reload it (this has never happened to me). The first client may show in all 8 banks, that doesn't mean its selected for all of them. As you add more clients, monomod will put them in their respective bank. You can also choose your own ordering. These settings should be persistent between Live sessions.

Once you have a client loaded (say, TR256), you can access it by holding the "option" button (LPD: User2, APC: shift, iPad: option) and pressing one of the top 8 buttons of the grid. The first row of buttons is always the bank selection, the second row is the channel selection. In the middle of the grid is a navigation matrix. If you press one of the lit quadrants while "option" is held down, the view will change to the corresponding section of the 16x16 grid.

The buttons on the right of the grid (the session buttons from Clip mode) are the "mode" buttons. They do different things, depending upon the client plugin that you is selected for viewing. With TR256, for instance, the top four mode buttons change the velocity of the note that you assign on the grid, and the bottom four change the timing rate of the plugin. With Polygome, the bottom four still control timing rate, but the top four change the edit mode of the plugin (Play, Record, Velocity, Duration/Step). Check the documentation of the plugin you are using for details on each. I've tried to include an info file with each client explaining the basic assignment of the mode buttons. A few of the plugins don't have mode functionality yet (boinngg, for instance)...recommendations are welcome.

The selection of output channel is accomplished by holding down "option" and pressing one of the buttons on the second row of the grid. This will affect the MIDI output channel and the Nomeout channel of a plugin, but ONLY IF "NOMEOUT" is selected (i.e. turned on) within the plugins GUI. If you have the midiOut VST plugin installed on your system and an available loopback virtual port (e.g. IAC Bus for OSX, midiYoke or similar on Windows), this will allow you to instantly change the routing of the selected client plugin's output. This is a VERY handy feature (and should be the default behaviour of Live, just like every other DAW I know of).

Here's a how-to for OSX:

Open Audio MIDI Setup. Double Click on IAC Bus. Make sure a port is present in the box on the bottom left, and if not, create one. Make sure "Device is Online" is checked. Close Audio MIDI Setup. Restart Live. Go to Live MIDI preferences. Enable "Track" for IAC input. Load your monomod project, or create an instance of monomod. Load a client. Make sure "nomeout" is enabled for that client. Find the midiOut button on the Monomod GUI and press it. Assign "IAC Bus" in the midiOut VST's editor window. Create an instrument on a channel by itself. Assign that instruments input as IAC Bus. Assign that instruments input channel as Ch 1. Create another instrument on a channel by itself. Assign that instruments input as IAC Bus. Assign that instruments input channel as Ch 2.

Now, if you change the channel of your client from channel 1 to channel 2 by holding option and pressing the 1st and 2nd buttons on the second row, it will change your output between these two channels you've just created. This will allow you to instantly reroute the output of the client to either of the two instruments you've created. You can do that with up to 8 channels in a project.

Nomeout works in the same manner, but instead of using the MIDI functionality of midiOut and a virtual port, it sends it to a Nomeout plugin. It is much less stable, though; it tends to stop working on channels if you send it too much information at once, and the timing is not as good.

One note about midiOut. I have, under certain circumstances, had this stop working after a time. When it has, I've had to restart my machine in order to get it working again. YMMV. (Its happened twice in two weeks of continuous testing and use, mostly when I've been doing things I shouldn't have).

That is the basic grid functionality.

The Launchpad is pretty straightforward, and I think I've covered all of its functionality already.

To use these features on the APC:

The APC40's shift key is "option". There are two veiw modes on the APC: "small" and "full". In "small" mode, the grid is limited to an 8x5 viewable area. In "full" mode, it is the normal 8x8. Multicolor only works on the 8x5 portion (simply because the lower buttons don't physically operate in multicolor). For this reason, I've included a monochrome option in the GUI (for all of the plugins) just to avoid confusion. I hopefully will be able to standardize the color scheme between all the controllers soon so that its easier to see what's going on when using the APC. There needs to be a standard for multicolor plugins so that they translate well to monochromatic ones. I've got some ideas about how to accomplish this nicely.

To enter grid mode, press the "Master Select" button. This toggles between clip/grid mode. To toggle between small/full modes, press "option"+"Master Select" while in grid mode. To navigate on the grid, use the arrow keys, the nav grid while "option" is held down, or "option"+arrow to change the offset by the current viewable area. The mode keys are still the session buttons on the APC, but since there are only 5, I've opted to use the top four only. To access the functions of mode 5-8 (the timing buttons in most of the clients), hold "option" while pressing one of the first four scene buttons.

In "small" mode there are some extra features. The first is the capability of recalling device presets with a single button press. A device preset is assigned by renaming a device plugin with a prefix: "p1" through "p8". If you name a preset after monomod has already been loaded, you will need to update its preset list. You can do this by pressing the "get presets" button on monomod's GUI. To select a preset, press the corresponding clip stop button while the grid is in "small" mode. Devices nested in racks cannot be used as presets.

Example: I have an Autofilter I wish to be able to get to quickly. I rename the autofilter "p1 Autofilter". I press "get presets" on the Monomods GUI. I enter grid mode on the APC by pressing Master Select. I enter small grid mode by holding Shift and pressing Master Select. I press Clip Stop 1, and now the Autofilter will be assigned to the device controller on the bottom right.

One more hidden feature: you can zero all the track sends for a specific by pressing shift+send1-4. This is very useful. The send buttons are actually (Pan 1, Send 1, Send 2, Send 3) on the track control section.

Oh, I almost forget about the LCD. You can activate it by toggling the button on the monomod GUI. It should automatically fit itself to your screen's dimensions. It will let you know what it is that you are controlling with the APC40. Expect some updates for this soon.

Again, I highly recommend trying out the alternative Control_Surface script that is included with the package if you haven't already. But monomod will work with the standard APC40 script, as well.

...And finally, the iPad.

The iPad script is a little different, since all the functionality is provided directly through the LiveAPI. This means its a bit slower (especially while loading), but it also means its much more customizable. So you will probably see some changes in the future about how it operates. For now, here is the rundown.

The majority of its functinality is similar to the way the APC operates. You are either in clip mode or grid mode.

While in clip mode, the arrow keys navigate you around Live's mixer. The buttons on the right of the faders allow you to change fader modes. Normally, you can select Volume, Pan, or Sends 1-4. If you hold down option and select Pan, Device, or Returns, this changes the second fader mode to what you selected.

To change between grid and clip modes, hold "option" and press "monome" or "clips". To stop or start Live, hold down "trans" and press "stop" or "play" in the fader mode cells. I will add some more transport options with the next revision.

Record status can be accessed by pressing "option". The record status of each track is indicated by a red led when its on.

The knobs: The top four knobs will send out data to any "Knobs" client that you have in your project. The bottom four knobs are, in order, "Master", "Inputs", "Return A", "Return B".

The two X-Y pads control "Knobs" 5-8. None of these knobs will work, of course, unless you have an instance of the "Knobs" plugin installed in your project. Its in the package, or you can download it seperately.

About "Inputs": I use this to toggle between real-time inputs to my projects. Here's how it works: if you have a Channel named "Inputs" in your project, monomod will assume that this is a group with four input channels inside of it. This allows the following functionality:

The sixth knob will control its volume level. Pressing one of the four buttons below the knobs will turn the corresponding channel on, while turning all the others off.

Also, holding option and pressing one of these four buttons will turn all the send levels for the corresponding return to zero.

A couple of other "shiny" things about the iPad script:

Ableton does not give us a way to scale the velocity of a MIDI channel except by using a Velocity plugin. I don't like this, so I took things into my own hands.

If monomod finds a plugin named "Velocity" on a MIDI channel, it will assign the fader for that channel to the plugin's "Out Hi" level (not like it was doing anything useful, anyway), effectively giving you a volume control for that channels output. Neat, huh? All you have to do is place a Velocity as the first plugin on a MIDI channel and you can control its volume directly via the mixer controls.

Device presets work in the same general manner as they do for the APC40. If you name a plugin with the prefix "p1" - "p8", monomod will be able to recall it as a preset. If you press "device" on the track mode selector and there are no presets assigned, it will look over your project to see if things have changed (effectively the same as pressing the "get presets" button on the GUI). Once you have a preset assigned and your in device mode, you can select a preset by holding "option" and pressing one of the bottom red LCD windows. You can bank left or right in the plugin (if it has more than eight parameters) by pressing the far left or far right LCD window (without holding "option").

The intention of the LCD windows is to display data for an 8 knob controller. I removed support for this in the current version of monomod, but it will be back soon, and better than before.

On the 16x16 grid (the first page of the TouchOSC template), you are always operating in grid mode. The large buttons on the left select the bank that you are editing, and the ones on the right are the mode buttons. To select the output channel (if you have nomeout turned on for the client), hold down the currently selected bank button and press one of the mode buttons (ch 1 - 8, from top to bottom).

That's it, for now. I'll update this page as I think of more things, or add more things. Once again, questions, comments, praise, and criticism are all equally welcome (and equally useful).

Cheers :)