Device Details

Device Overview

Name/Version: CC Param Control Bank 3.0
Author: atomictag  
Description: Bypass Live's MIDI-map and manually map CC messages sent by your hardware controller to any mappable parameter. Use this to assign one hw encoder to multiple parameters in the same track or different tracks which is just not possible in Live (some "recipes" to achieve this are available in the comments). Custom support for Pickup/Value-scaling takeover mode, "Transient Mapping Mode" and more.

Features:

- CC Learn mode. Activate a slot and fiddle with your hw encoder to bind it

- Custom takeover mode (none | pickup | value scaling). One problem of using the same encoder/CC mapped to multiple parameters selectively enabled/disabled is that whatever value other than "none" you have chosen as "Takeover Mode" in Live's Settings will not be respected. This device adds custom support for all 3 modes ("none", "pickup" and "value scaling"). Just select "N", "P" or "VS" from the select box.

- Transient / Remote parameter locking. By default mapped parameters are not locked. This way you can set target values by turning a hw knob as well as by manually changing the value directly (e.g. with the mouse, Clyphs device action etc.). In Transient mode (enabled with the "T" button), parameters are locked only while input is being received and they are unlocked after 1s of inactivity. In Remote mode (enabled with the "R" button) the parameter is always locked (default behaviour of most M4L devices). The parameter cannot be changed by anything else but this device. However, updates happen at audio rate (= faster, more accurate).

- MIDI-map mode. Supported at the same time as CC mode, so you have freedom to choose the way that works best for you. MIDI-mapping works as one would expect with Live (CMD-M / CTRL-M) IF the "M" switch is enabled. MIDI-mapping is by default disabled in order not to record useless automation in clips.

- Throughput limiter: you can manually limit the speed of incoming CC messages in case your controller sends more CC data than this device can handle (experiment with the values - 25 to 50 usually works great).

BONUS TIP: you can use this combined with MIDI routing devices like http://www.maxforlive.com/library/device/3007/midi-router-and-receiver-xs or http://www.maxforlive.com/library/device/3003/live-midi-router-and-receiver so you can route your CC messages to different tracks/devices as you wish (and with this device "Value Scaling" takeover mode the transition is guaranteed to be super smooth).

---------------------------------------------------
v. 3.0 UPDATE:

- Major overhaul of interface and functionality

---------------------------------------------------
v. 2.7 UPDATE:
- Fix wrong behaviour when a slot is assigned to a param in "value scaling" mode with "transient" ON and a min/max applied (super useful if you map a volume fader and want the max to be 0db while still being able to change the volume manually). Now output values are always scaled correctly.
---------------------------------------------------
v. 2.6 UPDATE:
- Fix regression that prevented min/max to work with value scaling takeover mode
- Fix "Pickup" mode behaviour which was not consistent with the way it works in Live
---------------------------------------------------
v. 2.5 UPDATE:
- Fixed takeover mode selection not always getting correctly restored when a live set is opened
- Fixed output parameter values not always getting correctly restored when a live set is opened if "value scale" takeover more is used
---------------------------------------------------
v. 2.2 UPDATE:
- Improved value observing on transient parameters while they are temporarily unmapped
---------------------------------------------------
v. 2.1 UPDATE:
- Fix wrong scaling of some mapped parameters in Transient Mapping Mode
---------------------------------------------------
v. 2.0 UPDATE:
- Mappings are initialized with the correct current value of the target parameter
- Added support for "Transient mapping mode" = mappings become active only while input is being received and they are disabled after 1s of inactivity. This way you can manually change values (I use this feature to store device presets using Clyphx while playing live).
---------------------------------------------------
 

Device Details

Downloads: 2148
Tags effect, utility, hardware, dj
Live Version Used: 9.2
Max Version Used: 7.0.4
Date Added: Aug 26 2015 19:03:16
Date Last Updated: Jan 19 2016 06:43:09
Average Rating (4) 5
Rate this device: (must be logged in to rate devices login)
Device Type: midi_device
URL (optional):
License (more info): None

Device Files

Device File: CC Param Control Bank 3.0.amxd
 


Comments

I have updated the device to v 1.1 (there was a delay in Value Scaling takeover mode I used for debugging that was left in by mistake).

Would love to hear your feedback on whether Value Scaling takeover mode works with your setup. Also pls let me know if you find the v. 2.0 "Transient Mapping Mode" useful - I personally find pretty cool to be free to change parameters freely without the control being "disabled because it is controlled by a Max device".

Hi Atomictag. Thanks for your hard work. Oddly I was mostly interested in this because of this: "(arming and un-arming tracks automatically routes the CC message to the right instance of this device)". I have not been able to find a M4L mapping device that enables armed-track-exclusive control. What I want to do is something that seems so obvious and essential, and yet have not been able to find a solution for ANYWHERE: I want to control a parameter with a knob, THEN when I arm another track, I can control a different parameter with the SAME knob without changing the parameter on the previous track. The only way your device successfully does this is if I turn off remote input from my controller in Live prefs. But then I can't use any of the other encoders on that controller with normal Live mapping. I guess this is the point when you say that this "Bypasses Live's midi map"? I would be very grateful for any thoughts. Thanks!!

