The Covert Operators

  • Increase font size
  • Default font size
  • Decrease font size
Home Tips and Tricks Articles M4L Tutorial - Saving multiple presets with a Live Set

M4L Tutorial - Saving multiple presets with a Live Set

This is a M4L tutorial on how to store, load and morph a list of values.
The pattr and pattrstorage objects may seem daunting to newcomers to the Max world, but those objects are very useful for managing data like multiple presets that you wish to store with your set.

I have an example device that allows you to work with the values of a multislider object and lets you store those values with your Live Set.
The multislider object is a Max object without special support for Max for Live, therefore it doesn't remember values like M4L objects such as live.dial and live.numbox do.

Multislider Pattrstorage Example

- Click here to download the Multislider Pattrstorage Example device

If you are familiar with Max, this example may be all you need to get started. But for the newcomers or in case you need a refresher, let me show you how to set up your own preset system.

Pattr

This is a very useful object and it can do many things. Cycling 74 has some excellent tutorials on the whole pattr family of objects. In this tutorial I'm not going to explain everything it can do. I'll just show you one thing that can be used without needing to learn more. For some objects there is always more to learn, but don't let that get in the way of using what you already know.

Start by adding a default Max MIDI or Max Audio Effect to a track and open it up for editing. Double-click on some empty space to bring up the object panel.
Select the Sliders tab and hold your mouse over the Multislider, but do not click on it.

You will notice that a number appears on top of the multislider box, click on the number.
This reveals a few different pre-made multisliders with different colors, settings and looks. Select the orange on black multislider labeled M4L.black.16.

Create a pattr object, you can do that by pressing N for New object. A textbox will appear in which you should type "pattr Multislider".
The first word "pattr" is the name of the object, the second word "Multislider" is an argument. In this case it is an argument to give the pattr object a name. If you don't give it a name, it will give itself a random name. It will always have a name. Be it "Multislider" or "U102410041".

The middle outlet of the pattr object is used to connect it to an object like multislider. Connect the middle outlet of pattr to the inlet on the top left of multislider.
The pattr and multislider are now connected in a special way. Everything that goes in and out the multislider object also goes in and out the pattr object.
You could even make this connection without wires, but more on that later.

In order for the pattr object to be able to store its data in a Live Set, we need to enable parameter mode. Right-click on the pattr object and select Inspector from the menu.

In the Parameters tab, you find the option Parameter Mode Enable. Turn it on using the checkbox in the value column.

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut3.png

Now close the Inspector and save this device as "Multislider Pattr Example". After you saved the device you can close the editor.
You now have a device with 16 sliders and their values will be saved with your Live Set. Now you know how to store a single preset of values with your Live Set, lets look at how we create multiple presets.

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut4.png

Pattrstorage

The pattrstorage object is able to save and recall presets of pattr data.
First load the "Multislider Pattr Example" we just created and open up the editor.
Create a pattrstorage object and give it the argument "Presets". Open up its Inspector and turn on "Parameter Mode Enable".

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut5.png

Because pattrstorage is now the object that reports its values to be stored with a Live Set, we need to disable "Parameter Mode Enable" on the pattr object.
Open up the pattr Inspector and disable that option.

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut3.png

We don't need to connect the pattr and the pattrstorage objects with a wire. They're already connected.
If you go out of edit mode and double-click on the pattrstorage object, it will show you a client window. And it will show "Multislider" as a client.
This is the pattr object we created and named to connect to the multislider object.
You are able to control data of any connected client. This means we could change the values of the multislider without actually touching the sliders.
This is just one of many things this object can do but we will focus on how to save and recall a preset.

To store a preset, you need to give pattrstorage a message. The message "store 1" tells pattrstorage to create a preset of all connected clients.
This preset is stored in slot 1. If you wanted to store it in slot 30, you would send the message "store 30".

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut6.png

To recall a preset, you just send it the number of the preset you wish to recall. You can use a numberbox or a message for example.

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut7.png

This leaves one more thing to cover. The morphing of presets!
To morph one preset with another, we need a recall message with 3 arguments. The first 2 arguments are the numbers of the presets you wish to morph between. The last argument is for a float value from 0 to 1.
If you want to morph halfway between presets 1 and 30, you would send the message "recall 1 30 0.5".

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut8.png

You notice I didn't use the message "recall 1 30 0.5", but instead I used "recall 1 30 $1".
This allows me to control the morph value from a float numberbox which is attached to the recall message. Every time the morph value is changed, the recall message is sent out with the float number in place of the "$1".

