Ô cycle~'s phase inlet, i don't like you.
So this is a little bugging me. Here is attached a tiny little patch
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 924.3oc0X0zaaiCD8r8uhA5R2EPQfRx5Cu2VzS68smJVTPKwXwVYRAQpXmDz 7aeGRJmHmJq3Tm3hlC5Cpwju4837znb+7Ydqj6XJO3ufOCylc+7YyrCYFXV+ 8y71P2UTSU1v7Jja1vDZOe2yzrcZ63KBfOIZp6VC5JFn3qEzZeP2dKdOWAWW KoZtXMH51rh0B3h3CBolWvfJ4VfqgRISAEUTwZlcNZpnJFvE.U.xxRenSv10 vJzL7ZA6FV6UXXWonaXvV5s6QTMWvJjcBKrVzO30sqWYtmDP5GAwgrSWyz1z Z+nWKEZE+NlYrvvGCtgpKpPz+kVb4crUBIKHwGBSMSIDlaOkjFPf+q+GwKsD ib0WuJj3MXADHhsO5ua4zZum.DWrGOglw9974lC9mnxfTLNGdileQSmetH02 1vbImmUt77AuUnb38XJMBOrHYokGxirDfiMVNNMr7kYgFZKNtl09ElftplMT b9MkghVlXHkzzWlfx9ESPGq3NN.9nTf0UZW0LVd+.7Gaq3EUfhIJU.EJPHyE cxNEPLUsNKf+DzxCplQ3AxqghaKpYOD.+iF1xqqwYQOHL72frDdunOPWPqkf zMBxvAiVvG8tUvGka2nGaEy3rX6ovw0wjKP49wzpHTqp4EeyPUDCSZnVGsR0 FZs2pU7AyYT3zlD8BSlwoIFxzUYDEmOEYt3WHYFF.+aWq.JUMHe589wGn8Yl wFcwBCUjGNkKQ7EfPX2URKdvaxzap7HcoICVjr+3nuUbTzF8SfVAaKNg+f5Y soHimDgioQji626ryl1nOOyJdKcNDt9BNhQe9EPCUExF1qWCiVX8112YS7Sm FMSxdyTwMLkhtl8CxHI3sQBmT7hicYMIx5xG4Zt6H4b5qT8hN6lUpLrQgrV1 5fKIHOijjm6O5UCcROo1bRVlDlm0+LD37M3RefC24z.jaCUlciT+lqgVa5Vt pf12JSvxQLJNyFGWs9PlKE+KyezqdFycdEfGwVpukFRP3qXe8yzneJ+odtOx ZMkFO06XhHmwVb6DZak3YeZoETlwOjzTxt1h8IR+GJ.OAqRlB6rD+7Q7MvOE iAgP3iAUwKKYhgpdIWY1HXyIxnp2oBmrS.NFG8AA8dBGal+h3I6hgmvSVtlB OGThR7GbXXM4annl9dtIyUBPaZtg0p5mSKTPGhu5xyT+4NyV2s1pduV1M78w a+mW3Qaw5XMVD205pA2km5M2rNee9+S.tPiF -----------end_max5_patcher-----------
What happens is :
-if i send a 0. float message to the right inlet, the phase does not, never ever, go to its position 0. as i would expect
-if i plug a signal in the phase inlet, if it’s a 0 then the cycle~ goes to its phase position 0 at the time of plugging the cable. But then, even though the signal is still there, and it’s still a 0, the cycling goes on, and the phase is soon no longer 0.
-if i unplug the signal and play with a [flonum], the phase changes, but i don’t understand how or why.
I suspect it’s more me understanding things wrongly than a real bug. It’s as if, for an incoming signals, there was a built-in [change] in that phase inlet. And for floating numbers, i really really don’t know. It’s a problem when i use a cycle ~ at very low frequencies and want to reset the phase at will. As always, any help would be more heartily welcome !
expected behavior … for all objects.
when a signal and a float are both connected to a signal inlet, the number will multiply the signal.
Thanks !, but ?…
even if i disconnect, on purpose, the signal patchcord ? and when i don’t connect a signal at all ?
and what about the phase not staying at the signal’s value ?
And also :
when a signal and a float are both connected to a signal inlet, the number will multiply the signal.
Reaaallyyy ?? i though the number was simply ignored in those cases…
edit : this quick test shows that number is ignored when signal is connected
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 443.3oc0T9saBBCEF+Z3ofzKWXDZQPc2smikESQpZMPKoTcrYbO6q8.3eVlN lFMY2f1ONdNeme1yYiqCJUVypPdO48hmiyFWGGPxJ3zd1AUPqmlSqfvPyxkh UEH+lWY9pbkNmogWRZUmIE5J9GLqFFGD1J2Do98RVSAs4hpQ9dnTpXNx6013 Jo5oK3h4STro5lPGfiBHw9dQICMoyKNz9DONHb2OhmA1Slt7QbL5.iHnEP8P Oq3zbztZnL5ZlZBSPSygHB22TbQWOgsZaccsO76IiLIHko977PpPlwtDnUwm Kr8QG9NG1hCisfZPDAnVxYoVzuSsiHSmwMFBnWP3sFU3aIpRHA1KXj3eGUit VRgG+eFUCFCie8BUIWGphBFRtDTwdyT7tBnY0fyQObB3cgvpGSdQiZ9.tacJ FQ9qL5.h.4CkyEeeKN3Iq9wXpRtRMsqO5VV5s2VYrJMWP0bo3ffHGEyBdVFS b3FyLdkcIJzR+7Vf9ZGRObicS0cxNi5Ibv2E2jbC+qp4hDsrbMSU0lRvHlIq kRk8XhObjKZNBSMHEaMuK9AfBUYFFzlIgUplax0iRPt15r08K7c8xmC -----------end_max5_patcher-----------
I recall (from somewhere in the documentation), and through observation, that a signal to an inlet overrrides message input. I would of course hesitate to correct Roman; I would guess that the multiplication only applies in certain specific cases and inlets.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 739.3oc4WszaaCCC9bJP+OHnyoFVxwu1s8mXWFFJjsURUmsTfjSSRKV+sO8v 1woyNIMcoHX6hDLEEe7QJR5Wt8lIvLwFpBB9B36fISdQSYhklgxjVBSfUjM4 kDkkQXtnphxqgSaNrlto1dPfGnhpTjETvZVYIPvK2BVKj+DvlCTrEbRIfo.j LU+qWx3zbwJtUF3VprBqHEYOdGJsi2kRp4tjZlfeujlW6r7f3DO+o.zL6ley B3GsWatfWqXOSMbiv5ianyWUw3kzZqeg5TBoN+AFewdJHzpfPjcKIxrED0WG ZYIVU2JL+9plSprpF9MprfvIctyb4hLK2d9VJ+51aL65soe7nA1qEyEOQkRV AU0FdfCgxIGGkS8BmBRlcYA4jvdXLFcUiwHOvxGHJpIstXq1FX4Chswv+dnT H1DEvwtDR+qGTZdoPq5A8+vNp5avpzbY7xcd+HYbyP1jfjS4YM5bvRrUnIVr zAknzwgR7NQI0.YMUdOkSxJo6gytKTucI0oDCtPz4N.XFgu.tu42EP9pjQJ2 gRLdKJcG5hDRvGIh7ww1lZkXz+efa7kFbwot28o+qhszmKH4uNXsD3fnE9Po hogtpj1NWyBaWGsj4Ya1b5ZsM9m8IzMheE3OXpRxvsF7O+rhH6ZfqAQx3tIZ z.uatgCGwOaLRkKVRGLzFGejXaNoLuaTQjezgvhY98h4n.+tsi1nLa07cggn y1Oe6rVcIC9d3jAc+n2WpvAS40g+vtAVCriLfhNmbgKTVvXuTx2lWReED3kF NXaKe3HEQCSCQIwuafpIOAkXApHaAUr+mziFGu1+.5s+Cl0TMG7FPTIVIyaU YaADPOyUOleMiamjpGWFbCf1w0CrhBJeuz9BlxzRn3HU.OYCyLz2UogYdmcU ZXVUdTCyTkrOWeFF1IYWQe9QxSxtR9P3UyaTxxk5+hV0HZmIoqn8nPZ910Ix L8i6amjgR5Sr1qDqoXkpd42.6.G4L. -----------end_max5_patcher-----------
Hi Brendan, what does ‘phase is dynamic’ mean ? And, hm, playing with your example made me think that maybe, those phase controls are not setting the current cycle~’s phase position, but rather adding an offset to said phase. This would lead the conclusion that there is no way to ‘resetting’ a cycle~’s phase, and hence if i need that kind of control i should use something else. A read at the cycle~’s reference did confirm that cruel realization.
So thanks for your attention, and sorry for your time !
I think I can clarify a couple things for you.
1) When an inlet is capable of accepting either a signal or a float, as in the case of the right inlet of a cycle~ object, and a signal patch cord is connected to that inlet (say, for example, coming from a phasor~), float messages are ignored. The signal and the float are not combined in any way. You can use one or the other but not both.
2) It is more correct to think of the value supplied in the right inlet of cycle~ not as the instantaneous phase, but rather as the phase OFFSET that is applied to the otherwise independent operation of the cycle~.
Some examples might help to make that last sentence clear.
a) A cycle~ object generates a cosine wave at the specified frequency and with the specified phase offset whenever MSP audio is on. A cycle~ object with no frequency specified as an argument and no frequency info coming in its inlet has a default frequency of 0 Hz. Likewise, its phase offset is 0 by default. Since its frequency is 0, it does not increment through the waveform at all. So, a cycle~ object with no arguments and nothing connected to its inlets will generate a constant output signal of 1 (the 0 phase position of a cosine function).
b) A 0 Hz cycle~ with a phasor~ connected to its right inlet will be totally controlled by the phasor~. Its frequency will be equal to that of the phasor~. Its instantaneous position within the cosine function will depend on the signal being supplied in its right inlet; when the phasor~ is at 0.5, for example, the cycle~ will be sending out -1 (1/2 cycle through the cosine function).
c) Each time MSP audio is turned on, cycle~ starts at 0 phase plus whatever phase offset is supplied in its right inlet. If a cycle~ is running at some nonzero frequency and you later send it a float phase offset of 0 hoping to set it back to its initial default phase, you will be disappointed because all you have done is change its phase offset (or not changed it at all if its phase offset was already 0) relative to where it was in its cycle at that instant; it will continue to run from wherever it was (offset by whatever phase offset has been specified for it).
d) A float message in the right inlet of a phasor~ object is different. It does reset the phasor~ to whatever phase you specify, at the moment that it receives a float in its right inlet. So let’s say you want to apply a sinusoidal vibrato to a note, and you want it always to begin on the center frequency of the vibrato. You would therefore want to ensure that your LFO is in sine phase at the moment the note is played. You could control your LFO with a phasor~, and set the phase of the phasor to 0.75 (specifying sine phase for the cosinusoidal cycle~ object) at the moment each note is played.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 800.3oc2X1saaCBEG+5jmBjurKqx3u8taOGSUSDapCU1fEf6RaUyy93C6lzl lThala6jhLhiwve9wANGxCym4sjsFK7.+.7KvrYOLe1LiIsgY80m40fVWTiD ll4UvZZvTo2B66j30RicwJVWcIPHQbIfPABBECZWgD3gldMuZoto9W52aoEI KVQnU+liKjVQ.STuE.gAlhnTcQf5K.WMzKLpjhZvlA8mbBpdn+IkFark278f jAiztFBsFKMhGt0HqSNX0emdVPt2zy5wWa8w4y0OV7NgibUOK.rqAxUDAfIJ H00HIiCT05njlVFWh19s0J9Uv5nlNHXDHL0VDGoKBCOYDF84Bgh6nE.MGKTu EysfDCtkrjqnHP+SU0590+NJShe+3LHKSSvjncn5HvYvGCNw2WhJ13cLuEey drHSQT7vymld6NI7e0IQvqOIFgZavBApBu2hu+kwpSA.5h7LUI.566+pKsgG YgL0dnRH7x3Ef3X8ymMScZgDlcBL.dfExdy1VJuqEaUnmG3pQPMJ9OJksGzt vkkc+rAlLpCZgI+CogfTQUi54jIZekigkAejLyt83wRk3SfJAiiJK.dKQzpy Jc91FPj5bf21souXz7A90xq4hM5QzArDZhNDELRr3+0BKE2UTic3Pl9cS1XK mNVx+OkJ1bbG6dnruVTQm8KiuAjbLvjaHRe9ViL0+zOob4vo1jFer.R17xrY eFZyAM6TYRxmtTVN3Ek3jpJU18uL8c2xT2ORmSm89O4ibe0Gz0dV1IkL5a6H D9TrkWL41MM8SXJ.Oz559IWXFJSFTu3OLvnVs8mO+DrNdwP2MjrHXqhKwBIg hjD07daiz2w..epQqHkkX5tvtjHPKqwkG9NFme83OM5IyA8nysbhzSfKxI6M jSCorkQnRwfabt41W1S2yfCU1NLmObF6h9SlL2MWvYxjs3l6JblHeenC5Iex jiS6DmvSF7cQOvISOoNHmrIaikKGimNR0XC5gZauEyE8coQHpv22v35pIKLU ITaUSDUON9VxP6M+mTdHtJjtTEOuiay.YcVh2b83737+Bzg1osM -----------end_max5_patcher-----------
yes, I meant not only that phase is variable, but that it updates, rather than resets, the phase. This is only based on our use of [scope~] in this context, which I am increasingly suspicious of for these purposes.
If I was more dedicated I would read [cycle~]’s reference, but in practice – as you know and say – the right inlet to cycle is best used to turn a linear ramp into a curve (when cycle has no frequency argument). A changing float message to this inlet pushes the phase forwards or backwards; a static float message to cycle which has a frequency will reset its phase only once.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 714.3oc2XFsaaBCEF9ZpTeGPbcVD1FRB6AY2LMU4XbRcGXPXmtzVs8rOicf5 j.AJIikzavhisO92e43ywj2t+NGukYaoBO2u59cWGm2TVbz1Js3TYvwKEukj fE5A5QxRSobo2jccJoak5NJnBpT3l+HVPq6kEq6Ka4SeAhpslWNVtDKYY7GJ nDoQBPTzT+It.PPYi+tGt+nZZqx3RA6UZ4nAPU2UtCKIOx3qscU.bZnxUPsW .9ZOBA1diuIkwSTRV6N60fiS0qg22nEwXN1yZJYajUyod8WUrdo1vTeskee+ cksplImOV2jGikzSwUn2..TP3sEeRoBAdM8X932HSd2pQPxWxolMtm2vBn.F RY.FxDcE0JufCfWfQBNfEWZ3D5CtdgCm9K0t9X1jv3TUHYiDBdBBMYOJ0RpL DRehBLO5rSkEDXf6BsWBVzwIUz.fK7hC2bL4mtqTIVZNBD0qHvNXavkisgZu Luqrfiaf6pjLkqZjeAsyO0rvxxfzkX9ZKXpbMKU4tRI8NSF.qLGxMDaeVkiK TLQRKdfxwKSn6UD3rKmTCekep1ImSEEAIKm9m5EifSHjrMboAEKZB6gcdClE HMVBa4FLMfUTjgjggZ5h7qa5JH7fpsW7yvjWHIV.xFDyZO9SvVywICqNREK. sFhciUGAz65He.JA9DVP3heeMvsYl8n+CI1AexRrSeMFSZLukU96iwvbcB3f CdNVIg+3UifmZybkWTw05Ff1oA92TVYupJyGipJFWqKMb3euhVekcb.8DYaJ HU61pug00RjwTgjw023vZTfCF0ir3XJeuCnwLQ4g13N9As2Bq76G6gvPiuvB tVEFrWBScqJWv3JrY8RXgiOwP8RXvwWXfdIrw+Wx9HqwGWQWq4v5WxUvYIrc UAv44OSKD6bsQSphkOkUT99rIl2Yby6FO6UPelUMk4JKZupd7W.kiaCO -----------end_max5_patcher-----------
Wow. Christopher’s description is more precise and eloquent, and predates my previous response :)
Christopher, once again to the rescue :) phasor~ driven cycle~ shall be my answer here. Thanks again everyone, problem solved !
Forums > MaxMSP