Hi there. What you're trying to do is essentially the reason I made this device (all other feats like value scaling and transient mode were after thoughts). Now, I normally do what you want to achieve in 2 distinct ways:

1. Use a Midi router utility like http://www.maxforlive.com/library/device/3003/live-midi-router-and-receiver or http://www.maxforlive.com/library/device/3007/midi-router-and-receiver-xs (I use my own, but they all do the same thing) and then assign a hw knob to change the output "channel" while having a receiver in each track set to a different channel. This way midi messages reach only the devices in the matching track

2. Without any external device, I use a router track with monitor IN and input from my hw controller. Then I set the receiving tracks with monitor AUTO and midi input from the router track. Then I arm the track I want to process midi/cc messages and unarm the others. Voila. Only the armed track gets the midi data, so you can have one instance of my device in each track listening to the same cc message - only instances in armed track get the data. I tested this with a LaunchControl and it works fine. Of course you have to be careful in arming/unarming the right tracks, but most controllers allow you to do that pretty easily.

3. If your controller supports "pages", i.e. midi/cc messages sent to different channels (LaunchControl, LaunchPad..) you can have your tracks receive midi input directly from your controller, but on different channels. Live does the routing for you in this case.

Hope this helps

Thank you very much atomictag for your very usful device.
What I love is the ability to leave a parameter free, even when it is assigned, and that's an essential function I missed.

Hi atomictag!
First of all I have to say your device is a life saver for two main reasons.
1. Midi control mapping saving. I was looking for a solution on saving more than 8 control mappings so I can connect my AKAI LPD8 and nanokontrol2 to VST synth DIVA. DIVA has lots of controls and I wanted to be clicking-free as much as possible. Unfortunately It cannot be done in Live.

2. Takeover Mode. I tried to use Diva's own learn mode as a workaround for being able to save more control maps. In that case Live takeover mode failed and using the same control on different midi channels was complete failure.
I was pretty frustrated and spent days looking for a solution.
Your device is the only one that did exactly what I was looking for.

But I have a problem. No matter which output midi channel I select in controller's editor your device sees only channel 1. Am I doing something wrong or is it the known limitation?

Hi atomictag!
First of all I have to say your device is a life saver for two main reasons.
1. Midi control mapping saving. I was looking for a solution on saving more than 8 control mappings so I can connect my AKAI LPD8 and nanokontrol2 to VST synth DIVA. DIVA has lots of controls and I wanted to be clicking-free as much as possible. Unfortunately It cannot be done in Live.

2. Takeover Mode. I tried to use Diva's own learn mode as a workaround for being able to save more control maps. In that case Live takeover mode failed and using the same control on different midi channels was complete failure.
I was pretty frustrated and spent days looking for a solution.
Your device is the only one that did exactly what I was looking for.

But I have a problem. No matter which output midi channel I select in controller's editor your device sees only channel 1. Am I doing something wrong or is it the known limitation?

Thanks for your feedback.

Actually I have a new version in the works completely rewritten that is a lot more reliable and with a much better takeover function. I'll post that as soon as I clean things up a bit.

@stilleto yes, only channel 1. That's a limitation (or a feature?) of Live. Basically MIDI channels are available in Live only for routing and MIDI-mapping. Within a channel strip each and every midi message - notes, CC, PC etc. - have always channel 1, no matter what. That's a bit of a nuisance for this device because this means you need to carefully assign the CC values to your hardware knobs and buttons in case you use multiple controllers at once in order to avoid collisions (or use a couple of spare buttons to enable/disable devices etc.).

hey atomictag.

really cool device.

it would be really cool, if you could add 2 knobs to control the depth and offset of a mapping of an ableton device parameter.

just like the offset and depth knobs in max essentials lfo device.

i suggest this because i'd like to use this device to modulate parameters. you could draw in some midi cc automation in a clip which would become your modulation shape and with offset and depth you could control the amount of the modulation and the centerpoint from where it takes place.

cheers. marc

Nice, I had been thinking about how to avoid the "disabled parameter" thing and transient mapping is a really nice and simple way to achieve this! Great work. I am sure I managed to find another way to control a parameter without this happening ages ago, but have no idea what it was... I'll see if I can find the old Max file and check

New update 3.0 brings a completely rewritten code and a major overhaul of functionality and stability. Hope you'll enjoy it :)

Please forgive me, but I may have posted a similar comment in the 2.7 version. A certain level of abstraction is difficult for me to grasp conceptually. I've read the hints hovering over the text, and will re-read your summary a few times. Maybe a direct application within a video would finally knock me in the head?

