Clip emptier

Learn about building and using Max for Live devices.
Post Reply
jbucks
Posts: 5
Joined: Sat Nov 06, 2010 11:36 am

Clip emptier

Post by jbucks » Sun Feb 06, 2011 1:00 pm

Time to build my first Max for Live patch!

I'd like to create a custom button for one of my MIDI controller's pads (an Akai LPD8). This button would clear any MIDI note and clip envelope data within an existing MIDI clip on whatever track is active, but only when that clip has finished playing. In the same way as when you trigger a clip to play, but it doesn't start playing until a point defined by your global quantization settings, I thought to have a 'clip emptier' wait until a MIDI clip has finished playing, and then delete its own MIDI note data.

In other words, if I press a pad on my MIDI controller, then this clip emptier deletes whatever MIDI sequence is inside the active track, but not until the sequencer has finished playing.

Does such a device already exist? And if not, is there a variable within Live accessible by Max for Live to allow this kind of change to a clip to occur, according to global quantization settings? Like some kind of conditional which tests to see if a clip has finished playing?

Any guidelines or advice to help me get started would be really helpful, thanks in advance!

chapelier fou
Posts: 6024
Joined: Mon May 15, 2006 12:15 pm

Re: Clip emptier

Post by chapelier fou » Sun Feb 06, 2011 2:09 pm

This seems definitely possible.
Check the "clip" and "clip slot" sections in the LOM (in max, click help then m4l), and search for actions about notes. Can't help more for now.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

Surreal
Posts: 560
Joined: Wed May 17, 2006 1:18 am

Re: Clip emptier

Post by Surreal » Sun Feb 06, 2011 3:54 pm

I think it would be as simple as

call select_all_notes
call replace_selected_notes
call notes 0
call done

should be pretty straightforward if you don't need any conditions.

Surreal
Posts: 560
Joined: Wed May 17, 2006 1:18 am

Re: Clip emptier

Post by Surreal » Sun Feb 06, 2011 3:56 pm

HA there are conditions.

i suggest you build the empty logic first.


when you say "not until the sequencer has finished" do you mean the set stopped, or the clip stopped, or the playhead reached the end of the clip?

jbucks
Posts: 5
Joined: Sat Nov 06, 2010 11:36 am

Re: Clip emptier

Post by jbucks » Sun Feb 06, 2011 5:03 pm

Thanks Chapelier Fou and Surreal for your replies! They are already of help!

@Surreal - I imagine that the clip would be emptied when the playhead is at the end of the clip. So let's say I have a 2 bar loop, I would press the 'empty button' for that track while that loop is playing, but then the clip wouldn't empty itself of MIDI notes until the end of that 2 bar loop (or whatever sized clip) has been reached.

Thanks again!

Surreal
Posts: 560
Joined: Wed May 17, 2006 1:18 am

Re: Clip emptier

Post by Surreal » Sun Feb 06, 2011 6:47 pm

I would suggest trigger on stop. an empty clip wouldn't make any sound anyway. following the playhead is pretty unreliable. Try it, maybe it will work for you, but you cannot guarantee that the playhead will hit the end of the clip, ever.

11olsen
Posts: 157
Joined: Wed Jul 29, 2009 9:12 pm
Location: germany

Re: Clip emptier

Post by 11olsen » Thu Feb 10, 2011 11:09 pm

you can clear out the notes but i don't think you can change the clip envelopes with a m4l device. someone correct me if i'm wrong.

chapelier fou
Posts: 6024
Joined: Mon May 15, 2006 12:15 pm

Re: Clip emptier

Post by chapelier fou » Fri Feb 11, 2011 9:12 am

I think you're right.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

jrs1
Posts: 37
Joined: Wed Mar 17, 2010 9:46 pm

Re: Clip emptier

Post by jrs1 » Sun Jun 19, 2011 4:12 pm

I wrote a clip midi clip emptier.

here is the first draft.

BUT - it seems to crash Live when I use it. Though I just made some changes & streamlining, perhaps it won't crash now.



