CTLOUT problem anyone?
I’m quite new to max, yet i’ve been doing alot of good solid learning wit it. I’m trying to make a 3d colour tracking patch to follow the movements of a bike torch. i have x and y axes and for the z axis i am getting max to measure the amount of white on the screen.
The output from the y axis is set up exactly the same way as in the x axis, yet ableton seems to read the midi control signal from this as an absolute on/off type value. I’m really perplexed by this as it is set up in exactly the same way as the x axis…
I hope someone can help! here’s my patch!
----------begin_max5_patcher---------- 2878.3oc6cs0jiZiE94d9UP4JOLoRO8ftBjZqsRpYeYeYyC6KYqcRkBaKaSF L3EvyzIox+8UHIrA6l1h6z8nTSnaQyEoi9N5bUG9y2b2hkwOxRWX88V+Wq6t 6Oeyc2INU9ItS09tE68ebUnep3xVrJd+dVT1h6k+sL1iYxyGFr5SVY6BRsxh s1DFbf2fYsxeOKw25yAruje98AIIwIVA682xd3iQEOkvfH1p3iQhGETcxMwQ YQ7aW73+wj.+vhKOXaTbBS7Fy+i.0o2ErdMKJ+L1EOhjsKkCN6GruuzAvC1V +h5hNFslkj2CJem4iqUwgwI271y6la7WU4tyOWZveHNGH+Njm9PBKkS67yBh i9U9.H6Ie31kd3QG2GDExxRKONW5u5SaS3jq0kem7KM9XVw0d5U5msZWPz1R uNOT9aAJGHDrngWo2Y4dY4GUf30sHd4u8NG6hohkaKQk.JZi5fXfjeY+0adS 9g60DhwGIKYIKZJLnnetLNgOgVYxibeoCUm7R16mU9tkzvre+.SdyKBxA6Vb hdz1EmtuqgZCBfg2YNbLKN5pw3trjfJuMWm72jKL+HDW8ExuVdmOjUFC0bnH GHFr+3dwzveKJNh82KlGV4GwAY7WQkgztJPimgd7jX7KGeNhYuyGK+.dZ9AN 2PJ63gJmx+wZFB6tX56Bj7ETyzU9Jp4COM2GrdtOjmf.PPNheHoFtMi8i5pC 6GnsreruveIWu.eVHeDZAr.slybj3Z53xrnmEVUkqSvzgEfRvUnZ8VNVAHn1 tB.AnU.B5D.HDbAV1bDA++gNsFU7jq3N1qz1QLCc.vLfahYvdBo2tTgXsFhY HfI.ybfSe3CbNdwt+vKiDXA7.wi.3BZ6EDCbbQLN.wzI1UzqbrKTArIHF7Tr JiPw79Cpb+KT3h1BkTZd65YC7nhGn52pG1.eNXiTaEaI5g1JXiyfBaLFKLUF KPwDAp.Q9JvfAtFNitsBN1BiDvXb6sU.5Mc1J.M1Jzu1Jn.DTaR6sUfLnRwq y8f+C1grceL5iQ7t2Z9fxZEe9HH5HmmyZev5.Q6j3vbmD9gO.qw0fTiqAGTW C5H8JHEI+gmPWQRCwWjgz2f6Yoo9aYWgu3WT+ZD5Yw2aS7WGvhxd4s5DrAnh my1AGgdeDnxnSw.hVVdpbhFdZoNpTAiR+.zPPD9IAQ0+nMZNZbyrQqwxJIP5 hViXxDn0328UsKDGaGBors.HTkDAaiKDwnoPUxcwIA+AeJvO7iQb0E4+zJdi 0W1EjwpQsQjQswgUsQGQrKPTwOnRuBzPI9XnIjxFY8lPJ2FA9Ndx0v6h.+oH ZPuyHveDE36HD3Cc6h.e6oPf+mYIYAb9Civ94fvdJBHE1SjthrMB6QdFg8Fg 8Fg8sPXOEQkqeSZuvdD0Hr+0svdpL1PPWu1KrmLEx5+OV+3O+O+2ZGnHfILQ SfJ.HaY7g.dxnE0lvDQGRM.pCc8yMCcYaPWS.5BHi1jzmRsCb4fFT8Ke1jdv 1jzC8bROHWkQl.isKmGbFzDlutXRmlrJeTXg.dVXKnsED4cuEWqxh+vSCT9P 7wj.Vh0+h8kWTAsFg.DLYVE4ZJ7rRxPvXD3ZJwD3Zi8sF6aauyr8j4ZRG7kM wyraX9ZZ2vHgLXOP62LLT7D.Y9sfrG1DDsdYNEJ05G3TPNYvy4xC+fH41d3z +54sCwK0sDAX.2RDn5Qa3hcNsLNJ131rmHftSgyU9on2+Sa1r3Ul8qiIpR+M YuL2YckaPh1.Q.SgCRJB0lAiLFtQSV7EvxURjalllhRPSAJ4bFXYvIigCw.j R3DhWq1DdCINYSXLevLJFjdkJL72suVFfx6gqYqB16GdHjCARGGDjwB0IxB0 bBpMwUZewU+VcFrx02toFrJ2Q0JlSTq1grN05yH9+o7Wzk+FvvqZ3UM7pMiW Ea2clU2QjYsFGG797HIzitAPxWZphF2zSSE3GjPwcjaavOSgyIeedLnL.lwG v31c7Bv1T9LFMzkQEfuVTAPlkIsSE..XL0AvvgZ3P+Jzf5NwfBGQFzzvf0mY PGB6lOyos+XXV0.qyAJR57IV1jfxTm5c35mhhWVoCI4TTGJ2gRXg7m2mqfka N2hPoQI66E15qqGSKVS.Asenw4BDPk37Ra+f.QPY.vFBrFzc777FIAeEhjf3 VfjTwsgKSpHgxxO1vTTEfmhH.uLNKKduIpMiPTaHpv9hgxZ3VqjiQlhv6kDr cWlAiLFXDYgbSgQjarxFiQljcRQV7ACBYDPHXpSIDBrU4H.vYB1MDrGOjX8M Afu6su8aBfui+ae66geqonOOptqVlpZHovG.nc1RMEerADnGHx6cu8JHjACM tXHhr19HSkM.tUYeBz3CaiGxLdHqu7PFQFOIHrCtHCZ7gsgC0vgNTQYxi1cN TngC0vgZ3PGHNTodsciCEY3PMbnFNzAhCU58BHzoCbn3oOaMOFk+UOqe2Pv2 Ol6K3IZaa1.+WnglXROs2R2WLEUCcCrYRgMpEe5DrYPKyd46d7CeIHZc7sJS LqiOtLjs73lMrjJjxqUIn1Y6Cg9Qr89GTWH+OxoG7UkelTMnx9JWUxaNc6hp RmHvF1OCZLXcHSHrpxvIM6lOJ4PqZ5Lbtv6bExYe7ZImkedfnJ.yo99Udu4e BiNSE64hlUbTJuuwpjyNbdUVREwz0jMC7KiEWe7kfmo.kHdO2NNTlpx.WUFK qpbNMrV3.cVziUSo3CrnWEedeFyvAne1Qo9r9HKmARkspTDM5+RkDxd3KUR0 AlVEFmxLnoACM4hKilbGCzDXDJ7VOslZ6YYIwVjd7KZ7zYV8KwsWCvVjoUjV YgHBNjJokEuM26BCXFcdC84GVst2wV8I1Zs8kQSlTUesBZ0GpZDZhplS+urG 3B.VlqOZt5n82BB7G9ut2OKI3wW+kqo9w.N0RCP2RqPzXbzjjitgrMlrubTx sNnW4bqqUYnKZPyP2Cbitu0LdSrhWPqXUnV4JrdRMLpn7nIO5bQp6eMxpvpY 6qM5temmS24m6kiaZG7SOyexA+kpugOQQDTUicfk93l.Qk5Y4DJvE9b2K+nG p4JqdqLxz9Armqcd4B9xUWDuFQAIOUdSEHIwXpfE9LdJM9XxpBwHhRcnKWDx 4d6ZVZVPzoNawEQqbQWO2qGdaev5CwbMTTc0Z3AzsmqSGm.lgc7K5T0Pxcmi 8bOM54NywdNlpQOG6LC64Pcn434HC5EjyZ54j4XOGoQO+hIl4QOOWG0a2yGD NTWOg0oXYQtDdtUWY.zYgd3bjAPzyA2pmOHL.DGoVr1xOSB1j7YCQqNNlnDM lMt.E1SiIGf.RAEFuoPaRcxFAVl4nnADXxlK.dHI8GWdx.28IC6oaHQbGlgD bxFRcc8KcvW4aliRKx0WqegE3KXQQN04TqtNlP5NllcyF5vZ.FDbT91NjS+w R+lopEGUaAJLUVtt.A1c9Fclotf4ZlLSoCGOvcP3aTR5IpuaFzSs55XhnitL yQysg5nwBbVhin5PyQywdNVWNfYIM+lnk4nzZc7SvbjhCzQKi4ns1.s.4ywk DA5nJwbzhGfVRVmiZuAzQaFvbTJDPG+u.FDoPJuHgABcKcjpcVtARp0I.Kz5 A0CZcR0golLGWNRGusRewZl4v3kLkUlX42XVUE4sZKp5COqS8snh7xQzZLrN kLDFNnLwSM3wTTIRQQKIOG0AepUWimjNV3QeoZgGdPjCUXgmBkZCKiYUsj3R G4G+tdAWh0c7BFHY.PYFIiU4kQ0VRfoqrV91G.SrNJHgmip1gzJPmChzZpRJ r7SWkCfdpUWmM.5Nl5czmiqa4wDRUAk59XhfewFbTcV0lL7qZya7Wu4+CtJe C8B -----------end_max5_patcher-----------
thanks, if you get the time!
I don’t fully understand your problem. Are the controllers properly assigned if you look at the midi mapping in ableton?
Thanks for your time.
they’re definitely assigned right in ableton. when i assign the ‘ctlout’ objects outputting cc’s 0 and 2, the controls they’re assigned to behave correctly. However, anything that i assign the cc1 message (coming from the ‘ctlout’ object in the middle) does not behave correctly. That control won’t move on a sliding scale, but instead switches between the two extremes. The threshold for this seems to be roughly around the ’63′ being sent from the ‘ctlout’, which is obviously half-way between 0 and 127.
is this a mystery or what??
yep, that sounds mysterious, does that also happen with a separate ctlout (apart from your patch)?
I was surprised that the scale objects worked in your patch, I would have typed it [scale 0. 1. 0 127] since you convert float to int.
It still sounds like you have problem with floats and ints though.
btw, you might be interested in the cv.jit library
well, i’ve experimented with ctlout a little with other patches and this doesn’t seem to happen. But like i said, my x-axis is set up in exactly the same way and that still works. I have changed the scale objects to work from floats, like you demonstrated, but still no joy.. I’m stumped!
btw.. what is the cv.jit library?
cv.jit is a great library for realtime image analysis: http://www.iamas.ac.jp/~jovan02/cv/
I don’t have the same image input as you, and I don’t recognize the behaviour you mention (I even mapped the ctlouts to sliders in ableton), but here’s my guess: I think your unexpected behaviour is due to the way jit.findbounds works (it can have a sudden jump in its output when there is no pixel matching the critera, than it will output -1, resulting +127).
strangely enough, the problem seems to have fixed itself. The wierd thing is that i didn’t change anything myself, it just works.. is this something i should contact Cycling about, you think?
Also, you were right about the cv.jit library! i am very interested! those tools look fantastic!
I don’t think you need to contact cycling for this, it’s too hard to reproduce.
again, thanks, Timo for the precious advice, but…
it seems to be happening once more, and again, there’s just no reason for it!
surely if i can see that a continuos signal is being sent from max (i can tell this because the number box attached to the CTLOUT is reading out the as it should) then thats what Ableton should be mapping to the control i have mapped? It really shouldn’t behave in the way it is as there’s seemingly no reason to.
this i really can’t see any logical explanation unless i’ve missed something.. does it look like i’ve missed anything?
should i contact Cycling after all?
I would monitor the outputs with a print and verify that it is in the expected range. If not you can place a split object in between to filter unwanted values…
The behaviour might change with lighting conditions…