Granular patch won't calculate total number of voices in the poly~
Recently, I’ve been trying to reverse engineer the sugarsynth implementation of granular synthesis and I’ve basically cloned it outright with only one or two minor changes, yet I’m having a problem I can’t figure out. In the sugarsynth’s [x_sugar~] patch for the [poly~] object, it uses a few number boxes and a send receive pair in conjunction with[thispoly~] & [peak] to calculate how many voices there are and then equally scale the phase of each instance’s phasor object.
As far as I can tell I’ve copied this part of the patch near identically, yet no matter how many voices the peak object is out putting a 1. I can’t tell why this is. Can anyone help me trouble shoot? Sorry in advance for my rainbow eyesore style of commenting, but it helps me to analyse each part of the patch and separate them visually.
I also have one related and one unrelated question: How do I change my profile image? What is the reasoning behind the amplitude scaling at the end of the patch? It’s the total voices to the power of a half and then multiplied by the square root of 2. I don’t understand the significance of these choices.
----------begin_max5_patcher---------- 3129.3oc6cs0bihiE94jeEZ7tUMcOcZ2nK.l8s8s8+vLSkRFTRXZL3AvIclo l929JoivFm.XYBfI6rUWkiAKiO5b4SmaR8ed8UKVm8MQwBz+B8ynqt5Ou9pq z2RciqLWe0hM7uElvKzCaQ5tMqE4KtA9n6xRKKh+Cg5ivjkNlaKGTbZhnT+U vGtY1txp6RL2cKuL7g3z6uMWDVBDhqq7AgHvebczWHeE8qluRbjlRxV+ael3 UmRR4azTxh+cdLOo5Sfezxm2JfG+h3zxE2fVrlmd+h8Ozs7b42tTjeqHkuNQ O1poy56CyRxxguNVQONKIlWvJBSMr+55qUuby7gORHK8cuA4YAeDSmb9nyxU 2T8hS+4igYa1HTDB7Ykhuom8KtWTh.dLJ6NT3t7b4nPwoEk7zPApLCI+lRhU +1xrRdRsg+XVbnnXY0CMINUDlsKU+jo8PjcW98q0Lh5CqlPzocgX.HDI3kxW wfTj42rTjwNsTTwfFdovcIYxYznpMi0DHk4bZsYpeOzlkSA9.fKfWo9W82Mz Z1EhznuH4Kh3GEns73bzFAOs.U9.uDI3gObPKOt.IsCJkLRTgR8W7nH+YTV4 CR07pA8iEf5dk5OOMR9n1Uf3IInsB9WQRVpTJTfdJVdGIea6tR4HDnBIiA8H OYmXI5e3XnB3mXOEHMltOmmtKgWlkCOgG3R5li1kF+66jOjujqmDMar4MsFa FDSr7mPayoQNW0h0FMnuVaNNXOWW06XNXel5MA8aQDwSRJ4UZH4RwwmUhtyw frYlE9jKS6n+iGtSCRROLHOXCN8bvh9vAw8TcKPy67nc5niEJaiHapcrnshb doDG5AdQV92QEOKs5iTqotgGmt+1RrjrmJznFZ9fZ.46RQqeFwknOQJDJ0Gd mPDslG9UMX1OFgVKPg7cExmnbj6JpF1QOa0524w2euBSShRk8TpDY5guiZDP wcZATntqTHIT.IAGn+iOqEY7pd.nvLqbqk381YzlsBLb3ywFfbtnHjf.855. Gxk0oQ.qGvHEw2mJ+3lASFDtWaFGaS3OqUlkqElWh1lUDWFmkJWbD8gMEebw zpJ5qYvr.vOOuUcxn8OaMQi6OZFp2vyKWu6t6jF3JRQx+lXVGYkVG0EhjBS6 l2Q6gUr2ddGYDzC4ooJjyMYQJ+v.Uv4PrMDoxnJ.Ufu5i6J1Frae81hFD33i 0LXhKl5N3vj5UazK1NtHkLXsDHBHu.sKpsnD5MKAJag+8SxGHCyFUlmqQEyG .A6x.1mz6nGal2oYatTWG5pQZklHQRbXblLnspfsjdLAQp8CSLVIk.AMw.rR uNCT2G2Wi52JVYaphiryNxEgkVsqHPtLHcZBO31vSCZ3XyBgLgYGKz88IKL7 4vDwHyFAWZ7gHRXtcYk5E7+YiswFot1yFW89jM9IkyM9tiJezD9muOjc2NSl jm+LmO11pzheeGOQFF3SBUJOAexkgFdunQewIS751TpBJ0nIiA4g7dMJBbY+ c2Y7JEVvaG+N8xwkLzJrUgZieK0roEFnjR9NhLt48z3FDfWx5LmOt39j3yib OzLpB9ihnaghYbKurLOd8tRn32WsmEc0B0mbakIr5mZg9CzL2gjEiG4TKism E67+Lr3GhS2myCcd1TS4Oqnw8oaSB7lUpyBxIF3dwUb52Qr2tz5znIdAPD99 cIsXSp2XWNAaqkbHjmHpJCIOLLKGpdPltx.GpguLR33zBTQFTXT0Gx2rMItb WjtvnoY4a3IwEhnk+RyYCiMsq.uRiq6Ck1FCNV50lRPeJUvvkGh1pWP1SnOK +IlfL43sRap31soBd1lImKZvyFcrtCdl4MJdsLp4A6fA9SwoQRsw6xx0V9Zv .TI+qhTzc4YafJQZJfXTd7ix6G9bR3gvEujHAXBaIQmXbhFKvInSrftxxw6G USCfGLkOgpIcTTMcFoVQqPThL0uRtJ0ZARUP6oNsrNdZ7RS4+5tDVLxbqDVG rg2n6doeI8C7kecIG8j7BAzMRRi0HUS8IJzl3ebNTgq8VxN5kqvXcP1s1+dN 8srqdijpKOJBpdsxEq5EvdSgRWV6KVjAHceqgkIEROZDJlJeGe3YeIEGfKVt TfW4FzUAGoqtT0.usPZNpcBdg.osnar46bTfN3QMPGhqWstPn6.cnCrCHMIc lcoFXppkLHGbqh6rqUaotumRe0mlD2Tbghvy5tMjYiuB7.h0K8J4EH42Iw1k nOYHNBpkx9VAVMNUi3Xv6CyEpl.jW41stGhM8jmVit56UKZ7mQOjkDA8ObAx DgNrdgL5cNrb+rnG9BHfrFTW8oc0CeTZeCLezrGlfp2.0NfQVc5p2PwumPS9 IE2aZXdNZ8JFoSlmy6Il2DT+USXMLHoPLuN2iS9yRlWavwa1kTFuM44WfIu9 YSfPJdYMrWoC4ZnTcJOTYznpWoUt.VA.ubNjci.cwHnlBMB9h2VtMHtuA3Tm QAPXJbufgsHAcjQqrhCHiaezKM2.uuHbklGTs3SPtib3IN0ZzWZ2a8T7vsmV 7l+0rDfQNrWttEjUMINHrkANADLYX1EqlDCBgpP77fsAXKX7ughi8ps92zkl kPdRntqMq.6K1Jf87RjDHWWeqZf9pzuDmjTHQvSiJTiB633nVKPsoW+O+ArP vMJz+TcJZfkB3MTtrRo7rXeJAtiGJkryhEInlsfmYidhwcsJAt2ablwZ2GeD e8KaiUa4oOcbC3i9kzOn9YiKPY4ZMP47zbcXoZORta6GmEcFDHJv9F+5C5z. zatIJN1v4BrwaHLeM+iAtI5310h5X1kh+cgb3A1TCjpTx1YGThIix1ZXj3b+ vW9tFXdR3eNVr84v32Aru8NL1DDZc.y3TUyTptcas1SOdBGkJb531yOqX0jb cmJbry3K4lcsvUMf6Onq3Tax41G3QhSx3F5.XHh8nmtEtB96izbZ2KwlcHmo Kx6DLb0rDK7zAHT03JxWqcHdruQWp5oEPj2U+wAmwMGEigZ.u5jxw7MjiSGv f9jxo5Ca4HxY0DWjcGO3Lxwz5bDnqYvs3hZu2ayjFBPe8t0qkjnb7a34xUTz S+gyp4KxerQ0jwjnIb09WgzguotCZ2zMTmiVMy3JQqQ2MEmtVjUtVzvR8fyo yEwMWNN34d5mzrpG8jmeLfm+cm592voSVs+bAzBeHV5.ZxyeeJzDMUlt6Cmf 2Firi9GejBhRp7GAVBiouali8o8khnCOw6qk7Hp7sQTTTaWjcTeG9OG69HAb 0Jn1oxFdUK5dNuoDl+hCOvNa2P8WR6SxKNaK0SA08OlcVjsKOr5mz3gN5vjH RTTJCVrJfie9P8WpMnGhihDo0cU4D0VwLpMwQ59iqnhitBNpffrswzAIpu5. 4DWnNI5zbVmF0WFxooJqA1OMaMRjginWYAQqJT94Kav1IaLktjxn6u5BMM0p f3YjrwmXAUq1YAmov406ZflkPdZyEePxPnXnUcnixb0yFqG0o3f8RHK1IVCH 8aiFl5HTXtR+91P+AyW52yB528TnuCH83ZC83LcziEjypY1ZSt1f+oM7FRcx W.BRI.JnoQ77c1e0EaF6eNxoI0JzFkd5YP9ceL.O3jOylEgbIyV1Oyy1EQcF OClJGEfsGhIiN5qtXyX24qDiZqKd3yxhwaTAlYXKnZexv4X5.R51Xge1.TMk L6gklwVPy3YDMS8szgC7.tRvKPhv5chC0CJcU.DfoG6xMeIrobBSNLgObEz6 WpnscMWMFLCaPkomuYVS61rAjpsx6kyWDNxTsMHZ3f4Fu1FGcoyLbXpMK6o1 XD1GORqIKa.oZGaX03AIEeCHUaCbp2LSAgXCtGCOxIri.ddW6hK1TctIerAq z6ryBryn5wJgX6xRCe4SfBlvnzZkOgQGmL.SrAckbVkhn0cBx.R0NC7xuSCU aCQSO6nlG2zAhsI6Lry2ogwMVYrus4TBOzUXihgyGhUDXmD2vUdvFvlBmgj5 qtT7.sj673ANmFBaOOvrapcd8Udvw2fodj5qtT7.p63qGT+pwXdRG1LrzAzx qxTutg6LxV84l+g2RAYsIBYrykatSBla3pDK8JZNUaHqHZB6roZmS6ksAnfX ZbA3vnhLRMt.1pXNIyMoiisT8bpeKrxAzQMjFnUq3a29nHuv7CqI2Ea3+F7b 0+m3nTkLEtT+6tHW7Xb03Wcs5o8WW+eQI5r7n -----------end_max5_patcher-----------
I had a quick glance – try removing the #0 from your send/receive. You want the total number of voices, so peak must receive a voice number from every instance.
I used gravatar for my "klaatu" profile image; as for the amplitude scaling, erm. I just scale my output by 1/totalVoices.
sugarsynth is cool! Have you tried "grainstretch" by Timo Rozendal? Very tasty indeed.
Thanks for the advice! I managed to figure it out last night, when I was opening each instance and it suddenly hit me that the send/receives were all different. Bit of a bummer though, I had wanted to be able to run more than one at a time using different buffers and voice numbers but now the voice number has to be the same on each instance.
I had looked at grainstretch before and it sound super nice. I wanted to build something from the ground up though cause I wanted to handle pitch modulation a bit differently to most granular synth engines. No internal randomness, but sending signal rate arpeggios in so that I can get a chord out of one granular synth.
btw, recently iw antd to do a grnaulator kinda similar of this, but using gen~, and having phasor inside gen (for numerous reasons). The problems was that then, i could not initialise the phase of the phasor inside gen~, cause the gen phasor operator has no phase inlet… does anyone have a solution for this ?
use [accum] in gen~ instead?
can you simply add [+ 0.5] -> [% 1] to your phasor in gen?
Hey, thanks, both solutions would work it seems. For some reasons i thought it could not be as simple as that ! but the output of a phasor~ is indeed completely equal to its current phase…
Thanks to the [+ 0.5] -> [% 1], :) here is a little granular resynthesis patch that i partially made for school exercise. So we did the basics with our teacher M. Tadini, then i thought i should all translate into the gen~ domain for a reason that seemed obvious at the time (maybe it was impossible to simply make random variations of grain size without clicks with this method in a non-gen domain, because of synchronization between the max and msp domains, maybe it could have been solved outise of gen~ more easily, who knows), also ideas taken from the Nobuyasu Sakonda’s sugarSynth. It comes with annotations in a subtle mix between french and english (sorry, don’t have time to translate correctly right now, but i guess most of things should be not too hard to understand) and no documentation at all, and patching style is a subtle mix between chaotic and very tedious, so i don’t know if someone at all can try to use what’s inside wihtout headache. Nothing too exotic though, apart from those KEY FEATURES ! :
*grain engine in gen~ domain
*stretch, pitch, random at will, without quirks, using sah~ -like technic
*a cool fx that is due to previous mistake.
it’s all a matter of subtle mix.
i forgot the patch