Tutorial: Max For Live Clips

11 replies [Last post]
mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
Tutorial: Max For Live Clips

 Here is the max patch from the Clips screencast.
<pre><code>
----------begin_max5_patcher----------
2218.3oc6ctzbihCDG+rymBJeNaJjP7vydZ1C6dZpbXOlMkKLn3nYvfKPNO1
o1u6qdgCXCxXGaPdJNLNlGFK9Q2sT25u07yalLcQ1a3hoVew5AqIS94MSlH1
EeGSTaOY5pv2hRBKDm1zU3hhvk3o2JOFE+FUr+kXpUTVRV9bRZL9sxi+TVJs
f7uX94.ruyVs6zMqHoIXp3ZB+XmYank6En165PZzyjzkyywQTYKMfccr3WLq
.D+Uf2c1VOpNeRrn8js36+lmW0lQZ3JQyX5WyIgIV+QVRb4gkesz2WikeASm
Z8H+H+2M2ve41NxlT7qru18PC0pvZQi.A1LP.MBD3A.BTvBGGw6salHn1AR6
r3VqoKBSWdVYRB4E7crCvuEt3lJ.f.MtyDaDzLZ.1Fgwx5bRJ05DwSyFN1GB
OHTEeoVvSvgnyIff1hkvZnOKPv7BVTEZdXzOJrrshRHqmWjjQK23hZ43Jbjb
UPYlt3LtFgkivlgitOuEiygvhzVwEnyhw4joxsp+cRzwD5fxwda+RGrOJyv3
oP3uc+hu+MF9tngbTrAIB836qyBxCcAB5DksZENktGA95lXRl08oIueJ29KV
Jrsj2h124Ab8B73CRw0ENCA3uK.5ibYuCT4lsyTC3Krk7BDC6w2VK1bFwVcr
4J8AO.1fiXaGr4B6.1ru.XqsAGI51+dw3h9ZDkjkJ33wfP6SMdksjBPsQrbm
0wn4huHbtBAJFv9TjD7K37B1cVkm2Sl9QywS1NPhbGr7PxsBpLdet4QRVzOv
wUtylLMF+zwcUxViS+3SXuMmqxWpeljz043BlodHU03q9MGtIgNu4Tepe7mB
ivs9gaLgkISWlShyR4MhZeR9tK+5XlzthmatUa2hyHMbcCeXZVVxhv7WHEjE
I3ZOKXVtgojUgTLkHaOP6seNxJw.3qcsvogrqwyEQ4YII0tTxi7RCGIF+BIB
+JIlMbN905CZUKi8J1N07opsec9V08uxKGE.yspx.Az3b0pCV6CXp0fNAJOL
wel4tqe1dIrg1s40t+l1QPMoL9j7M2d94Z0J.noJ.sFvu8pAbHX5Z2bQAZqv
.5KNPmJPvkGm6mc7QYgB+jVnPY3x8KmPqkTv7sPaqrCGEXa2Z0taf02t4BQz
VwHN3vNNSfqdNkcnXEfVKVQ+XoBgpvm1sT9h1Jgg4aotaYNNSVnNcBnPfcyE
9nsheb57rdQP1gqeLFlDRZaCGPbavOdy.uHaSdT4WWY3Jq52Qw3BJIc6P5dX
q62Nm2yj335ifR7HkDuNiEWQ095nExw1rYccw72Nbq18zZ0Pam6bYeC9H9ef
NnsacAue5xSgFdbMjOFb6Xy1wnZ0NGCrAmf0iixrQXDAgy1t0E5FBzUyGzY7
4fZmr1uL61hvWvwykCjXdHklSVrgJCSUMaWVZpKBSToBuM.4175ZLevKURjG
JI0F9n27AENSUEpx3u9hIVWHUsPb5RcgbC5wxoo.WAN+ErISNjSWHmeONWa+
9+jKy4ufmvu057r03b56VuFlulcKTd97HPQYajU1.dIm6DfsbZSbgpLX8joF
zBq54o3+XwXAYIKx6lb7bF.v4gTlM1fgTTfTn.f.sH08ZAordqxVw6YaPgpx
.ENSKTQlMTWSX2fyehONigijP0Lk5pkjNWCjLJKLuX.YoyLQGM.e8VkPylkh
VzvwPO6JxioUFBLaFtZCcP6G2AJEYjrlIsRQaylhIYYC6vgfy7jXTqwHZl4i
w4eeyp0CHH8T8xncPPnfq.PhSiGPNJSkA3A0xQ+9kiskf3egoVgowV+M1Lyr
VFiTJ6B8YGh75w7puWlRsQpQEkcnBZAtZglqAjRsvmsfFlSGPuVkLV7zlUMB
YFdsRURw8a+FIlXjNttxg2n35ArB6Sg48maREJjpvjwVorF0is9TXdbCMgt7
LYroJ.qafVrA5eg4cz8VbxxwSV0E85GFYOpFuQ03c0qFuhAVJd9AiRwaTJdZ
khmHte94UhSviQLd9vdPLd212Bxa.EgmzN8pVDd1ihvaTDdWahv6WM0rccJK
rqToP1ypYCAuzpY6JUKjihv6JPDdGr7sheKzVQgIIV430Ir6G1nKRXzjg0zL
FJa5LEGvBz1gX45yReD5Jewi82lNSVBzMOu2tWzU7.YwkPxYZT0KKe5cZ7W2
+LynDwOvo5iVOHjcgEuF.rMh2jK7zXu8EbRVDg9N6sqXl+wOZhk0yWlnMRN0
jkyrVaqqBACwbYTw5bIltiiP+OeFk1pxx.BBzNq3N9F1j4V0UGKQ4b1FCMLU
SnVYdfs.SOyElFCJcjyqwADYfiqAiRZ15ACePU4b.Z0VfCxbw2Sjb7vgOUGH
19ZwmiQhO95zyqDlGL61JKmM.1zgZNyUK0JpeMp5YooIBvxeA+BbNjh6UVpF
U3P8Z42w17g3PoqWIFkJQE3qUJkvYFqe8vnmWU0BUcon0DDFXrra3T72GSGM
ieNZGoMz2r42P1SBRtjmAbzNlPHxjCBNX+pvj0hPMrPj19hgl63ZLheMX1UD
YhZRoZEkvq.TNn+JvjvzVoAP88KCL2Xi3zkertg12wEUkc.n2Tz1XoGoXNMm
rbINGOT8N6nVybzGYDLyjYnLeugq2EknJAHs1gf.SlgqSBee.In5mrs9Q3.7
MYBthDSlWcwktmYHLHnKdxdlLCC4x1ePgnZZAjKV0sBQyXoWd+E0TtFz6CQT
WVkZf9EFemQUTOph5q+0zzgVE0dipndTE0iKnoiKnoiZodTK0iZotGzR8ubK
tiWmho9JUDu+poD+AQTxWoRweTK0Wr5C0v+Gb02UGRsNygzJE.vYZtuDW658
pII5tNBJttmCfWs.LsX76UyoceK+ls526obWaS0cJ6hC4EuIUKbcWBUe3VjC
fGSFEve0CV99yP67PjaG7doQWWLvb50VjSWgDn6MI4SPtnHc4JRa6FexlJ++
jYOXa8y3cx13+t4+AetsGhC
-----------end_max5_patcher-----------
</code></pre>
 

