monome: docs » mlr » mlrv

mlrV Documentation

Important URLs

Download mlrV (latest version via GitHub)

Temporary Update

27.11.9:mlrv.27.11.9.zip

Submit bug reports / Requests (Lighthouse issue tracking)

Intended Use Of This Document

Documentation is now maintained on this wiki page to make it easier for users of mlrV to contribute to, update and improve it. Helping out in this way will lighten the burden on those who are working on the patch itself.

The latest version of mlrV can be downloaded at GitHub. Development of mlrV can move quite quickly and the documentation may lag behind in some areas. If you find that this document does not reflect the functionality of the latest version, please help others out by updating it to reflect the differences.

System Requirements

Max/MSP (or Max/MSP runtime) 5.0.6 or higher.

Quickstart

monome chooserSoundcard SettingsDAC switch

  1. Open monomeserial (or a similar router such as ArduinomeSerial)
  2. Open mlrV
  3. Ensure that the correct monome silhouette is hilighted in the monome-chooser (bottom right, inside the 'mlr' tab). Click the appropriate shape if necessary.
  4. Select your soundcard in the lower right options box
  5. Hit ‘dac’ - it will turn green and the CPU meter to the right should start moving
  6. Drop samples into the upper right box labeled ‘drop’ to load them into mlrV
  7. Assign a loaded sample to a channel by using the dropdown menu of the chosen horizontal channel strip (The menu can be accessed by clicking where it says ‘input_X’ etc.)
  8. The very top row on your monome is a control row in mlrV, so the second row on your monome corresponds to the first channel. Press a button on the corresponding row on your monome to trigger the sample that you added to the channel.

Introduction

V is for Visual

V is for 5.. MaxMSP 5

mlrV attempts to expand traditional mlr sets into an increasingly raucous affair. by incorporating a sample slicer, multiple different play modes and highly responsive delay, mlrV can be used not only on stage with its big fullscreen (and easy to read) interface, but also in the production and preparation stage.

whilst the GUI redesign was informed by copious use of Ableton Live, the overall purpose was actually to decrease the need to use Live to set up mlr sets.

Highlights:

  1. Click and drag with visual response to make sure your loops are perfectly in time
  2. Integrated delay with feedback and filter manipulation for buttons or tilt
  3. Fullscreen interface for total submersion into the software
  4. Rock solid timing for easy syncing between programs
  5. Quantization and microfades easily editable for your personal mix of clicks and tightness

Concepts and Structure

Groups > Channels > Samples

In mlrV, a Sample is an audio file. A sample can be assigned to a Channel. A corresponds to one of the horizontal strips in the GUI (pictured below), and to one row of your monome controller.

A Channel always belongs to a Group. One Group can have several Channels assigned to it. A Group is really a 'Group of channels'.

Channels that belong to the same Group mutually silence one another when they start to play. This arrangement gets called a 'choke group' or 'mute group' in other softwares.

Set > Presets

A preset is a collection of many channel→sample assignments, channels settings, and a tempo. A Set contains many presets. Typically, you would prepare for a performance by loading a previously prepared Set into mlrV.

File Handler

Audio files need to be loaded into mlrV before they can be played back. In order to load samples into mlrV, drag them from your operating system's native file browser and drop them into the top-right box labeled 'Drop'. A list is displayed in this box showing all files that are currently loaded into RAM. The number next to 'Loaded' indicates how many files are loaded in total. In case you have too many loaded files to display them all in the box at once, the 'up' and 'down' allows allow you to scroll to see more.

Channels

A Channel is the 'player' of a sample. A channels settings determine how its sample will be played.

The following controls are available for each channel.

Select All

Press this button to select the whole sample in the waveform loop selector.

File

Click the file name to enter the dropdown menu to select a loaded sample for this row.

Steps

This setting determines how many sections the sample should be treated as being made up of. Changing the number of steps changes the relationship between the buttons on your monome, and the position within the sample that they will map to.

The default number of slices is 16. Most of the time, values of 8 or 16 will be suitable. If you're using samples in alternative time signatures you might need to adjust this control.

NB. If mlrV tries to display a led that's on a column that your monome controller doesn't have, then the column number will 'wrap' and display on one of the available columns instead. For example, if mlrV wants to turn on a light at column 9, column 1 will light up on your 8*8 monome. This means that when playing loops set to 16 steps, on an 8*8 controller, the last eight steps of the loop will light up the same buttons as the first eight steps do.

Octave

Shifts the speed and pitch up or down by a factor of 2.

Reverse

Play the sample backwards.

Speed

Shows current play speed where 1 is original speed. Click and drag to unlock sample from tempo and force loop to play at a particular speed.

Transpose

The sample can be pitch adjusted by a semitone amount. 0 is no shift.

