我怎样才能使这个 Max MSP/M4L 补丁更新 zl.len 和 zl.mth 为空列表?

How can I make this Max MSP/M4L patch update zl.len and zl.mth for an empty list?

背景

我正在尝试构建一个 Max for Live 设备来解决 this related question 中出现的问题。作为我的解决方案的一部分,我需要跟踪一组笔记(即选定的或按比例的笔记)。

我的补丁(见下文)适用于任何持有音符的组合,但一旦最后一个音符被释放就会失败。当发生这种情况时,zl.len 停留在 1 并且 zl.mth 继续输出最后发布的任何音符。

问题

当保留笔记的输入列表为空时,如何更新我的补丁,使长度为 0 且所选笔记为空?

我试过的

我曾尝试手动敲击各种 zl 对象的左入口,并作为 kslider 更新的一部分,但这只会产生相同的不良行为。

这是补丁的屏幕截图:

这里是相应的代码:

----------begin_max5_patcher----------
917.3ocyX0zbaCBD8ryL4+.iN6jAPHaodr8P+AzicxjQePrIUB4AgRcal9eu
7gUrSprJJF5zKlQqA18s6agmzyWe0hnh18ztHvG.eErXwyJKKL1zVVLXXQTS
99x57NyDi38METQzxC+m5QFulJM+I5Dqs8xAy3AypoxZ5az1fKOt4C1Pur9c
4h7FpjJtmxyKpouZE1cV9icTajGEsDDUjy2DAtaXNrJSv1V73MIwQG2VY4VF
ey8BZoztXbRxsvk.BYkdHNV+KFeKDbmYM+55qzipgkNmgJaaZnb4KdUR2abV
zmZ64RfbKErkVWA3sRUxeXV0LNsTOgWkwbI8BGCz3o.8ZnArYFLmhLOPtHLW
zKks7YwJdmE6IJzvovLxVniIolRLY32PTn+nJFM0YcIFnfPzkVOIYSgsXnkD
mYpqnDy.FFFv8EpDv3Uz8f1G.UzNlfVA5Jyqo2ng6kC0zI6WyHmzuhxPAEps
BosMUgXPdWIkWoBGPqnZlGANJPWOMPOzWlY.55rPBzOKZ628lSlTPV1BxA0r
NOveSlj+d3zWHxVTiCM+cn2zTW0OX3uWNJm7pFBw1dptdIwWco+Obta7j20f
WYNvkj5uyc4zuq76eVY+Y8scpN1wyF3+h1jQUULNfwS23FSN4hFBxCJJNGfk
B1lMTAn38Q.lQMFSlDxqSsMtlCoRhCHj2ITGKA5n0JmSqt3NVLxgRYhkBmBC
HtTb2F41fScQYtfW6PPot153F88NWbQDs1AwQGT6tZUXKhSfHeVFW4P6XLzP
XSBeYrlx2bNx6bpiwNHfmfMfy1RFt5nBRguJ5zKrX4swq8.d+VWM6TkqsO7P
G03tUv2EXmmDBlVNlc3X9nosh9JdhPcIj0BdjbV5z5HMoLDz9hsjgaiB.EoH
eyr3GnIyJiSOb.pXqlRblVR4nrC6Va97Bu8K8X1V8e7lDPWaunbH7F9DJ.3w
fT8VeRFOWxTROONK8cK.zT4ZmcnVgkiN7jYYesLcx1CgfVUq6gfGb3aQy3NT
KXwSNzwjL7LIYrGBgD3bBAefYhSI40ADyNl1OWH.+mkEzhLBV6kigP.SBoNw
DHALGfbi8G6uiXVMG1uOb3b3YdplhbgTg7l67FG9vE04618DUzcXOr9VII4w
VyhRWZelwsOakUDInOwFVRh0TtPIYPpzKzKLgbz9UGdGdijKAumMvi0nW6Zi
pGtRPW2tbKNMpit9J0D9MXvABqM
-----------end_max5_patcher-----------

确实,要知道 zl group 对象中是否没有任何内容的唯一方法是以某种方式跟踪是否有东西进来。

这是一个示例,如果我理解正确的话,它应该可以满足您的需求:

