Max for live object that changes the input of the channel you place it in
I’m looking for an Max for live Effect which is able to change the Input ("Audio from") of the channel, so I could midi map it. I’m working on a live performance and it would be nice to just press a button and the channels input switchs immediately, without me searching for the channel, chosing it with the mouse and loosing a lot of time while doing it. Of course I could create multiple channels with the different inputs I want and then just switch between them. But a Max for Live solution would be easier to handle.
Any Ideas if there’s already something out there which does that or if not how to create such a device?
Thanks for your help!
That is very difficult to make (at least with Live 8 / M4L "5") because in a patch you can’t differentiate between the different inputs from the Audio From menu.
Put differently; When I start Live I have an audio channel with the following available inputs: "Ext. In, Max, Reason, Resampling, A-Return, B-Return, Mastering, No Input".
When I try to get the value of the "input_routings" property of this track I get:
print: input_routings Ext. In Max Reason Resampling A-Return B-Return Master No Input
The major problem here is that there’s no way to determine in your patch if an input consists of one or two words. Because unfortunately this isn’t a list which gets you all individual audio inputs; its a symbol which puts the whole lot onto one "pile" and leaves the programmer to sort things out. If you’d use "zl iter 1" on the output you’d get:
As you can see; totally unusable. To make matters worse; the current input routing ("current_input_routing" property) is also a symbol. Meaning that if you want to set the current input routing to something else you’d need to know the exact name of the input you’d want to use. Well; enter the problem I described above…
Now; this doesn’t mean that your idea is totally impossible. The main problem is that all the inputs need to be hard coded into the patch. Which means that you can’t deviate from what you’re using; it’ll need the exact same inputs to be present,otherwise it won’t work.
I’m really hoping this behaviour got changed in Live 9, because as it is now its pretty useless unfortunately.
Edit / PS:
Here’s some proof of concept which you can use yourself:
----------begin_max5_patcher---------- 1379.3oc6ZszaaiCD9rKP+OPnyYMDkkeUrWZwdYA5o8ZQgAsDkLanHEjnbSZ wt+1WJR8h1hxxw1wcQ1CQJfyHxgeeyLb3j7y2+tINa4Ogyc.e.7EvjI+TNxD 0XkiLodfINInmBnnbkhNL724a+lyCUxD3mDpw+AEPD3L.rQTJRDrivh2jgCD 5EAB8l59.vycV4K+4kOgql5B9Z8GEwYBFJAqlyOlQPTvm3zvlIkUjPXTrPYL d0iRBU5KMreC52UWdg3HkKWhbxOTKAzUZBUiq0U7bJVarNNOH+A7Uk3+98uq 7s70CWLTklQXhw.SyTvj94E.Sv9fIOKvjqMX5pCCTxd7Tojxs8oAC3xUkulu 9V3y.s.Fvy2mo0rxQ6wgazavMHgHirsPnC2lzhUSb1jhyxI4BLKPO+ZAUP8K BxSv44nX7wXdLV.HrzBwlLooKA57gf94tJv1W4.tVg+vEWWj28Zh72FWTIvr aPGzYJjYoux+DdCBVWYAjl8xRociRqI.aAzQ.TPWEFMya57qNRs7pk7eKhEe oHk0vvRWJPoy0lbY.oHCE7XNvcDXmuFAqRIdciEW7KQnnJjSlnTvYM1ydTVy NqO4C3qoNtvCV+rEt52UJEkIWHYcLavLzVJ1lel+ovpSevPyIBCc1vdDs.yi pGuQPWKMgGJQP0p6srgULTgxYwCgfGMeDlpV.KyFg8X4rYTuvQSAODaUNgEw U1RuFPAinQy9EyyBwYVm5Pbz.RySw3PJIQgV8u6jGDmlOfkumjSp7L5UCrzi nhy4QQkoPj3bC4ap5SobFlIFvZPLFWfDDNaSCAZGzDOW4x1OqT6lL0h3AY8Z eYu9gEhPlwoSTS+X6NdlnWGwJkqK54hp9wZc2.TQHgOXZCcVikpzF9Ktvyxc 6IywrystaCqU6ZajhHhPw6Kqfjy5lAZhCJMsy3Gj9HA8MtZtl2xSRKWOFrcr Lbo+tdJV2RRMKRKzopUT8Xguq9rJ2NHmj0ho7fGwgFdGNx30yXN3oXVepW+3 .Ukk5lgykQXpHniVXTAUrw.u8l1uBQn.r8O2zgnI7zINiDxYkFh42VNd8RJ8 4zWCdtg0qTggR66yEbNcKJqShnVRWFZfXjDj.KHZixys8KII56dZLc5X1c4A YbJ0b1zh12mnPoiQ.96jPYwwlIML6pfgaW2PWSAGDBGvSRvsWR1LN92AepfP CAOyKxzgz.bTjzq.HiOvFei7nJb.uPuk85Jouf+p.94566n7o7V2kVFQF.6E WXsFhAxFX+l3FYKaRPdCP6+x4Tv17pl5nu5yxiRZNDrA9SAhRBNezya9ngur 3s04KlUlkXle4S4CXeFYO4da.j.NUmgzxb85xLe9TLyJ26Awr3MOwL1PFn2q Ky3++gLiKjA549pRLdu4Il+PUNAPVvpfDHwS4czHhSQV59S5U0S3wyVijg1Q BCwrgHt0+23H7OppQRvAeVdiqSFAnJBxSGArBV2EkaaDvxac..7W8..MGEkw SFGKoSP4pdsdwqCKs3s.KY18fC5f.sHVtm+mSwN5+VIUEdMe1YcJhcZwy1wG CPKdi8HgiZXYNIlUlpr42tCXMgMRntpRpaNTCuyPcmNDTd0Va2xVgSkJXgDx k2bNnd0q1WfCvrPbtfvZZbxWZ70NTw1iIM1kIjvTNgIprwyw64EY9vwZ9vqp 4WKnsoXi9O76PsN5jcmp+tRYU8XJeKhV0Cwi6j7KuYW1ZWqFjM8RqZe6gzac SbOlVMcKsvok+GezUqiITKjYu8Vd7Fm+nLNu6iw4NJiCdWLtkix1bua1FbT3 F7U21VMFba4cA1VLFSa0cwzFUX5hK1zJGP95eArnzo8H -----------end_max5_patcher-----------
First of all: Thanks for your detailed explaining.
I would use that device only in one live set, and the inputs would never change. So i’m not depending on max’s ability to "ask" for the available inputs, since they don’t change. I’m searching for a way to set the current input routing to a specific channel. Actually I only want to switch between two different inputs.
Since I’m not an experienced Max Programmer I’m not sure how to do that but since you mentioned the "current_input_routing" property I was able to find this post with an example of the patch in the dephts of the forum, which is basically what I want. I just need to adjust the track number and redefine the Range/Enum of the live.tabs. Link to the post: http://cycling74.com/forums/topic.php?id=30846
Again thank you very much for your help!
The adjusted patch from the mentioned post, I’m gonna use. In case anyone stumbles upon this thread in the future and the link above isn’t working anymore (which happened to me once and made me angry ;)
----------begin_max5_patcher---------- 933.3oc2XtrbZCCEFdM7TnwSWRYr7Mvc5ljccltpa6zgQXK.kZKwHISSZl1m 8pK1FatXLIDRSVfDR9fz+4SmijLONbfyb18XgC3SfuCFL3wgCFX5R2wfx1Cb xQ2mjgDFybn3ewlemyH6ij36kltk.AXdUuzhbVgLCKM+DuxdWvnRA42XceP2 wtkcasT9vZrUFNNi.NyQzkNfeTZxZjLYEgtbFGmHsV46EnFAvjHcou23vQ.3 zwt0+DRpQVJo9QOnSCEPQ4lIx4FNAkAtkkk1P1DZkpg599yvg5hQOO1jwPoF G5f3Adl34jnIva5VzDFpKOJZbuVnIirAOVhpCQ1f30S2tOqMe76JNQ+Yghux NIh2TSvRnmgEtZ3B7bOLRfScpGHtRgRLeFlhlmgatX0lGkcJPavoyPRImLuP h29MQIXJIi16yJvrEUcW0e64rHuzQusP.0Npp1q1OaYbAkHExGrZz8.FTgMu C7LwJFWdrEiVVlwnK22Pqcl3gppyL3HGKDnk38RbDXIHofywT4LBccgbFWEE nVaAe.dYRl5SXCDZxjfA1pniD2D8TRk7tf6xnWOTOPK+qGaBLISgwcsKCbxS BMsxprNVGoTyVi4BhPhoI1rfKe3nBCq.ZLOSGXJ4njeJ.StBvtbG83o1vQuN iCi+eHNTipt2N+btMf4SO.TYlZHryy77uVm4kvxyUacsGg9L31BRVJ3AVAGf JRIL.dwBky.Vg40gcYDJNgUPkMSFZyR2tY4A.EDZXyDS9Zr8fv3CyofWaL8M mKlSOwDP3YqlzYzQ3IbavWjnLRRS0lvxXb6T4N1ejtHPWpJfMlkE7kyOsUuY vYPenYv6UZdiIsUx.eUsc2YPVXWjsbiK6EMlZabjryIuuA6BNK+hh1.y6A4Y HabTWjM5sNYOx4xqyJVpP3euLujtfndSfL8Aykeqqimi7ar+anem6X7Je6EM kHzWOHEzCFAetLxLnlKXrye8iQV59aCNg5hJIUNU0cn.a0VJVndqLjjvnMLR ese.r1nUjzTLsY1aNIcMiPkkhHveh4uwweptx22ut01IhHzuIdZ8E72aQu2d .rk3NhGD2xMOoG3aW8hM2tpzchatMyEV+mbEH5L0eIyglJu3ssdI7.293AmZ E3xomclpCqmcB7eQ0yzdDgtSXvKpdh5aN+URO8Y45ppFXOTC7InF610n0q2n +KNrCoQHpSztydwinQllDpsoYDc33MjJ6CGpGs+L7e.Th.Y5 -----------end_max5_patcher-----------