mlrv 2.4

  • also, am i reading this right, that you can add your own max patches via the tabs?
    if yes, any special things u need to know to route it properly?

    what i'd like to do is add an audio/fx vst host to add like a buss compressor or fx to the Master Output of MLRV. if it works good maybe like 2 slots or something?

    i have a few examples of vst host patches i found on the cycling74 website. hoping it wouldn't be too hard for a max newb to connect the two?

    EDIT: nvm! got it to work! first time opening up a max patch! w00000t

  • great work ringo!
    please post any successes you have so other's can enjoy / learn from your work!

  • will do! i just need to tidy it up a little bit and I want to add another vst slot.

  • so here it is... its pretty raw looking but it works! no previous max experience!
    allows you to load 2 vst plugins in serial after the master fader
    integrated into mlrv tab section.

    to add to your mlr:
    1. overwrite dac.maxpat in /mlrv folder (maybe make a copy of the original one first!)
    2. drop +VST.maxpat in /mlrv/tabs folder
    3. start mlrv, select +VST from tab section
    4. plug button opens menu to load vst
    5. open button opens up the loaded vst window

    pretty simple, but was fun to learn

  • nice work on figuring out how to do this!

    there is however already built-in a method to route effects from the master bus in serial:

    sends TO your effect are: send~ fxinL, send~ fxinR
    returns FROM effect are: receive~ fxoutL, fxoutR

    and to control the dry mix you send a message to [r [ins]dryvol]
    this attaches straight to a line~ object, so a message of "1, 0 10" would mute the clean signal and only your effect would pass through.

    this doesn't improve what you've done, just means you don't need to replace the dac.maxpat file

  • oh cool! i saw those in the patch, but wasn't sure where they went.

    so i got the audio routing to the fxin/out now,
    not sure i fully understand how to do the [r [ins]dryvol] part.

    also is there a friendly way to pipe audio from each group + aux?

    thanks for your help and encouragement homie!

  • @ringo
    yes indeed - see inside [p group.mixer.l] and .r
    the whole idea of [ins]dryvol is just setting a volume multiplier for the uneffected signal >> if you send a '0' the volume is muted. if you send a '1' the volume is unaffected (the patch starts with the volume at '1').

    similarly inside [group.mixer] you can send individual groups mute commands (to eg: 'r 1group.postmute'). in your +TAB you receive audio from [receive~ 1group.l], send a zero to [s 1group.postmute] and send your audio output to [send~ master.input1] which bypasses the individual group mute.

    then you can still process the whole mix (after individual effects) with the [send~ fxinL] as you've already implemented.


    this is all to say that the infrastructure already exists in the system i just never got around to building a flexible effect routing system into a tab! thanks for digging into it!

  • awesome, thanks for the info!

    any chance of an example or screenshot of how muting the dryvol works?
    i'm still not wrapping my head around that at all.

    something simple would probably suffice

  • here you go:


  • wow thanks much man! really appreciate it!

    i did some learning/tutorials yesterday, hoping to learn more of the basics, so i could translate what you said into the patch. this helps a million tho! looks like i was part of the way there! GROUPS YEA!

    i'm guessing if i wanted to do aux/return, i would need a similar deal w/ the dry volume but i would patch it into the aux.insert.l (and r) and the aux.l (and r) and send the mute msg?

    ended up adding a glitch stutter to my +VST patch.
    and started making my own delay & filter just for kicks!

    few more questions? ^___^
    +how do i go about linking the mapping up for my tab?
    is it an individual piece by piece kinda thing or a one size maps all kind of deal?

    i need to study this piece in the other tabs more, esp the gradual release of the button part.
    just want to map the stutter toggle at first, and maybe the preset box? but would be neat to be able to map the rest & vst params too maybe down the road. i have the param names & numbers auto populating in a box when u load a vst.

    +is it possible to route a signal to a side chain input on a vst? i couldn't figure out how to get at it.

    +also I don't really understand how to implement the patcher and bpatcher objects yet, but would doing so improve the performance of my patch? edit: kinda get patcher now.

  • – mapping is done with the 'paramap.maxpat' object which you'll find in pretty much every file in the mlrv & tabs folders (inside [p param]). basically it attaches a button & a colored panel which need to be lined up with the object they are mapped to. you should be able to look at another patch and find what you're after (eg. a dropdown menu) and copy that whole object & it's attached paramap.
    you'll need to open param and change the osc address inside to reflect the location (see other tabs for format). you should also give your mapped objects their own 'scripting name' and create a single 'autopattr' object in your main patch >> these allow things to be saved in your preset.
    inside [p param] you give paramap it's 2 or 3 arguments. the first 2 are the minimum and maximums for that object (a switch is just 0 & 1), and an optional 3rd argument is either 0/1/2 >> change these to choose whether mapping is momentary, toggle, or something else?? can't quite remember

    – i'm not sure about the aux-returns stuff. i implemented the reverb with a sort of parallel processing approach. because aux-return is adding sound to the dry signal there is no 'mute' message for the clean through (i don't think).

    – side chain should be possible. its likely a feature of the [vst] object which will allow extra signal inputs where you can send the sidechain input. best to read the vst object reference quite closely.

    – the [p subpatcher] approach is just a way of packing up a bunch of code into a single box. select the objects and go to >edit>encapsulate to pack them up. then just double click to edit & change. 'de-encapsulate' unpacks the insides.
    i often make separate files for things like tempo.maxpat so you can have a re-useable block that you just have to copy the file to your new project for. these you can just add to your patch by typing the name of the file into an object box [tempo.maxpat]. it will load if it's in the same folder as your currently edited patch.
    finally, you can load one of the above items inside a bpatcher which is identical to the above but also gives you access to the UI of the loaded file. this is a great way to build interfaces that don't make a super messy patch as often setting up a UI in a precise way requires a whole lot of objects.

    best of luck!

  • hey! been pretty snowed in here, snuggling up to the maxmsp fire. i got the dry volume mute to work, group fx, plus my own lil homemade frankenstein effect, the side chain vst insert (it was in the vst~ object, i was just being dumb), and the mapping working!

    how do you i get the LED feedback working for the mapping?

    one i kinda wanna make my toggle like the way you have the delay, and verb buttons setup. hold for momentary, tap for latch. the other would just be a simple LED on/off momentarily when i press.

    i experimented w/ copy/pasting and editing the reverb toggle over w/ the [p send input], [s [map]feedback], [s [map]feedback], s [map]varfb, and r [mlr]refresh and all that stuff in-between. i had the latch/momentary/LED feedback kinda working, but it was backwards (light always on, press it goes off) and wonky, and basically broke the toggle to the effect on/off so i was always hearing the effect.

    i sorta see how some of it works, but i totally don't understand whats going on enough to freak it.

    thanks again for all your help dude!

  • nevermind! i think i got the LED feedback working now! ^_________^

  • image

    so what started out as a simple master buss VST hosting patch has evolved into much more

    +FX patch for MLRv2
    just drop it in your /mlrv/tabs folder and you're ready to go! no modification necessary
    please see PDF guide included in the download for better explanation of functionality

    adds following functionality to MLRv2 using built-in tab framework
    + individual group & master VST FX hosting
    can also load and save plugin presets

    + sidechain insert VST plugin (great for ducking/gating)
    this is hard routed to my own personal preference bc i couldn't figure out a good way to make this dynamic. *any ideas?
    groups 1-3 feed thru the VST plugin,
    group 4 is fed to the side chain insert of the plugin but not output.
    i usually put my drums on group 4, so that it is keying my side chain compressor plugin (i.e. groups 1-3). also acts as a subgroup master plugin on groups 1-3. group 4 is still output normally

    + Glitch Buffer // LOFI Delay (my own frankenstein fx creation!)
    with effect placement routing & save-able preset box
    can be routed after side chain insert plug, but before the master (so excludes AUX and Group 4) or after master fx (everything that hits the master. groups, aux, etc.)
    can be super gnarly sounding at certain settings, so exercise caution w/ the extremes.
    i capped the feedback so it can't ever runaway too hard on you.
    *sounds like sample buffer explosions // broken DAC !!
    *lofi delay trails and spills over when effect is engaged and bypassed
    *use the overdrive and sample rate/bit crusher sections to blow out your delay signal
    *there are a few easter eggs that you can modify to your liking if you open up the patch….kinda like trimpots on an FX pedal.

    allows better operation from grid! tap for latch, hold for momentary.

    I tested it out pretty hard yesterday and it hardly increased my CPU performance much (~5%) unless you have like 6 plugin windows open. it doesn't seem to matter if you have them loaded, but if you have the windows open, it can use a good amt of extra processing.
    (i'm also on a rather old (late 2010?) macbook pro, which is a good sign if you have a newer computer, b/c i didn't experience any hiccups)

    hope some cats can enjoy this!
    i feel like this really adds a lot to the standalone usage of MLRv2

    open to feedback / suggestions on improvements! or if u hit any bugs (seems to work pretty flawlessly on my machine)
    i am rather amazed at what you can do just 6 days into your Max trial.

    many thanks to @galapagoose!! wouldn't have gotten this far without your help man

  • @ringo wong

    'woah'! (said the cart to the horse) This is amazing my friend. Been mucking around with it tonight, despite losing audio and mlrv glitching out (pardon the pun) and the CPU going nuts up to around 20% this is an awesome undertaking and certainly adds to the overall functionality of what is definitely my favourite monome max patch.

    And as you said above 'i feel like this really adds a lot to the standalone usage of MLRv2'

    damn straight brother….thanks for compiling this.

  • @fluxsta, hey thanks man! and no problem! w/ all the cool patches i've gotten to use because somebody else here took the time to make them, i feel good being able to share back a little bit.

    it was alot of fun to make something that I can use and learn some Max programming at the same time!

    when you say "despite losing audio and mlrv glitching out (pardon the pun) and the CPU going nuts up to around 20%" is this only happening when you use the +FX tab? do you have several plug in windows open? sometimes they like to hide behind stuff.

    i did not notice any real issues when i was using it. but as a max noob i wouldn't be surprised if there were some weird things going on.

  • Nope. Just using the +FX. Not really a vst user mate. No problems though can live with it!

    Thanks for sharing

  • i recall bumping up my vector settings a notch at some point. maybe that would help?

  • wow these adds looks good ringo, i think i'll give a try these days.

  • thanks @tcma!

    thought i'd share the latest version of my +FX patch, LOFI edition.

    for all you low fidelity heads out there
    inspired by the Roland/Boss SP samplers.

  • Hi Friends! I really need mlrv TO work. Any chance TO use In 64 bit platform? Im using
    Live 9 64bit
    Máx 6 runtime 64 bit
    Also using gridlock TO run monome apps.
    I need an advice please. I try but nothing comes.
    Amazing work goose, i really need TO use This Monster!

  • mlrv uses a maxmsp external called 'xgroove' which is 32bit only. it could be rebuilt using the max groove~ object to run in 64bit but i'm afraid it's too much work for me to get my head around these days.

    if any adventurous max user wants to try, look in the plx.maxpat file. you'll need to edit [p xgroove~ 0file 2], and add some logic to handle the loop points & looping/oneshot functionality.

  • thanks ! i install max 5 runtime 32 bit and mlrv 2.3 works !

  • Do you think it would be a difficult thing for me to try and modify mlrv to output mono channels? I like that ability in aes 0.4 because it allows me to output the 4 groups to my cassette 4 track and send triggers to my modular on the other 2 groups, all through my adat output. If I use stereo outputs, it limits me to just the 4. I suppose I can try to use soundflower to route but I'm thinking this might introduce latency and other problems.

    I am happy to try and investigate how to do it but as a max novice I'm hoping someone can tell me if I'd be in way over my head before I look into it. Oh and is this something I can modify using max6? That's the only full version I have and I'm seeing recommendations to use max5 to run it. mlrv runs fine on max6 over here.


  • mlrv already does that!
    in the bottom right mixer section, where it says 'master' you should be able to click each track and route it to an individual sound card output, or you can change the master output routing from '1+2' to any other source.

  • perhaps I'm doing something wrong but I only see stereo outputs that I can route it to. Attached is what I'm seeing. Is there something I need to do to enable mono outputs?

    174 x 298 - 12K
  • In the meantime I found a workaround. I just route the i/o mappings in max to the same output for 1+2, and the same for 3+4, etc. Seems to be working but I'm still curious if I'm missing something with the mono output selection option.

  • hey guys! been ages since i've been here. excellent work on the new mlr.

    trying to run mlrv 2.4 (actually 2.3004, which is what is included in the 2.4 zip) and can't get past the credits splash screen, it just stays there. DSP is on and happy. OSX 10.9.1, Max 5.1.2 full version.

    weirdly the credits disappear and the program runs in Max6 runtime, but not super reliably and i've read that it's not such a good idea anyway (it's a 2008 MBP so not the fastest of machines).

    any ideas?

  • i think you need Max 5.1.9 as a minimum.

  • Hi!
    I've got MLRV working with my 40h, but I want to trigger chopped drum samples to sequence a beat. MLRV doesn't seem to be very responsive - is this just something it wasn't designed to do or is there anything I can try to fix the latency? Many times the button presses on the monome are unresponsive, which doesn't work if want to trigger individual drum samples in sequence.

  • make sure you're running in max5 for best performance.

    set your vector sizes in the setup page to as low as possible without audio dropouts (try 64).

    make sure you understand how the 'quantize' function works. all presses are locked to the tempo by default so will only chop on 16th notes. if you want to turn this off look in the top right corner where it says '16n' and set it to 'none'.

  • thanks. regarding the quantize function - I'm importing chopped beats already, so there's no need for MLRV to segment any loops. I just want to trigger the individual sample banks quickly and accurately. I will try this later today

  • quantize doesn't affect the playback speed or groove of your files, rather it allows you trigger your samples exactly in time with each other. a common way of finding the feel of the quantize is to focus on the timing of the 'release', rather than the press. this is because you actually need the press to arrive slightly before the beat in order to trigger in time.

  • galapagoose,

    there's a nasty bug with the pattern recorders i always run into, and its only in 2.3 and later. are u able to possibly have a look? or can anyone else confirm?

    to repeat the bug: record a pattern of presses, kill the pattern u just recorded, next press a button on the same beat that pattern began. so if the pattern began on the first beat, once u stop it press a button on the same first beat. what happens then, is the button lights up but the loop is not triggered (and if anything is playing in that group it will stop). its hard to better explain, but basically after stopping a pattern i have to make sure the next button i press is not on the same beat that pattern began, or else it wont trigger. it happens everytime, so its not hard to duplicate.

    can anyone confirm this bug? thx in advance

  • ^bump. nobody else has this problem? I've spent hours trying to debug this in max and it seems the bug is not in the pttrn.maxpat as i expected, but somewhere else in the patch. don't know where to look next.

  • Hey, small problem here. I've connected everything up to mlrv and have gone through setup correctly to reach the monome test app with successful results.

    When I connect to mlrv through settings, make sure my grid is selected (128H), and then drag a clip into the launch rows, pressing a button doesn't play through the clip. The grid controller responds; it shows the first button of the row lit, but it doesn't move across the grid and no sound is heard. It just sits there at the beginning doing nothing. Is there something I'm missing?

  • u installed the xsample externals?

  • @elquinto Yeah I copied them to their folders

  • weird, because what u described is what typically happens if the xsample externals aren't installed. the correct audio driver is selected and the dac is on?

    your folder structure should look something like this-
    Applications\Max5\Cycling '74\msp-externals\xsample.mxo

  • Are you using rewire?

  • @elquinto Haha totally weird, I specifically remember dragging xsample into msp-externals, but when I checked for it, it wasn't there. That was the issue, many thanks for the help :)

  • problem: stereo files only play in mono.

    this is the same problem that folks have reported as far back as 3-4 years ago, with older mlrv versions. i'm hitting it in the latest 2.4 (2.3004), with max runtime 5.1.9, on OSX 10.8.5.

    i've verified that all samples loaded into mlrv are stereo WAVs, 16bit/44.1khz, using a variety of DAWs and tools like audacity. they play back in perfect stereo in those environments, and even on my MPC, but not in mlrv, which only plays the left channel.

    xsample and all the proper max+mlrv basics are installed, and since everything else is functioning in my environment, i'm at a loss as to why this is happening.

  • this is bizarre and i'd suggest it's actually the opposite problem to what has been previously experienced. (in the past it's been mono files only playing back on the left channel).

    this symptom seems to suggest the audio file analysis engine isn't working. one part of this process uses an 'mxj' (java) object, so perhaps you don't have java installed? that seems strange as 10.8 has java as part of the package?? if you press command+m do you see any errors in the max window? (take a screenshot)

  • java is installed and working correctly; verified with the bitwig studio beta i've been running for a few months.

    here's the output from the max window. i think the bit about not finding serialosc.maxpat can be ignored, since the serialosc bridge works perfectly, and the message doesn't show up every time:

    * * * * *
    xsample objects, version 0.3.2pre
    xrecord~, xplay~, xgroove~
    (C)2001-2008 Thomas Grill
    binding to port 17812
    binding to port 7000
    /Applications/Max5 Runtime/Cycling '74/java/lib/jitter.jar
    /Applications/Max5 Runtime/Cycling '74/java/lib/jode-1.1.2-pre-embedded.jar
    /Applications/Max5 Runtime/Cycling '74/java/lib/max.jar
    MXJClassloader CLASSPATH:
    /Applications/Max5 Runtime/Cycling '74/java/classes/
    Jitter 1.7.0 installed
    Jitter Java support installed
    binding to port 27101
    serialosc.maxpat: 2013-may-20
    bpatcher: bpatcher: error loading patcher EMPTY
    bpatcher: bpatcher: error loading patcher EMPTY
    bpatcher: bpatcher: error loading patcher EMPTY
    bpatcher: bpatcher: error loading patcher EMPTY
    bpatcher: bpatcher: error loading patcher EMPTY
    binding to port 8000
    __masterclock__ regular list:
    __masterclock__ permanent list:
    metro 0.00
    __masterclock__ current eventlist:
    __masterclock__ regular list:
    time 0.00
    __masterclock__ permanent list:
    metro 0.00
    __masterclock__ current eventlist:
    * * * * *

    the stereo/mono glitch is now gone, and replaced with something else: i had to manually open up audio-midi preferences and change the playback/recording rate to 44.1, from the default 48khz. it usually somehow gets adjusted automagically every time i start mlrv. minor quibble; i know that 44.1 is all mlrv supports.

    as far as that mono playback issue goes, it may have something to do with other apps i had open at the same time: renoise, two instances of audacity, paulstretch, maybe even a webbrowser. it's possible that somehow even though all those other apps worked just fine, working with audio at different rates simultaneously (in stereo!)...something tripped up max, and it didn't want to cooperate or share the audio device. i should have done a clean test yesterday with nothing else open except mlrv. today, running the minimal setup seems to indicate all is well.

  • Hey guys, trying to use mlrv but all I see is the splash screen with the credits and can't figure out how to make it go away. This is probably super simple but i have no idea. Thanks.

  • if you're on osx there's a new standalone version that shouldn't suffer this problem ( otherwise you've probably got an issue with either java or quicktime not being installed.

    alternatively, tell us more about your setup and we can try to come up with a solution.

  • Hi,thank you for the new version!
    I just don't understand the way to use my Arc2 with it.
    I can connect the arc but don't see how to map it...
    Any help?

  • @galapagoose

    i did not know where else to post this... in version v2.5 i think there is a bug in shot mode. when the sample ends the last led stays lit, and if you press anywhere again on that row it only starts playing after 3 presses, i think.

    also, there is something funky with the dsp driver menu. if i select "Core Audio" it automatically displays "none". the audio works, so the "Core Audio" is selected, but it displays "none" in the menu.

    thanks for the update version!