If you wish to have a tidy looking interface to manage presets with pattrstorage, copy the following code and paste it into your patch.

<pre><code>
----------begin_max5_patcher----------
1380.3oc6a0zaiaCD8r8uBAghdJ0Pj5S2as.8VWfEnGCBBjsXhYWIQCI5rY6
h8+dIG8QnrkjochYxlHD.5XRMjO93v2Lzl96ymYuh8Hoz152st1Z1ruOe1Ln
JYEype+L6r3GWmFWBOl8ZVVFImaeUUabxibn9+JOdUJw5ywEwYDNov5SrDRy
SkuKisimR3Pe3TW6crbdI8+Hx5PNKZpdaLe8FZ982VPVyqflKdonYKD1s5EO
3knENV2TaDMAPAa0+9aXak9OWfFnk+nfFmZ8mrzDEPQyavDRV2OlOWVbklTQ
ForL9dxATQIga4rn+4NZ74d0Sx+1VR0D21tcF1GsrTZokGPNtA.oDzOofbOK
ZA+BRKBbGmlZgD+8KHCvNdKCkLxxHnLbT1A4YJ1Im7UwHd.4rMd8WrpYHGwe
Fgg78q7ev.C4N1lJD5r7e7d4XH5IPHnE9K8QQgCwJTg.1narbfMSAfSimn2t
xB6L.w33OLwbw2SUxYEjSyY4XbynDCFCdLgfGiOdTOFGOCPLuAbVp4Duni6r
rzw.TRJ8AxhxTZBonoOeHtncv9DqX6llFJ2v9ZSKsweKHkhH7wbJKWcOQDD0
MnJ1qf01esuKUiUGgcYqDfQYLNzq6JK66RYwbcB3EVmFPvAXPE6pK3aaRK4V
BjmhZachR1tShUP6qi5lzPybL9ARxswbdAc0NN4o+qrdYpdcRtPjtivtqo5l
5UAHqHoCW0owc4zpg11tmVK2RHIozrgrtjS1VNTijG2xxkY1ImXKFbv4eqC6
04AxD9gCadlf4fAu2Va7E5qMpXfE6PTV65c1sgUv60MeuN6AZIcj9IikzLOv
g8h037bV89i1wqugJkke+wAjb7FiYRo4eQ1KkiAXYx1Cxd2wpfXUafbRyKmn
1xPY++q1iKd3UEqvqZGa3QzNN8CHDToAi7gLgczVWnydeGScvAPgVvi65Set
swq8u4XrZ.Le8BUl09Cxptio8pm9afW6gL5c.OG42sz07cEMGBs2LIvQ1u+k
eESs50Cjbw.KKbkEdxBeYQfrHTVDIKVJKPNPIXCBLBAVg.yPfcHvPDXIBLEA
1hAawUiGXKFrEC1hAawfsXvVLXKFr0Er0ErUb1xl0smUHEmwhoLfVrdQUvuP
QUdZyI9l2RAW5Qz3m1XLZpN5cT0QrgUG8WhdUTGCmTGmTGmTG0Qcz68g5Hj2
8PpixFu18Xpi0GmuVcL5Hpi3QUG03yXrVT7vwYOd6rDIaOFRmOaiNZjAenzH
EnDjdDuZBwm2JROJaKd6n6zc636ccGjl5N3KstS8GgumQzc9aVbRuxNtSxNS
xNudxNnOJGFDq4gAwF6vftUYV4Y5CC5OcXvoCCNcXPcNLH9CRRY5kQ1kNgr5
ulbL1DIj8OBctdSHyYJgroDxd0RH6CR1XtZlMlwRFCGfTzdLVxXnou2xojwl
RFSqjw94+SHq6UQTUY7yR4EwFvCuzuhc7xqvY78Dq8dnK309sNSLTkbHxIZ7
qwI5rtVLcz3DcjXzGQfCVQjN16uXYWSOp4qF3KNWs2UVQn.4kIB2tGtW851d
Zcp7F8oFEppaPNAh9IxUL8ObwG5agaZ99+JI.dUVeWOhR1th0MqBsWCVqmn1
DRIml2Fo4ZEVV4o1PSRH4poCmQS1xn4713M85gpOp7uDnxUDU0Gtx8xKAKdY
yadtnEcQ3Pem.I.QnPE3Bu64hWH3yQwq7mjwIgWe.gt0ksu44h18vwPn0vdn
5wgHrYQERKtB7WQFjqB6LdiwUlDUQZiJr4PE3GizZEzjd695fJGeCuB5pktq
uQ4J4OhBM.koW.0AU6A8KuZkN6.APctNUh27i4+uXjCyj
-----------end_max5_patcher-----------
</code></pre>