Phatline
Offline
Joined: 11/08/2009

what is to do -to make of this code a M4l patch???

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009

Select the data from to and right click and select copy

Open up Live, drag a new max midi device onto the blank area on the screen (Where there are no tracks) or onto a midi track. Click the edit button in the patch and then make sure the patch is unlocked and right click in a blank area and paste.

Mike

Phatline
Offline
Joined: 11/08/2009

thankz - that works!

carloskleiber
Offline
Joined: 12/11/2009

Hello,

I'd like to upload this patcher, this is how far I have gotten for now with m4l:


----------begin_max5_patcher----------
1353.3oc6Z00jaZCE8Y6eELL8oNa8fDR7Qeq8uQmLdvfVuz.RLf7lMMS9uW8
ArFuAjUB1ZXa5C1XjvRWczQm6U5xW1tw+.6ERmu2u68Wda17ksa1nJRVvl96
23Wm8RdUVm5w7ojOwN729OnqhSdgqJtIK+idkCEyNwqHb9maH5l1226C8U8H
ixoY0pJ7+i1xrJu+jUU3Op5tx+QUMHXWPewzS0kTQSprAv4B0czEkVVnZZgQ
9aQQCMaSFO+oR5w8sjbt1lhgPQy6AvQxKgopaR1E38A4e4qa2J+5gkgJUkOS
1IpP1oNAZfVCMglfFfFSBk8hG9t.MbuCdUyBJGxnG8evI7F3DfCzD3fhk3AD
ofkP3N7ch2H56mlm07P+m6O.ENA.ALtvRwdffPE6ArH1ygSbNiZlm7JD7CpR
DXXvDknFE.n5BLX36a4rcSKogPK75H7Ul.JNwBAT8zcT7xTINUefzN6vujxk
r8KmtuBRHFvk0mpk0NfBhtbnHz8P3.Gec7JMQsrHXQvUMoqK6HYB2v7m7jpG
6EjIOdqvqbm2u.VYNePHKnUIX0EflWEciAJI7zwpXdqMrIL0jZTp12Sh5BdY
PyLpQ+pwEgFvjIgC3BgCnI3.AGCGZWw2Zw4Vg8Q5WIY1a7MBZrVrAZRbFkB0
NgQxKwgKxuUNqtlP4eaLbRTw+NNpClXTaRhMLROPU8hGZYdqUAgI8KIdp9t7
4r1WGhST8j7hGqXYiV2zj0JZANocOglcnhLdvmkyEM5gi4BgoVcSDrKMJHNA
8f7WIAgoP0uPBcwH4uB9dB9YJRD1Hbp7UASUnZXjd+Ri5ytrmIE6y371RQfZ
jy+pqGW6AVIxUchvdbn3gxGiG0B6WMoOvPtn1ATcp5DN54B91HDcpmp6IVK2
vz2aZxmK6JMzZ0rBAaQSoimzhynTFOiWxn6esWmpqpXzi1ZVxd0DJUUR+nrs
5LY1rBCH4irYMTVaAoct+4IwbP2r+0tFBonprd14FNoYVal7RCiJ0ejf8tY6
b9mMLaMdtRWsRMX3xOhzPwHItuQXXbkKUVPPb+zPqGLtLcLyiJcRM.w1K5Dn
mlIddwsRbT8UnxGgDYFKlbEcCnE5Fggyz7u20MFM6tdTMlyn9eMiUglwbAQ0
kSnDGGDEvjWePpZmWQpksHz+YhbDX5HOAgiGz2ki4QuShb1IJecsQBfoSyC0
uO7XUH0wf6AxbaNtykiMSbRmF29o9Hf6oNX7hfl4NnhiDthxb0sf57claAxD
n1xPJ7msDHfMc.Wff9DHfuAIPvAmON1XphPm2Z3BOc74VAjmUU48XYKYkcRc
XSxlX8AQDqBDFEsrCpy0mMd58XMAJ0XLGJMhjnavYi+tKKKnXiAlnSflpWVb
VVLk7dWk9d6SSfoDyAvnQNe0go9Sd1mBitNO5dtBasm0ZnIuxo8Q1huAIs9c
2aCBzzJsDEXDB.2fWFjuy7V5kWU1ruqhwE2AU2s1BB3pTJPROyJXxf.TVsfZ
Pe6qgkpAkkeIb1wN0lOLlGRCj24iVqfzwKopCPZ7CIb95Ad8gdprnfPuPapr
ngIz45MhYlbs0lj4A+p1D9RC+daSx2YkQPvz1j7M+wk1DzFaJzoycuABl1lj
Yo1g3za5NC3j6rIrMq6juAhtjOEYgMIe6KboMEr9vo2.AyXS.mZSPa33xz05
PaB.rwlbqNNzFMSna0mj8F7JlDvwzIKl4brHtUhSwtUD2F9sa0KQ1nW5VY.j
MRSJ61cgofhs0lbHaJb8YSJ160jKwtkhiswlftkOgsIj.ra0vwV49cI7IwMe
c6+Rv+PS+
-----------end_max5_patcher-----------

