begin~ and matrix~
I have a patch where audio is routed through a matrix~, from various sources to effects, filters, etc. I want to use begin~ objects to shut off portions of the patch that aren’t being routed to anything. But begin~ will only respond when the path is plugged into a gate~ or selector~, not a matrix~. How can I accomplish what I want?
Begin~, so the help file says, is quasi obsolete. Take a look at the mute~ and pass~ objects.
I have looked at it, although it doesn’t seem terribly helpful for this situstion. Only being able to stop processing in subpatches makes it a pain to implement.
" Only being able to stop processing in subpatches makes it a pain to implement. "
Only if you did not encapsulate sections of the patch you wished to have toggled on and off in the first place: here is a strong argument for not having all activity on the same level in an omnibus patch: the ridiculously difficult task of actually "turning off" parts of a generated dsp calculation chain without the advantage of the parts to toggle off being encapsulated in a separate "routines/objects" would *kill* me as a developer: i’m sure that’s why c74 implemented their dynamic control at the patcher level.
Just grab the sections you wish to turn on and off, find their inputs, connect em patcher "input" objects,same for outputs, then create a patcher to hold it, cut and paste it in, connect up the orig inputs and outputs to the patcher inlets&outlets, and voi-la! (or if you were looking at my screen, "voi-ici"!) : you have the same function, only you can connect one of those mute and pass messages to the encapsulated patchers, and you’re ready to turn it off or "bypass" it’s function on the signal!!! And with the great advantage that you turned a mess of wires and objects into a smaller set of functional "patcher objects", making the design of the top-level patcher much clearer to see and maintain, and made it easy to control which areas are actually calculating.
intelligent "re-factoring" into a "correct" (read maximally useful and reusable) set of patchers/routines/’object’s is extremely important in all programming, and especially in this sort of graphically driven language.
Yes, I suppose that does make more sense. Really I already understood that, I’m just lazy and don’t want to deal with trying to encapsulate everything in subpatchers. But I’ll suck it up and get to it anyway.
> "don’t want to deal with trying to encapsulate everything in subpatchers"
Don’t forget that max5 is doing it for you : Edit menu > Encapsulate
Thanks Alexandre, wasn’t aware of that! Saves some time for me.
Still, the idea of the begin~ object is a good one, if it could be successfully implemented, and it would be great if it worked for matrix~ as well as for gate~ and selector~. For example, suppose you had a number of arbitrarily complicated audio processes (for the sake of argument let’s say they’re all very computation-intensive) each neatly encapsulated in a subpatch or abstraction as has been suggested, all being mixed together in different amounts by a single matrix~ object, and the levels of each connection in the matrix~ object are being controlled by some separate process. It’s not a trivial matter in that case to disable each process when its level in the matrix~ is at 0, and then re-enable it just before its level in the matrix~ changes to nonzero. (See example below.) However, it would sure be handy if each inlet of matrix~ "knew" when it did or didn’t have any active nonzero output level, and MSP could appropriately enable or disable the part of the parent patch between the begin~ object and the matrix~ inlet.
I think this example illustrates what I mean, and also illustrates that it’s not a completely trivial matter to program all that yourself.
----------begin_max5_patcher---------- 2476.3oc6ck0iahrE9Y2+JJ46HcSj5NSsvluRyCQiFM+HFEEUFJayDLXA3dI il7a+VaXCtMPgWHzt4gXGyRUmyWcV9nnNU+O2MY57jmYYSA+OveAlL4etaxD 4gDGXh92Sltl9reDMSdYSiYOkL+umdu5T4rmykGNJgFrlkkAPEmZCM2eUX7x ulx7yU8fisymf2CPxOcwhOwvOAAeQeKgAx1h29O33UzNKRhyioqYxS84zPZT wYh2tNLNhkKELz9ClrM+viJZjrvuKaDjniUGVck4urgoDvoSAeQbl+8t6Deb ugXhex50r37WAJ4IfMoIaXoQu.Xwz4QL.MN.DDlI++4q3+daPn7p74fGK6dv KIa+uAfXFK.vuc1yTtNptzH1irHf.joKYYhV5gGVjjJOW.KKbYLMmeWgwa1l WzhO7P3BPXdl9lCy.9qnwK4CKfEoIqAwIwemklH5J42kEMcS.nKxYofmng4h a6fdaAMfe0gqY2C3hRycVQOUzoZHobe8AA9jkmrgqdurSZ1oyJ0ktS8T+XM8 EvJ5iLvbFKleJ1igIay3Xdl+JVv1HVvGKFZh3foex1X43iW8VpJSTLQYi54J MaQt0Xq5dQrUg0XqdAMHWG9Lenzm2AoIxAnb52DCOahn9LtkCHKYMCjw1PS4 itEn7QAOb8fmGTBWtZmcOwWDqZvN6gF1US.tM.I3owtoso8XnTs8bZLHGoiJ O7REjqr3yR0ngFN3MTnvCNMKLItT6OY5dkzZlPurwR+CGrZj1FsWM4n7xnD+ uwBJI2SlFvVzoFgG7Ld+MHQ1JeT8J4g9RYYbCeZtVzK2wzsQ4e83XT0yuf6L T6MezQoISWlFFjDKDhJ2o3vEcWQTEuxhs7BhoaNx8lmjDMml9XXVHOHXkABt ELMNbM2GUD5U5NB2cegq2jFpbR2cLUn1UY9ba2nJMk5LOdjyDvii5ydJLHek rs1CVUHMTxvohuUki2X7oCXRHSdTDipHze4K8HNcVRuMDVE4wFdnW2gddjxs W8Cq0E8o9HP0FEZRQjH0+49SD4T8XKngxNSiFX6hOqCLPmo5VLZJZuODElk+ QPMChWPfncSHAYg+rM6FkgimglMN32p1MlAW+QKvEAZ0I3BcaCW+9+oUGQXm vK3sMd8YihaYJZYO6sJZoiGdTzh.ffeAA9ErgQtje5fjXlWCf0oF4BWKXgZ. rJcp5dF6dvxitdSTX91.lYXIVFbygzpgG4VzMc2Sx2BXYivk.q18RsdqBV7N cN+YiLBMrj3fAwrru3nA9DcCEOhv8foyowKurdjKhR3RXYMgqGgq4GpxSQnu uhSfpbh5cRMFocFLHMGPnWIrtxjUbvDVP8+FGtAHHD9IyB.5nX20d.P2azjI MkXFaXh4BNxFlX1xYLwbaXooIlsbeOmXl330kDyVd2zIl0ngooKrlMlX9DSL qcRMNwLbLwrwIl0XqwIlQuCSLiLLwbwjwXZhY3Xh41vRiSLidOmXFis5ThY7 MchYMZXbhYxXh4SLwr1I0Xj1ZLwrwIl0XqoIlsreGlXFZbh4tjWlPFyK2BTZ ZZYx65zxdvtjUFO6lNqrWmRUfcGSJexIk6DPaOlStC4j6RJY7POOx9EIlXgW Vy5sRBChyebXNKYapeQ2T7Bn.Uwj.VVdX7tkL2eseN9AnJW3pvffpqQMkWQv lDtWnV.MzvnyxsSWja3vQtcMUtwCK4FYnba4Lrjano3MZPI2h4e1b4d33WJd 7byrSrGVxsUWj6AjchowusfCJ4FapcBgLrjaSwa7.Stc6hbOfxyiMTtOwv2V 1texVTKOXwWX6c+3Z4u5bc0GBhzu5C75pOHmY8p9PHWW8oFl82okeUY3jQej E7UduveTluRyySCmuMWw3ubY4bt0nRCmpsxiYYTxbZjtbg10FUZ4WIQGcJMT nvEpb1D0JYTD3IZbtntBKW7hYamKkVvSqXwkKJwX4oWS4f7y+.jxnbMJiKzx JyTWQhg4f+daVNXNaQRJq5cWbmxRajem79UTzb4hmEsnxFOZAy4zPcwpJVLc QrnJRVuYGulwHydqTrgayXfjX9+V.xeRL5rXAKkeg7wqWxpa7ZWk9bzWcjWo U3BAZ2Ts0QdyTTl5ZtLW.Tzz4g4ozzvnW.7qeSTnurLa2COpRdka4uyrec3y 7uVxMA2MKeFWpl1VpWMITMSTDXS0pIYvUqlruGP8+QCVL50OQwRTYVwmGS8v 3ipD3iqDmfztjFF2nvpKXqhJie1guJjJRKpCRKttRAUVG2QhY0SVwfe4xUur q4YvZTYUqOqYpoC0pIWYzao8BfZfie62.v1QC0HOow.antl..eQPiS19fGZZ YDqccWWCFvlzcL7DFuubpRckFd6EEtkZtoUV61jFGesd6asuIksgsiOU63hx teVyQAreCgKsZzqUbSL5QNCRi9c0VaSEIjhXKoY8i7SYfUm5a+dgPosNfxQm r0CQ1GaeG3z2AEH5MUD0X+LE0eBra6fBFzHi6fB2j6fBcXe.P+PSstM.XcI2 F.TdWeD7YN2N3z95cEmk8iN7NhsH8+1Dwo9Jh2EspefR+W7iX+.35BmZ9xYv wq0249f4UteMvSo7ZdIteNaLGPi.j524edkCqJH1upmRlo80xQvzY6eX8xUL 9cdNNmw+zly3Zos9GMwJufOt5qYMRaEOjoshKV.TytrzV0s64Qa0fFYj15Hs 0QZqizVOIZqNNizVGosNRacj15sCs0eOaEMcSSuFEOqRbWsal6JZPycEWVSt bbWQtp2nJZ1Yvc0fFYj65H20QtqibWOItq11ibWG4tNxccj65sC20OavhdSO kqdMRaENLnsdpDPcsOe9ms2FizOGoeNR+bj94IQ+zxZj94H8yqH8yeFD4t+M Io4Q5mWlBQPWvVV.DX2VHRSLQUg1vHTSTQ65hv2pw5xniLQuGLU7mYm9dQrq WTulrH18dGsF10vhIqgc2aokvdwe5CLXIrOHWA6sVgR5kmhAUnj0seAJo.CS JPIxsV8IoTcipOoqhctrmpxASoXGxhQqduh8h3Olt6okTC0kJaTAul1xgTVb bj0luER7oMFU7iZFCtnhJ5bjUKrceJqX3YHqDW2dUVOGQEO6BIpHjAh5rx6Z IsKpmqHAMTjf8mHgMTjv8mHQLTjH8lHMyDqdTuNv4Pt71RdReOLgTxST9qyT Vwl3JJpa9dzWzbYpGcFsLIqUOKSFkIses8MBlf8pHYDJQ5UQBaR1FTOmtwjH oGXxc0kIGSjI69UlrMQlr5UYxjDN8qDYB2k90my0.IpestMw318LjH9O9269 +Z5xw7B -----------end_max5_patcher-----------