poly problem …so close!
Hello, I am going nuts!
I have developed a program to trigger audio samples from pre-determined scale. The scale covers microtonally tuneable notes over a span of 5 octaves.
For instance, if the user detunes the mi-flat number, mi-flat will be detuned in all 5 octaves. The user can, then choose from many temperaments. The user can also choose from a multitude of scales which turns some notes on and some off. (if the user plays notes not in the scale, they do not trigger sound.) The input comes from a fiddle~ object. The program acts and functions as the sympathetics on a sitar do. (all this stuff works and is brought over from the first release of this program)
I am in the process of converting my simple voice activated sampler to a poly-phonic sampler in order to use FFT based pitchshift without overloading the CPU.
Right now I have twelve poly~ objects, each with five voices, one instance for each octave (just because I am too thick in the head to come up with anything more elegant.)
My poly~ has receive objects for the key (in hz), the input from the fiddle object as a stream of midi floats and the tone as cents (i.e. re=211 mi-flat=302). I am using thispoly~ to figure out the midi float each instance is "listening for" and the frequency to play the sample at for each instance of the patcher. (btw, I have the speed based poly~ object running on this program and it seems to work ok) The problem is that it is not properly muting, so when I use the FFT based version of the poly~ it craps out (I know I am doing the FFT pitchshift part right too because I can turn off all but one of any of the notes to get the CPU load down and it pitch shifts accurately. I am using a mutemap message on one of the poly~ objects so I can see that it is not muting. I have tried to attach muting to the line object and the onebang object. When the onebang goes off, the sample is triggered, begins to play and a mute 0 message is sent to thispoly. When the line object finishes it’s envelope, it sends a bang out it’s middle outlet to a mute 1 message to thispoly.
***This poly~ object doesn’t use the typical note on, note off messages found in synths intended for midi controllers so I can’t see how to implement busy and not busy states, nor can I figure out why I need them. I am thinking that these are integral parts of the way poly~ is intended to work. I have been over and over the tutorials and I can’t see why my implementation won’t work and I think I am missing something due to this project not being a typical controller based synth.
I would be happy to post this patch if anyone could help me.
I am losing it.
Thanks in advance.
Posting your patch is the way to go, then we can see what your problem might be. If you’re worried about sharing it perhaps take all the non-relevant bits out first, then no-one can steal your ideas!
Here is that poly object.
I don’t think anyone wants my broken synth.
Your point is well taken, however.
----------begin_max5_patcher---------- 3204.3oc0c08baabD+Y4+JvvIOjjJqh6af9Pmwyzzm6Lsu0zwCDInDpIAXA. siRln+16gaOJIKSIcj2cKtDOQTDj.due6d6225e6cWr35teodXQ1eI6emcwE +16t3BykltvE12ewhsU+xxMUClu1h15uzc8+cwkvGMV+KilKOlc8zeNb818a aZ2TOZtGxiWra+3gqxrWsYk4AnenuWxNb+q6ZGGZ90ZysSuJ2dY31GuaWMPx Kttp8lEW9rWy9O1u9tpwk21zdyG6qWNB2gnTpeZYx7oexM+NU+6ObKS+E2Vs 077W7g9lpMKl9fe+cua5GWl.fjHO9fDsv.RhnBRWuebrq8D.Cx2BFLxhWcU+ ZqRPRnnn3v56vpblVKT54uVXFxWoXAXsrdSmlVOg0B8aWKEmpLp9uzpQmDNY EFwxBEe5EQdjjNCAJHhGJPUEfzaTAgs0CCU2T+MJxxyxyHx7b8qWcTHh5pPO Iu7TAoWEW3.rHHl8Cl2PJPCWLXhu.hHn.BQH.n.r3wPFQ7FMjgEMxo.ZXvAF ORnwKX+eW0xOk83dm0GEa3tiMp.iMFPov7.zuKGWmi9Q.U7VexYZ54UU1xMB JJQYbQluT8450c8au+nXfvdwg5wscqpeYKQxm.sK61z0CqhGH1q2udcc+Cj6 Py1cCUa2s4gcueEdxV7lVqdkeYSyf40Gw2kaZ1spu5KOk9OBlKgMmpBkYmJS A50OSeZdI0SZrL6aW+mqnGOn6GEERPpCzYShkwrP3oSIOdt5T...ufNK95rc +XclmlwJYAVx.jEHOwEX7rh8i26GXTbxd7MzbSqdI7p98Y.gxRiyNL5UBLMc oou68K1uhhHfILvauRvtNigq87l1LpmfRX8uwBGEfgElS5QNXxUaXd0G0zj9 g8wpww9Fc.+Pdyt3AT4hESexGW1scacKfAF3Dvy.gp+Yi6GdtATFAWjHFeij 1vLHQRV6.39bXYYW6mq6GyF6xV2W++1W2t7trp1UYUaFq6mt7mq5a51Oj0sb TyLGN7D1zzVuraOvuntKtleDX8sBb6n11L3k.zaQfbZLIfhDt8O+G+zO82x1 0nIrrgaaVOd0O2B9BkMLV0OpwKMtl8kaqaylfpr98sCYq59R6Dl9q08cYc1O d7V88.2ZCbaWcTPl6GHyOcPlvMdNTxU.HCY.lhFHuqtexq9rJ.B0.2DVspdY y0ZvZS8mq2j0s1bwlV8CQS8YU6W0zcULjRyOc.jAoClZ1USjLjER+vDVj8gk iMetZrdU11lk8cicZyeYC20NdqUrqWK69ys+KMJtqu6l9psYZsBiUMZA1wuT u4y5q2s4t6y.03CZlwmzLia0BqeemlsnYQY0U58A5mb8kZY7Ky50uts4xr5w kW8CWk8SSe5zWsudWe8flTGxDGTnbbdkxKdkp3z4UJa36PVsODKOCMl02qs6 S9gIU.Sxy5k30Z8GZo6kF3ZBjMP9DHe0mpu6vWbayplm7smtz5l9gQyW7vUz eeCOdcyM660Wc+3wtWCST+5irlo6oZyfliZbl+VsgAMW5liyxJ8hkIEmCKCh vi9Ti.DFAMdVS6NMTtp+tuBJW22sUyDVsRqjB1ybU1e+QjuYcVyX11okS8f1 V6cG3RVTGd6AVc12eSidG3D6uxrs6AYCipwo2O1o2CW0trN6l8MYCaZV8RlP jdwhDrSmEQM7DJnHjHfjLWhaLnD+75KrNSKnPtvHPMBU3FB51wt09EagJrvg pzXajC0c.hvHQKJEQFyT0.4ngD2ZyEhpspDme0V4RHojgnxwufD9jFVxB+7d 3LbUlYcUtvr6FR5Z5FibH1NnXwa6fRU9DGmQOykuWuJ7ylgjDViFDqYT0iYo COiFZ11JnEX7QugPdVseyqpNoDRMm5wNS5OT4tjDgbWRys82.eNxcoN1tU2q CtbqlxtsdrY4fmphKOcUwVepxkPHbDExZOJ7U2QQP0cTBNcy.GshltiWBM39 hFgsMWJIR.MxmEzvW6Jp7fhFEJnrOPYwPGMxuR3IbDVyrELKbTNKvAwWgCZf CMiOmnAS5qlivFopsuJn74QOJ0aEogsgvDkT.NlGEo96gdf64DHAF1DcgsG5 +IuamTIMBk1D5CGJiF0dK3kst3IjDVasbEDfBqbNjPFp2jcJFaOVSYKN2yOw anWETjjCVajXGvxlLtm3BOJ3hvFbatXtvEle3BOR3hUSqs4blAbg5ItvhCtP r3BYtvEhe3BsHJ3BWYwk74.WlJpqmmtov1KWPsREQnUtBdKaMUDTSmG3YcaN U.ro0jk5oWd8rOBIZRXdQTfbZl7uc1DAtMAkPatD4.jd496yW+8BuGvLJ8af D7z83eTAhXblPT19rgOGXR+TuvbTPI2YPIrYj7.dXqsiB6SV8Z+OY0bkekBz oRBBGpZAzPIXe.z8W6RQDBv1drkEvQ8gicYRoTuanZVfyXIHi.m6EExGRwez a0sbQDjQfJcXKUJ1pauoZzyCGFKrosjC6RjxxjueiXQ7ngI3BXPUjG0Fr3EM Bup+tUW6mYXVfOZXVDI2dl4vFQzQTUs7SezVgeuPFZX8qma6hc3DfWfLx7W0 ZUyy8rENo7yIFvW+X6.suYI3TRJOoW7X5nX6rZEANojkG94rMpWJO+0hsWxH xH16gs0SjguIBi42fJ50a.SC+Dpyc7NO9AYp93AulSsktNOQFqOzH1rjTaqj KHI+b8gFwVnla8kQ9G.XHhy2HFjtaAK8mxSTRDgAXSuM4+oMLjGwMEfaJPMm w1Meyg1L+JscliBPLWSuD4zS31k1++00aB8MLTKDXD0fX1S9NR12Q8bvoD1N EkAGmNIMtSGiXBHgMxGJwdhmoyw3Boe5jNW4YxpIhXDKHGZlXzG0UGBS1SLg GXLgBojNeVvDyrQa8KLSzbemSXylBCNEBBE8OxXRXK8NAJ2tPE48Nwpe3Hj. Kh.IqmkOKVa7ed4EVgiBa4sdx.DFwtCb2llwSvIsikzBQjZyBBLtg4P8hQWU h+EQmoBeUc3fqZ1WPGTdu+fRL5r.aotnp4ZNb5cK4vJiPSn.YukMSafBArvy COrXGBf1bDNCtx9vX6vOuY4g0rLGRbBSLWvxp96lFlJdBJA10MqrBTVP72B4 4fijEu4ForbNZqfoLKcumcg8YhINk0MNToz7udXWfTrOapt692Z1759o1OFm Qc630jXMHEqVdaWUa8F+N+47GJXw027jIBc9UkThPVd4zuI4pb4zuIXS+mdE 8jUxw5HG64gR.UhzN4UmR0zYUdpPrJKB+pjZagBn0zfbrZbPa1VjkgeQZOL4 .CUTBm8OEY9VjBZD3jFU7JHxTJzz6zhhmsHMOAih4m8uJRlm3z0+5U9P299k GzYbXTOm8HgrpdXrosZroq8IeIxW8ctsY0p51mBEZOG10oinb3vja+nrAWII sMhLxaPQLbIoodC3MQoo+AwAQZh5.IIvkwIbfjl5ZYDoIkKzzzPxASZR4.MM Mh5wjlRN0.EtPRSChbLooBWnoxuRAVzooRGnIUIt5KcElRLkSDjUD3hNbCgi m3jhjfzTd5QSxxDjlJROZhIcYeWNtpLcYemhgpt.gK5mj3ZtSvcglPVOtKzz yTXDcZxE6cJbceh5ht.EtgrT3hsEFtpLcwKyowzClzjLAoId5QStoxTkfpLk omJSItwaJySPYbWbKfgq4NQgq3ThYZQhqIXWrrHDoGIwSNRhmfjDK4HIZA54 D+MkkP1ASWnIbUV5RH4Lb0KwDIGJQbgjn35hBwEgIJx5ucpzX3pGf3hKJDU5 IOQvMrNmjmH35dIg3JNgr5o2pXqDbMrPxck2kXpwIHm0Im7SAWaKTmLAWjd3 jglPLq3tDBEEYcAtPSLbqdfaxSpDTdRgq7jxUdGMsnIJx8VjSUbEY834tx6R LZhhbnTInt.VBZuiQcMLXD0O4RrTLby7D0Icl3FGra3jD23VbQFmhbVCcwWE Bx4UQkdzjS8RKtpBbo3lBjKZmSEAF2Za5xlNAtFVjtRRjjpInkoWufHw0qWI I8J1pSsfEtN85zdNjoIRoKZvooW+qywEmJbQ4TAAed2aRSxzqeBTHW.gbmxV eNxUAN2IeLymvJFhTkzYpBwPDxENSUzjDqxSqlO94BeIwAb643YhPThTjnPN zybkyTElZEb5LRfq8OWaAYDiXvoC5FtdmWvbklPFmnuEMMC7NRZQStcvISun XD4IWpwPljbx1hD4ykjKzjBeRhjdjDMoHIoKpvKY3SSjDjlnoEMIbJUq4oGM 4SBVzu42e2+mK6o9W -----------end_max5_patcher-----------
Is there some reason why a line object performing an envelope (up and then down) would not send a bang from it’s second outlet when it got back to zero?
The onebang object doesn’t work while the instance is muted. That’s why this doesn’t work. I guess muting within a poly~ object is more absolute than I thought it was. It looks like I need to trigger the note from outside the poly~ if I want it to mute when not busy. I am going to re-design this patch with two poly objects, one will have constant dsp and the other will mute when not in use.
It’s always nice to have these conversations with myself in public.
I told you I was losing it.