Play mode

4 play modes are available for samples:

  1. loop: traditional mlr style looping playback. the sample will repeat when it reaches the end
  2. shot: the sample will play from the chosen slice to the end of the sample and then stop
  3. slice: the slice will play when held and continue through the loop until released. NB: this is equivalent to button-release pressing the group-stop button.

Group

Select which group (1-4) the audio should be sent to. Only one sample from any group can play at once. Samples can therefore cancel each other when set to the same group.

Waveform - Realtime Sample Slicer

The waveform behind each channel displays the currently loaded sample. The white / light grey grid is used to show the slice points of the loop (divided by number of slices). A red play marker will display the currently playing slice. Click and drag on the waveform to set new loop points for the sample (use shift click to adjust the nearest loop point).

Alternatively loop mode can be used by selecting it in the ‘mlr’ tab of the options section. In loop mode dragging vertically will adjust the total length of the loop. Dragging horizontally will move the loop selection left or right. This mode is particularly suited for live manipulation. Slice mode is intended more for preparation and production uses.

Presets

A set contains many presets. A preset contains many row→sample assigments, channels settings, and a tempo. The preset area is located above the tempo section.

Preset number shows which preset is currently selected. Arrows allow navigation forward and backward through saved presets. Preset name shows the name of the currently selected preset.

Old mlr2 presets will not work in mlrV.

Storing A Preset

  1. Set up all the channels you desire and slick store
  2. Enter a name and press enter to store into the buffer

next tempo: a predefined tempo can be set for any preset. Click the number box titled next tempo and type the tempo of current preset. You will need to press store again to save this number. Pressing set will change mlrV’s tempo to the next tempo instantly.

Alternatively you can control next tempo on the monome itself. Double click the second to last button (preset button) in your monome’s control row, the light should turn on. mlrV will now update to your next tempo on the first button press. If you have armed the next tempo and then want to disarm, simply tap it again

Saving A Set:

In order to save your set for the next time you open mlrV you need to write your presets to a file. After your presets have been stored, you should push save. You will be asked to designate where to save your set and give it a filename. After doing so 2 files will be created: One will be the file you created, the second will be the file you created with a ‘_flist’ suffix

When you wish to reload your set press load, then select the file you saved (not the file with ‘_flist’ on the end). If you have modified your set you may wish to overwrite your old set with the new one; press resave and the old file will be overwritten with your updated set.

Group Faders

At the bottom of the interface is a row of five columns. The first four correspond to the four groups that mlrV's samples must be assigned between. Each group column consists of 2 volume faders:

  1. The gray slider adjusts the level of the group. The current value is indicated by the dB level reading below the group number.
  2. The narrower blue slider adjusts the delay send volume.

The source of this delay send is the group signal _after_ it has been adjusted by the gray slider. In other words, for a fixed blue slider position, the level of signal sent to the delay effect will vary as the gray slider is adjusted.

In this manner delay can be added only to the parts one desires. The mute button at the bottom of each group control can be activated to silence that group. If your monome has tilt functionality you can hold button 6 (the preset button), press the group and tilt forward or backward to change volume.

Delay Fader

The delay fader operates as per the group faders. The 'delay' box below the fader indicates whether the delay sends are turned on and sending audio. The delay destination can be routed as any other channel by setting the dropdown menu in the volume slider. The button assigned to delay send on your monome can be act as a toggle or a momentary switch (see top-row functions).

Audio Routing

All audio channels have control over their routing destination. Click master to open a dropdown menu of all available routing destinations. These destinations are master plus any stereo pair output of your selected soundcard–your soundcard will be queried and auto-fill the available options. All groups default to master sending their audio via the master fader and inserts. These options allow individual channels to be output on individual hardware outputs. Alternatively, it allows individual channels to be output via soundflower or rewire

Input Recorder

The volume fader functions as per group faders. Thru can be switched in to play the audio from the soundcard / microphone to the selected output. The top left number displays the audio loop length in beats.

Loop turns on continuous loop recording. This is useful if you record a button press pattern and then record continuous audio into the buffer.

Overdub adds the currently inputting audio to the current resample track.

Input Source is a drop down to select your input (eg. microphone / input jack).

Channel number allows selection of the input channel that you desire.

Delay

Top Section: Low-Pass Filter

Each feedback repeat passes through this filter, removing more treble on each pass. The filter slope can be controlled by clicking on the dark middle section and dragging left / right. To add resonance to the filter, click the edge of the dark section and drag towards the centre. NOTE: be careful with resonance as it can result in very loud feedback and distortion

Middle Section: Adjust How Delay Parameters Respond To Monome Control

The left vertical slider controls the speed at which feedback increases as you hold the feedback button.