The leftmost part is just a tool to trigger clips by defining track and scene number. In the center there is a first attempt to use "getcount tracks" for my selector to automatically have only existing track numbers in its range. I cannot figure out why the right inlet of the multiplyer is not always receiving the current track count. Can someone help me out with this? Also, once this is fixed, ideally the selector should be updated by track count changes (erasing/adding tracks). Can this be done?
On the right I have added another small patcher that does something similar to the leftmost example, but with one coordinate only. Does it need to be so complicated? (I mean number->prepend->pack->message) Or is there an easier way to get the same result?

Thank you very much for any help and suggestion

crampe
Offline
Joined: 12/16/2009

If you use the live.path live_set view detail_clip to feed the live object, you can act on the highlighted clip. That way you don't need to select the track and the scene.

carloskleiber
Offline
Joined: 12/11/2009

Yes, except that live_set view detail_clip wants me to first select the clip by mouse, and then trigger it. I want to do the selection from external controls. As a controller I only use a Korg NanoKontrol, so I'll need to define x/y coordinates, plus a trigger. Additionnally, it would be neat to have a toggle between "choose scene" and "choose single clip", so for now I think this whole control station can be achieved with 2 buttons, 1 fader 1 knob, like on the illustration.

Image Hosted by ImageShack.usBy gergelysuto at 2010-01-04

