poly~ voice stealing without clicks


    Feb 14 2020 | 6:59 pm
    Hey I'm trying to make a kick/808 drum synth but I'm running into a problem where when a new note is played, the tail of the note drum is cut off, creating a really bad click. Is there a way to have poly~ start to fade out the previous note (say over 15ms) as soon as the new note starts (so they overlap a little)?
    I should also note that it is important not to delay the new note or alter its attack in any way, which is why I need them to overlap.
    Any help would really be appreciated!
    using phase cancellation to show what sonic academy kick 2 does for voice stealing
    using phase cancellation to show what sonic academy kick 2 does for voice stealing

    • Feb 14 2020 | 10:23 pm
      such things are much easier when the whole voice management happens outside of the poly.
    • Feb 15 2020 | 12:26 am
      From the reference: "Voice stealing enable causes the poly~ object sends the data from the note or midinote messages to instances that are still marked "busy"." That means that you can deal with the problem yourself when you program your voice (i.e. the poly~ subpatch): instead of playing the voice immediately, you can do within a given voice: - if I'm not busy, play the note immediately - if I'm busy, then fade out over 10 ms, then play the note You'll take care of the busy and mute flags accordingly, of course.
      Can you start playing the note while fading the voice out? Well, think about it, it means you're going to need 2 "playback engines", so your poly~ voice is going to be overcomplicated. I would not go this route. What I would try first would be to increase the number of voices you're working with: maybe your application (the way you use your poly~) has a maximum number of voices you'll reach, even after adding the voices necessary for overlapping fade-out...
    • Feb 15 2020 | 1:30 am
      ...a sub poly, which has 2 voices and doesnt steal. (but then why use poly?)
    • Feb 15 2020 | 2:32 am