The middle horizontal slider controls the range of feedback available (from 0 - 100%) control this by clicking and dragging across the range you wish to use. The dark green line shows you what the current feedback level is.

The right vertical slider controls the speed at which feedback decreases as you release the feedback button.

When using tilt mode: y-axis rotation of your monome maps to the amount of delay feedback in the following way:

  • 0% feedback when backward (-1); to,
  • % set by left bracket of middle slider when flat (0); to,
  • % set by right bracket of middle slider when forward (1).

Bottom Section: Delay Length With 2 Styles

sync: Click the number of semiquavers (16th notes) desired for delay time. You can apply a modifier to the synched delay time by dragging the % value number box by up to 33.3%.

time: Click the 'sync' button and it will display ‘time’. Drag the number of milliseconds to the delay from 1ms to 800ms.

Time

Tempo

The large number sets the current tempo. Tap the number boxes above to adjust the tempo by preset amounts. If your monome has tilt functionality hold 6 (preset button) and tilt side to side to change tempo.

Quantize

Button presses can be locked to the beat to allow tightly locked loops. Quantize requires that a button is pressed slightly before it is intended to be triggered. If you prefer to play with rubato or swing it is recommended that you set this setting to ‘none’

Microfade

When mlrV jumps backwards and forwards within a sample it's playing back, audible clicks can occur due to the nature of digital audio. While these clicks can be quite musical, they're often unwanted. mlrV's microfade system can apply a tiny crossfade between the two sections of audio whenever a new button is pressed, smoothing the transition and avoiding clicks. Mircofade values are measured in milliseconds. A value between 1 and 2 is typically enough to remove most clicks. Higher settings may be necessary if the audio sample has lots of bass energy. Alternatively if you hear clicking but the bass of the sample is not important, you could try processing the sound with a high pass filter to remove unnecessary bass content before re-importing it into mlrV.

High microfade durations should be avoided if not required, because the percussive impact of sounds can suffer if an important transient sounds while a fade is being performed.

The Control Row

The top row of your monome is used for actions other than triggering samples in channels. In the bottom right part of the mlrV GUI, there's a tab labeled 'top-row'. In this panel, you can assign the behaviors you would like to be triggered by the top row of buttons on your controller. This section describes the available behaviours.

#[ctrl]press

from http://post.monome.org/comments.php?DiscussionID=4156

the '#[ctrl]press' function is what allows you to pipe the button into an insert. basically it sends a message to a receive object where the '#' is replaced by the number of the button. in order to see how it works exactly, the easiest way is just to look at the framework.maxpat and watch how the button input is handled.

stop.[n]

A 'stop' button for the numbered group. When a channel belonging to the group is playing, the button will light up. Pressing a lit button will silence the playing channel.

pattern.[n]

mlrV includes several independent pattern units. A pattern unit allows the recording and subsequent playback of a sequence of button presses.

Each pattern unit is controlled by a single button with several states. Press the button once to arm the recorder, recording begins at the following button press for a predefined number of beats (duration in beats can be set in the options panel). Once recording has finished, tap the button again to stop. To overdub new button presses, hold the recorder button down whilst playing new notes for the sequence. Release the button when you've finished overdubbing new button presses.

delay.send

Tap the assigned button to toggle the delay sends. Alternatively, hold the assigned button down for momentary delay sends (the sends will be deactiavted when you release the button after holding it)..

Hold button 6 and tap 5 (back) or 7 (forward) to step through presets.

delay.feedback

Press and hold button to increase to maximum feedback setting. Release button to fall back to preset level.

delay.tilt.1

X-axis rotation controls the delay filter frequency. Y-axis rotation controls the delay feedback value.

record.prev

record.next

record.go

preset.arm

vol.inc

Hold the assigned button while tapping a group's stop button to increase that group's volume.

vol.dec

Hold the assigned button while tapping a group's stop button to decrease that group's volume.

vol.preset.dec

vol.tmp.preset.tilt

X-axis rotation shifts tempo up and down in small increments. Y-axis rotation controls group volumes in the following way:

  • Hold button 6 then hold the group stop you wish to change the volume of
  • Tilt forward to increase volume, or backwards to decrease
  • The further you tilt, the faster the volume will change
  • Release buttons to return to normal functionality

tempo

retrigger

preset.prev

Loads the previous preset.

preset.next

Loads the next preset.

oct.down

oct.up

x.plus8

This function adds 8 to the column number of any channel button press, while held. For example, with this modifier is active, pressing the first column of a channel will be treated as if you'd pressed the ninth column (whether or not your controller actually has that many columns). This can be useful for emulating a 16*8 button matrix on an 8*8 monome.

Options

Located in the lower right of the interface there are four tabs named mlr, midi/osc, tilt and fx.