Now, ideally, I'd love to do selection itself from the external controls (i.e. the ability to scroll the highighted track/scene directly from the controls), and then, address "detail_clip" or "selected_scene" as you suggest. This would be perfect visual aid. But from reading the LOM, I am just hoping it can be done.

crampe
Offline
Joined: 12/16/2009

Ok, I haven't seen it was for a nanokontrol.
Is this way of going somewhere whithin the live set using a knob and a fader really efficient in a situation where you're playing music?

carloskleiber
Offline
Joined: 12/11/2009

I would say that if this last thing that I was talking about: move/scroll the highlighted track and scene coordinates and visually check that I am at the right place, and THEN trigger - can be done, then it definitely is. And with all the native clip management options Live already had (follow actions etc...) I think it can be as powerful as anything else.
Btw. I am mostly using Reaktor plugins in Live, and there too, the nano works perfect. So if I just need to conceed 4 out of 42 controllers to the Live clip/scene management, well, it can be a pretty good setup.

carloskleiber
Offline
Joined: 12/11/2009

Ok here is a quick and dirty example that just uses the M4L.api abstractions, I would say I am not afraid anymore that the thing I am trying to do couldn't be done. Though, the method used by max to assign arbitrary ID numbers to relevant scene or track coordinates and what is going on around the M4L.api.RemoteMatchIdToIndex puzzles me. I still need to understand a bit better if I want to replace the toggle up/down left/right functions by linear changing.