<pre><code>
----------begin_max5_patcher----------
2198.3oc6a00ihiiE84p9UXgVoYWIZV+URf8kU6zyKiz7ztqz9PukPgDSg2J
XGkXJpdFM+2W+EPnqDpj.DPi5VUCI1Ay0Ge8wm60le6wGFsP9FqbD3uA9B3g
G9sGe3AaQlBdve+CiVG+VRVbo8wFkHWulITiF6pSwdSYKGOAHeYLXKC7hPtE
rcEOYEHIimO4+JLETxxXIJPbVFPHUrxwfXQJnfkmEmvrEKWBTqXqAa4pU.3D
.W.j5BJ.akEokSz+KU2FJ1jce2YbAKQtQXM.puvkRgpj+qLSYH3Dnu37XUxJ
t344EZqv0eCI5ZAD3Lyan.yyBBvSffm7eFdpsmIW7+9DlLpR6KhWaa+Q+iBd
bF3GkYo6pVrYMWnsRKXgNTnbiZWoPSg+9iOZdY7Yh5nIFz4Eft40Pdrxh3lA
g3BFPEm8htKCTxIf+y9JSkl52FKT5J.NH0.7tgEvxB455QXRmQXLwhs3vvJP
LEUODitSgXNXU7qLPdgbQFacIXMOkCVGmmaf1egqq5G2nTRwDv+VChKrWCJU
wesDXJTshWBz+s9qtQp3BMdlNFroz74y44Lfr.DCR0cy5w8ft6Y6boojJvdH
sdXO59D0+WILAC7WAeV6xVKpf6LpfHV7XJZmWn1ybVEPIufUpMkXEWJp1IqR
CL8bPqpeAUsKqoDDXdMxdMZZEy5Z5YmxSE+fR6M+By4nlGWnrT.fxjBCDNA7
ylZDuneeowyEvUFlYCgwZZFf8V757LMug1I1be7hRUQbhoKVdgXQlFDYGqvV
DBEEcJVDbvs0eVv1pMi2A0144T3nN248yjsDnzf24b3rV0WyYtGeznZmii5C
nfqETPWNPQAffEcGRvVG.D1RqQvSB9HLga78AiVDKdtd3Ad47Yv8.dxzKhLw
svwtuoWiK1aGUp9KnmFcBBN5A9MChzdekln9zzAZqPwJlyDw5k+ZfVDE0GdO
up.6qt413vF4810Vk50hSmGqTEbMjvNbUoGf8HrABy1vjK2U7txq1oJWIKT0
gy9tyQO7ZYpdTyZKVOv2+DYRwymdT6cMH2B2v5aNMqqo4bbQMz.xTVSUyEKk
VSotu7MBtCXqsVsfaVQSsaJaYyUVlyXoY70Vbp1tUohkW1rM+Juj68zp6AXZ
2Bu6qb4RyzZiG6S08jukKEL2hN0aIw5.S7dk6G1ZDqTe069W6HwNOiI0W6oF
l2MgDWKbvUZRnJy9ftGxxvr6sKjbfexFJP24iIVplovCxpNh1oExpPytZxpb
zKzgTV0+TaNJsz0e1M3wK6AlFoWWypc2sjOD1GXEGd0f0YQGd8BCqGuPXcXC
LpB13jAXds4E5Ndk+1fbz9AM1YByl0fcc0DRkIiSs8wt6m4wxojCwfbZQCMp
hBgubpnPWvoi9.2coU5nf2U6iW+uatV.zME+Yg8gzOC3O+4O+Wr4HwDZtMcU
a4Y5PbxJkfj3MktzlXSpx9Lob5jScjiyYl9Ju.XjO2Jn2k9pl7yMHShLSV3Z
G3D7TLIfLt1qZJLqCQTT77ht1PWP5nO4X1wN5RmjxiPgAfPxEcFFg6GeT04P
SuxSRrpRM9yMFnQ0J05i2p+NWbjbuZiR0kYEK.PrQgXjHehHOz51VpYsTWrP
PnGHeR1TtvJf8HmbiaHd1XqHL2Kni8RZOMOjbXhWM8VKp4wTX8AI5K0jmjWY
BihY1QFanwVoF6DQhvAAUuppYesiFphyvYGKzoZquGFTWCC55DbyIisogQ51
EcCbnht4DRjz9Pk.T2EIQCotTMYk2E12rvQg2VARMfLepePhEEHtjM01jvUG
pL81lZxlTMtaaa1thUvLaX1y5X5rx81TTn+.Z4duxS5SjcSibPlS3xL567lp
.Nj6xjYq.K5SdaoNkQt8DDMa5G6y3ho4D5kBH21L21T19iSdA.Ag8.i753gT
2a8jpI.dWlveN.1aHgNEdtTMA23sAwJCxnmV+TMI+1U8WvOM5iIec6KFwG.3
vp2N.Op+RmazvqWl70Vk6QCImsN2ucD76hc+tX2gVrqwOTWgYdWOj1YU45lc
RfQ8bIHR3Ejr8Hh.WG6Dr.yyYEkbsOmHoBP2K.1DxP7yr2gvIlCrl6HsMWe4
b+QZyVr+LsM2Us1fqVo6PVA82kp8q6wHjSbfaevIAzcYinqiPj6RQBVmWcud
UejJ3x+WjaUFTKbcG6+es.zELfMxEz46YoRBLvzbyFMYNtMuTB9SXalnmWlI
UZGL6M8GA2IROnu9V2mm3jMBqzbi2EnB1wqEnvmLLNpWClCnHQebVe26qMtY
IpnSfacvaiNDA6gawFKgwUyIL77B16h.M8JLOWNv69IWalKlE2NB1ln49nip
DFeaC3sQJIlpeT1Qts1F61JYZTO4aPz620x5qPLOz3S6nmno6BwPA+QVHlkJ
2jrt48NgbAUOj5Sm0WOvv+nolZGv3DAb1poP2X0TM.PlM6W2x84XOYmd5RfK
M5TowEeWlFWSOmK5cGOxcfuZ4hZ05Qba2Oj7XAK6ToYy+aD.498S36uggMLF
G0yQQaiYOtHeyuCKqIYJ+39PobSQxNn0uCJfClTJqTwE6Sq2WNj5S.Z+Cshm
lxDU2fZsyPtTOP4sAvS0Bns0jrecenMAO5gt51DrE1DAMn1jQtOfzFbpCicS
ir4Hm5Yllg1e24hfs..oC7fJtE1zzA0jLoU4i8yBGVaB1VaZ33HHsgif.u+l
OhwCqM0locnNxaEAmYXEHA1vyiBn6ua.3HLAqMjbDG4V2fI0w4iQDKqJ1ieg
S2e24NZSaC.FLrdfv1ZScf8viYD24kLhNa+cmq0F1Fqcf4UZgIMrrJz1LlFL
v1TaF3F1EywsxlF3EDZilmgkgHpMN3lekfCoM0FO7nAVueTarI3viSn6qocn
VESKYXkQzJc82.aB0lX+6fMgw179Qo9Dd.swOR+1Ul0276O9+AT3bbSK
-----------end_max5_patcher-----------
</code></pre>

Post Reply