Max4Live - can I create a button to load 8 VSTs+add params to map to macros?
Want to automate setting up a VST with params 8 times, macro map then midi map to my external multichannel instrument, ROLI's Seaboard Rise which has 157 presets, one preset might have 20 controls which in live are params on the VST you get to by clicking config (other posts hint this might not be doable in m4l)
It would be a HUGE leap for all Rise users if I could achieve this at the push of a button (or launch from preset in a umenu or maybe in its own folder in the browser?
Finally I could play record, and tweak the automated lanes and re-render! CAN I do this?!? Thinking it may involve getting the Configure button, simulating a click on that etc etc, but if I know to call it "Thing" and set its settings to x y and or z surely I can tell the VST thing in Ableton it now has had a parameter configured?
Manually its
1 create instrument rack
2 add ROLI Equator VST
3 click Configure
4 click on one of the VST's controls
5 map a macro to that control(/param?)
6 MIDI map the keyboards first slider/fader controller to it
7 set the min and max
Any advice on what shape of thing I ought to be making here?
I'd like to make it do its thing and exit or cease to be
- Is a "no inlets / outlets" edited thing in the m4l device in live the right way to make this, or a (v) bad thing?
- Should I be creating a standalone or amxd or doing everything in the javascript start-up file or executed beforehand?
Thx in advance - the tutorials, documentation, demonstrations and other forum posts I've seen here have made learning a breeze! Cheers
Someone with more experience using the Live API to configure VSTs maybe able to chime in, but off the top of my head I don't think CST parameters are exposed in the API.
Why is making instrument racks with this stuff preconfigured not an option. It's likely faster as this might turn into a wild goose chase.
EDIT: After poking around for a bit, parameters you have exposed to Live via 'configure' aren't even available in the API.
Whoops, small mistake. They are there, but you cant dynamically assign to macros as far as I know. And you definitely can't dyncamically configure a VSTs parameters.
Ableton is constricted to the first 129 parameters exposed.... You can set in your options text to autopopulate those for when you drag a VST in but changing the order is very difficult....
Our Lee uses python to create a custom script which is then accessed by Max to create a user map of the parameters for use with a range of MIDI controllers, we're due to release support for the Push and Push TWO over the coming weeks...
Cheers
D
Hi Evan. Cheers. There's 157 presets, each has a different subset of the 200 vst's configurable settings, so maybe I have to by hand create 157 different ableton live templates but surely m4l can help me shave a few million pointings and clickings?
Can't believe I can't use M4l to tell ableton go into midi map mode and add map macro 1 dial to vst's configured parameter number 1 which I've manually exposed, and set its min and max, seemed like that's the sort of thing its for.
Hi Evan. Cheers.
Haven't seen anything about being able to preconfigure either a vst on loading, or even how to make my own amxd which isn't audio or an instrument but a helper, or how to make a m4l instrument with settings, but then I've only been learning about 3 months, still some gaps in my knowledge.
Was going to use scripting to get me 157 files of param names and values to use and automate the create instrument process in m4l. There's 157 presets, each has a different subset of the 200 vst's configurable settings, so maybe I have to by hand create 157 different ableton live templates but surely m4l can help me shave a few million pointings and clickings?
Can't believe I can't use M4l to tell ableton go into midi map mode and add map macro 1 dial to vst's configured parameter number 1 which I've manually exposed, and set its min and max, seemed like that's the sort of thing its for.
Hi S4RACEN, erm, is there ANY documentation for this fancy "when you drag a vst in" and autopopulating from option text?
I'm still confused over whether you can do exactly the same things in the max way versus the javascript way, am guessing the javascript option lets me do the above, or do you mean I go into the inspector and start messing around with the "enable parameters" and attributes storage bits? Not had time to master every side of max, yet! Thx
Nothing official, i'd search for options.txt over at the Ableton forum, there's also some posts from memory on the excellent SonicBloom website...
Cheers
D
Cool! PS Got all params, GREAT bug/feature ableton add vst click configure then next/prev preset or bank on the vst - all params appear! Weird
options.txt - I see now where the 128 limit comes in and above happened before I found this hehe
Will try crafting a few different approaches using the liveapi js approach, don't know if there's any point making some kind of standalone application, or can max4live devices be crafted as an instrument with some ableton configuration like with a saved live set project file or template? More reading will tell.
If all else fails automation will help me maybe create 157 ableton template projects with the setup in the picture below - instrument rack + 8 channels each with a vst, midi mapped the macro dials to various controls and set the min/max.
Odd further bug though - the 8 instrument racks macro dials SHOULD be separately midi-mappable, so I map my first slider (CC107) to macro 1 (which sets values for 1 or more controls each with a min and a max) but when I duplicated track 2 for the 1st multichannel data, track 3's midi map seems to be the same control as for the first one, saves me effort if it works but my brain needs a reboot :D will check later and post any success. Can work around (unmap before duplicating then its map 5 controls to 5 macros for each of the 8, still a massive saving if that's all the user has to do once I'm done)
Also need to investigate what if I create a single vst in a max patch or max for live device and maybe sit THAT wrapper between ableton and this vst? and pass / trap / reroute the appropriate data to the appropriate place
Eg there SHOULD be a channel 1 that gets NO note on / off data but holds the 5 actual midi controllers (sliders/trackpad). I think I get ennui now, or maybe task-complexity-related-enthusiasm-entropy!
Very close now. Using Options.txt exposes vsts parameters, creating 8 midi tracks with vsts each tracking channel 2 - 8 very very nearly does everything every Rise user needs, so what yesterday sounded completely unacheivable turns out doable.
Final nut to crack is when I vary the sliders on my Rise keyboard and the trackpad, but of course there's 8 vsts, tuned only to channel 2-8 which don't receive that data, so if I can curry channel 1's input for those 5 cc's over to input to the other 8 vsts, great!
Maybe I should write the lightest patch ever to listen for and retransmit any midi data for those 5 cc's on channel 1 to channels 2-9?
Might not be possible this way but I'd be willing to bet there's 5 ways to skin a max cat in this dimension alone. Many thx for the help!
Live project file for SeaboardRise users with the first preset (Dirty Organ) as 1 group track (where the chain of effects compressor verb etc goes) of 8 tracks for the per-note data. You can record a clip using the play button on the right it records the 8 channels of the same VST simultaneously.
The solution was to abandon max4live / js liveapi was of trying to fill in the mappings and mins/maxs. So to capture and replay into equator next time what you did last time just needs 8 channels of per-note data, and we ignore channel 1 completely. The user input to the sliders and trackpad is trapped by mapping those 5 ccs to 5 macros 8 times over.
So I macro-mapped 5 Instrument Rack macro dials to all the Equator controls for this preset, with the actual min/max ranges set correctly, and then MIDI-mapped the left centre and right sliders and trackpad x/y CC values (107 109 111 113 114) to those. Et voila!
Here's a LiveSet of what I mean, its pretty much the picture above but finished. Terrible terrible playing (no, really) included (to check it behaves like equator without ableton).
Feedback on anything but the playing welcome!
Got it!!! Messing around with M4L.LiveParamToSignal I can actually observe OR change VST's parameters.
Add a vst, click configure, click on a few controls so they show up on the plugin, then tweaking the 'observer' patch in M4L.LiveParamToSignal you only need to add a float box tomessage box "set value $1" going into the live.object (or live.remote?) to control that from their. Wish I could tweak min/max too but no success yet.
Above live set probably only works Win7 and the dll for the vst probably lives in diff places for different people (was hoping it could just be found by asking Live what the VST folder is AND then adding one in live to 8 tracks but no joy, can write an amxd that loads vst but that's tricky too)
I can get the names of ALL the VST's parameters (NOT just 1st 128) and I can make 5 dials and have those drive the 8 channel's 5 macro(dials) and reduce my workload a little more by setting min and max either in macro or midi map or both.
If Python LiveAPI would allow me to script more like a macro of some UI interaction with live (eg select tracks 1-8 and Ctrl-G those into a group track? click map or macro map or add instrument rack?) and do anything 157 times at push of single button, then wonderful!
Has anyone found any good documentation or examples for that?
Anyway with 157 short text files of name name number number I can probably now create a m4l device or instrument for each of 157 presets fairly quickly, or better yet a couple of buttons (mono/numchannels) that sets it up - eg gimme organ guitar sax and since there's only one of this actual instrument a radio button selection as to which if any is the currently active/armed instrument.
Also going to investigate if I can route all the midi involved so one track/amxd invisibly records channel 2-8's notes into 8 tracks, and the 5 cc changes (on channel 1) on maybe 5 live.dials. Cheers!
Thx for the help - sorry if I've wasted anyone's time as very strangely, it turns out I was misled by a naming bug happenning when I began 2 months back, in Live you CAN screw up track(scripting) names internally ie if you do something to a track, reference it THEN rename it you get buggy results eg midi routing.
Can now follow the directions from Roli for setting up a Live set for Seaboard rise or grand (might be typo there as I found I had to record channel 1 as well as 2 to 2+n where n is the number of polyphony you've configured your keyboards firmware for) either way breathing huge sighs of relief to finally see EVERY attribute graphed in session view and tweak them and prove they all work.
All the things I was trying to work around with a max solution to have full access it unnecessary (mind you in max you can query the vst~ for the full list of parameters not just first 128 which Live's vst 'configure' UI is limited to)
Did have to 'unlock' lives features using Options.txt so that may have shaken something loose too. Or it may be copying the vst's preset files to where it can find them when run from ableton fixed it (I still think I need to use a soft-link or 'junction' as I think microsoft call em so there's one place for the preset files and a shortcut-folder on the hard drive points to the right ones).
There ARE still lots of worthwhile things Max4Live device can do both in Live and without, such as save anyone the several set up steps, clip management, give them a button to help ensure the names used are the right names (eg if you create a track, fiddle with routing, rename track, carry on fiddling with routing, bam wrong name). AND I've a Novation LaunchControl-XL (knobs sliders and buttons) and using M4L can actually help tie those 2 together which I believe is currently impossible any other way. Cheers!