In presentation mode it will look like this:

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut9.png

The "Parameter Mode Enable" feature is not something that stays enabled after you pasted it from code, so don't forget to enable it again if you use the code I just provided.

Add your multislider to presentation mode, you can do this with a right-click option. Arrange to taste in presentation mode which you can access from the presentation button in the bottom toolbar of your patch.

When you save the device, you will still see the patcher in edit mode in the device area. To ensure this device opens up in presentation mode, we need to enable that function. From the View menu, bring up the Patcher Inspector.

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut10.png

In the view tab of this Inspector, enable the option called "Open in Presentation".

http://covops.dreamhosters.com/uploads/pattrtut/pattrtut11.png

Save the device as "Multislider Pattrstorage Example" and we are done. You now have a device that is useless in itself but you can use what you learned and parts from this patch for your own creations.

Practical use

I made a device that lets you select multiple parameters from devices in Live and it allows you to store multiple presets with different values. An example of where this device is useful would be using it with a 303 soft synth to morph a squelchy sound into a roaring bass with a single slider.
Feel free to play around with it or ask any questions you may have regarding how it was built. You already know how the preset system works now.

http://covops.dreamhosters.com/uploads/Snapshot%20Morpher.png

- Click here to download the Snapshot Morpher device

Comments
Add New Search RSS
Tone Deft   |2010-04-25 20:09:46
very practical advice broken down into digestible chunks. thanks for pointing out the pitfalls as well.

baby bird want more.

a morpher for Operator has been a bit of a Holy Grail for me for years. thanks!!!
33 Tetragammon   |2010-05-02 03:01:01
OMG!!!!!!!!

you know,i have owned N.I's KORE 2,always loved it's soundvariations.
when MFL came out,i thought about building something like that for Ableton Live.
this is so amazing,i love that i'm able to do all of this in one environment,with spectacular results.

selling KORE 2 now.........

you guys rock!!!!!!!
lofa   |2010-05-06 07:31:54
Sexy. Thank you very much for sharing. Supplemental links for others:

http://www.cycling74.com/docs/max5/vignettes/core/live_parameters.html

http://www.cycling74.com/docs/max5/tutorials/max-tut/pattrchapter01.html

http://www.cycling74.com/docs/max5/tutorials/max-tut/pattrchapter02.html
33 Tetragammon   |2010-05-08 02:14:31
well,after playing with it,i noticed something :

when recording the morphing in arrangement,i get huge cpu-spikes,up to 65-70%(Imac,2.4ghz core2duo,4gb ram,320gb hd,mac osx 10.5.8,live8.1.3).
i tested it with vst's and ableton's own devices(like sampler),doesn't make a difference.


jason  - oh wow   |2010-05-19 12:55:59
Nice patch (the morpher). Thanks for sharing the knowledge guys! This is GREAT fun...and has awesome potential. Also, I do not exp the same CPU spikes mentioned by the person above,... while recording (fairly rapid) automation of preset morphing into an arrangement. WinXPPro 2.5core2duo live 8.1.3
jason  - one more thing...   |2010-05-19 12:59:29
I am using Max4Live ver. 5.1.4 by the way. perhaps Max version has something to do with earlier mentioned stability issues.
sone   |2010-05-31 14:53:05
first of all - thank you very very much!
i have a remote zero sl and i would like to know how and where inside of your Snapshot Morpher patch you are doing the naming of the parameters and how do you send them to the controller - especially how do you send them to a automap controller like the remote zero? the remote zero is showing the parameter name "Morph" in its lcd - which is very cool! the first controllers are mapped to "save" "load" - to all the static paramters in the right part of the Snapshot Morpher, but besides of Morph they are named not so clearly. I would like to add a functionality to be able to send all parameternames which are shown in ableton to the controller-lcd.
cheers
Vayner   |2010-06-01 03:01:04
Its not possible I think. The novation needs sysex for the parameter names.
No sysex (without workarounds) in M4L.
docprosper   |2010-06-01 04:47:11
Love the preset functionality, but I have been having trouble getting my presets to save with a Live set. See:

http://forum.ableton.com/viewtopic.php?f=35&t=143530

Where I've started a topic about this, albiet with no responses (yet?!?).

The above link will also jump you to

http://www.maxforlive.com/library/device.php?id=304

