Granular Synthesis Engine Woes
Hello, I am trying to build a granular synthesis engine and I am have some difficulties. I am use the grain.phase~ external from the Nathan Wolek’s granular toolkit. I am trying to manipulate the output of a phasor~ object so the I can maintain it’s frequency, while changing the length of its slope. This will allow me to change the length of the grain, while maintain a constant frequency of grains per second. I believe there are two problem’s with how I am approaching it: The first is that the grain.phase~ object will continue to produce a sound even if it is sent a signal with a value of 0. The second problem comes from how I am changing the phasor~ signal. First I clip the signal, the multiple it by the reciprocal of the amount I clip it. (for example, I clip it by .5, then multiply by 2) This gives me a slope a slope of exactly have the frequency of the phasor object. Then I apply a !=~ 1. object to the signal, so that it will go back down to 0. But i think the last step causes a problem because I want the signal to hit 1. first and then go back to zero. I hope that the above makes sense, any advice will be appreciated. Thanks!
I have included the patch with grain.phase~ and the files that are sent to the necessary buffers.
oops, it appears my attachment is too big, here is the patch, without the files for the buffers, or the external.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 1180.3oc2Y00jhiBE8Y8WQFdbKG2.jO2p1sp42wTS0EFQkohIVAzo6Ypwe6a .Rzz1pMAaoSOOzIFfFNb3x8dtvuFOBLq7QJG38Ode0azneMdzHUQxBF078Hv ZxiY4DtpYfE4kEaWClnqZQYgfy9IUVEDM0uo3MDQ1JVwxGpnYBcuiSCqq1CB ikuB8kOQ0O89Vy+ScuxJxoB0v.aJjMWMnky99mCi.G58JxZpfV8.sfLKWM39 G6kxsh1tA0TptHwSanZvHmEDAXhGXFoXI3.FjSmh59VMneohQxAxJ983wxGS LjhJn+nFvsnUPeTQAfO8u68fS6OyASwJxBodE.uNygNCygAmkcfWhc3rkE0S c2PK+msrRvzvIpW07ANo+rh+PlU9q8VPI0r.plSPgJKELRRP8hSBRe64jV7V Q4zBAQvJK5h43H0Jm1r1u4g22deYRTpFU9I1RjICYiKkmHKbgiwJ6KXrs64B h+SaOGBq3BXXjsVJHWukCgzQhC8uWa4xxYatAtzWIQHH55lW3yvkvgr4U8fY CoDiTBlztzw8V1DNcP6I5usxSTi+4FKEsYSu10gS9iK3e7M5HBGMjoDKcozx JV6RAOLzNacVWQIGSZvhjtPoeTR5xVFpwBQmbkMLTxGEFhmUtgtGbYpH.p2r zjREBp25f6gSDzED34aAdo+bNI6Z3EAUHLBohPFD19zbzBe6PaNaGc5RBq3. h2QpNrn8xZu77IHT6rRsyEhi5yDx+ZFivyNYCeEOYS59K4eGLRyYbwQiTNYG c9CDgnhMaqfd7W7FVqg1jDS9VZ4h1haKuKn2VvDbwSZbGL4kMXcM4KqKpcu8 I0xJj094X+yVOqt6k6hTSzN61eViZohy0A7UkUhKu59r1V6XZ44ZptkJyr1W uUxGpmSg13JTqcPKtJ.0aUUvAsVykU0z9zMqHb5duYaWr3IueTalzaZJPKEO T6rDC6slBXhqS4KQ6KQ6e+djwmjUKqlxWwVHrWllNIm3zdGDFFB5Wf1W3aaf nFAEphhg0G7jExQf9uKxQtt4GVm2ZRzMa9YKulldaz5GFYvqobNYI8EaPqna xIYTK71EEep9XXROhIz2S7ywDh2Rx15VZKsnelD1aZI3clVtfebYXQZ0dKCL 1kMh5uWbLX3eIdsDjR+f0TjNe7339ms4G.J5sRmU60LbCBstqxQUMqVPewoW ftZtHK+4bGubaUV6P0JW163rYNkKXEpXmcZjLktNMZEa9bZQ2nNyYbYfn4WN wUSwi7Rqdc7DOrvCzYvQdM5uJbj2fpGzM3w2.7bBnum3Qd.xuNd7GV3IH0cl yHSvSh6vSro3ANf3G249Aah6Y4UN5gbBdjI41Yo3J3wQ1OPS3GzvZ8RdeNNZ 8BaR7hSbRc2seLhebz5Uho1OvgCdTqWvAj8r6hWfLBOtKdJxH4ggtCOlnGSd kSNx9wb73H+Olrb4NyGnugYW3lnEoFhF3.hbRFVri6jpZhxY2I7IvD+xVhF8 gbP1rYGsh2zkJf.VS9dYk5JXmn9jUn+Tc5JfJ5NVa6UmNEfTkshInYhsU5CT 4wjHvX4376w+OeOwMAA -----------end_max5_patcher-----------
Try using pong~ in fold mode; it sounds like it will do what you’re trying to do.
Thanks. Never used Pong~, it seems like a useful object, among many others I am most probably unaware of! Although there was still the problem with grain.phase~ always sampling part of the buffer even when a 0 signal value is sent to it. I swapped it for wave~ and things are sounding the way I want. Cheers
Forums > MaxMSP