adc~ in a midi instrument
I have a midi instrument in Max 5 which takes audio input from adc~. I am trying to port this to max4live, but adc~ is not working. How do I get audio into a max instrument?
Not possible. M4L instruments can only have midi input.
Thanks for that. It’s a shame.
Not possible doesn’t exist in an inventors vocabulary…;-)
When beta testing I worked on some workarounds, basically you feed midi from a midi track to a max4live audio effect with send/receive.
Till we get universal tracks (audio of as many channels as you need and midi together) we need to create workarounds, its a bit annoying, but certainly possible…
please note that the OP wants to feed *audio*, not midi…
What’s your "possible" workaround in this case?
Apologies if I was unclear, but see below for the patch. For the most part, it’s taken from Jean-Francois’ freeze patch. Sound from the adc~ is frozen and then "played" through midi input and gizmo. There’s a facility to cross fade between two jitter matrices. It basically works in Max5, but it’s quite flakey in the live port. Rather than using the adc~ I am loading two jxf files created with the Max 5 version. No doubt the patching is clumsy, as I don’t really know what I’m doing with the pfft and jitter stuff.
Any comments welcome.
----------begin_max5_patcher---------- 3436.3oc0ck0jihiD94p+UP3XeZidbftk1218uwDSzAkAWMyfAGXb0GSL6u8 UnTXCk4PXtlchnqZDhijOk2Yhp+7Sur60ruGcYm2+x6W8d4k+7Su7h4PkG3E 63W1cJ36GRBtXNscudsnHKc2mgohCMGL60e+WPzpCld8TbZRTg4BP2OX10hO dzyAEG9Zb5aeIO5PAPFHJdu+m8PXg4W29o2uYuF31T7iyQvEr60fz2148aky 9We5Sk+3yN9xjF8MMoWQ2EQe2PC6983h8myiSKZ60r5XGyRKRCNYHhc+673f Du+SVRXufP40bI9mlqA4qeyZCavciMB.ZD7xeQolAx9fF8axWNETjG+8ce1a 2yARcthS8qN347nKQoEAEwYo0HWLgTRhLyOw9U+7F4NMFEg4FxXcbyqSS0uS yH6SQ1aukD0BxfICgLl0NIdQ.Fh41R7mJvTJ.LmhU+SOMYfZSlh7LBU3wHT0 GbYTwPYleAC5Wn5XRVvLiL+21Du5FTbGOviGOPXiHEyGY.D7d1GXfd.PtD+V plnVbDQrQHBFKWQDII98n8g0dmdOH+1K6CSdNOqHq7Ie6TJhS+QKfGu5XAmO GEjGjdHpwqcGJp.cIlWbJHgvGmhJ7fRdntt6coo5rl7OEUDk+E8a8qIQ8pEq zvWkDq8btD7dT3WBJz1E0F2ht++cwtrXWWJg9jqQYGqNb0wqSBWNGEElDep7 brbVMmuH57ktlL56myRiRM3AZeamw0z3hKE+nwKYiS3jl4AT8425M3jdEx73 ac1X8sujaxfU0XoabRUnYO2fZqDsBBeMK+tD66YUrue3V8d7k3dtKmxBqdYM dG93YDjllY4gu8zZ6Qkjk9VmxTO7L6C.ShS+ix6zk9H5rvdvuiYcRlY4gQ4c ckFNC3RgIM5Yp907nF9RThmeaN3PWbK18n2PZ7dBC9UB9X1uEaiKdOsCvcfM WSOGb3OZCbDaYLBftZLRYTpxGFbLw4L+d6cJNLVyrdoU+ikKNBIFBgPJvUOi ZyAfHCui8e0fqOubfWg1nyi3FiMROfPyjGPVlJAXil9PLEOhXyMqTbaQfRvK NeTefhe8nw8cSR6ovEs4kKAuE8.vzlpYIdi7RlQA+3X2PhAEql8nKaM7Ro+F gHTHeMLeS.UT0vhMSHzxwviHXaEh.hITwByizEXzF6gfrUfg0FsXaDXzdQlm 4waKTQ91xdvrwaiFVf44SdmVTSSWs816ujFYwCptfBoETPcUcwmWfTf+yDuK shNL4Rxa3.5v.gFlC9fL2d7qAkvnjfCs4RKCsU3BD.DERlBStj3RmxLT7FIy vDx5ZL72RYlt8.grUdfTAO93UvCjNfkCYWSKhx87Ki0p0jInFI5vFC5PGDcn RCaixAyM1v8pGK37V4HzP0TinLKhB+EozQHkesfh+6Twi.uUZU3ZqpShEqfT jurNqzYMXYtUBV0xvtP4v6Nc6pAaGrKmOdr3+5cIKI6XdTzOiH6KOhNJcE2i 1VP.yh4aMO.yWQIi0JFRiiLDEKw2RxBhBwCnbnLSyseNk8+.z0.dG91IOrmw n.AqWbox1TZMGokRMdi+XH0KHlsiQXC2qHyQCQLLpU7igAM41fYHv+4JLCQV GLqq.xeKp36GCBa0TnZdDIYJFRJFcMe0VXQLNtrTunZcZxRDfdmtUicvuQM. De55oFUnZmdw5xg.akz1q5ieRSIUW+sJPNBHrOwSsUUAQPkxRXSrhNn2E2lg Uy6ezlWDTxlxsokCqfpEmcqG8WcIKRoKN5LrNKrM6PNvCsn88FYHmtHb1B5z E25z0F13acIekGED1Ff4P9D6BJgF.EfRxihDKhm8bHwr.B2xC0YDddQ2ukGW zlvIQ7zvKlyqAu70AdYfaaV3ku1vqiQLfGHhAhbKiXf5KuEw.xmuGqDXsh00 IrgCYmNEcu6nuAg5Gz4qEdVmfCCJBZC2HOux.HXVqe9HGUr5D6pee09FUydL yAEtypwFjaFaVnlrFKYaswltjWaKjAtZiZPBDTcBB1nNiibOQq0umPydUuAD OFmD8dT9klv6K6poMERdoIELba4Uk06jucu9VR1g+HJrdijsKL53XtGYmiRu e9lynwOZdlwoejun9yM3ZRwWZGvaN+wfCQcdwst39xt2xiCyRKIhFWY4gqdb kNTBxx0oayYjFbtkKtHKK40f7Zcm3s0AMqafN9qfhnhXfdv92tt3SvWQR86E zmje8xg7rjjF2JXl2aYlvn2iOD8s3vhu1rQDa946TuAUqKT0338Ib0T.6W7D 35SzVbo8Kp0oMvgBMnaYuN8onddqI96oBelT0TFbnDUWqGJqzOMyPZQdP5k7 RghN.1a47X1.16hVOKlBlaeTkVu9jMSXYiLi7PFz3OIXgdFvB6DXAkX6QmDb OUGyDxYda6hKiK5DalH2BX7.XYvLGXVpMckak0Zo4YAJfGamXgzI9jVcWrer .iU8.FC81d2xTRbZWJ4MO6x4aGFtjcM+PEXWIx30jNBitTDmdyP8uVCV9vY9 03vvlVFg7OFdNSqD0RgNxDOVB2vx5DkWZa5uSDtxQ5tkklsjtaAF6fSQMizs 8f5Wf5eoN5GiVzpmOSmdcZrGmEcwexjrWCRrdm+v2Txfty1IEU+je9OaiQlH NDRNgLwwuGm4ZkINLE++SYhCgnSHUb0hiesREGRo1xTwc7Z5AystsFgAO.fY i3F9J3A9DgbbI9nmdChPrlskcc+6BaByNE.ewXHcrf2qIW2d+U8OqWfUemlg MzWVKb6xfz46QLRYF+72yoHluxbbDRG6ifqvvLLIU4ygYXJ7dhuPPTlY3beh zLCw2dy7gYvRhO1LCkqCQlHoBd48XOkPTbXFl.q4SEBDUZlQf3J3tU8NaI04 lsPg2MKKuTEcfk26KihkZUjn8VlhYLBrLV9eB6xnVMfTC+JjAdU9LtcYT3K1 qWew7ONiVUY4RBW4SKmobUDALEDkjtWuTRElE3xzMSMSHl9RUGImKWCSQdIw WZaKzPsUMXMAJ7.A9PUX7krUY6LgtR07rOoPDfBJTWI9c4SAauqxRwV0Rvfl aBkr7qxc.Lk9Y21FX.RrQMIdElvk2Mz6zNXvRzmzcgNb5FgNU5E3r+FfNsty Wf3a6lAR0tix1rYfj6cLKqU2sGIp3OWeNrftWDzx3D1J+8vdoK7XQ+JL5oDo vmRsscLgODE.NVXwB01sivH1dwBniEdK9mmx9h1IzvSQc2sBTzV1daDqbBzy obemUvNmvUP3gVUsNGMh6S2GGZjopMNrAgqc7moiqh3dSbrXrV2aFFz.MCCd Sae9ZfXydgguc8BiG.bsgU3mOGQX7dDtj+nprBT1CuhSjYsO07zaOcfYUge3 oOGMCSmMKdVQVqaGMB91980Y2yCX9qbK6dN45a5mPap0va4FzS0VHmsgccXG 5oesYlqqYcv.T6iU0vhcOVEFZ8hTzUEXZbNOTDiOV.CDCUZ1GAabYHcnUUi5 XI1UhU5.shFIsZoNHmoRzsASjTK2Gn7PCQq3wQrSklDNPSX53nItv3hGXQQQ tMXhzJA6vZMVtt3mK7eXwpRSLGHIxHgIpvHF.61BzR0SVeHjSWt.IWBBFciD UOPzpoSzTWTRV9gRVS5xUMOXNDoj+82Ayglp7iyLFnwHqaXLTVaXh6XLa5DL eIHXrb4HXwBPvLIa4HXoKljXiSzqNMhrI3.dGLilp1BW3hozwgwUzGrOxTVn 2pQqf6IT5pZdn7i2a1oILlrGW8M4Y2y.sJyJGMUqr9tPxjUEFa1JOyELJT64 1Oj1YGEktPwlVIXLjLQRAG7fpkPuOZp.rgRFR4jxeUW04tX1ur.DiQ6CAz9P T02LCLilpnNxApUMRuS0woVRr18ieB+1n0fXQ7mhXUPxsHzaiVCYI0jDkX9j 4RTR4hjjbciRQ4hNc95ZZD4BK3GV5WZZR5hOkn0csy7oiMrwuQF8yjW7bQ2L djDE1GBWfTYL9l22joagyoHeGMECoZaQnXBZIHXEc4fXmQ3ULmQHWzFutBzt nLdc8uF6hJFx558Gwo3PV2L3xbgCmut3DyENb15xhKbIYR3001N2E9I45t1I cxuL9pZZ2ontThmJpK6eQcv1OIOzziyluDbZTpImTLnEMYb61rP8QTnQqXRS 4WLilZHYNUwkQxeZoOKsys60UMFgrAWhw2RpDZFhvj6RA3DiNBSLvFIqC9n0 J+GLzXiwDx0.A1Yno3aiViHhEjmKhXfZIXaNGpOhBkYjh42FsJrIrmiMA5mK JTGbyn0fZk3miZ8sEc.ZbC+oqQQhW.OnXLSVdXvenHqzufoqDOMeJ7zb6lyd iQT3uJkUJSHSW0m.4Z.6ioQIJaJBarZDeKOhQeh+zU+4RUJFakopJrCsQQol gtPgr.cLSCZcF6XFjKtmrxkjxE2LV2rS5RV2V2jtIbDjFSlWHfpxFkZhMCkZ BQbD9FAwRMUZfJs6SDfKuR05PqzIPq1B5LGzpKhtn0MOMLlSksQ8T0sA1aIQ PO3QPSG.wtHEwXqaltbxT25lsDp+Bj2TgwhVU6XMmcikf4ZRKVQ80jEflnP2 KQgREaSJ.8gREqG7We5+A3EKKqA -----------end_max5_patcher-----------
Am I missing something here, or can’t you just use the plugin~ object? That should route audio form a record enabled track to the patch on that track.
Sorry if I am misunderstanding or misreading.
I know see what you mean – that midi in and plugin~ can’t work simultaneously. A frustrating limitation indeed.
If you port it to a Max AUDIO device it will work. There you can have your audio insert and a midi control by accesing your midi controller from the patch.
nice trick, but I’m not sure if it really works in practice. You’d need to load an instrument in front of the audio device which passes midi through from the track input to the audio device. But I believe that’s not possible..
You don’t need to load an instrument in front of it, because you don’t need any midi track.
Think of it as an "audio instrument" instead of a midi one.
So, where would you load an audio instrument…
…into an Audio track.
As I said in my last post : "by accesing your midi controller from the patch";
i.e using the "path control_surfaces N"
It works, I’ve tried before posting.
Ok, thanks for the clarification.
Hmm, I’m still a bit confused about this work around. So you use an audio track with your audio effect on it, got it.
But then say you wanted to use a midi keyboard to control the pitch of the filter cutoff with midi note number, for instance – how can you do that on an audio track?
Well, I think the proposed work around actually means using a different method, namely remote control instead of standard midi input..
You need to access your midi controller from your patch.
You have to connect a [live.path control_surfaces N] (N is the "number" of your control surface -this have to be configured in LIve’s preferences-) to a live.observer, and send a "property value" message to it. Have a look at the Live.Api_explorer.amxd patch from (I forgot his name) I’ve attached. It will help you going to your control surface, find the right path and gives you information about what you can expect to do with it.
I’ve also attached a little patcher I’ve made in order to have the Launchpad matrix buttons coordinates informations to be translated into single numbers… perfect for midi note number. I can insert this patcher into a m4L audio device and have midi control.
You won’t be able to do something with if you don’t have a launchpad, but maybe it could be handy to look at it (the top half part of it).
… And I just realise that this will probably work only if you have a "Live-supported" controller; i.e the controllers that can be selected in Live’s preferences, midi sync tab, in the control surfaces part, not the "midi ports" one. But there’s a little chance you controller’s not, except if you bought it 20 years ago, or if you DIY it.
And, sorry my english.
Thanks, all. That looks like an interesting work-around, Crampe, but I don’t have a controller. I haven’t had time to look at Stefan’s suggestion, but I think that might be the nearest thing to what I need. I’ve read here that using send and receive between tracks can be a bit sluggish, so I’m not sure how it’ll work out in practice.
Thank you very much Crampe, and no worries, I understand you perfectly. This helps me understand the solution you are talking about. This does seem the best way to approach the problem for now.
Pretty sure at least one of my controllers is supported. Thanks again, good to be able to get back to work on porting my max devices!
Tegid O, If you don’t have a midi keyboard, then… I have no solution :-)
Where do you want to grab the midi from?
If it’s not from an external midi source, then you can do everything in your patch.
I must be missing something.
I think perhaps he means he would like to control the patch using a midi track in Live?
… so, I must be missing something! :-)
What you have to do is, put into a miditrack a Midi device, basically a [midiin]->[send MyWonderfullAudioEffect] and in the Audio device you place instead of a [midiin] a [receive MyWonderfullAudioEffect]. Now you can use the Midi track to route Midi to your Audio effect.
If you want it more universal, have a look at my MidiSend device
in combination with my Filter for example
Hello Stefan. That is a very useful m4l device, does something very similar to what I want. I would like to modify it to send note on/off as well, but for some reason I cannot edit it in Max – "unlock patch" button is disabled.
Surely I am missing something basic, but is there a reason I cannot edit this device?
Oh dear, yes, the unfreeze button. sorry for the noise ;) Thank you for this device!
The device is prepared to receive Midi via the MidiSend device. To send Midi doesn’t make too much sense, I’d look at the two keyboards just for displaying purposes. Within MidiSend, you could add a keyboard as well…
Anyway, modify it at your will, it comes with a cc sa-nc-by license…
A smile or a donation in an unspecified amount to my moneybookers account will give you also a commercial license…;-)
(But you can only pass on your changes with the sa-nc-by license. (I still need some cash to finally buy a Live license, after the beta phase I had been cut off from further device development for the lack of monetary resources…))