...which is a modified Buffer Shuffler device I've created that uses the preset functionality but won't save said presets with the Live set. I'm pretty sure I've followed all the Covert Ops instructions, any help?!?
-Hamish
docprosper   |2010-06-02 18:09:17
so..... it took two things to fix the problem mentioned above. The first was updating to Max 5.1.4; as these presets won't save with Live sets when using versions earlier then 5.1.3. The second was to add names to the pattr objects; it appears that allow the pattr objects to assign random names - by not naming them - will result in not being able to assign presets with a Live set. This is all fixed in version 1.1 of my posted device. Thanks Covert Ops!!
-Hamish
marc  - Major.   |2011-03-09 11:13:20
Brilliant.
stephane  - presset morpher   |2011-04-17 08:45:22
Don't know why, but I can't get the prest morpher to work with an device... Even with the 'enable auto mapping' engaged, I don't get any parameter name in the empty menu under the device selector.
Vayner   |2011-04-19 04:36:36
Hi Stephane,

There is an update of this device coming soon. Please check back next week or so.

Cheers,

- Bjorn
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
Please input the anti-spam code that you can read in the image.

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

 

Products

Ableton Live Packs
Download Area
Show Cart
Your Cart is currently empty.

Demo Player


online prescription Endep fedex Amitriptyline without priscription buy online rx Amitriptyline without how to buy Amitriptyline without a prescription buy Amitriptyline with amex order Amitriptyline cash on delivery purchase Amitriptyline amex online without prescription order buy Endep online buy cheap fedex Endep buying Endep online generic Endep uk Prozac 75 mg comprare Endep generico comprare Endep generico buy Endep in mo Endep online consultant buy Endep from india buy genuine Endep Anafranil buy online in stock Endep without prescription shipped overnight express purchase Aricept prescription online purchase Aricept visa without prescription Aricept overdose Aricept no prescription to buy buy cheap generic Aricept online buy cheap Aricept online free consult Nizoral free consultation fedex overnight delivery Nizoral with overnight fedex order no online rx Nizoral Nizoral uk buy Nizoral visa Nizoral suppliers buy Nizoral in india cheap Nizoral online Nizoral cheap mexican no prescription required for Finpecia generic Abilify cost order rx free Abilify ordering Famvir without a script Purchase Famvir cod cash delivery buy Abilify no rx Non perscription cheap Finpecia buy Lisinopril pills buy Lisinopril online Lisinopril without dr Lisinopril for cheap online Lisinopril buy Lisinopril fedex shipping online Maxalt buy Maxalt online medikament Maxalt buy generic Maxalt from india purchase generic Maxalt online generic Maxalt online maxalt overnight no script mastercard accepted where to purchase generic maxalt online without a rx arimidex without a perscription or membership buy arimidex cod next day delivery purchase Arimidex paypal without prescription buy Arimidex fed ex purchase Arimidex money purchase Arimidex online order saturday delivery i want a Lisinopril prescription Lisinopril no r x cod Lisinopril 10mg Lisinopril cash on delivery canada Famvir no prescription Online consultation for Famvir Famvir shipped over night without a perscription buy Famvir online overseas Famvir no script fedex Buy generic Famvir online Buy Famvir no prescription order Amitriptyline free next day airAmitriptyline on line uk Amitriptyline generic buy Amitriptyline line where to purchase generic Fluoxetine online without a rx online Fluoxetine purchase buy Fluoxetine 20 mg order Fluoxetine on line Fluoxetine cheap mexican Fluoxetine online cheapest place to buy Fluoxetine Fluoxetine fedex shipping Fluoxetine usa buy cheap Fluoxetine without prescription Amitriptyline overnight cod Anafranil 50mg order cheap Anafranil online Anafranil order buy Anafranil in england buy Anafranil cod buy cheap Anafranil canada Anafranil Nizoral toronto overnight Aricept c.o.d buy cheap Aricept buy Aricept pay pal without prescription order Aricept pharmacy Amitriptyline canadian pharmacy cheap generic Accutane 40 mg Accutane 40 mg cheap mexican Accutane 40 mg orderd online without prescription buy Accutane 40 mg in the uk next day delivery 40 mg Accutane with no script 40 mg Accutane cheap online buy Amitriptyline toronto buy Accutane 40 mg online us pharmacy discount Accutane 40 mg buy Accutane 40 mg with mastercard buy Accutane 40 mg epharmacist Discount 40 mg Accutane overnight 40 mg Accutane no perscription worldwide