----------begin_max5_patcher----------
1066.3ocwY1rbaaCDG+rzSAFdVQC9fe1iIGxCPO1wiGJQXYlRBpgDLUsYx6d
AVPZoXCICYBxbQ1DBlK9s6+cwB3erdUvtlS7t.zef9KzpU+X8pUvP5AVM77p
f57S6qx6foEH3+SytuErw7UR9IILrDsCUNNZYALlZdehMNlnutTTwkvagbdv
ld43nzgQMCI+2ibyBKXWt3PvFTPoPYrGFl0wb49mKEGdrkuWZlHkw1Ri1fHL
5V7FDMaq5Ap52QOn+a94505O1LMRsQI0JkTqTRtFkuGcDEcJpBYwyGbRD1VP
L5NhhSkOFk.7QG+zm70wqPXDwFigVYjYkQ16oTG+oK.SS.fCCmCfslSxVP4J
MjNmx0R6AShOJ6nI7dp5jk5CR6q2waGW9puprtuFV7j2xYzKQxi4s40bIu8Q
tHeWEf.1C9fWDy2zCDEBdfHLFxfYmUxibTJF4.+AbJ6apq45nwqh+eooWHQx
m4nm4UEHQiTsY1vjpJE785u+R9tz2QuCMB95vaJGGFBPmRFc.enf+tdorQXQ
PGg8TflbyJW2LeFm.fhGRqG+7CA50BneVsJf3oNThTKRK9hvLOE3vCpVSkWR
DHdoXOizexUUoDE7SnlmPE7txVdApaedE+SZHsAXpe.jlwtLsjjQlG.aZklT
OEmn7t8bQgZgfZZKNWH6R7R7EdX.OVHT2kjjMK3801l9iupFiBTYCJGUU1YU
gF4YBoCAP1roPGy4fXn9APgZiMlux9.XhX5cKmZt2Uqaxn+1qaRiSFJyP8Pg
yqzHz+UssSkFZ6nII2Qyd2rM.mZBZHYLjLGMyBGxz5ITng2gpj4x4LcowOro
vCFfMNaNP9XqZUfTGaQYUdgMxIdpVyP.L1bvqT7bPiRlVKe1BEjrEUkFkNip
TSH6fdaCajl32tWXlMEhimo30U4HdYqqX1BLZFiXUbwA6hSOsk23E3XNueb5
LEwTbXCB7hDuHQT8F5CmRfkLIF+6tpxK5gr4om53fchwuEvz6dmd57bc.lcE
LnmFNzjyEGEtofeo7oUsoiY.p+jA6xOXSCrD26yKWGhQfGktMw18g.uB3P5u
55mgWod7ek5tl918iqgg3M5rWUcvJYoHWVpZC77bzsEftl1yUCM9Rtokz2ol
erD0EKQ7gkHumk7.RLG7cDOYGxBXG8Ew79xNenEbww4kHTzBQDYwbcIt3690
Ui4xJzUCmjoScTFN072Hmxqx7fkXNU8KxGBQWpIoa6b5VxEuGyG6cvntFmlr
kHtTQ2G6cvHtvT7hkHmYOQlr.lNwtowSqNYlK0I8wlYiAoaaoDeXIWR3dKRl
lDyOd7671tgYC1P0D72Z.ec5l0l++RlGg1VCZ4eubb9lIj2p5SUpZRsuEVWA
mhMWYDzOdqnubPynnSYRnAag5XDcGyMf.8gu9mq+eNu4kL.
-----------end_max5_patcher-----------

在 Cycling74 论坛的帮助下,我想出了这个解决方案,它使用 borax 来计算持有的音符,并在计数为 0 时作为清除 zl 对象的触发器.

----------begin_max5_patcher----------
866.3ocuX1zaaBCFG+bxmBKzNlEgMP.lTOsO.6vNNMUYHtItCLHioKqU869r
eLrzlBIPBrKfvA3u+87N4kkKbRJNvpbPeA8CzhEurbwBXIyBKZtdgSN8PZFs
BtMmzh7blP4rx9aJ1AEr92j6nB9yLjZOCIJTrJDWnJPTTUgTw1hx3U+6ox3B
VZQs.dTulEE04E0pLlBDxsY0RpJcOWr6dIKUY2nDb7Z2UHOhm4TD1bzObsK5
mMOCeKrkJRd7ydwNGe8bQ6aGaV60kKMGVcij+0LFUBXq29k0JD+AsAnwFPkL
zdV11NI2erj6ERLvRb8MmBgiab6g7vYm7uyxzas24wgKpRoYrNIlLZhcAmre
75fUHbfK3385g3fIiXA62523G.VgdNK03tc5jC7YhYii.O2Ff.KGDxa3v9ZT
+ojYe.mVk5hTRzbSpNF9SbL5t6PtFWp.gGg+b.1AaD7F3BufyYG5z.fcmaCP
Rgjdna2b7YvyEHB6A3gsAum2OyMIVW4oNiM5zx3cMVl57DVOg5jyjxFrA7pg
gsIqmXBzhvyqyAGFtW2tFwDpXWmLF347O8kzblhIumInIYr2VNQieqNtSUzR
RsRUHFc5umIFWaL7gSD+1i8GVzK6djgv9bkV7b1ZS+7QGTfC7so5PCLe7kyK
LA.cGf2ciMxTVlOYzd3F.aJrQHWFvd8vD+4t3VoTW8.UAsuYacF8.X1h39a.
2XzGal8VXvNyeHYtZ+niHagfDdyQj334NhTy3NYQc4Um2YmUN3lnbyjQ4upx
3auhVK3X6j+vzfQ.YAdCr45w1OEaYuMYVpyCsKP9HzQCoXawCOTwT8V9cBiC
Rn6F+nmVyUynmD6EWbjjNi.tX..7TvHhm7Qkv9xr96YtpnVl1JaapD53VaKq
RwETEW2y83MYpoXtoNsqCVoMCQovoPoAHT6t4lDJZHDMQ5fGfN3aTGy6v6RF
tIfGiN9CPmofGxkzw8cNwBooNooxxsor+HhAOUZ7rC8IauoR4AA8rXtCGhxw
SQsE2gjyGMEIIQ+uXx70cCSoaMgzibcLYayQKKehIqZtaPDcS7GKf.nnUKse
Bp8Rn+rij8Du89g+1SGpT2tVo6UWKgMlygM1o+gwTjhZdSdfFOsjv.BB8fHU
kTKIvbDKec4eADs2DjA
-----------end_max5_patcher-----------