Poly~ plays some voices at very low volume
I’m building a vary large synth (too big to post). I have a poly~ with 8 voices. I play a note, hold it, then play a 2nd note, hold it, and a 3rd, 4th, and 5th note, all still being held down. When I add the 6th note, it plays at very low volume. Same when I add the 7th and 8th notes – very low volume. Playing the 9th note properly steals and it plays at normal volume. Letting up notes does not allow the 6th, 7th, or 8th notes get any louder.
Now, get this: If I arbitrarily delete some group of objects from the patch, such as a few controls, and then use edit to undo the delete, I will get a few more voices to play at normal volume. At this moment, for example, I can now play the first 7 voices and only the 8th voice is at very low volume. I placed a print statement to print the velocity at the point when it enters the amp ADSR inside the poly, and all voices are at a reasonable velocity when I play them.
I wanted to strip down the patch to try to get it small enough to post it with the problem, but doing this just makes the problem go away. So, it does seem related to having a very large patch, but it sure seems weird that doing a delete and undo allows more voices to play.
Has anyone run into this? Any known problems? Any ideas on what I might try next to understand what is wrong with my patch, if anything?
I’m running Live For Max using MAX6 (latest version 6.0.5) on Live (latest version 8.3.1) on a PC i7-980 @ 3.33 GHz and 24GB RAM on Windows 7 64-bit.
Any ideas will by much appreciated.
OK, I’m getting closer. I added more stuff and now I can only play 1 note at a time. The other 7 are at very low volume. So, it seems to have something to do with the load. According to Live, I’m at around 73% CPU.
I tried bypassing my filter and took the audio output straight from the osc. Now I have all my voices, so it has something to do with my filter.
Now, my filter has two modes 1) note tracking and 2) fixed frequency. When I switch to fixed frequency, no problems. So, it has to do with the calculations for my note following logic.
For the note following filter, I use snapshot to sample the MTOF~ for the note, and then use the snapshot-ed values for the filter cutoff frequency after doing some adjustment math (such as a frequency offset to adjust how many harmonics above the note for the cutoff, velocity tracking, and keyboard contour tracking). I think my problem has to do with that adjustment logic. I think it is my problem despite that weird behavior where deleting and undoing the delete partially heals the problem. I think it’s likely a timing problem and doing the delete/undo somehow affects the timing under the covers (but, hey, I know zilch about what’s under the covers).
To be continued…
Well, I’m still not sure what’s causing the problem other than I’ve simply overtaxed Max. I changed the snapshot of the MTOF~ from 1 ms to 10 ms and now it seems OK. I guess I can try making the snapshot 20 ms if it happens again as I add more stuff.
Forums > MaxMSP