Forums > Max For Live

Re-route device parameter to another parameter

November 28, 2012 | 7:08 pm

Hi everyone.

I am new to this forum, and to M4L in fact… I’m a long time Live user though.

I have an idea in mind, and I wanted to know if it could be achieved with M4L.

What I would like to do is to re-route a device parameter of one device (instrument/effect) to another parameter of another device.

For instance, say I have Instrument1 on track 1, Instrument2 on track 2, and I would like to find a way to have the parameter instrument2->cutoff follow the parameter Instrument1->decay

So that both parameters have the same value (in a [0,1] interval)

I would like to be able to do that with 76 different continuous parameters, and about 12 switches.


November 28, 2012 | 9:12 pm

You can’t route directly from one parameter to another, but it would be possible to create a device with some knob that controls both parameters at the same time.


November 28, 2012 | 9:20 pm

Thanks. That means that the knob wouldn’t be able to receive the data from one of the parameters, and to send it to another one?


November 28, 2012 | 10:02 pm

Yes, because device parameters generally don’t send control data outwards.


November 29, 2012 | 1:55 am

EDIT: You can in fact do what you want by ‘observing’ a parameter and send the data to another parameter. There is even a factory device for this called ‘Max API Param2Param’. Sorry for the confusion.


November 29, 2012 | 9:06 am

Thanks a lot for the info, I will have to look into this.

My general idea is that I want to make a device to use Arturia Spark as a step sequencer for a Drum Rack, and use the knobs on the Spark hardware to control parameters of the drum rack.

The idea would be this : keep the step sequencing features of Spark, remove the sound generation part, use the internal sequencer to trigger a drum rack instead. In addition, I want to use the technique I asked above as a way to add a listener (observer) of the device paramers of Spark which are controlled by the hardware knobs/buttons, and send their value to another device parameter of the drum rack.

It seems to me like there is no good, dedicated step sequencer hardware for Live. Sure, the matrix-shaped instruments such as Push, APC and such can do it, but an NxN button matrix is not the best interface for drum step sequencing, something like Spark is much better designed.
But I want to keep on using drum racks and not the drum generator of Spark, for various reasons, mainly the flexibility of drum racks.

Spark also has 12 individual "continuous" device parameters per voice (16 voices), 9 of which can be directly edited from the hardware by "selecting" the voice (select+hit the pad), and using the 6 middle knobs and the three knobs directly above the pad of the instrument you want to edit.

Which means that by clicking select+pad #x, I could instantly have access to 9 editable parameters for the corresponding pad in my drum rack. and this for 16 pads.

Anyway, I will look into this param2param API you mentioned. Do you think it would be hard for a complete Max newbie to make a small device that would "observe" one device parameter and transmit the value to another parameter/virtual midi CC?

Thanks a lot, broc!


November 29, 2012 | 12:35 pm

I wouldn’t say that learning Max and M4L is hard but definitely requires a lot of time.


November 29, 2012 | 11:54 pm

There are quite a few limitations to doing this sort of thing in Live 8 (one of the main ones is the inability to detect the Note output assignment for each DrumRack chain, which makes voice selection and parameter assignment for the knobs quite difficult if the DrumRack isn’t arranged correctly). We’ve done specifically what you’re talking about with the Livid DrumStepp:r, and my own Monomodular patch, "hex". They require some custom Python stuff, though, and contain their own sequencers, so I’m not sure how much they would help, but here’s some links:

http://www.aumhaa.com/wiki/index.php?title=Mods#hex

http://wiki.lividinstruments.com/wiki/CNTRLR_Modules_Drum_Steppr


November 30, 2012 | 11:50 am

Thanks a lot amounra for the links! I will dig into this.

" We’ve done specifically what you’re talking about with the Livid DrumStepp:r, and my own Monomodular patch, "hex" "

I am sorry if this is obvious, but I don’t see where in DrumStepp:r or hex you would use a "listener" of a device parameter from one "non-Max/non-Live native" device, to transmit its value to another device parameter of another device.


December 1, 2012 | 12:00 am

I am sorry if this is obvious, but I don’t see where in DrumStepp:r or hex you would use a "listener" of a device parameter from one "non-Max/non-Live native" device, to transmit its value to another device parameter of another device.

They don’t. I was referring to the your explanation of your intentions to "control parameters in a DrumRack". If you’re just trying to control the parameters of the parent DrumRack itself, it’s not such a big deal. However, digging into the rack for separate chain devices’ parameters gets a little more tricky. I bypassed the m4l API stuff as much as possible, just because it tended to be rather laggy. YMMV. I also missed the part about "complete Max noob"…that stuff may only serve to discourage you, but in all honesty what I’m getting at is that doing what you’re talking about with the current API tools is far from easy, but doable.


Viewing 10 posts - 1 through 10 (of 10 total)