How does this compare with NativeKontrol DDC? How does it know of which equivalent parameter on which track a control should takeover? Do I need an instance on every participating track? Okay, time to read into it again...

Oh and if you do decide to add a video, a follow up with the router/receiver devices would really send it home.
Thanks!

This was what I needed help with after an additional read through:

By full confession, how does CC assignment work exactly? Does the track need to be available to all or the specific port/channel in order to see the CC value that you?re spinning? Moving a knob is not updating the CC number in the box, although I can punch the value in myself. I have a number of VSTi?s with this feature, but I so rarely look into using it. Does the preference have more to do with how you program your controllers or how you upload future instances of the device? I usually hotwap instruments in place, so I don?t loose my manual assignments.

also, the midi map mode has no apparently obvious engagement. ?M? makes it visible to manual mapping in live. Great. I pick a controller which is easily assigned to GUI objects in live, and I do see that the value scale now glows in Control Bank, but that same encoder will not assign itself to the value bar in Control Bank. Is the listener on the interface somewhere else?

?MIDI-mapping is by default disabled in order not to record useless automation in clips.? I didn?t understand this explanation.

Throughput limiter. Should this be reflected in automation thinning? IE, will I see less automation points? Might be a good indication of the responsiveness.

@braduro thanks for your questions. Admittedly this device is not the easiest to understand, I guess. The idea is simple, though:

- You have a MIDI controller sending CC messages to LIVE ("Track In" enabled in Preferences)
- You have one or more instances of this device in each !!MIDI!! track where you have devices that you want to control with the CC messages sent by your controller
- Now go on and map each device to the parameters you want
- For each mapping set the CC number that will control it

Now when you !!!ARM!!! a track (containing one or more control bank instances) and twist the knobs, you'll be controlling the parameters mapped on the control bank device(s) in that track.

When you switch track and !!!ARM!!! it (assuming the previous one is disarmed) now you'll be controlling the parameters mapped on the control bank device(s) in that track.

That's the basic idea: route CC into the control bank however you can/want and change the parameters mapped to that CC.

hey davide!
thanks for the awesome work.

Probably you can help me with this: I am currently looking desperatly for a method to avoid sending CC values to my clip when I record automation via my Arturia Keylab. i just want to control the "virtual" knobs and faders of a custom M4L patch.
So everytime i record the CC automation is recorded into the clip (under envelope section) as well as into the patch. Unfortuantely the "clip automation" is ruling the patch automation out. So right now the patch is completly useless.
As your device somehow gives a solution to this, i wanted to kindly ask, if you can give me a hint how to bypass the CC values sent to the envelope section to use the KeyLab to ONLY control the M4L patch. As I am a M4L newbie I am really stuck on this.
thanks in advance and looking forward to hear from you!

Hello there,
Thanks for your feedback.
Yes, the automation part is a bit of a pain (wished M4L allowed to choose what to include / exclude from automation). I have been trying unsuccessfully to find ways to prevent the CC MIDI automation from being recorded. M4L allows to delete clip envelopes for specific parameters and that work reasonably well (I used that in this little patch http://www.maxforlive.com/library/device/3515/track-select). But since MIDI data has no "id" there seems to be no way to do that for recorded CC automations. So usually I resort to keep the CC automation and delete the parameter automation - but that of course requires the device you are controlling to be specifically built for this purpose - or manually delete the MIDI automation after recording (which of course is a no-go for live situations). Hope this clarifies things somehow - sorry I could be more helpful

Actually this device is a life saver for me.
I was searching for a device that could let me control synths (or plugins) that were on a launched scene - and only them (I use Live for the stage, and each of my scene is a song with its specific synths and FX).
The main problem for me with other devices that were similar to your was that for each song I use different synths and the values I want to control are all the time different, so using absolute encoder was giving me headache and I had a lot of issues with relative encoders (Reaktor and Diva, for exemple, don't recognize the incremental CC messages my keyboard is sending).
Your "value scaling" option just saved my life regarding this problem : it's not perfect (an incremental option should be the best, but I can't find it nowhere on M4L devices), but it's near perfection !!!
Thanks a lot !

Hey this is a great device.is there anyway to set a specific cc expression control.Id like to try using this with external fx like traktor.Thanks again.

Hello there! Maybe I am retarded but I cannot map macros to the bank channels. I am using a Push 2. I have seen examples with version 2.7 working great, can I do the same with v3? If no would it be possible to get v2.7, please? The idea of having a "control" channel hosting this with the 8 most important parameters from different tracks for automation passes is FANTASTIC. Thanks for any input and thanks for making the device :)

Thank you so much for your device! Would it be ok if I would fork it (add 7 banks of 8 CC mappings each to be able to map the Behringer BCR2000 with it.

Login to comment on this device.

[ browse device library ]