mlr Tab

Inside this tab are five areas:

DSP (Top Left)

Controls MaxMSP’s internal dsp settings. Select your soundcard with the dropdown menu in the top left. Overdrive should be turned on to avoid dropped presses. Interrupt should be turned on to allow pattern recorders to function correctly. Audio vector sizes can be chosen to taste; larger sizes mean higher latency, smaller sizes mean higher CPU load. The CPU meter shows how much mlrV is taxing your computer's processor.

Audio Recorder (Bottom Left)

The recorder will stream the output of ‘master’ to your HD as an .aiff or .wav file (OS dependent). Click save and choose the desired location. Click start and begin your performance. When finished press stop to finish writing audio.

GUI (Top Middle)

The GUI section controls visual interface (and some performance) controls.

'imm changes'

'inner-loop': When on, pressing two buttons from the same sample row simultaneously will result in looped playback between the corresponding locations in the sample. If you don't plan on using this this feature, you may want to turn 'inner-loop' off to prevent accidentally activating looping during periods of rapid button pressing.

'mouse mode' controls the response of drawing with the mouse on the waveform within a channel.

  • box: Click at the point you want the selection to begin, drag, release at the point you want the selection to end. Hold shift when clicking if you want to to adjust the beginning or end of a previously defined range.
  • grow: Change the active range of the sample by dragging up/down. Change the offset of the range by dragging left/right.

'No. of groups' adds 2 additional group busses.

Pattern Recorders (Bottom Middle)

This section presents options related to mlrV's pattern recorders. The dials represent the length of the patterns that will be recorded in beats.

'Record Group Stops' allows group stops to be recorded in addition to sample row presses. This can be especially useful for 'slice mode'.

Misc (Right Top)

Click /mlr to set the prefix in monomeserial. License displays licensing information. Click fullscreen to enter fullscreen mode. Fullscreen mode currently only displays at 1024×768. You can also enter Fullscreen mode by pressing F11.

Monome Size (Right Bottom)

Selecting from the boxes in this diagram adapts mlrV's interface to your monome. The boxes represent common monome shapes.

If you have monomeserial open when you load mlrV it will update automatically. Otherwise you can press the monome you have connected.

NB: on windows auto-selection will not occur - just click the correct box for your system. IMPORTANT: this is required before presets will function properly.

If you press the 256 or vertical128 ‘+8rows’ will display. Press this button to pop out an additional 8 rows

Midi/osc tab

Clocksource chooses between internal and rewire timing engine. Send midi sync will enable another program to slave to mlrV–choose your midiout channel and turn on.

Tilt tab

  1. Select your monome model (either 40h with added accelerometer, or 64)
  2. Turn calibrate on and rotate your monome to all angles
  3. Place your monome on a flat surface and press the circular button labeled 'Center'

Options are available to customise the tilt response.

Inserts tab

This section allows expansion of mlrV functionality.

  • Select an insert from the dropdown which initially reads: '_framework.maxpat'
  • Toggle 'bypass' to turn on your insert, ensure the button reads 'on'
  • Click 1 or 2 to switch between two different inserts

Included in the base package is a framework which demonstrates the available hooks. Also included is a simple example filter with resonance. Please see _framework.maxpat in /inserts for more information

Midi Insert by dovemouse: Adds midi control to mlrV, instructions are here: http://post.monome.org/comments.php?DiscussionID=3717

Credits

mlr was originally written by Brian Crabtree www.monome.org.

mlrV was fundamentally based on mlr2 and it is not a complete rewrite substantial amounts of code were borrowed from Brian’s work, as well as large amounts of inspiration. mail: tehn@monome.org

mlrV has been refactored by Trent Gill over the course of 2008 after desiring a more detailed visual display to accommodate easier live performance. mlrV was exclusively written in MaxMSP 5 to take full advantage of the improvements to timing and graphical user interface.

mlrV is still a work in progress and there is some very specific functionality that is still missing or incorrectly functioning. These issues should be ironed out over a short period of time though this is dependent upon external workloads. mail: galapagoose@gmail.com

Throughout the process discourse and consultation has flowed across the interwebs with particular artistic guidance and help flowing from %. inspiration for such an intuitive delay interface would not have been possible without these contributions. see: http://rhombus.mytrellis.com/

mlrV is an open project and further collaborations and skill-sharing is encouraged. if you'd like to get involved drop an email to galapagoose@gmail.com or post in the monome forum.

Want to help out but don't have programming skills? donate via paypal to: trent.gill@gmail.com

Other versions

mouse edit - adds midi map for controlling volume, tempo etc from an external controller. Use the midi insert instead.

Links

 
mlr/mlrv.txt · last modified: 2010/01/24 01:26 by kevin