----------begin_max5_patcher----------
1128.3oc2ZtriihCEFdcxSAh0ohv23xra5dQqVZlU0xVshHf6p7HBDEb5plo
U+t29BjPkhKtq.NL0FDwjX98mOmeeLjerbg61hmoktN+gyWbVr3GKWrP0jrg
EUedg6t3mSxhKUeM2jhc6n4b2U5qwoOyUsuMN+g5F2efVJ9NwbVQt7hfp1+V
QNOOdGU8C9yCr3LmOTjk513xkr+ScYf2ZuplyOtikmQ4kM6pl2hMGnIb8X..
k+NGhu7HBIOBBW6470y8UwQdcmUeGXoJEUr8etCeZLDySdjk+PiNG4Gn5P.7
xdW9S94xkxCqLji6nkkwOPeEGA0sn0I+e2S02cW2SihQfivVAB30.I.zCQ.X
hBBPfhHv0DwG7GYhb2bCI9Q8fjnvwiHckqcb+sOSC2HQCB+8Sz7Q8FWoRtBB
ur2GQHlV7T9sGiH0fKTAST3a.i8kdFANSwlc9afhaOx4EM3UAuPlGdBN+M9u
VWqfgn5qRiUqczbL+a32qFVAmBQ5kesjKS5KLDEn.H3rU+UPvb5Sha3qBCOH
zG0ojlItqzzMkIzbZ29cqFYOOPqbB1BmvCyIDD0X8wwFTbmsNYt8FBc6nCoO
5DoVjDBzPJXRJa3AJ23fnaxhl8slIBnIDQmt4oCiF65HD23GcxXemtoT.quy
nOMyPDw2.uHhBUQ9WEh5HESBm0hKHuoUWKoHq3fVAdqiBwH.dk3rPPjuWn7L
OhWj3DPCS24BNCFFmvPUrlOXJbrT3TF0Mtvbk0VG.0BTCMHFMHRA0owoKINK
y4arCzMwkaps7laYx841UEygzTB3EMEoxy4UKMHuDgUAOH+IKu7ciMWuKZnw
HVW5gu2zTWFSDqssyXMlbuWmC4dYs91z5B2WIrUKnFoPTTz6w8Jo2jDw+stU
ILY3mDTTvHrSotb98lYt739R8.ZuKHRu0dvTXxemCn2ztaCU5ydGDnoBAW83
wl.CojL1d6DofLlIgCZ8.0Ollqz54+UAJQCCkprmIINQZCGums9dJ+9pxHuW
tw4OmmRet0BCHXcU.hBCpOgDAAjfWVXvjsnVKO+Oh2fPDAzq66imRJ9IAEkz
6iEGy4WC8l1TVfwkvCLvFSGdBf9SMYG03yI2BvbHCGtjLhtXBex62ZxB8dq0
jABG7UQMJkj0QH5NVJSHP2afwWeQN3vFOGZbvTMxY4tytLJvfXQuXJt88Bpz
rXCx4W9mBP0cx1eIpJKNdHodPWGP5bN.NkVxY4mxf9x4WfZiuzirzTZdy4YA
c2WHXXkH5XhyTMI23xfZR9dtsnlt.AsqIo8nE0zEHXVnIi3jrRRGv7hSVVSx
2i4vyc9VctiXxbmckTvKlT5VQ.qpnAm2rqe4EgIcnoPqpIirKCrKlBMHXhPr
qlHlno.6ZMYxxuVNB2nrNrc0D1jpTragSlTLm7IPXSMIwDbHMY2h4HFUPfkm
6LpvoP6O2YTgSVVSC4XhsaUJXeSm6rmKNNvTMAsWdGzDMYWabSrBtlsPI9vO
W9KPxfMv.
-----------end_max5_patcher-----------

crampe
Offline
Joined: 12/16/2009

For the scene selection you can simply assign your fader using Live midi learn. When you enter midi learn mode there's arrows in the master track mixer, this is use to scroll between scenes.
I use this with 2 buttons on my midi keyboard.
I also have a button assign for each track I'm using, so I can select clip easily.
What I'm doing is:
My midi keyboard has 10 presets or programs per bank. It also has transport controllers.
I have one preset for each track.
For each program the transport buttons are assign like this: backward move scene up; stop stops the selected clip; record button is assign to the arm track button of the track so I can toggle between recording/playing; play button is... play if arm is off and, thus, record if arm On; forward scrolls scene down.
If I want to play or record a new clip on the fifth track, I select my program 5 on the controller. Then use my backward/forward to select the scene I want within this track (the track is midi learn to my program 5 button), and then arm if I want to record a new clip, don't arm if I want the clip to be played.
All of this is done using midi learn only.
Hope it helps you.
It's late so I won't have a look at your patcher now, sorry.

Anonymous

thank a lot